学生成绩管理系统--课程设计报告(共16页).docx

上传人:飞****2 文档编号:17086145 上传时间:2022-05-21 格式:DOCX 页数:16 大小:141.61KB
返回 下载 相关 举报
学生成绩管理系统--课程设计报告(共16页).docx_第1页
第1页 / 共16页
学生成绩管理系统--课程设计报告(共16页).docx_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《学生成绩管理系统--课程设计报告(共16页).docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统--课程设计报告(共16页).docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上数 据 结 构课 程 设 计 报 告课题名称学生成绩管理系统 姓名 学院 系科班级 指导老师 日期2013年1月17日 目录一、问题描述 3二、基本要求 3三、设计目的4四、概念设计4五、详细设计 5n 1主要数据结构 5n 2模块功能 5n 3调用关系 5六、源程序5七、测试结果12八、心得体会15九、参考文献16学生成绩管理系统一、 问题描述现有学生成绩信息文件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(2.txt),内容如下:姓名 学号 语文 数学 英语 陈果 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) 要求使用结构体和数组

3、实现上述要求.三、 设计目的1)培养学生综合程序设计的能力,训练学生灵活应用所学数据结构知识,独立完成问题分析、总体设计、详细设计和编程实现等软件开发全过程的综合实践能力。2)巩固、深化学生的理论知识,提高编程水平,培养严谨的科学态度和良好的学习作风。为今后学习其他计算机课程打下基础。3)将书本上的理论知识和工作、生产实际有机地结合起来,从而锻炼学生分析问题、解决实际问题的能力,提高编程序能力和创新意识。四、 概要设计学生成绩管理系统读取文件1读取文件2合并两文件放在文件3把补考的放在文件4退出查找文件中的人信息五、 详细设计1)主要数据结构:struct student char name6

4、;int num;long int chi;long int math;long int eng;long int sum;2)模块功能:合并模板、提取模板、排序模板、查询模板、模块功能1、生成文件3:实现对两个文件数据进行合并,生成新文件3.txt;2、查看文件3:显示文件3里的所有信息;3、生成文件补考文件4:抽取出三科成绩中有补考的学生并保存在一个新文件4.txt; 4、查看文件4:显示文件4里的所有信息;5、排序后的文件3:对合并后的文件3.txt中的数据按总分降序排序(冒泡、插入); 6、查找学生信息:按姓名查找学生的信息并输出结果(顺序、折半);3)调用关系主函数可调用其它函数六、

5、 源程序#include#includestruct student char name6;int num;long int chi;long int math;long int eng;long int sum;struct student stu1100,stu2100,stu3100,stu4100,t,tmp;FILE *fp;int i,j;void creat1() /对1.txt的成绩进行读取 int i; for(i=1;i=5;i+) fscanf(fp,%s %d %ld %ld %ld,stu1i.name,&stu1i.num,&stu1i.chi,&stu1i.mat

6、h,&stu1i.eng); printf(n1.txt中学生的成绩如下:n);printf(姓名 学号 语文 数学 英语n);for(i=1;i=5;i+) printf(%s %d %ld %ld %ldn,stu1i.name,stu1i.num,stu1i.chi,stu1i.math,stu1i.eng);void creat2() /对2.txt的成绩进行读取 int i; for(j=1;j=5;j+) fscanf(fp,%s %d %ld %ld %ld,stu2j.name,&stu2j.num,&stu2j.chi,&stu2j.math,&stu2j.eng); pri

7、ntf(n2.txt中学生的成绩如下:n); printf(姓名 学号 语文 数学 英语n); for(j=1;j=5;j+) printf(%s %d %ld %ld %ldn,stu2j.name,stu2j.num,stu2j.chi,stu2j.math,stu2j.eng);void hb() /把合并后的成绩赋值到新的结构体数组stu3a中 int i;for(i=1;i=5;i+) stu3i=stu1i;for(i=6;i=6+j;i+) stu3i=stu2i-5; printf(n3.txt中所有学生的成绩名单:n);printf(姓名 学号 语文 数学 英语 总分n);

8、for(i=1;i=10;i+) stu3i.sum=stu3i.math+stu3i.eng+stu3i.chi; printf(%s %d %ld %ld %ld %ldn,stu3i.name,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum); fprintf(fp,%s %d %ld %ld %ld %ldn,stu3i.name,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum); int extract() /把成绩中需要补考的学生成绩保存在数组stu4j中 int j; j=

9、1;for(i=1;i=10;i+)if(stu3i.math60|stu3i.eng60|stu3i.chi60)stu4j=stu3i;j+;printf(n补考学生成绩名单如下:n);printf(姓名 学号 语文 数学 英语n); for(i=1;ij;i+) fprintf(fp,%5s %3d %4d %4d %4n,stu4i.name,stu4i.num,stu4i.chi,stu4i.math,stu4i.eng); printf(%5s %3d %4d %4d %4dn,stu4i.name,stu4i.num,stu4i.chi,stu4i.math,stu4i.eng)

10、;void sort1() /冒泡排序 for(i=1;i=10;i+)for(j=i+1;jstu3i.sum) t=stu3j; stu3j=stu3i; stu3i=t; printf(n按总分由高到低排序(冒泡)后的成绩如下:n); printf(姓名 学号 语文 数学 英语 总分n); for(i=1;i=10;i+)printf(%s %d %ld %ld %ld %ldn,stu3i.name,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum);void sort2() /插入排序 for(i=2;istu3i-1.sum)tm

11、p=stu3i;stu3i=stu3i-1;for(j=i-1;j0&tmp.sumstu3j.sum;j-)stu3j+1=stu3j;stu3j+1=tmp;printf(n按总分由高到低排序(插入)后的成绩如下:n); printf(姓名 学号 语文 数学 英语 总分n); for(i=1;i=10;i+)printf(%s %d %ld %ld %ld %ldn,stu3i.name,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum);void search1() /名字查找方式(顺序查找) char fname6; printf(n

12、请输入要查找学生的姓名:); scanf(%s,&fname); for(i=1;i=10;i+) if(!strcmp(stu3i.name,fname) printf(n你所查找(名字顺序)的学生成绩如下:n); printf(姓名 学号 语文 数学 英语 总分n); printf(%s %d %ld %ld %ld %ldn,stu3i.name,stu3i.num,stu3i.chi,stu3i.math,stu3i.eng,stu3i.sum); void search2() / 名字查找方式(折半查找) char fname6; int mid,low=1; int high=10

13、; printf(n请输入要查找的学生的姓名:); scanf(%s,&fname); while(low0) high=mid; else low=mid; printf(n你所查找(名字折半)的学生成绩如下:n); printf(姓名 学号 语文 数学 英语 总分n); printf(%s %d %ld %ld %ld %ldn,stu3mid.name,stu3mid.num,stu3mid.chi,stu3mid.math,stu3mid.eng,stu3mid.sum);void main() char digit;printf(*系统功能菜单* n);printf( - - n);

14、printf( * n);printf( *1. 读取3.txt的成绩(合并) * *2. 读取4.txt的成绩(补考) * n);printf( * n); printf( *3. 按总分排序(冒泡) * *4. 按总分排序(插入) * n);printf( * n);printf( *5. 按名字查找 (顺序) * *6. 按名字查找(折半) * n);printf( * n);printf( *7. 退出系统 * n);printf( * n);printf( - - n);printf(请选择菜单编号:);scanf(%c,&digit);switch(digit) case 1: f

15、p=fopen(d:1.txt,r+); creat1(); fclose(fp); fp=fopen(d:2.txt,r+); creat2(); fclose(fp); fp=fopen(d:3.txt,w); hb(); fclose(fp); break;case 2: fp=fopen(d:1.txt,r+); creat1(); fclose(fp); fp=fopen(d:2.txt,r+); creat2(); fclose(fp); fp=fopen(d:3.txt,w); hb(); fclose(fp); fp=fopen(d:4.txt,w); extract(); f

16、close(fp); break;case 3: fp=fopen(d:1.txt,r+); creat1(); fclose(fp); fp=fopen(d:2.txt,r+); creat2(); fclose(fp); fp=fopen(d:3.txt,w); hb(); fclose(fp); sort1(); break;case 4: fp=fopen(d:1.txt,r+); creat1(); fclose(fp); fp=fopen(d:2.txt,r+); creat2(); fclose(fp); fp=fopen(d:3.txt,w); hb(); fclose(fp)

17、; sort2(); break;case 5: fp=fopen(d:1.txt,r+); creat1(); fclose(fp); fp=fopen(d:2.txt,r+); creat2(); fclose(fp); fp=fopen(d:3.txt,w); hb(); fclose(fp); search1(); break; case 6: fp=fopen(d:1.txt,r+); creat1(); fclose(fp); fp=fopen(d:2.txt,r+); creat2(); fclose(fp); fp=fopen(d:3.txt,w); hb(); fclose(

18、fp); search2(); break; case 7: break;七、 测试结果1) 合并:2) 排序:冒泡排序:插入排序:3) 抽出补考学生:4) 按姓名查找:顺序查找:折半查找: 八、 心得体会本系统设计是为了合并两个信息表,然后对信息表进行排序,从信息中查询信息。由于C语言学的不扎实,编程时遇到了很多困难,开始调试的时候经常出现很多的错误,经常容易烦躁,但是经过一段的时间的锻炼使得我能够一步一步的去解决问题。在程序设计方面,逐渐感觉到模块化设计的重要性,应该分析出功能模块,然后对其细节中的共性和特性作分析。这次的设计,让我大大地感觉到,成功的程序设计是要建立在熟悉语言的基础之上的。每一次程序设计能大大地增加对语言的熟悉和感知,能使理论与实际应用相结合,提高了自己组织数据及编写程序的能力。培养了基本的、良好的程序设计技能以及合作能力。在上机操作的过程中,培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际和实践编程的能力。总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。九、 参考文献:1.数据结构(C语言版) 严蔚敏,吴伟明 清华大学出版社2.C程序设计(第三版) 谭浩强 清华大学出版社3.百度搜索专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁