ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:158.41KB ,
资源ID:6150883      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6150883.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统课程设计报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统课程设计报告.docx

1、学生成绩管理系统课程设计报告数 据 结 构课 程 设 计 报 告课题名称学生成绩管理系统 姓名 学院 系科班级 指导老师 日期2013年1月17日 目录一、问题描述 3二、基本要求 3三、设计目的4四、概念设计4五、详细设计 5 1主要数据结构 5 2模块功能 5 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)主要数据结构:struct student char name6; int num; long int chi; long int math; long int e

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

5、; 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.math,&stu1i.eng); printf(n1.txt中学生的成绩如下:n);

6、 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); printf(n2.txt中学生的成绩如下:n); printf(姓名 学号 语文

7、 数学 英语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); for(i=1;i=10;i+) stu3i.sum=stu3i.ma

8、th+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=1; for(i=1;i=10;i+) if(stu3i.math60

9、|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); void sort1() /冒泡排序 for(i=1;

10、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) tmp=stu3i; stu3i=stu3i-1; f

11、or(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请输入要查找学生的姓名:); scan

12、f(%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; printf(n请输入要查找的学生

13、的姓名:); 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);printf( * n);printf

14、( *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: fp=fopen(d:1.txt,r+)

15、; 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(); fclose(fp); break;

16、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); sort2(); break

17、; 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(fp); search2();

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1