问题描述
2.设计要求具体说明基本功能:成绩记录簿中记录以下数据:学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0-100之间的整数,学分:1-5之间的实型数。添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;查询(班级或个人)成绩:a)查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。b)查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。3.提示定义合适的结构体类型,使用数组的方式组织数据。/*****************学生成绩管理系统**********************/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#defineN50voidwelcome();//定义一个欢迎界面函数;voidentrance();//定义一个进入界面;voidscore();//定义一个记录查询函数;voidadd();//定义一个添加成绩的函数;voidmodify();//定义一个修改函数;voiddel();//定义一个删除函数;voidclear();//定义一个清空函数;voidfind();//定义一个按要求查询的函数;(find)查阅voidsort();//定义一个排序的函数;voidstatistics();//定义一个统计函数;statistics统计;inttex=5;structstudent{charnumber[9];//学生学号charname[20];//学生姓名charclasses[5];//学生班级inta;//语文成绩intb;//数学成绩intc;//英语成绩inth;//总成绩}stu[N]={{"20110001","王微","1101",91,65,88},{"20110002","李明","1101",79,69,45},{"20110003","张晓霞","1101",55,86,88},{"20110004","田甜","1101",87,65,66},{"20110005","张伟","1101",73,58,76}};voidmain(){welcome();//进入欢迎界面;}/***************判断密码************//***************欢迎************************/voidwelcome(){system("cls");printf("n");printf("ttt欢迎进入学生成绩管理系统n");printf("tt******************************************n");printf("ttt请选择业务:n");printf("n");printf("ttt1.查看所有记录显示n");printf("ttt2.添加学生成绩n");printf("ttt3.修改学生成绩n");printf("ttt4.删除学生成绩n");printf("ttt5.清空记录n");printf("ttt6.按要求查询学生成绩n");printf("ttt7.按要求排序n");printf("ttt8.按要求统计成绩n");printf("ttt9.退出n");printf("ttt请选择:");entrance();}/***************进入**************************/voidentrance(){inta;scanf("%d",&a);system("cls");switch(a){default:printf("你的输入有误!n");welcome();break;case1://进入记录显示printf("nnn");printf("ttt欢迎进入记录显示界面n");score();break;case2://进入成绩添加printf("nnn");printf("ttt欢迎进入添加成绩界面n");add();break;case3://进入修改界面printf("nnn");printf("ttt欢迎进入修改记录界面n");modify();break;case4://进入删除界面printf("nnn");printf("ttt欢迎进入删除记录界面n");del();break;case5://清空记录printf("nnn");printf("ttt欢迎进入清空记录界面n");clear();break;case6://按要求查询学生成绩printf("nnn");find();break;case7://按要求排序printf("nnn");printf("ttt欢迎进入排序界面n");sort();break;case8://按要求统计成绩printf("nnn");printf("ttt欢迎进入统计界面n");statistics();break;case9://退出break;}}/***************记录查询******************/voidscore(){inti,j;charm='';for(j=0;j<tex;j++){stu[j].h=stu[j].a+stu[j].b+stu[j].c;}system("cls");printf("tt学号t姓名t班级t语文t数学t英语t总分n");for(i=0;i<tex;i++){if(strcmp(stu[i].number,"")!=0){printf("tt%st%st%st%dt%dt%dt%d",stu[i].number,stu[i].name,stu[i].classes,stu[i].a,stu[i].b,stu[i].c,stu[i].h);printf("n");}}while(m!='Y'&&m!='y'){printf("按Y返回主界面:");fflush(stdin);//用来清空输入缓存,以便不影响后面输入的东西scanf("%c",&m);printf("n");}system("cls");welcome();}/*************添加成绩********************/voidadd(){intfigure;//定义要输入成绩的学生的个数intj;charh,m;//fflush(stdin);system("cls");printf("你要输入多少个学生的成绩?");scanf("%d",&figure);printf("您确定要输入%d个学生的成绩么?n",figure);fflush(stdin);printf("<按Y开始N返回>");scanf("%c",&h);if(h=='Y'||h=='y'){for(j=0;j<figure;j++){printf("请输入第%d个学生的信息:n",j+1);printf("学号:");scanf("%s",&stu[tex].number);printf("姓名:");scanf("%s",&stu[tex].name);printf("班级:");scanf("%s",&stu[tex].classes);printf("语文成绩:");scanf("%d",&stu[tex].a);printf("数学成绩:");scanf("%d",&stu[tex].b);printf("英语成绩:");scanf("%d",&stu[tex].c);tex++;}}else{add();}printf("添加成功!n");printf("是否现在查看所有记录?y/n");fflush(stdin);scanf("%c",&m);if(m=='y'||m=='Y'){system("cls");score();}else{system("cls");welcome();}}/****************修改成绩****************/voidmodify(){inti;charnumb[9];charh;system("cls");printf("tt学号t姓名t班级t语文t数学t英语t总分n");for(i=0;i<tex;i++){printf("tt%st%st%st%dt%dt%dt%d",stu[i].number,stu[i].name,stu[i].classes,stu[i].a,stu[i].b,stu[i].c,stu[i].a+stu[i].b+stu[i].c);printf("n");}printf("请输入您要修改的学生的学号:");scanf("%s",numb);for(i=0;i<tex;i++){if(strcmp(numb,stu[i].number)==0){printf("tt学号t姓名t班级t语文t数学t英语t总分n");printf("tt%st%st%st%dt%dt%dt%d",stu[i].number,stu[i].name,stu[i].classes,stu[i].a,stu[i].b,stu[i].c,stu[i].a+stu[i].b+stu[i].c);}break;}printf("n");printf("请输入该学生的信息:n");printf("学号:");scanf("%s",&stu[i].number);printf("姓名:");scanf("%s",&stu[i].name);printf("班级:");scanf("%s",&stu[i].classes);printf("语文成绩:");scanf("%d",&stu[i].a);printf("数学成绩:");scanf("%d",&stu[i].b);printf("英语成绩:");scanf("%d",&stu[i].c);printf("修改成功!n");printf("tt学号t姓名t班级t语文t数学t英语t总分n");for(i=0;i<tex;i++){if(strcmp(stu[i].number,"")!=0){printf("tt%st%st%st%dt%dt%dt%d",stu[i].number,stu[i].name,stu[i].classes,stu[i].a,stu[i].b,stu[i].c,stu[i].a+stu[i].b+stu[i].c);printf("n");}}printf("按Y返回!n");fflush(stdin);scanf("%c",&h);while(h=='y'||h=='Y'){welcome();}}/****************删除记录****************/voiddel(){inti,j;intk=0;charnumb[9];charh,ft;system("cls");for(i=0;i<tex;i++){if(strcmp(stu[i].number,"")!=0){printf("tt%st%st%st%dt%dt%dt%d",stu[i].number,stu[i].name,stu[i].classes,stu[i].a,stu[i].b,stu[i].c,stu[i].a+stu[i].b+stu[i].c);printf("n");}}printf("请输入要删除的学号:");fflush(stdin);scanf("%s",numb);printf("tt学号t姓名t班级t语文t数学t英语t总分n");for(i=0;i<tex;i++){if(strcmp(numb,stu[i].number)==0){printf("tt%st%st%st%dt%dt%dt%d",stu[i].number,stu[i].name,stu[i].classes,stu[i].a,stu[i].b,stu[i].c,stu[i].h);printf("n");break;}}printf("是否确定删除:y/n?");fflush(stdin);scanf("%c",&h);j=tex;if(h=='y'||h=='Y'){for(;i<tex-1;i++){strcpy(stu[i].number,stu[i+1].number);strcpy(stu[i].name,stu[i+1].name);strcpy(stu[i].classes,stu[i+1].classes);stu[i].a=stu[i+1].a;stu[i].b=stu[i+1].b;stu[i].c=stu[i+1].c;strcpy(stu[tex].number,"");strcpy(stu[tex].name,"");strcpy(stu[tex].classes,"");stu[tex].a=NULL;stu[tex].b=NULL;stu[tex].c=NULL;}tex--;printf("删除成功!n");for(i=0;i<tex;i++){if(strcmp(stu[i].number,"")!=0){printf("tt%st%st%st%dt%dt%d",stu[i].number,stu[i].name,stu[i].classes,stu[i].a,stu[i].b,stu[i].c,stu[i].h);printf("n");}}printf("按Y继续,按N返回:");fflush(stdin);scanf("%c",&ft);if(ft=='Y'||ft=='y'){del();}else{welcome();}}else{del();}}/****************清空记录**************/
解决方案
解决方案二:
您放这么长的代码是想干嘛?