您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 学生考试成绩数据处理系统
系统使用说明各级菜单间关系如下:简要说明:1.以上红色字体的选项为备选要求。2.载入数据指读取保存在文件中的数据,需输入文件名,编辑数据指对数据进行各种操作,保存将输入的数据保存在现有文件中,需输入文件名,可用新建建立多个文件保1.增加或删除学生的记录2.查询成绩1.输入学号查成绩(包括平均成绩)2.平均成绩顺序输出学生成绩3.按学号顺序输出学生成绩4.按某门课成绩好坏顺序输出学生成绩5.返回1.增加学生记录2.删除学生记录3.返回3.统计平均成绩4..不及格统计5.特定查询1输出总平均成绩2.输出每门课程平均成绩3.返回1.考试有不及格的学生名单2.指定课程有不及格的学生名单3.有三门或三门以上课程不及格的学生名单4.每门课不及格比例5.返回1.每门课成绩最好和最差的学生名单2.总成绩分段查询(如总成绩在300~400)3.各门成绩分段查询(如各门成绩均在80~90)4.返回菜单1.建立新的数据文件2.载入数据3.编辑数据4.保存5.退出3.编辑数据返回存不同数据。3.增加学生记录需输入学生的各项信息即学号、姓名、成绩。删除学生记录只需输入学生的学号。4.学号查成绩只需输入学号即可。平均成绩顺序输出学生成绩按平均成绩高低顺序输出成绩。5.每门课不及格比例输出每门课不及格人数与总人数。6.每门课成绩最好和最差的学生名单输出每门课成绩最好与最差的学生,只输出一个。总成绩分段查询输入上限、下限(如300~400),查找总分处在该分数段内的学生。各门成绩分段查询输入上限、下限(如80~90),查找各门成绩均处在该分数段内的学生。7.选择菜单时,只需键入数字,不需按回车键。系统设计报告主要流程图如下:主函数调用newfile()Ch=getch()Ch=’1’NewfileCh=’2’Ch=’3’Loaad()Ch=getch()Choice=’1’Add()Choice=’2’Dle()Choice=’3’Choice=’1’函数Choice1()Edit()Ch=’4’Save()Ch=’5’退出返回Choice=’3’本程序设计优缺点:采用数组实现各项功能,简洁易懂,便于操作。功能包括:1.建立文件:能建立多个文件保存不同数据;载入:可从现有任意文件中载入数据;保存:可将输入的数据保存到现有文件中,建议新建文件,否则会覆盖原文件中数据。2.增加或删除学生数据,按学号查学生姓名、成绩(包括平均成绩),求总平均成绩和各科平均成绩。3.有各种排序功能:按学号排序、平均成绩排序、某门课成绩排序。4.不及格类统计:统计考试有不及格的学生、指定课程有不及格的学生、三门或三门以上课程不及格的学生及每门课不及格学生与总人数之比。5.分数段查询:.总成绩分段查询(如总成绩在300~400)、各门成绩分段查询(如各门成绩均在80~90),可轻松查询各分数段内的学生。不足之处是学生数组以静态方式存储内存,利用率不高,且数组长度有限,不能动态添加。还有一点就是输出每门课成绩最好和最差的学生名单时,只能输出一位学生,即如果有俩个学生的成绩相同时,只能输出平均分高的学生。函数Choice2()Choice=’2’Choice=’3’函数Choice3()Choice=’4’函数Choice3()Choice=’5’函数Choice2()学生考试成绩数据处理系统本程序设计优缺点:采用数组实现各项功能,简洁易懂,便于操作。功能包括:1.建立文件:能建立多个文件保存不同数据;载入:可从现有任意文件中载入数据;保存:可将输入的数据保存到现有文件中,建议新建文件,否则会覆盖原文件中数据。2.增加或删除学生数据,按学号查学生姓名、成绩(包括平均成绩),求总平均成绩和各科平均成绩。3.有各种排序功能:按学号排序、平均成绩排序、某门课成绩排序。4.不及格类统计:统计考试有不及格的学生、指定课程有不及格的学生、三门或三门以上课程不及格的学生及每门课不及格学生与总人数之比。5.分数段查询:.总成绩分段查询(如总成绩在300~400)、各门成绩分段查询(如各门成绩均在80~90),可轻松查询各分数段内的学生。不足之处是学生数组以静态方式存储内存,利用率不高,且数组长度有限,不能动态添加。还有一点就是输出每门课成绩最好和最差的学生名单时,只能输出一位学生,即如果有俩个学生的成绩相同时,只能输出平均分高的学生。#includestdio.h#includestring.hvoidfile();voidinit();//声明函数voidinit1();voidinit2();voidinit3();voidinit4();voiddoChoice1();voiddoChoice2();voiddoChoice3();voiddoChoice4();voiddoChoice5();///////////////////////////////////////////////////////////////////////////////////////////////#defineFORMAT%-7s%-9s%-10.3f%-14.3f%-12.3f%-14.3f%.3f//定义FORMAT输出格式floattotal_ave,math_ave,data_ave,eng_ave,c_ave;//定义全局变量total_ave总平均分,math_ave数学,data_ave数据库,eng_ave英语,c_aveC语言平均分intn=0;//n学生个数FILE*fp;structstudent//定义student结构体{charnum[7];//学号charname[20];//姓名floatscore[4];//成绩floataverage;//平均分}stu[80];//学生数组长度structstudent*p;//定义全局结构体指针变量voidload(charfilename[])//定义读取文件中数据的函数{n=0;//学生个数nif((fp=fopen(filename,rb))==NULL)//判断文件是否存在{printf(Cannotopenfile.\n);return;//文件不存在,返回主函数}do//读取数据{if(fread(&stu[n],sizeof(structstudent),1,fp)!=1)//判断读取是否成功{if(feof(fp))return;//若读取结束,返回主函数printf(filereaderror!!!\n\n);//读取出错}n++;//n学生人数加1}while(1);fclose(fp);//关闭文件}voidsave(charfilename[])//保存数据{inti;if((fp=fopen(filename,wb))==NULL)//判断文件是否存在{printf(Cannotopenfile.\n);return;}else//保存数据{for(i=0;in;i++)if(fwrite(&stu[i],sizeof(structstudent),1,fp)!=1)//判断数据保存是否成功printf(filewriteerror!!!);fclose(fp);//关闭文件}}voidEdit()//编辑数据{charchoice;do//输出菜单{init();choice=getch();//赋值if(choice=='1')doChoice1();//执行命令elseif(choice=='2')doChoice2();elseif(choice=='3')doChoice3();elseif(choice=='4')doChoice4();elseif(choice=='5')doChoice5();elseif(choice=='6')return;//返回elseprintf(Inputerror!!!!\n\n);}while(1);}voidnewfile()//文件菜单{charch,filename[15];//filename文件名do{file();//输出菜单ch=getch();if(ch=='1')//新建文件{printf(请输入filename:);gets(filename);//取文件名fp=fopen(filename,wb+);printf(已成功建立数据库文件。\n\n);fclose(fp);}elseif(ch=='2')//载入数据{printf(\n请输入filename:);gets(filename);fp=fopen(filename,rb);//判断是否存在该文件if(fp==NULL)printf(输入有误,不存在该文件!!!\n\n);//不存在该文件else//存在该文件{load(filename);//载入数据printf(已成功载入数据。\n\n);}}elseif(ch=='3')//编辑数据{printf(\n);Edit();}elseif(ch=='4'){printf(\n请输入filename:);gets(filename);fp=fopen(filename,rb);//判断是否存在该文件if(fp==NULL)printf(输入有误,不存在该文件,请新建立文件!!!\n\n);//不存在该文件else//存在该文件{save(filename);//保存数据printf(已成功保存数据。\n\n);}}elseif(ch=='5')return;//返回主函数elseprintf(Inputerror!!!\n\n);}while(1);}main()//主函数{//filename文件名system(cls);//清屏//调用函数printf(\t*****************************************************************\n);printf(\t\t\t欢迎使用学生考试成绩数据处理系统\n);printf(\t\t\t作者麻闽政电312003010885\n);printf(\t*****************************************************************\n);newfile();printf(谢谢本处理系统^_^。\n);}voidfile()//文件菜单函数{printf(请选择操作菜单:\n);printf(\t①.建立新的数据文件\n);printf(\t②.载入数据\n);printf(\t③.编辑数据\n);printf(\t④.保存\n);printf(\t⑤.退出\n);}voidinit()//菜单函数{printf(请选择操作菜单:\n);printf(\t①.增加或删除学生记录\n);printf(\t②.查询成绩\n);printf(\t③.统计平均成绩\n);printf(\t④.不及格统计\n);printf(\t⑤.特定查询\n);printf(\t⑥.返回\n);}////////////////////////////////////////////////////////////////////////////////////////////voidinit1()//菜单函数{printf(\n请选择操作菜单:\n);printf(\t①.增加学生的记录\n);printf(\t②.删除学生的记录\n);printf(\t③.返回!!\n);}voidAdd()//添加记录{charc;do{printf(\n请输入学生的学号:);scanf(%s,stu[n].num);printf(请输入学生的姓名:);scanf(%s,stu[n].name);printf(请输入数学成绩:);scanf(%f,&stu[n].score[0]);printf(请输入数据库概论成绩:);scanf(%f,&st
本文标题:学生考试成绩数据处理系统
链接地址:https://www.777doc.com/doc-6969937 .html