您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 64学生成绩管理系统实验报告
学生成绩管理系统一、程序设计目的和要求(1)信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2)信息查询:要求:查询时可实现按姓名查询、按学号查询(3)成绩统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。(4)排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)二、详细设计说明1.实验程序分为4个模块如上图所示:1.信息维护2.信息查询3.成绩统计4.排序2.主函数定义:intmain(){intchoose;loop:system(cls);printf(***********************************\n);printf(*欢迎来到成绩管理系统!*\n);printf(***********************************\n);printf(请选择您所需要的服务项目:\n);printf(1、信息维护\n);printf(2、信息查询\n);printf(3、成绩统计\n);printf(4、排序\n);printf(5、退出系统\n);printf(您的选择:);scanf(%d,&choose);system(cls);/*跳到下一页*/switch(choose){case1:Mngstudent();//信息维护gotoloop;/*返回到主菜单*/break;case2:Mnginquire();//信息查询gotoloop;break;case3:Mngcount();//成绩统计gotoloop;break;case4:Mngsort();gotoloop;break;case5:break;}return0;}当为1选择信息维护当为2选择信息查询当为3选择成绩统计当为4选择排序当为5选择退出系统3.信息维护模块函数定义:voidAddstudent()//增加学生信息intCountstudent()//统计学生总数voidDeletestudent()//删除学生voidModifystudent()//修改学生voidMngstudent()//主页面显示部分分为:1、增加学生2、修改学生3、删除学生4、统计学生4.信息查询voidSearchStudent()//查找学生voidMnginquire()//显示部分5.成绩统计voidinfcount()//统计voidMngcount()//显示部分6.排序voidinfsort()//排序voidMngsort()//显示部分7.结构体定义structStudent//图书信息{intstudentnum;charstudentname[30];charresult[3];};三、软件使用说明打开主函数main并且运行,按照要求进行操作四、实验总结1.实验要注意实验的模块化,将每一个功能分块执行2.写代码时候调理要清晰3.对排序等基本操作要掌握清楚附件:主函数://成绩管理系统主函数#includestdio.h#includestdlib.h#includeStudent.h#includeinfinquire.h#includeinfcount.h#includeinsort.h//usingnamespacestd;intmain(){intchoose;loop:system(cls);printf(***********************************\n);printf(*欢迎来到成绩管理系统!*\n);printf(***********************************\n);printf(请选择您所需要的服务项目:\n);printf(1、信息维护\n);printf(2、信息查询\n);printf(3、成绩统计\n);printf(4、排序\n);printf(5、退出系统\n);printf(您的选择:);scanf(%d,&choose);system(cls);/*跳到下一页*/switch(choose){case1:Mngstudent();//信息维护gotoloop;/*返回到主菜单*/break;case2:Mnginquire();//信息查询gotoloop;break;case3:Mngcount();//成绩统计gotoloop;break;case4:Mngsort();gotoloop;break;case5:break;}return0;}信息维护:#includestdio.h#includestdlib.h#includestring.h#includeiostream.h#includeStudent.hvoidAddstudent()//增加学生信息{FILE*fp;intnumber,result[4],i;charname[30];fp=fopen(students.txt,a);if(fp==NULL)printf(Fileopenerror!\n);else{printf(请输入所增加学生的学号、姓名、语文、数学、英语:(请按照顺序输入!)\n);scanf(%d,&number);scanf(%s,&name);for(i=1;i=3;i++)scanf(%d,&result[i]);fprintf(fp,%d%s%d%d%d\n,number,name,result[1],result[2],result[3]);fclose(fp);}printf(写入成功!\n);}//endfunctionAddstudent;intCountstudent()//统计学生总数{FILE*fp;intcount=0;charch;fp=fopen(students.txt,r);if(fp==NULL)printf(Fileopenerror!\n);else{while((ch=fgetc(fp))!=EOF)if(ch=='\n')count++;}fclose(fp);returncount;}//endfunctionCountstudentvoidDeletestudent()//删除学生{FILE*fp;intnumber;intcount=0;inti=0,j,k;Studentstudent[5000];intallstudent;allstudent=Countstudent();fp=fopen(students.txt,r);if(fp==NULL){printf(Filesopenerror!\n);exit(0);}else{printf(请输入要删除的学生的编号:\n);scanf(%d,&number);while(!feof(fp)){fscanf(fp,%d%s%d%d%d,&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);i++;}for(j=0;ji;j++){if(student[j].studentnum==number){for(k=j;ki-1;k++)student[k]=student[k+1];allstudent=allstudent-1;count=1;break;}}fclose(fp);if(count==0)printf(没有找到匹配的学生信息:\n);else{fp=fopen(students.txt,w);for(j=0;jallstudent;j++)fprintf(fp,%d%s%d%d%d\n,student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);fclose(fp);printf(删除成功!\n);}}}//endfunctionDeletestudent;voidModifystudent()//修改学生{FILE*fp;fp=fopen(students.txt,r);intnumber;intallstudent;allstudent=Countstudent();intcount=0;inti=0,j,t1,t2;Studentstudent[5000];if(fp==NULL){printf(Filesopenerror!\n);exit(0);}else{printf(请输入要修改的学生的学号:\n);scanf(%d,&number);while(!feof(fp)){fscanf(fp,%d%s%d%d%d,&student[i].studentnum,&student[i].studentname,&student[i].result[1],&student[i].result[2],&student[i].result[3]);i++;}for(j=0;jallstudent;j++){if(student[j].studentnum==number){printf(该学生的原始信息:(学号、姓名、语文、数学、英语)\n);printf(%d%s%d%d%d,student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);count=1;t1=j;printf(\n请重新输入学生信息:\n);printf(\n学号:);scanf(%d,&student[j].studentnum);printf(\n姓名:);scanf(%s,&student[j].studentname);printf(\n语文:);scanf(%d,&student[j].result[1]);printf(\n数学:);scanf(%d,&student[j].result[2]);t2=student[t1+1].studentnum;//实验过程中发现数据莫名丢失printf(英语:);scanf(%d,&student[j].result[3]);while(getchar()!='\n');break;}}student[t1+1].studentnum=t2;//上面程序结束后还原fclose(fp);if(count==0)printf(没有找到匹配的学生信息!\n);else{fp=fopen(students.txt,w);for(j=0;ji-1;j++)fprintf(fp,%d%s%d%d%d\n,student[j].studentnum,student[j].studentname,student[j].result[1],student[j].result[2],student[j].result[3]);fclose(fp);printf(修改成功!\n);}}}//endfunctionModifystudent();voidMngstudent()//学生成绩管理系统{intchoose;intallstudent;intback=0;charc;printf(***********************************\n);printf(*欢迎来到学生成绩管理系统!*\n);printf(***********************************\n);while(back==0){if(!back){printf(请在下
本文标题:64学生成绩管理系统实验报告
链接地址:https://www.777doc.com/doc-3817895 .html