900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C语言学生成绩管理系统(综合项目)

C语言学生成绩管理系统(综合项目)

时间:2022-12-20 21:55:10

相关推荐

C语言学生成绩管理系统(综合项目)

1. 这个代码主要实现以下功能:

2. 用到的主要参数有:

1.整型变量int n;用于储存学生人数和之后的循环判断。

2.字符串char name[][];用于储存姓名。

3.浮点型变量float score[];用于储存成绩。

4.长整型变量long ID[Max];用于储存学号。

3.用到的子函数有:

int Menu(void); 系统菜单

void Readscore; 录入每个学生的学号、姓名和考试成绩

void Aaverage; 计算课程的总分和平均分

void Scoreuprand; 按成绩由高到低排出名次表

void Scoredownrand;按成绩由低到高排出名次表

void IDrand; 按学号由小到大排出成绩表

void Zdrand; 按姓名的字典顺序排出成绩表

void IDFind; 按学号查询学生排名及其考试成绩

void NameFind; 按姓名查询学生排名及其考试成绩

void Verious; 按成绩分为5类统计每个类别的人数以及所占百分比

void ScoreList; 输出每个学生的学号、考试成绩

void Mingzi; 姓名交换函数

void Xuehao; 学号交换函数

void Fenshu; 交换函数

void Chengjidan;打印成绩单

4.下面呈现的是C语言学生成绩管理系统(综合项目)的全部代码。

#include <stdio.h>#include <stdlib.h>#include <string.h>#define Max 30int Menu(void);//系统菜单void Readscore(float score[],long ID[],int n,char name[][21]); //录入每个学生的学号、姓名和考试成绩void Aaverage(float score[],int n);//计算课程的总分和平均分void Scoreuprand(float score[],long ID[],char name[][21],int n); //按成绩由高到低排出名次表void Scoredownrand(float score[],long ID[],char name[][21],int n);//按成绩由低到高排出名次表void IDrand(float score[],long ID[],char name[][21],int n); //按学号由小到大排出成绩表void Zdrand(float score[],long ID[],char name[][21],int n); //按姓名的字典顺序排出成绩表void IDFind(float score[],long ID[],char name[][21],int n); //按学号查询学生排名及其考试成绩void NameFind(float score[],long ID[],char name[][21],int n);//按姓名查询学生排名及其考试成绩void Verious(float score[],int n); //按成绩分为5类统计每个类别的人数以及所占百分比void ScoreList(float score[],long ID[],int n);//输出每个学生的学号、考试成绩void Mingzi(char name[],char m[]); //姓名交换函数void Xuehao(long *px,long *py);//学号交换函数void Fenshu(float *px,float *py); //分数交换函数void Chengjidan(float score[],long ID[],char name[][21],int n); //打印成绩单int main(){int x;int n;char name[Max][21];float score[Max];long ID[Max];printf("--------------------欢迎使用学生成绩管理系统--------------------\n");printf("请输入班级人数:");scanf("%d",&n);getchar();while(1){x=Menu();switch(x){case 1: Readscore(score,ID,n,name); break;case 2: Aaverage(score,n); break;case 3: Scoreuprand(score,ID,name,n);break;case 4: Scoredownrand(score,ID,name,n); break;case 5: IDrand(score,ID,name,n); break;case 6: Zdrand(score,ID,name,n); break;case 7: IDFind(score,ID,name,n); break;case 8: NameFind(score,ID,name,n); break;case 9: Verious(score,n); break;case 10: Chengjidan(score,ID,name,n); break;case 0: return 0;break;default:printf("输入错误!");}}}//函数功能:显示菜单并选择子程序//入口参数:无//返回值:xint Menu(void)//---------菜单函数{int x;system("cls");printf("--------------欢迎使用学生成绩管理系统--------------\n");printf("-----------------------菜单栏-----------------------\n");printf("1.成绩录入\n");printf("2.总分和平均分计算\n");printf("3.成绩降序排列\n");printf("4.成绩升序排列\n");printf("5.学号升序排列\n");printf("6.姓名在字典中顺序排序\n");printf("7.按学号查询成绩\n");printf("8.按姓名查询成绩\n");printf("9.成绩分析\n");printf("10.成绩单输出\n");printf("0.退出\n");printf("请输入你的选择:");scanf("%d",&x);return x;}//函数功能:录入每个学生的学号和考试成绩//入口参数:score,ID,n,name//返回值:无void Readscore(float score[],long ID[],int n,char name[][21])//---------录入函数{system("cls");printf("--------------------成绩录入--------------------\n");int i;printf("输入学号、姓名和成绩:\n");for (i=0;i<n;i++){//gets(name[i]);scanf("%ld %s %f",&ID[i],name+i,&score[i]);}system("pause");}//函数功能:计算课程的总分和平均分//入口参数:score,n//返回值:无void Aaverage(float score[],int n)//---------输出成绩总分和平均成绩函数{system("cls");printf("--------------------成绩的总分和平均分--------------------\n\n");int i,sum=0;for(i=0;i<n;i++){sum+=score[i];}printf("********成绩总和:%d 成绩平均分数:%.2f********\n",sum,sum/(float)n);system("pause");}//函数功能:按成绩由高到低排出名次表//入口参数:score,ID,n,name//返回值:无void Scoreuprand(float score[],long ID[],char name[][21],int n) //---------成绩升序排名函数{system("cls");printf("--------------------成绩升序名次表--------------------\n");int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(score[i]>score[j]){Fenshu(&score[i],&score[j]);Mingzi(name[i],name[j]);Xuehao(&ID[i],&ID[j]);}}}Chengjidan(score,ID,name,n);system("pause");}//函数功能:按成绩由低到高排出名次表//入口参数:score,ID,n,name//返回值:无void Scoredownrand(float score[],long ID[],char name[][21],int n)//---------成绩降序排名函数{system("cls");printf("--------------------成绩降序名次表--------------------\n");int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(score[i]<score[j]){Fenshu(&score[i],&score[j]);Mingzi(name[i],name[j]);Xuehao(&ID[i],&ID[j]);}}}Chengjidan(score,ID,name,n);system("pause");}//函数功能:按学号由小到大排出成绩表//入口参数:score,ID,n,name//返回值:无void IDrand(float score[],long ID[],char name[][21],int n)//---------学号排名函数{system("cls");printf("--------------------学号降序成绩单--------------------\n");int i,j;for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(ID[i]<ID[j]){Xuehao(&ID[i],&ID[j]);Fenshu(&score[i],&score[j]);Mingzi(name[i],name[j]);}}}Chengjidan(score,ID,name,n);system("pause");}//函数功能:按名字在字典位置排出成绩表//入口参数:score,ID,n,name//返回值:无void Zdrand(float score[],long ID[],char name[][21],int n)//---------字典排名函数{system("cls");int i,j,k;if(n==0){printf("请先录入成绩!");return 0;}for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(strcmp(name[i],name[j])>0){Mingzi(name[i],name[j]);Xuehao(&ID[i],&ID[j]);Fenshu(&score[i],&score[j]);}}}printf("--------------------名字按照字典的顺序排序--------------------\n\n");Chengjidan(score,ID,name,n);system("pause");}//函数功能:按学号查询学生排名及其考试成绩//入口参数:score,ID,n,name//返回值:无void IDFind(float score[],long ID[],char name[][21],int n)//---------学号查找函数{system("cls");printf("--------------------学号查询系统--------------------\n");long i=0;int low=0,high=n-1,mid,ret,j,k;printf("请输入学号:\n");ret=scanf("%ld",&k);while(ret!=1){while(getchar()!='\n');printf("请重新输入正确的学号:\n");scanf("%ld",&k);}for(i=0;i<n;i++){if(k==ID[i]){printf("查寻结果如下:\n");printf("\n学号:%ld ",ID[i]);printf("姓名:%s ",name[i]);printf("成绩:%f\n",score[i]);break;}if(k==(n-1)&&k!=ID[i]){printf("未找到该名同学,请重新输入学号\n");}}system("pause");}//函数功能:按姓名查询学生排名及其考试成绩//入口参数:score,ID,n,name//返回值:无void NameFind(float score[],long ID[],char name[][21],int n)//---------姓名查找函数{system("cls");printf("--------------------姓名查询系统--------------------\n");long i=0;int a,j;char cha[11];char chu[11]="0";while(1){printf("请输入姓名进行查询(输入“0”结束查询):\n");scanf("%s",cha);if(strcmp(cha,chu)==0){printf("即将返回主菜单\n\n");return (0);}for(i=0;i<n;i++){if(strcmp(cha,name[i])==0){printf("姓名:%s ",name[i]);printf("学号:%ld ",ID[i]);printf("成绩:%f\n",score[i]);break;}if(i==(n-1)&&strcmp(cha,name[i])!=0){printf("未找到该名同学,请重新输入姓名\n");}}system("pause");}}//函数功能:按成绩分为5类统计每个类别的人数以及所占百分比//入口参数:score,n//返回值:无void Verious(float score[],int n)//---------按成绩分类函数{system("cls");printf("--------------------成绩分类表--------------------\n");int i;float x1=0,x2=0,x3=0,x4=0,x5=0;for(i=0;i<n;i++){if(score[i]>=90&&score[i]<=100){x1++;}else if(score[i]>=80&&score[i]<90){x2++;}else if(score[i]>=70&&score[i]<80){x3++;}else if(score[i]>=60&&score[i]<70){x4++;}else{x5++;}}printf("优秀人数为: %.f 占总人数的:%.2f%%\n",x1,(x1/n)*100);printf("良好人数为: %.f 占总人数的:%.2f%%\n",x2,(x2/n)*100);printf("中等人数为: %.f 占总人数的:%.2f%%\n",x3,(x3/n)*100);printf("及格人数为: %.f 占总人数的:%.2f%%\n",x4,(x4/n)*100);printf("不及格人数为:%.f 占总人数的:%.2f%%\n",x5,(x5/n)*100);system("pause");}//函数功能:交换姓名//入口参数:n,name//返回值:无void Mingzi(char name[],char m[]) //---------姓名交换函数{char s[21];//---------中间储存字符串strcpy(s,name);strcpy(name,m);strcpy(m,s);}//函数功能:交换学号//入口参数:n,ID//返回值:无void Xuehao(long *px,long *py) //---------学号交换函数{int x;x=*px;*px=*py;*py=x;}//函数功能:交换分数//入口参数:score,n//返回值:无void Fenshu(float *px,float *py)//---------分数交换函数{int x;x=*px;*px=*py;*py=x;}//函数功能:打印成绩单//入口参数:score,n,ID,name//返回值:无void Chengjidan(float score[],long ID[],char name[][21],int n)//------------------------------成绩单函数{int i;if(n==0){printf("还没有录入成绩!");}printf("姓名 学号 分数\n");for(i=0;i<n;i++){printf(" %-2d %-8s %-8ld %-2f\n",i+1,name[i],ID[i],score[i]);}system("pause");}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。