成绩管理系统.doc
《成绩管理系统.doc》由会员分享,可在线阅读,更多相关《成绩管理系统.doc(28页珍藏版)》请在沃文网上搜索。
1、数 据 结 构 课 程 设 计设计题目: 学生成绩管理系统 学生姓名: 徐康 李阳 金鹏 专业班级: 11计算机科学与技术(2)班 指导教师: 姚丽莎 完成时间: 2012年12月 信息工程学院 计算机科学院与技术系安徽新华学院课程设计成绩评定表(本科)课题名称 学生成绩管理系统院 系信息工程学院年级专业11计科2班学 号姓 名成 绩1142151215李阳1142151229徐康1142151211金鹏课题设计目的与设计意义1、课题设计目的:课题设计目的:其目的是掌握数据链表的存储结构、掌握其的相应的存储,添加,更新等操作,并用输出结果。进一步掌握设计,实现较大系统的完整过程,包括系统分析、
2、编码设计、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。2、课题设计意义:课题设计意义:为实现计算机科学技术的发展与应用,学好数据结构非常必要。然后要掌握数据结构的知识非常难,所以对数据结构的课程设计必不可少。指导教师:年 月 日目录第一章 系统概述及需求分析- 1 -1.1课程设计应完成的工作- 1 -1.2总体设计工作(包含几大功能模块)- 1 -1.3课程设计任务及要求- 1 -1.4课程设计思想及开发环境- 2 -第二章 概要设计- 3 -2.1 总体方案- 3 -2.2 功能模块设计- 3 - 2.3 主要数据结构- 4 -第三章 详细设计
3、- 5 -3.2查询模块- 5 -3.3排序模块- 6 -3.4删除模块- 6 -3.5 插入模块- 7 -3.6 修改模块- 7 -第四章 实验结果分析- 8 -第五章 总结与体会- 13 -参考文献- 14 -附录- 15 -第一章 系统概述及需求分析 1.1课程设计应完成的工作 (1)编写算法 (2)算法测试,并有具体的测试结果和结果分析 (3) 撰写课程报告,内容包括: 封面 目录 课程设计报告正文 使用说明 参考文献 1.2总体设计工作(包含几大功能模块) (1)输入学生信息并保存到文件 (2)读取文件并输出学生信息 (3)按学号及学期查询 (4)按姓名及学期查询 (5)新增学生信息
4、 (6)插入学生信息 (7)按学号及学期删除信息 (8)按数据结构升序(冒泡)排序 (9)按总分降序(选择)排序 (10)统计各科成绩的总分和平均分 (11)退出1.3课程设计任务及要求题目:学生成绩管理系统 基本要求 (1)现有N位同学的数据要求从数据文件中读入,不用交互方式录入;(2)拟删除同学的姓名及新添加同学的数据采用交互方式输入;(3)删除及插入操作完毕,需将成绩表中的所有记录按姓名升序方式显示出来;(4)将更新后的成绩表保存到另一个数据文件中;(5)可以增加功能:如修改某位同学的成绩。1.4课程设计思想及开发环境设计思想:本课题的实质是完成对学生成绩信息的建立、查找、排序等功能,可
5、以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。可将此系统分为如下模块,输入初始的学生信息、查询模块、排序模块、退出系统。编写语言: C语言开发工具: Visual C+ Visual Studio 6.0VC+是微软公司开发的一个IDE(集成开发环境)。学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识, VC基于C,C+语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC在 Windows平台无所不能。 最大
6、缺点是开发效率不高。第二章 概要设计2.1 总体方案信息修改信息输入并保存信息查询信息排序退出系统系统菜单选择功能号进入下步工作信息插入信息删除 图2.1 总体结构图 运行该程序后,首先进入系统菜单,一一输入学生信息并保存。选择某功能号运行所选程序功能,比如选2是信息删除、插入。按提示和要求完成各功能程序,完成后按0键返回菜单栏。所有的完成后,退出系统。2.2 功能模块设计表2-1 功能说明表学生信息录入头插法建立单链表并赋值(学生的信息)返回学生信息链表的头指针选择查询方式姓名查找找到相关信息立即返回结点指针并结束,未找到相关信息则返回主菜单。选择排序方式姓名排序排序并显示所有信息成绩排序删
7、除方式姓名查找删除结点删除后显示所有信息修改学生信息选择要修改的信息修改结束后显示所有信息2.3 主要数据结构学生数据是用链表存放的,因为学生的人数是不定的,若用一个数组存放数据时,有固定长度限制,若太大则可能导致内存浪费,太小就不够用。而链表可动态分配内存,根据需要而开辟内存单元,这是本程序的链表数据结构,相关学生需要储存的信息也如下:typedef struct studelong xuehao;char nameM;int shuxue;int wuli;int yingyu;struct stude *next;linklist;/xuehaonameshuxuewuliyingyu*
8、next(学号) (姓名) (数学成绩) (物理成绩) (英语成绩) (指向下一该结构的指针)xuehaonameshuxuewuliyingyu*next第三章 详细设计本程序分为输入模块、查询模块、排序模块、删除模块、插入模块。3.1输入模块 用头插法建立单链表,每个结点包含一个学生的信息,并含有指向下一个学生信息结点的首地址,直到输入的学生信息的学号为0时,不过输入必须完整,我们可以以输入“00 00 00 00 00”表示结束录入学生信息。图3.1 头插法建立单链表3.2查询模块在查询模块中,我们以姓名查找,通过字符串的比较来实现姓名的查找,从首地址依次对比学生信息中的姓名,若找到相等
9、则返回给学生结点的指针,这样在输出该学生的全部信息。否输入学生姓名姓名与表中某信息一致吗?选择功能号3是输出该生信息选择 查询返回菜单图3.2 查询解释图3.3排序模块 在排序模块中,包含姓名排序,各科成绩排序均按照冒泡排序法,按姓名排序,相连两结点的姓名大小(字符串比较),若前者较大则将结点中的学生信息进行交换,直到最后一个学生结点,接着又重头指针开始依次上述操作,进行n-1次(n为学生总人数);各科成绩排序同上。Xukang liyang jinpeng chendanyi dongguolong liyang xukang jinpeng chengdanyi dongguolongLi
10、yang jinpeng xukang chengdanyi dongguolongLiyang jinpeng chengdanyi dongguolong xukang图3.3冒泡排序解释图已经完成第一个数据的排序,接下来依次进行第二个至N-1个数据,最后完成整个排序。 3.4删除模块在删除模块中,通过查找要删除学生的指针*p,并记录要删除学生的上一个学生的指针*q,将q-next=p-next即将要删除学生的上一学生结点中指向下一学生的指针直接指向要删除学生所指向下一学生结点。返回首地址。输入功能号2返回头指针*head输入删除的学生姓名选择 删除查找并记录该生信息指针*p用代码q-ne
11、xt=p-next 完成删除功能图3.4 删除模块解释图3.5 插入模块在插入模块中,新建一个学生信息的结点并赋值。将新建的结点连接到首地址后,将之前首地址后连接的下一学生结点连在新建结点后面(新建结点中指向下一结点的指针指向首地址后连接的下一学生结点)*head *head.图3.5 插入模块解释图3.6 修改模块在修改模块中,通过查找模块,找到要修改学生结点的指针,通过赋值来修改学生的某一项信息。通过switch函数依次选择要修改学生的某一项信息。选择功能号3选择需改的学生 姓名选择修改项姓名英语成绩数学成绩物理成 绩学号结束赋值给原数据的指针 结束图3.6修改模块解释图第四章 实验结果分
12、析系统菜单图录入学生信息后显示所有信息删除学生及信息添加学生及信息查找修改学生信息按姓名排序按数学成绩排序结束第五章 总结与体会由于c语言学的不扎实,编程时遇到了很多困难,查阅了很多的资料才完成,开始调试的时候经常出现很多的错误,经常容易烦躁,但是经过一段的时间的锻炼使得我更有信息和勇气去面对困难,并一步一步的解决困难。当整个程序开始运行的时候,是非常有成就感的。整个程序还有很多不足的地方,如成绩、姓名、班级若输入不合理没有更仔细的提示等等。在程序设计方面,逐渐感觉到模块化设计的重要性,应该分析出功能块,然后对其细节中的共性和特性作分析。这次的设计,让我大大地感觉到,对于程序设计中,对语言再熟
13、悉也比不过在设计中算法和结构分析的真知灼见。当然,成功的程序设计是要建立在熟悉语言的基础之上的。平时语言的基本功要扎实。而每一次程序设计的经营能大大地增加对语言的熟悉和感知。程序设计的技能来自多方面,每一次的亲自实践、思考揣摩、刨根问底就会让自己更加清楚所欠缺的是什么。所以,现在觉得在设计实践中作为参考的书册阅读和研究远远比过单纯的阅读,因为它是在最紧迫的时间上填补自己最紧迫的不足。 参考文献1 谭浩强.C程序设计(第三版)M,北京:清华大学出版社,2008.2 唐策善,李龙澍,黄刘生.数据结构用c语言描述M,高等教育出版社,1995.3 谭浩强,张基温.C语言程序设计教程(第3版)M,北京:
14、高等教育出版,2006.4 吕凤煮.C语言基础教程基础理论与案例M,北京:清华大学出版社,2005.5 黄明,梁旭,万洪莉.C语言课程设计M,北京:电子工业出版社,2006.附录 详细程序设计:#include#include#includestring.h#define M 10typedef struct studelong xuehao;char nameM;int shuxue;int wuli;int yingyu;struct stude *next;linklist;/linklist *CREATLIST()long xueha;/学号char namM;/姓名int shux
15、u;/数学成绩int wul;/物理成绩int yingy;/英语成绩linklist *head,*s;head=NULL;scanf(%ld %s %d %d %d,&xueha,nam,&shuxu,&wul,&yingy);/分别输入学生的学号,姓名,数学成绩,物理成绩,英语成绩while(xueha!=0) s=(linklist*)malloc(sizeof(linklist);s-xuehao=xueha;strcpy(s-name,nam);s-shuxue=shuxu;s-wuli=wul;s-yingyu=yingy;s-next=head;head=s;scanf(%ld
16、 %s %d %d %d,&xueha,nam,&shuxu,&wul,&yingy);return head;/头插法建立单链表 void print(linklist *h)linklist *p=h;printf(学号t姓名t数学t物理t英语);printf(n);while(p!=NULL)printf(%ldt%st%dt%dt%d,p-xuehao,p-name,p-shuxue,p-wuli,p-yingyu);printf(n);p=p-next;/输出格式linklist *DEL(linklist *head,char key)linklist *p,*q; p=head-
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成绩管理系统