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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构课程设计.docx

1、数据结构课程设计郑州轻工业学院课 程 设 计 任 务 书题 目:学生成绩分析问题姓 名:院(系):数学与信息科学学院专业班级:学 号:指导教师:时 间:2014年6月09日至2014年6月20日一、基本要求及主要内容1. 学生成绩分析问题(1)问题描述。录入并保存一个班级学生多门课程的成绩,并对成绩进行分析。(2)基本要求。a)通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。b)对文件input.dat中的数据进行处理,要求具有如下功能:按各门课程成绩排序,并生成相应的文件输出;计算每个人的平均成绩,按平均成绩排序,并生成文件;求出各门课程的平均成绩、最高分、最低分、不及

2、格人数、6069分人数、7079分人数、8089分人数、90分以上人数;根据姓名或学号查询某人的各门课成绩。c)使用Visual C+ 6.0 控制台应用程序开发,界面美观。(3)测试数据,如下图所示。学号姓名数学英语计算机01王芳78779002张强89678803李浩56667804黄鹏89868505尚校67887606赵鹏45546707蒋泽7876702. 职工信息管理系统设有一个职工文件,其结构为:职工号(no)、姓名、部门号、工资数、职工号指针、部门号指针和工资数指针。设计一个程序,从该文件中读取记录到一个单链表中,并完成如下功能:(1)输入。添加一个职工信息。(2)输入。输出全

3、部职工信息。(3)按no排序。通过pno指针将职工记录按no从小到大链接起来。(4)按no输出。沿pno链输出全部职工信息。(5)按depno排序。通过pdepno指针将职工记录按depno从小到达链接起来。(6)按depno输出。沿pdepno链输出全部职工信息。(7)按salary排序。通过psalary指针将职工记录按salary从小到大链接起来。(8)按salary输出。沿psalary链输出全部职工信息。(9)清空。删除职工文件中的全部记录。(10)存储退出。将单链表中的全部结点存储到职工文件中,然后退出程序运行过程。3. 通讯录管理系统通讯录管理系统一般包括通讯者结点信息的插入、查

4、询、删除、更新以及通讯录信息的输出等功能。通讯者的信息一般包括编号、姓名、性别、电话以及地址等。4. 约瑟夫生者死者游戏约瑟夫游戏的大意是:30名旅客同乘一条船,因为超载严重,加上风雨大作,情况危急。船长告诉旅客,只有将全船一半的旅客扔进海中,其他人才能幸免于难。无奈,大家商议出如此办法,30个人围成一圈,由第一个人开始依次报数,数到第9人,便把他仍入海中,然后再从他的下一个人开始报数,数到第9人,便把他仍入海中,如此循环进行,直至剩下15个旅客为止。问哪些位置是将被扔下大海的位置。5. 迷宫问题给定MN的迷宫图,求一条从制定入口到出口的路径。假设迷宫如图教材P77页图3.7所示。对于图中每个

5、方块,用个空白表示通道,用阴影表示墙。所求路径必须是简单路径,即在求得的路径上不能重复出现同一通道块。二、主要参考文献1 李春葆,尹为民等,数据结构教程(第4版),北京:清华大学出版社,2013年. 完成期限:2014年6月20日指导教师签名:课程负责人签名:2014年6月9日摘 要一、通过对问题的具体描述的理解,可知道要用结构体来解决本题目数据较多这个问题。另外根据问题的要求,可以采用构造函数来解决每一个小要求,以实现该题的全部要求。二、用合适的算法解决问题,并编写代码,通过计算机来实现所有的功能。三、设计界面友好,设计过程将主体函数声明于主函数之前,具体函数体写在主函数之后,以及各种注释更

6、方便程序员理解程序主要内容。四、结合设计过程,总结自己的心得体会。五、列出参考文献。1 问题描述1.1 问题描述 录入并保存一个班级学生多门课程的成绩,并对成绩进行分析。1.2 基本要求1、通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat。2、对文件input.dat中的数据进行处理,要求具有如下功能:按各门课程成绩排序,并生成相应的文件输出;计算每个人的平均成绩,按平均成绩排序,并生成文件;求出各门课程的平均成绩、最高分、最低分、不及格人数、6069分人数、7079分人数、8089分人数、90分以上人数;根据姓名或学号查询某人的各门课成绩。3、使用Visual C+ 6.

7、0 控制台应用程序开发,界面美观1.3 问题的其它注意事项算法的设计尽量简单,用简单的程序来实现复杂的问题的求解。一定要注意程序的可读性实现,要按要求实现问题中的各项功能。2 程序结构及功能描述图1 程序中函数的调用结构首先设置要统计学生的个数;然后进入主函数,之后会有提示信息选择是否查看接着就进入主菜单。主菜单包括:学生成绩信息、平均成绩信息、排序、查找和退出系统5项总体功能。排序又包含:按数学成绩排序、按英语成绩排序、按计算机成绩排序、按平均成绩排序和最高成绩、最低成绩以及优(90100)、良(8089)、中(7079)、及格(6069)和不及格(059)的人数。查找包含:按姓名查找和按学

8、号查找。平均成绩包含:数学的平均成绩、英语的平均成绩和计算机的平均成绩。有关函数如下:(1) void menu(); /主菜单函数,用来显示各种功能选项。(2)void show(student stu,int n);/显示学生信息,把各科成绩、/姓名、学号都输出来。(3) void readfile(student stu,int n);/读取文件数据,用来对/数据的操作。(4)void math(student stu,int n);/对数学成绩的排序(5)void english(student stu,int n);/对英语成绩的排序(6)void computer(student

9、stu,int n);/对计算机成绩的排序(7)void average(student stu,int n);/学生三门课程的平均成绩的计算(8)void score_analyse(student stu,int n);/对学生各科成绩的/分析与各个等级的人数的统计(9)void search_no(student stu,int n);/按学号查找学生信息(10)void search_name(student stu,int n);/按姓名查找学生信息(11)void closesystem();/主程序的关闭3 算法描述#include#include#include#include

10、#include#define N 7static int select=0; /输入选择的项static int num=0; /已录入学生人数/*定义学生结构体*typedef struct char no12; /学号 char name16; /姓名 int math; /数学成绩 int english; /英语成绩 int computer; /计算机成绩 int average; /个人平均成绩 student;student stuN; /定义结构体数组student studN; /备份结构体数组用来排序/*菜单*void menu(); /菜单原型声明void show(s

11、tudent stu,int n); /显示学生数据原型声明void readfile(student stu,int n); /读取数据原型声明void math(student stu,int n); /对数学成绩排序原型声明void english(student stu,int n); /对英语成绩排序原型声明void computer(student stu,int n); /对计算机成绩排序原型声明void average(student stu,int n); /对平均成绩排序原型声明int degree(int num); /等级分级原型声明void score_analyse

12、(student stu,int n);/成绩分析原型声明void search_no(student stu,int n); /按学号查找原型声明void search_name(student stu,int n); /按姓名查找原型声明void closesystem(); /关闭程序 /*测试函数*void main() student stu7= /定义学生体 01,王芳,78,77,90, 02,张强,89,67,88, 03,李浩,56,66,78, 04,黄鹏,89,86,85, 05,尚校,67,88,76, 06,赵鹏,45,54,67, 07,蒋泽,78,76,70, ;

13、 readfile(stu,7); /读取数据 for(;) menu(); cinselect; switch(select) case 1:math(stu,7);break; case 2:english(stu,7);break; case 3:computer(stu,7);break; case 4:average(stu,7);break; case 5:score_analyse(stu,7);break; case 6:search_no(stu,7);break; case 7:search_name(stu,7);break; case 8:show(stu,7);bre

14、ak; case 0:closesystem();break; default:printf(data error!); /具体函数原型void menu() system(cls); coutn; cout【欢迎进入学生成绩系统】n; coutn; coutttt输入相应的序号实现功能:ttttendl; couttt1、按数学成绩排序,并生成相应的文件输出 ttendl; couttt2、按英语成绩排序,并生成相应的文件输出 ttendl; couttt3、按计算机成绩排序,生成相应的文件输出 ttendl; couttt4、按平均成绩排序,并生成文件 ttttendl; couttt5、

15、各科成绩分布 tttttendl; couttt6、按学号查询 tttttt endl; couttt7、按姓名查询 tttttt endl; couttt8、显示新学生信息 ttttt endl; couttt0、退出系统 tttttt endl; coutendl;/*显示学生数据*void show(student stu,int n) system(cls); /清屏 coutt 学生成绩n; coutt t学号t姓名t数学t英语t计算机t n; for(int i=0;in;i+) coutt tstui.notstui.namet putert n; coutt n; cout即将

16、进入菜单选择!endl; system(pause);/*文件的读写*void readfile(student stu,int n) int i; FILE *fp; fp=fopen(G:数据结构课程设计input.dat,wb);/以写方式打开一个二进制文件 if(fp=NULL) coutCant open!n; exit(0); coutinput 文件打开成功。endl; for(i=0;in;i+) fwrite(&stui,sizeof( student),1,fp);/一次写入一个学生的成绩 system(pause);system(cls); /清屏 coutn; cout

17、 【是否显示学生成绩信息?】n; coutn; cout【 1、是tt】n; cout【 0、其他tt】n; coutselect; if(select=1) system(cls);show(stu,7);system(cls); else cout即将进入菜单选项!endl; system(pause); /*按数学成绩排序并输出*void math(student stu,int n) system(cls); /清屏 ofstream fout; /fout输出文件流对象 ifstream fin; /fin输入文件流对象 int i=0; student t; /排序时用来当做临时变

18、量 for(i=0;in;i+) /创建原数据创建备份用来当做排序时的临时变量 studi=stui; fout.open(math.txt,ios:out|ios:binary); /打开要导入的math.txt文件 if(!fout) coutError:Cant open math.txt!; exit(1); cout成功打开math.txt文件。endl; system(pause); fin.open(input.dat,ios:in|ios:binary); /打开要读取得input.dat文件 if(!fin) coutError:Cant open input.dat!; e

19、xit(1); int k,j; for(k=0;kn-1;k+) /数学成绩从小到大排序算法 for(j=0;jstudj+1.math) t=studj; studj=studj+1; studj+1=t; system(cls); coutn; cout【按数学成绩升序排序】n; coutn; coutn; couttt学号t姓名t数学t英语t计算机tttn; for(i=0;in;i+) coutttstudi.notstudi.nametstudi.matht putertttn; fout.write(char*)&studi,sizeof(student); /将学生排序后得信息

20、写入文件 coutn; cout数学排序已录入math.txt; fout.close(); cout将返回菜单!endl; system(pause);/*按英语成绩排序并输出*void english(student stu,int n) system(cls); /清屏 ofstream fout; /fout输出文件流对象 ifstream fin; /fin输入文件流对象 int i=0; student t; /排序时用来当做临时变量 for(i=0;in;i+) /创建原数据创建备份用来当做排序时的临时变量 studi=stui; fout.open(english.txt,io

21、s:out|ios:binary); /打开要导入的math.txt文件 if(!fout) coutError:Cant open english.txt!; exit(1); cout成功打开english.txt文件。endl; system(pause); /暂停 fin.open(input.dat,ios:in|ios:binary); /打开要读取得input.dat文件 if(!fin) coutError:Cant open input.dat!; exit(1); int k,j; for(k=0;kn-1;k+) /数学成绩从小到大排序算法 for(j=0;jstudj+

22、1.english) t=studj; studj=studj+1; studj+1=t; system(cls); coutn; cout【按英语成绩升序排序】n; coutn; coutn; couttt学号t姓名t数学t英语t计算机tttn; for(i=0;in;i+) putertttn; fout.write(char*)&studi,sizeof(student); /将学生排序后得信息写入文件 coutn; cout英语排序已录入english.txt; fout.close(); cout将返回菜单!endl; system(pause);/*按英语成绩排序并输出*void computer(student stu,int n) system(cls); /清屏 ofstream fout; /fout输出文件流对象 ifstream fin; /fin输入文件流对象 int i=0;

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

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