1、学生信息管理系统滁州学院课程设计报告课程名称: 数据结构 设计题目: 学生成绩信息管理系统 系 别: 计算机科学与技术 专 业: 计算机科学与技术 组 别: 第十组 起止日期: 11年5 月 20日 11年 6 月25日 * * 计算机科学与技术系二一一年制课程设计题目学生成绩管理系统组长孙大成学号2010211119班级计科一班系别计算机科学与技术专业计算机科学与技术组员陈凤霞 高山 陈世光指导教师杨斌课程设计目的方便用户对学生成绩的管理和查询课程设计所需环境Microsoft Visual C+ 6.0课程设计任务要求应用数据结构的知识从文本中读取数据,设计算法,完成对学生成绩的管理和查询
2、课程设计工作进度计划序号起止日期工 作 内 容分工情况15/205/25将学生的成绩从文本文件中读取出来,存入数组陈凤霞完成25/255/30运用选择排序法对成绩进行降序排列陈世光完成36/16/10运用直接插入排序对成绩进行升序排列孙大成完成46/106/15对某个学生的成绩进行查找操作高山完成56/156/20对不及格学生的成绩输出到新建文档中高山完成66/20设计主函数中的循环算法,便于多次操作孙大成完成指导教师签字: 年 月 日教研室审核意见:教研室主任签字: 年 月 日课程设计任务书课程设计的主要内容引言1.1、课程简介当今社会,计算机技术和通信技术已经不断发展,处理和传输的数据量越
3、来越庞大。文本文件存储的方式是普通人熟悉的数据管理的方式,我们要做的就是在文本中读取数据,在程序中处理数据,生成新的数据再保留在文本文档中,供其他人应用。1.2、课程设计的背景课程设计是为了让同学们了解学习数据结构的作用和意义。数据结构是计算机科学与技术专业的专业基础课。所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,想要更好地运用计算机来解决实际问题,仅仅掌握几门计算机程序设计语言是远远难以应付当前众多复杂的课题,想要有效地使用计算机,充分发挥它的性能,还必须学习和掌握好数据结构的有关知识,打好数据结构这门课的基础,对于学习计算机专业其它的课程,如操作系统、软件工程、编译原理
4、、数据库、人工智能等十分有益。需求分析2.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),内容如下:姓名 学号 语文 数学 英语 陈果 31 57 68 82李华明 32 88 90 68张明东 33 48 42 56李明国 34 50 45 87陈道亮 35 47 58 77. . . .(文件内容可根据测试要求,自行制定)试编写一个管理系统,要求如下:1)、
5、实现对两个文件数据进行合并,生成新文件3.txt2)、抽取出三科成绩中有补考的学生并保存在一个新文件4.txt3)、对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)4)、输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)5)、要求使用结构体,链或数组等实现上述要求.采用多种方法且算法正确者,可适当加分.2.2设计思路利用文件对学生成绩等基本信息进行保存,并将其中的两文件合并成一个,生成新的文件;学生成绩的分析,将应补考的同学的基本信息保存在另一个文件中;利用合并进行降序。2.3运行开发环境运行环境 Microsoft Visual C+ 6
6、.0;开发工具 C/C+概要设计3.1流程图图3.1设计的流程图3.2 主要数据结构结构如下表所述,建立包含系成绩、学号、总分的信息存储等具体数据结构定义如下:typedef struct data/建立结构体数组 char name10; int Xhao; int china; int math; int english; int sum;Data;3.3 函数及其实现的功能 利用文件对学生成绩等基本信息进行保存,并将其中的两文件合并成一个,生成新的文件;学生成绩的分析,将应补考的同学的基本信息保存在另一个文件中;利用合并进行降序。详细设计4.1程序设计源代码#include#includ
7、e#include/为了输入字符串#includetypedef struct data【1】 char name10; int Xhao; int china; int math; int english; int sum;Data;int k;/void create(Data stu) int i=0; 【1】FILE *fp1,*fp2; if(fp1=fopen(E:c语言课程设计作业t1.txt,r)=NULL) printf(FILE not found!n); exit(0); if(fp2=fopen(E:c语言课程设计作业t2.txt,r)=NULL) printf(FIL
8、E not found!n); exit(0); while(!feof(fp1) fscanf(fp1,%s%d%d%d%d,stui.name,&stui.Xhao,&stui.china,&stui.math,&stui.english); stui.sum=stui.china+stui.math+stui.english; i+; ; i-; while(!feof(fp2) fscanf(fp2,%s%d%d%d%d,stui.name,&stui.Xhao,&stui.china,&stui.math,&stui.english); stui.sum=stui.china+stu
9、i.math+stui.english; i+; ;i-;k=i; printf(学号 姓名 语文 数学 英语 总分n); for(int j=0;ji;j+) printf(%d %-5s %d %d %d %d n,stuj.Xhao,stuj.name,stuj.china,stuj.math,stuj.english,stuj.sum); coutendl;/1、选择排序void hebing(Data stu) int max,jj,i; Data t; FILE *fp3; if(fp3=fopen(E:c语言课程设计作业t3.txt,w)=NULL) printf(FILE no
10、t found!n); exit(0); for(jj=0;jjk;jj+) max=jj; for(i=jj+1;ik;i+) if(stumax.sumstui.sum) t=stumax;stumax=stui;stui=t; for(int j=0;jk;j+) fprintf(fp3,%d %-5s %d %d %d %dn,stuj.Xhao,stuj.name,stuj.china,stuj.math,stuj.english,stuj.sum); printf(%d %-5s %d %d %d %dn,stuj.Xhao,stuj.name,stuj.china,stuj.ma
11、th,stuj.english,stuj.sum); /2、直接插入排序void hebing2(Data stu) int t,i; Data temp; FILE *fp5; if(fp5=fopen(E:c语言课程设计作业t5.txt,w)=NULL) printf(FILE not found!n); exit(0); for(i=2;i stu0) stut+1=stut; t=t-1; stut+1= stu0; for(int j=1;j=k;j+) fprintf(fp5,%d %-5s %d %d %d %dn,stuj.Xhao,stuj.name,stuj.china,s
12、tuj.math,stuj.english,stuj.sum); printf(%d %-5s %d %d %d %dn,stuj.Xhao,stuj.name,stuj.china,stuj.math,stuj.english,stuj.sum); /void bukao(Data stu) FILE *fp4; if(fp4=fopen(E:c语言课程设计作业t4.txt,w)=NULL) printf(FILE not found!n); exit(0); for(int i=0;ik;i+) if(stui.china60) fprintf(fp4,%d-%s-%d ,stui.Xha
13、o,stui.name,stui.china); printf(%d-%s-%d ,stui.Xhao,stui.name,stui.china); fprintf(fp4,%sn,语文不及格:); printf(%sn,语文不及格:); if(stui.math60) fprintf(fp4,%d-%s-%d ,stui.Xhao,stui.name,stui.math); printf(%d-%s-%d ,stui.Xhao,stui.name,stui.math); fprintf(fp4,%sn,数学不及格:); printf(%sn,数学不及格:); if(stui.english6
14、0) fprintf(fp4,%d-%s-%d ,stui.Xhao,stui.name,stui.english); printf(%d-%s-%d ,stui.Xhao,stui.name,stui.english); fprintf(fp4,%sn,英语不及格:); printf(%sn,英语不及格:); /void search(Data stu) int j,flag=0; char name10; printf(输入一个学生的姓名:n); scanf(%s,name); fflush(stdin); for(int i=0;ik;i+) j=strcmp(name,stui.nam
15、e); if(j=0) flag=1; printf(%d-%s-%d-%d-%d-%dn,stui.Xhao,stui.name,stui.china,stui.math,stui.english,stui.sum); if(flag=0) coutnot foundendl; /void prf() cout#*#endl; cout #*输入“1”,降序排列成绩*结果见文本文件t3*#endl; cout #*输入“2”,升序排列成绩*结果见文本文件t5*#endl; cout #*输入“3”,补考信息*结果见文本文件t4*#endl; cout #*输入“4”,查找学生信息*#endl
16、; cout #*输入“0”,结束服务*#endl;void main() int j=1; char ch; Data stu20; Data A20; prf(); cout请输入要执行的步骤(以1,2,3,4,5,0 ):endl; scanf(%c,&ch); fflush(stdin); create(stu); for(int i=0;ik;i+,j+)数组【2】,实现直接插入排序 Aj=stui; while(ch!=0) switch(ch) case1: cout降序排列endl; hebing(stu); break; case2: cout升序排列endl; hebing
17、2(A); break; case3: cout补考信息endl; bukao(stu); break; case4: printf(查找信息); search(stu); break; cout请输入要执行的步骤(以1,2,3,4,0 ):endl; ch=getchar(); fflush(stdin); 调试与操作说明5.1、成绩的合并后输出图5.1成绩的合并5.2、成绩的降序输出5.3、不及格成绩学生的信息:图5.2成绩的降序排序5.3成绩的查询图5.3成绩的查询5.4、成绩的不及格信息图5.4成绩的不及格学生信息5.5成绩的文本中读取在文本文件中查看上述操作的结果。图5.5文本文件降
18、序成绩图5.6文本文件补考信息课程设计总结与体会在课程设计中,我们组的成员分工合作。他们每个人遇到过不同程度的问题都会想着去解决去实现,当一个人解决不了的时候,团队的优越性就体现出来了。我们一起探讨,研究终于完成了这次的课程设计,虽然这只是一个小的程序,没有牵涉到什么外围的人力和物理资源。但是我们多少了解做课程设计的精髓,为以后的学术报告做好铺垫。致谢感谢本组全体成员的努力以及老师们和同学们的帮助,其中有数据结构老师杨斌和C语言程序设计老师赵瑞斌等。参考文献1 何钦铭,颜辉.C语言程序设计M.北京:高等教育出版社,2008.2 胡学刚.数据结构(C语言版)M.北京:高等教育出版社,2008评语: 评阅教师签名: 年 月 日成 绩
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1