




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成 绩10信计2011-2012(一)数 据 结 构 课 程 设 计设计题目 学生管理系统 设计时间 2012.12.31 至 2012.1.6 学生姓名 学生学号 所在班级 指导教师 徐州工程学院数学与物理科学学院学生管理系统一、 需求分析1) 课程设计题目:运用数据结构编一C+程序,实现对学生信息的管理,主要包括主控程序、学生档案管理子系统、学生成绩管理子系统、学生宿舍管理子系统。2) 课程设计的基本要求:设计好算法,使之能顺利实现对学生信息的管理,实用。3) 课程设计的任务:通过此系统可以实现如下功能:a) 添加学生信息:包括学生的姓名,学号,班级,宿舍号以及其C+、多媒体技术、高等数学、大学英语、大学体育等成绩;b) 删除学生信息:可以根据其姓名、学号、班级、宿舍号和其成绩进行删除;c) 查询学生信息:可以根据其姓名、学号、班级、宿舍号和其成绩进行查询;d) 输出所有学生信息:可以显示所有录入到系统中的学生的信息。4) 软硬件运行环境及开发工具本次课程设计主要是在Visual C+6.0下做的, Visual C+是Microsoft公司的功能强大的Windows应用程序开发环境。由于Visual C+与Windows同为Microsoft公司的产品,它与Windows操作系统的结合将更加紧密。目前,Visual C+是Windows平台下开发应用程序最重要的开发环境之一。Visual C+既能支持C语言程序,又能C+运行程序,C+程序通常无需修改,或稍作修改,即可在其他计算机系统上运行。二、 概要设计(1)、课程设计思想学生管理系统是由单链表来完成的,它的主要思想是先将你的具体信息录入到文件中,如果要查询的话就是从文件中读取出来的,然后我的查询是由多种方式来查询的,可以通过姓名,学号,班级,宿舍号或成绩;删除也是通过多种方式实现的,也是根据用户输入的姓名,学号,班级,宿舍号或者成绩;最后还有一个显示所有学生的信息,可以把所有录入的学生信息显示出来。这个系统整个思想就是如此。编程时考虑得还不是很周全,还需要不断完善。(2)、模块设计本课题主要分为5个模块,即:(1) void add(CList &stulist)模块,其作用是向系统中添加学生的信息;(2) void display(CList &stulist)模块,其作用是显示所有录入的学生的信息;(3) void lookup(CList &stulist)模块,其作用是按照一定的条件查找学生的信息;(4) void deletes(CList &stulist)模块,其作用是删除满足一定条件的学生的信息。其流程图如下:判断开始功能菜单用户选择功能执行选择服务y三、 详细设计本课题分为六个部分:构造单链表,显示所有学生信息的函数,添加学生信息的函数,查找学生信息的函数,删除学生信息的函数,主函数的设计。1) 构造单链表单链表有连个部分组成,即链表的结点类和链表类,其代码如下:class CNode /结点类 public: CNode()pdata=0;pnext=0;CNode(CNode &n); void inputdata(CData *pd)pdata=pd; void shownode()pdata-show(); CData *getdata()return pdata; friend class CList; private: CData *pdata; CNode *pnext; ;CNode:CNode(CNode &n) /拷贝构造函数 pdata=n.pdata;pnext=n.pnext; class CList /链表类 public: CList()phead=0;CList()deletelist();void addnode(CNode *pnode);void deletelist();CNode *deletenode(CNode *pnode);CNode *lookup(CData &data);CNode *getlisthead()return phead;void showlist();CNode *getnext(CNode *pnode);private: CNode * phead;2) 显示所有学生信息的函数代码如下:void display(CList &stulist) stulist.showlist(); coutendl; cout按任意键返回主菜单; getchar();getchar(); 3) 添加学生信息的函数代码如下:void add(CList &stulist) CNode *p; Student *s; char c17,n17,nam17; double e,cp,m,ce,sm,cg,mar;float aver; cout请输入姓名(输入0结束):; cin.ignore(); cin.getline(nam,17); while(strcmp(nam,0) cout输入学号:;cin.getline(n,17); cout输入班级:;cin.getline(c,17); coute; coutcp; coutm; coutce;coutsm; coutcg; aver=(cp+m+ce+sm+cg)/5; s=new Student; s-set(c,n,nam,e,cp,m,ce,sm,cg,mar,aver); p=new CNode; p-inputdata(s); stulist.addnode(p); cout记录添加成功.endl; cout请输入姓名(输入0结束):; cin.ignore(); cin.getline(nam,17); 4) 查找学生信息的函数代码如下:void lookup(CList &stulist) CNode *plook; char name17; coutshownode(); else cout对不起,在学生记录中查找不到name的记录.endl; cout请输入你要查找的姓名(输入0结束):; cin.getline(name,17); 5) 删除学生信息的函数代码如下:void deletes(CList &stulist) CNode *plook; char name17; coutshownode(); stulist.deletenode(plook); coutname的记录已经删除.n; else cout对不起,在学生记录中查找不到name的记录.nendl; cout请输入要删除的记录的学生姓名(输入0结束):; cin.getline(name,17); 6) 主函数的设计代码如下:void operate(CList &stulist) int choice; do system(cls); cout 欢迎使用学生管理系统 n; coutn 1.输出所有学生记录n 2.增加学生记录n 3.删除学生记录n 4.查询学生记录n 0.退出n n; coutchoice; coutendl; switch(choice) case 1:display(stulist);break; case 2:add(stulist);break; case 3:deletes(stulist);break; case 4:lookup(stulist);break; case 0:storefile(stulist);break; default:cout输入错误,请重新输入您的选择:; while(choice!=0); int main() CList stulist; loadfile(stulist); operate(stulist); return 0; 四、 调试分析与测试结果 执行程序后,首先向系统中录入三位同学的信息,然后显示三个人的信息,运行后的界面如下:图4.1 录入三个学生信息后的运行结果 然后增加一个学生的信息再输出,结果如下图:图4.2 添加一个学生后的运行结果接着再任意删除一个学生的信息,输出结果如下图:图4.3 删除一个学生后的运行结果最后查询“shiqi”的信息,结果如下图:图4.4 查询的结果五、 课设总结本次课程设计使我了解到了有关VC+的真实案例,当然也使我学到的不少的知识,也提高了我的实际动手能力。由于之前对VC+的知识没有足够的掌握,使我在实验的最初阶段遇到了不小的困难,但是随着实验的进行,随着问题的一步步被我解决了,我由衷的感到高兴,因为我又掌握了一些知识。实验过程中我更好地掌握了单链表等相关涉及的知识点,运用这些知识点编写程序代码。调试程序中,我们常常会不注意细节性的问题。例如:变量没有初始化、没有定义、少分号、少头文件等这些细节性的错误。这此问题只是细小的问题,但不容忽视,它可能会影响到全部程序的运行。查找主要代码无误后,若调试程序还存在错误的话,我们就需要关注这此细节性问题了。要规范化程序,这样就很容易查找出细节性的问题。一个好的程序应该是一个所占空间小、运行时间短、其他性能也好的算法。然而,实际上很难做到十全十美,原因是上述要求有时相互抵触。要节约算法的执行时间往往要以牺牲更多的存储空间为代价;而为了节省存储空间又可能要以更多的时间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轮岗实习工作总结
- 亲有过到挞无怨课件
- 检验主管工作总结
- 《诗经·月出》课件
- 研发经理年中工作总结
- 电磁波的辐射讲解
- 竣工环保验收汇报
- 疼痛病人的延续性护理
- 《草房子》课件导读
- 法医临床司法鉴定年终总结
- JG/T 286-2010低温辐射电热膜
- 海南区污水处理项目可行性研究报告
- 机械维修工试题及答案
- 年产30万立方米商砼建设项目环评资料环境影响
- 2025年全国大学生海洋知识竞赛试题及答案(共五套)
- 2025年资源共享授权合同
- 信息安全管理制度
- 社交心理在网络营销中的实战运用
- 2025年少先队应知应会知识考试题库
- 2025年宁波农商发展集团限公司招聘高频重点提升(共500题)附带答案详解
- 蜀道集团招聘笔试
评论
0/150
提交评论