源程序阅读与调试课程设计报告---学生管理系统

上传人:hs****ma 文档编号:489601842 上传时间:2022-12-25 格式:DOCX 页数:22 大小:464.98KB
返回 下载 相关 举报
源程序阅读与调试课程设计报告---学生管理系统_第1页
第1页 / 共22页
源程序阅读与调试课程设计报告---学生管理系统_第2页
第2页 / 共22页
源程序阅读与调试课程设计报告---学生管理系统_第3页
第3页 / 共22页
源程序阅读与调试课程设计报告---学生管理系统_第4页
第4页 / 共22页
源程序阅读与调试课程设计报告---学生管理系统_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《源程序阅读与调试课程设计报告---学生管理系统》由会员分享,可在线阅读,更多相关《源程序阅读与调试课程设计报告---学生管理系统(22页珍藏版)》请在金锄头文库上搜索。

1、源程序阅读与调试课程设计报告UNIVERSITY题 目:学生成绩管理系统班 级:统专软件1001班小组成员:常永恒 孙东升吴春亮 李强完成时间:2011年12月13日目录1 需求分析12 概要设计23详细设计31.1 文件合并31.2 自动检索31.3 数据排序31.4 信息查询34代码设计55 系统测试11512-X;测二二二二二46 总结151 (1.txt ),内容如下1需求分析姓名学号语文数学英语张明明01677882李成友02789188张辉灿03688256王露04564577陈东明05673847现有学生成绩信息文件学生成绩信息文件2 (2.txt ),内容如下:姓名学号语文数学

2、英语陈果31576882李华明32889068张明东33484256李明国34504587陈道亮35475877试编写一管理系统,要求如下:1)实现对两个文件数据进行合并,生成新文件3.txt2)抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3)对合并后的文件3.txt中的数据按总分降序排序4)输入一个学生姓名后,能查找到此学生的信息并输出结果5)要求使用结构体,链或数组等实现上述要求.6)采用多种方法且算法正确者,可适当加分.2概要设计3详细设计3.1文件合并已知:文件 1.txt 、文件 2.txt 、 id、 name Chinese math english 。求:调用函数来

3、实现1.txt和2.txt合并为新生成文件3.txt算法:1.函数以读的方式打开1.txt文件和2.txt文件,以写的方式打开3.txt文件;2 .从1.txt读入一个数据并写入3.txt文件,直到遇到1.txt文件结束;3 .用上述方式把数据写入3.txt直到遇到2.txt文件结束;4 .关闭1.txt , 2.txt , 3.txt文件,实现对于文件的合并。3.2 自动检索已知:文件 3.txt 、 id、 name Chinese math、 english 。求:Chinese、math、english中小于60的成绩,并显示名字、学号。算法:1.读取3.txt ;2 .创建 4.tx

4、t ;3 .读取3.txt里面的成绩,应用studd.chinese60|stud.english60|stud.math math、english。求:各个学生的总分并按照降序排序算法:1.读取3.txt ;2 .求出文件3.txt各个学生的总分;3 .用选择排序的方法将学生的总分进行排序;4 .关闭文件3.txt 。3.4信息查询已知:文件 3.txt 、 id、 name Chinese math、 english 。求:输入一个学生姓名后,能查找到此学生的信息并输出结果 算法:1.读取3.txt ;2 .从表的一端开始至尾端,顺序扫描线性表;3 .依次将线性表中的信息和输入的信息(姓名

5、)进行比较;4 .若相等则查找成功,并输出该元素。4代码设计#includeusing namespace std;#define SIZE 100typedef structchar name10;int id;int chinese;int math;int english;int sum;Student;Student studSIZE;int i;int sign=0,sign1=0,sign2=0,sign3=0; void Unitedfile()FILE *fp,*p;Student studd;fp=fopen(1.txt,r);p=fopen(3.txt,w);fscanf(

6、fp,%*Fn%*c);/*存放学生数据的结构体*/* 合并 1.txt 和 2.txt 为 3.txt*/*以读的方式打开1.txt*/*以写的方式打开 3.txt*/*跳过一行字符串*/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,studd.chinese,studd.math,studd.english写入3.txt ,继续读取直结束*/ fclose

7、(fp);fp=fopen(2.txt,r);fscanf(fp,%*Fn%*c);%d%d %dn,studd.name,studd.id);/*读取1.txt的数据 进入结构体中,/*关闭文件1.txt*/*以写的方式打开2.txt*/*跳过一行字符串*/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,s

8、tudd.english);/*读取2.txt的数据进入结构体中,第5页共17页写入3.txt ,继续读取直结束*/fclose(fp);/*关闭文件2.txt*/fclose(p);/*关闭文件3.txt*/)void findout()存在一个新文件4.txt*/*抽取出三科成绩中有补考的学生并保FILE *fp,*p;Student studd;fp=fopen(3.txt,r);/*以读的方式打开3.txt*/p=fopen(4.txt,w);/*以写的方式 打开4.txt*/fscanf(fp,%*An%*c);/*跳过一行字符串*/fprintf(p, 姓名学号 语文数学英语n);

9、while(fscanf(fp,%s%d%d%d%d,studd.name,&studd.id,&studd.chinese,&studd.math,&s tudd.english )!=EOF)if(studd.chinese60|studd.english60|studd.math60)fprintf(p,%-6s%2d%d%d%dn,studd.name,studd.id,studd.chinese,studd.math,studd.english);)/* 从 3.txt中读入学生数据进结构体,判断是否有不及格的 课程,如果有,则写入文件4.txt 中*/fclose(fp);/*关闭

10、文件3.txt*/fclose(p);/*关闭文件4.txt*/)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,%*An%*c);while(fscanf(fp,%s%d%d%d%d,studi.name,&studi.id,&studi.chinese,&studi.math,&studi.english)!=EOF)(i+;/*从3.t

11、xt中读入数据进结构体数组stud 中 */fclose(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=stu

12、dmax1;studmax1=studj;studj=temp;studj.sum=sum1;fp=fopen(3.txt,w);/* 将排序后的数据写入 3.txt 中*/fprintf(fp, 姓名 学号 语文数学英语总分n);for(q=0;qi;q+) fprintf(fp,%-6s%2d%d%d%d %dn,studq.name,studq.id,studq.chinese,studq.math,studq.english,studq.sum );/*关闭文件3.txt*/fclose(fp);第7页共17页/*输入一个学生姓名,查找到此学生的信/*以读的方式打 开3.txt*/if(flag=0)cout无此学生相关信息 endl;息*/fclose(fp);/*主程序*/int main()system(color 79);int choice;while(1)/*主菜单*/if(sign3=0)printf(/*如无法找到,则显示无此学生相关信/*关闭文件3.txt*/*背景为白色,字体为淡蓝色*/学生成绩管理系统

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号