学生成绩管理系统 (3).doc
《学生成绩管理系统 (3).doc》由会员分享,可在线阅读,更多相关《学生成绩管理系统 (3).doc(23页珍藏版)》请在沃文网上搜索。
1、目 录1、需求分析1 1.1课程设计题目及要求1 1.2课程设计思想1212、概要设计23、详细设计3 3.1 文件合并33.2 自动检索33.3 数据排序43.4 信息查询54、调试分析和测试结果75、总结126、致谢137、附录14参考文献201、需求分析1.1课程设计题目及要求题目:学生成绩管理系统现有学生成绩信息文件1(1.txt),内容如下姓名 学号 语文 数学 英语 张明明 01 67 78 82李成友 02 78 91 88张辉灿 03 68 82 56王露 04 56 45 77陈东明 05 67 38 47. . . . 学生成绩信息文件2(2.txt),内容如下:姓名 学号
2、 语文 数学 英语 陈果 31 57 68 82李华明 32 88 90 68张明东 33 48 42 56李明国 34 50 45 87陈道亮 35 47 58 77. . . . 试编写一管理系统,要求如下:1、 实现对两个文件数据进行合并,生成新文件3.txt2、 抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3、 对合并后的文件3.txt中的数据按总分降序排序4、 输入一个学生姓名后,能查找到此学生的信息并输出结果5、 要求使用结构体,链或数组等实现上述要求.采用多种方法且算法正确者,可适当加分.1.2课程设计思想本课题的实质是完成对学生成绩表的合并、提取、排序查询等功能,可
3、以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。可将此系统分为如下模块,合并两个信息表、从表中提取信息、降序排序模块、按条件查询、退出系统。2、概要设计(1)总体方案 文件合并信息查询学生成绩管理系统自动检索数据排序 退出系统 系统菜单合并两个信息表 提取信息降序排序查询信息(2)流程3、详细设计 3.1 文件合并已知:文件1.txt、文件2.txt、id、name、chinese、math、english。求:调用函数来实现 1.txt和2.txt合并为新生成文件3.txt算法:1.函数以读的方式打开1.txt文件和2.
4、txt文件,以写的方式打开3.txt文件; 2.从1.txt读入一个数据并写入3.txt文件,直到遇到1.txt文件结束; 3.用上述方式把数据写入3.txt直到遇到2.txt文件结束; 4.关闭1.txt,2.txt,3.txt文件,实现对于文件的合并。核心程序:void Unitedfile() /*合并1.txt和2.txt为3.txt*/FILE *fp,*p;Student studd;fp=fopen(1.txt,r); /*以读的方式打开1.txt*/p=fopen(3.txt,w); /*以写的方式打开3.txt*/ fscanf(fp,%*n%*c); /*跳过一行字符串*/
5、fprintf(p,姓名 学号 语文 数学 英语 n); while(fscanf(fp,%s%d%d%d%d,studd.name,&studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF)fprintf(p,%-6s %2d %d %d %dn,studd.name,studd.id,studd.chinese,studd.math,studd.english ); /*读取1.txt的数据进入结构体中,写入3.txt,继续读取直结束*/fclose(fp); /*关闭文件1.txt*/fp=fopen(2.txt,r); /*以
6、写的方式打开2.txt*/fscanf(fp,%*n%*c); /*跳过一行字符串*/while(fscanf(fp,%s%d%d%d%d,studd.name,&studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF)fprintf(p,%-6s %2d %d %d %dn,studd.name,studd.id,studd.chinese,studd.math,studd.english ); /*读取2.txt的数据进入结构体中,写入3.txt,继续读取直结束*/ fclose(fp); /*关闭文件2.txt*/fclose(
7、p); /*关闭文件3.txt*/3.2 自动检索已知:文件3.txt、id、name、chinese、math、english。求:chinese、math、english中小于60的成绩,并显示名字、学号。算法:1.读取3.txt; 2.创建4.txt;3.读取3.txt里面的成绩,应用studd.chinese60|stud.english60|stud.math60找出不及格的成绩; 4.将不及格成绩写入4.txt; 5.关闭3.txt;4.txt。核心程序:void findout() /*抽取出三科成绩中有补考的学生并保存在一个新文件4.txt*/FILE *fp,*p;Stude
8、nt studd;fp=fopen(3.txt,r); /*以读的方式打开3.txt*/p=fopen(4.txt,w); /*以写的方式打开4.txt*/fscanf(fp,%*n%*c); /*跳过一行字符串*/fprintf(p,姓名 学号 语文 数学 英语n); while(fscanf(fp,%s%d%d%d%d,studd.name,&studd.id,&studd.chinese,&studd.math,&studd.english )!=EOF)if(studd.chinese60|studd.english60|studd.math60)fprintf(p,%-6s %2d
9、%d %d %dn,studd.name,studd.id,studd.chinese,studd.math,studd.english ); /*从3.txt中读入学生数据进结构体,判断是否有不及格的课程,如果有,则写入文件4.txt中*/fclose(fp); /*关闭文件3.txt*/fclose(p); /*关闭文件4.txt*/3.3 数据排序已知:文件3txt 、id、name、chinese、math、english。求:各个学生的总分并按照降序排序算法:1.读取3.txt; 2.求出文件3.txt各个学生的总分; 3.用选择排序的方法将学生的总分进行排序; 4.关闭文件3.tx
10、t。核心程序:void Selectsort() /*对合并后的文件3.txt中的数据按总分降序排序*/int j,k,max1,sum1,sum2,q;i=0;Student temp;FILE *fp;fp=fopen(3.txt,r); /*以读的方式打开3.txt*/i=0;fscanf(fp,%*n%*c); /*跳过一行字符串*/while(fscanf(fp,%s%d%d%d%d,studi.name,&studi.id,&studi.chinese,&studi.math,&studi.english )!=EOF)i+; /*从3.txt中读入数据进结构体数组stud中*/f
11、close(fp);for(j=0;ji;j+) /*对结构体数组中的数据进行选择排序*/ /*每趟是选出一个最值确定其在结果序列中的位置,确定元素的位置是从前往后,而每趟最多进行一次交换,其余元素的相对位置不变。可进行降序排序*/max1=j;sum1=studj.math+studj.english+studj.chinese;for(k=j+1;ki+1;k+)sum2=studk.math+studk.english+studk.chinese;if(sum1sum2)max1=k;sum1=sum2;if(max1!=j)temp=studmax1;studmax1=studj;st
12、udj=temp;studj.sum=sum1;fp=fopen(3.txt,w); /*将排序后的数据写入3.txt中*/fprintf(fp,姓名 学号 语文 数学 英语 总分n);for(q=0;qNAME;while(fscanf(fp,%s%d%d%d%d%d,stud1.name,&stud1.id,&stud1.chinese,&stud1.math,&stud1.english,&stud1.sum )!=EOF)if(strcmp(stud1.name,NAME)=0) /*如果输入的姓名达到要求*/ /*输出显示其相对应的信息*/flag=1;cout-姓名-学号-语文-数
13、学-英语-总分-endl;cout stud1.name stud1.id ;coutstud1.chinese stud1.math stud1.english stud1.sumendl;break;if(flag=0) cout无此学生相关信息endl; /*如无法找到,则显示无此学生相关信息*/fclose(fp); /*关闭文件3.txt*/4、调试分析和测试结果系统各功能的运行时界面及使用说明:(1)建立两个文本文件1.txt、2.txt 图4.1 1.txt图4.2 2.txt(2)主菜单界面图4.3 主菜单界面(3)输入1合并1.txt和2.txt生成3.txt图4.4图4.5
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生成绩管理系统 3 学生 成绩管理系统
