热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学生成绩管理系统V1.0

学生成绩管理系统V1.0(4分)题目内容:某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理:(1)录入每个学生的学号和考

学生成绩管理系统V1.0(4分)
题目内容:

某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程实现如下学生成绩管理:

(1)录入每个学生的学号和考试成绩;

(2)计算课程的总分和平均分;

(3)按成绩由高到低排出名次表;

(4)按学号由小到大排出成绩表;

(5)按学号查询学生排名及其考试成绩;

(6)按优秀(90100)、良好(8089)、中等(7079)、及格(6069)、不及格(0~59)5个类别,统计每个类别的人数以及所占的百分比;

(7)输出每个学生的学号、考试成绩。

#include
#include
#include
#define N 200
void menu();
void Readnumber_score(int number[],float score[],int n );//录入每个学生的学号和考试成绩
void Total_avescore( float score[],int n);//计算课程的总分和平均分
void Score_Sort(int number[],float score[],int n);//按成绩由高到低排序
void Number_Sort(int number[],float score[],int n);//按成绩由小到大排出成绩表
void Search(int number[],float score[],int n);//按学号查询学生排名及其考试成绩
void Statistic(int number[],float score[],int n);//统计每个类别的人所占比例
void Output(int number[],float score[],int n);//输出每个学生的学号和考试成绩
int main()
{
int number[N];
float score[N];
int n;
int choice;
printf("input n :");
scanf("%d",&n);
while(1)
{
menu();
printf("Please input your choice :");
scanf("%d",&choice );
switch(choice)
{
case 1:
printf("***************************\n");
Readnumber_score(number,score,n);
printf("***************************\n");
break;
case 2:
printf("***************************\n");
Total_avescore( score,n);
printf("***************************\n");
break;
case 3:
printf("***************************\n");
Score_Sort(number,score,n);
printf("***************************\n");
break;
case 4:
printf("***************************\n");
Number_Sort(number ,score,n);
printf("***************************\n");
break;
case 5:
printf("***************************\n");
Search(number,score,n);
printf("***************************\n");
break;
case 6:
printf("***************************\n");
Statistic(number,score,n);
printf("***************************\n");
break;
case 7:
printf("***************************\n");
Output(number,score,n);
printf("***************************\n");
break;
case 0:
printf("End of program!\n");
exit(0);
default :
printf("***************************\n");
printf("input error!!!\n");
printf("***************************\n");
break;
}
}
return 0;
}
int menu()
{
printf("Management for Students' scores\n");
printf("1.Input record\n");
printf("2.Caculate total and average score of course\n");
printf("3.Sort in descending order by score\n");
printf("4.Sort in ascending order by number\n");
printf("5.Search by number\n");
printf("6.Statistic analysis\n");
printf("7.List record\n");
printf("0.Exit\n");
}
void Readnumber_score(int number[],float score[],int n )
{
int i;
printf("input student's ID,name and score :\n");
for(i=0;i<n;i++)
{
scanf("%d",&number[i]);
scanf("%f",&score[i]);
}
}
void Total_avescore(float score[],int n)
{
int i;
float sum=0;
float ave;
for(i=0;i<n;i++)
{
sum=sum+score[i];
}
printf("sum = %f\n",sum);
printf("ave = %f\n",sum/n);
}
void Score_Sort(int number[],float score[],int n)
{
int i;
int j;
float temp;
int num;
for(i=0;i<n-1;i++)
{
for(j=1;j<n-i;j++)
{
if(score[j]>score[j-1])
{
temp=score[j];
score[j]=score[j-1];
score[j-1]=temp;
num=number[j];
number[j]=number[j-1];
number[j-1]=num;
}
}
}
for(i=0;i<n;i++)
{
printf("%d\t%f\n",number[i],score[i]);
}
}
void Number_Sort(int number[],float score[],int n)
{
int i;
int j;
int num;
float temp;
for(i=0;i<n-1;i++)
{
for(j=1;j<n-i;j++)
{
if(number[j]<number[j-1])
{
temp=score[j];
score[j]=score[j-1];
score[j-1]=temp;
num=number[j];
number[j]=number[j-1];
number[j-1]=num;
}
}
}
for(i=0;i<n;i++)
{
printf("%d\t%f\n",number[i],score[i]);
}
}
void Search(int number[],float score[],int n)
{
int i,j,k;
float temp;
int num;
int rank=1;//排名
int school_number;//学号
for(i=0;i<n-1;i++)
{
for(j=1;j<n-i;j++)
{
if(score[j]>score[j-1])
{
temp=score[j];
score[j]=score[j-1];
score[j-1]=temp;
num=number[j];
number[j]=number[j-1];
number[j-1]=num;
}
}
}
printf("input number :");
scanf("%d",&school_number);
for(k=0;k<n;k++)
{
if(school_number!=number[k])
{
rank++;
}
if(school_number==number[k])
{
printf("%d ",rank);
printf("%d :",number[k]);
printf("%f\n",score[k]);
break;
}
}
}
void Statistic(int number[],float score[],int n)
{
int a=0,b=0,c=0,d=0,e=0;//五类人个数
int i;
for(i=0;i<n;i++)
{
if(score[i]<=100&&score[i]>=90)
{
a++;
}
if(score[i]>=80&&score[i]<=89)
{
b++;
}
if(score[i]>=70&&score[i]<=79)
{
c++;
}
if(score[i]>=60&&score[i]<=69)
{
d++;
}
if(score[i]<60&&score[i]>=0)
{
e++;
}
}
printf("优秀所占比例: %f%%\n",((float)a/n)*100 );
printf("良好所占比例: %f%%\n",((float)b/n)*100 );
printf("中等所占比例: %f%%\n",((float)c/n)*100 );
printf("及格所占比例: %f%%\n",((float)d/n)*100 );
printf("不及格所占比例: %f%%\n",((float)e/n)*100 );
}
void Output(int number[],float score[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d :",number[i]);
printf("%f\n",score[i]);
}
}

推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 2020年第十一届蓝桥杯决赛JAVA B G题“皮亚诺曲线距离“的个人题解目录
    本文是2020年第十一届蓝桥杯决赛JAVA B G题“皮亚诺曲线距离“的个人题解目录。文章介绍了皮亚诺曲线的概念和特点,并提供了计算皮亚诺曲线上两点距离的方法。通过给定的两个点的坐标,可以计算出它们之间沿着皮亚诺曲线走的最短距离。本文还提供了个人题解的目录,供读者参考。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
  • 开发笔记:实验7的文件读写操作
    本文介绍了使用C++的ofstream和ifstream类进行文件读写操作的方法,包括创建文件、写入文件和读取文件的过程。同时还介绍了如何判断文件是否成功打开和关闭文件的方法。通过本文的学习,读者可以了解如何在C++中进行文件读写操作。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
author-avatar
江南水恋
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有