免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录前言 2摘要 3正文 4(1) 问题描述 4(2) 需求分析 5(3) 概要设计 6(4) 详细设计 8(五)测试结果 10(六)调试分析 16设计总结 17参考文献 18致谢 19附件 I 部分源程序代码 20前言本演示程序用C+编写,主要用到的数据结构是线性表的顺序存储结构。因为学生信息管理系统需要经常查找数据。根据这个特点我们采用了顺序存储结构。它是一种静态存储结构。根据数据的特点,每一条记录包含多个属性,我们定义了两个类Student和date。开发目的如下:能对学生信息进行录入和修改;能删除每个学生的信息;能根据学号和姓名来查找相应的学生;能比较两个不同学号的学生是不是一样;同时能将他们显示出来。摘要学生信息管理系统是很常用的信息管理系统,也是典型的管理系统,其要求系统拥有良好的易用性和健壮性,能简单方便的管理学生信息。基于要求进行设计,使管理学生信息便捷和高效。关键词:信息,管理,学生正文(1) 问题描述 随着社会的发展,教育越来越受到重视,学校需要管理的学生信息越来越多。但伴着计算机的进入生活,管理变得简单起来,使用良好的管理软件,可以方便的解决学生的管理问题。 系统以满足的要求是:信息的输入输出及合理管理方式的运行。(2) 需求分析C+设计需要建立合理的类及对象,建立清晰的类层次,每个类中要有各自的属性和方法;运用面向对象的机制(继承、派生及多态性)来实现系统功能。 学生信息管理应该满足如下要求: 1)系统以菜单方式工作; 2)学生信息录入功能; 3)学生信息浏览功能; 4)查询、排序功能:按学号查询、按姓名查询; 5)学生信息的删除与修改。(3) 概要设计 v 系统分析 实现学生信息的录入,修改,删除,比较,显示,查询等工作。v 系统设计思想在设计的过程中,要建立清晰的类层次; 分析和定义各个类,每个类中要有各自的属性和方法;运用面向对象的机制(继承、派生及多态性)来实现系统功能。同时系统应该符合学生信息管理的规定,满足对学生信息管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于为参与开发的技术维护人员补充和维护。系统应具备文件维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。开始v 系统结构图定义类主函数Switch语句进行选择(输入06)退出管理系统删除学生信息显示学生信息比较学生信息修改学生信息录入学生信息查询学生信息退出函数显示函数比较函数删除函数修改函数查询函数输入函数退出返回函数(四)详细设计l 类属性的详细设计日期类:class Data/日期类 public:double Year,Month,Day;Data() Year=0;Month=0;Day=0; ;学生类:class student /学生类public: char name10; /姓名char sex5; /性别char jiguan10; /籍贯int num,age;/学号,年龄char adr30;/住址Data year;friend class Data;/date作为student的友元 /定义一个日期类void operator=(student s); /=重载int operator = (student s);/=重载stu100;l 类行为的详细设计int i;void comp(); void input(); void find();void alt() ;void del(); void exit();void show(); void operator=(student s); /=重载 int operator = (student s);/=重载void student:operator =(student stu)/对=运算符重载函数的实现num=stu.num;for(int i=0;i9;i+)namei=i;for(i=0;i4;i+)sexi=stu.sexi; age=stu.age;for(i=0;i9;i+)jiguani=stu.jiguani ;for(i=0;i29;i+)adri=stu.adri ;year.Year=stu.year.Year ;year.Month =stu.year.Month ;year.Day =stu.year.Day ;int student:operator = (student stu)/对=运算符重载函数的实现if(*name=* & *sex=*stu.sex & age=stu.age & *jiguan=*stu.jiguan & *adr=*stu.adr&year.Year =stu.year.Year&year.Month =stu.year.Month&year.Day =stu.year.Day ) return 1;else1 return 0; Data() Year=0;Month=0;Day=0; (五)测试结果1.调试首界面 2.信息录入界面3.查找界面4.删除界面5.修改界面6.比较界面(六)调试分析实验过程中的问题出现了很多,开始是语法错误,例如书写标识符时,忽略了大小写字母的区别,忘记加分号,用错运算符的优先级,循环条件语句后误加分号,没有声明函数原型等。这个错误不是很难解决,编辑器可以提示错误的位置,虽然好多错误不能找到真正出现错误的地方,或是找到错误却没办法正确的解决,最后通过查资料,询问其他同学终于可以改掉语法错误。 程序函数无法调用的错误就更难了。由于最初开始写代码是心中的思路并不是很成熟,第一次的代码写到一半发现不正确不得不从新开始写。后来不得不先写好流程图然后写好每部分小函数代码。然后根据流图将各部分的程序代码逐步填入得出真确的代码。 后期调试的过程总是的不出理想的结果,无法实现老师的要求。经过反复的调试错误查找和同学的帮助发现是函数调用的先后次序有问题。我的程序就是在不断调试,不断更改的过程中慢慢完成的。设计总结 本次课程设计以C+语言知识为基础,运用C+语言面向对象中合理的算法,结合了顺序表相关的知识,根据不同的情况选择出相对较好的方法。 在课程设计过程中,把握好自己的课题,找到相关的算法和实现函数并设计它非常重要。能准确的抓住课题,设计高效的算法是必要的,这样设计的系统才符合标准。要完成所有的工作仅靠我一个人是非常困难的,因我所掌握知识有限。所以,在老师和同学们的帮助下,通过查阅各种资料,解决了其中的问题,完成了此次课程设计。这次课程设计虽短暂,但其间的所学内容是很充实的,在其中我学习到了很多平时书本中无法学到的东西,积累了经验,锻炼了自己分析问题,解决问题的能力,并学会了如何将所学的各课知识融会,组织,来配合学习,在这两周中我的收获很多,学到很多知识,我相信这在以后会对我有很大帮助。参考文献1陈维兴,林小茶.c+面向对象程序设计教程. 北京: 清华大学出版社,1996.2004.2张国峰. C+程序设计实用教程. 北京: 清华大学出版社,1996. 3张松梅. C+语言教程. 电子科技大学出版社,1993.4阎龙. C程序员的C+指南. 北京航空航天大学出版社,1992.5王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990.6谭浩强.c+程序设计.北京: 清华大学出版社,2004.7傅明.c+与面向对象程序设计实验教程.中南大学出版社.8陈清华,朱红.Visual C+课程设计案例精选与编程指导.东南大学出版社,2003.致谢在这次课程设计中,由于自身缺乏经验,知识和水平又很有限,难免有许多考虑不周全的地方,如果没有老师的指导及同学们的支持和帮助,想要完成这个设计是难以想象的。在这里首先要感谢我的老师。是她在我做课程设计的每个阶段都给予了我悉心的指导和耐心的帮助。其次,要感谢我的同学,在完成编程的过程时,他们给了我很多支持和帮助,如果没有他们,我的的课程设计就不会这么顺利的完成。最后感谢学校为我们提供这样一个自我锻炼的机会和好的课设环境,让我有了很大提升。附件I 部分源程序代码#include #include#include#include #include void back();/返回开始菜单void out();/输出信息int w=1; /用于记录学生人数,全局变量class Data/日期类public:double Year,Month,Day;Data() Year=0;Month=0;Day=0; ;class student /学生类public: char name10; /姓名char sex5; /性别char jiguan10; /籍贯int num,age;/学号,年龄char adr30;/住址Data year;friend class Data;/date作为student的友元 /定义一个日期类void operator=(student s); /=重载int operator = (student s);/=重载stu100;void main() system(cls);/清屏 DOC调用system(color f4); /颜色 同样是调用docint i;void comp(); void input(); void find();void alt() ;void del(); void exit();void show();coutsetw(53)欢迎进入学生管理系统!endl; coutsetw(55)1 添加学生信息 2 查询学生信息endlendl; coutsetw(55)3 删除学生信息 4 修改学生信息endlendl; coutsetw(55)5 比较学生信息 6 显示学生信息endlendl;coutsetw(45)0 退出系统endl;couti;if(i6|i0) cout输入有误!endl; back(); switch(i) case 1:input();break; case 2:find();break; case 3:del();break; case 4:alt();break;case 5:comp();break;case 6:show();break;case 0:exit();break;default:cout你的输入有误!n; void input() /添加学生system(color 84); /颜色 同样是调用docsystem(cls);/清屏int n; coutn;if(n=100|n=0) cout输入有误!0;w+,n-) cout请输入姓名、性别、籍贯,年龄,学号,住址:stuw.sexstuw.jiguanstuw.age stuw.numstuw.adr ; cout请输入该生生日(年 月 日)stuw.year.Year;cinstuw.year.Month;cinstuw.year.Day; out();cout添加完毕2秒后返回endl;Sleep(2000); /延时2秒 back();void find() /查找学生system(color f4); /颜色 同样是调用docsystem(cls);int i,k,l,id,j=0;/j是用以记录是否有信息被找到 char name110;coutsetw(55)1按姓名查找学生信息 2 按学号查询学生信息endlk;switch(k) case 1: coutname1; for(i=1;iw;i+)l=(strcmp( ,name1); if ( l=0)couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Daystui.adrendl; j+;if(j=0)cout没有你要查找的信息;back();break;case 2:coutid;for(i=1;iw;i+)if(stui.num =id) couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Daystui.adrendl; j+;if(j=0)cout没有你要查找的信息;back();void del()/删除指定学号学生信息 system(color f4); /颜色 同样是调用docint i,a,y=0;char x;couta;for(i=1;iw;i+)if(stui.num=a)cout该生情况:endl; couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Day stui.adrendl; cout是否确认删除?(Y/N)x; if(x=Y|x=y)y+; for(;iw-1;i+) stui=stui+1;w-;/每删除一个对总是减少一个if(y=0) cout该学生不存在!endl; back(); else cout删除后的信息为:endl; out(); back(); void alt()/修改指定学号学生 system(color f4); /颜色 同样是调用doc int id,y=0; char x; coutid;for(int i=1;iw;i+) if(stui.num =id) cout该生情况:endl; couti stui.sex stui.jiguan stui.age stui.num stui.year.Year stui.year.Month stui.year.Day stui.adrendl; cout是否确认修改?(Y/N)x;if(x=Y|x=y) y+; cout请输入姓名、性别、籍贯,年龄,学号,住址:stui.sexstui.jiguanstui.age stui.numstui.adr ; cout请输入该生生日(年 月 日)stui.year.Year;cinstui.year.Month;cinstui.year.Day; elsecout2秒后返回endl; Sleep(2000); back(); if(y=0) cout 该学生不存在!; back(); else cout修改后的信息为:endl; out(); back(); void student:operator =(student stu)/对=运算符重载函数的实现num=stu.num;for(int i=0;i9;i+)namei=i;for(i=0;i4;i+)sexi=stu.sexi; age=stu.age;for(i=0;i9;i+)jiguani=stu.jiguani ;for(i=0;i29;i+)adri=stu.adri ;year.Year=stu.year.Year ;year.Month =stu.year.Month ;year.Day =stu.year.Day ;int student:operator = (student stu)/对=运算符重载函数的实现if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年高考新课标二卷理综试题解析及答案
- 2026年吉林省松原市初二地理生物会考试题题库(答案+解析)
- 2026年春季学期小学教科版科学五年级科学期末综合测试卷含答案
- 2026学年八年级英语上册第六单元名校密卷单元测评含答案及解析
- 2026学年高二物理下册第一单元重难点第一次月考含答案及解析
- 2026学年九年级化学上册第六单元同步精练综合检测含答案及解析
- 分班考小升初 开学名校分班摸底押题卷2026年秋六年级数学苏教版 有答案
- 2026年北京协和医院医护人员招聘考试备考题库及答案详解
- 2026年成都第三人民医院医护人员招聘考试备考题库及答案详解
- 吉安市吉州区综合交通运输事业发展中心招聘笔试真题及答案
- 2026年辽宁医药职业学院单招职业适应性考试题库带答案详解
- 招标代理服务项目管理承诺书范本
- 2026届河南百师联盟高三下学期5月联考英语试题(含答案)
- 统编版历史八年级下册第20课《维护国家安全和推进祖国统一》 教学课件
- 2024-2025学年广东省广州大学附中八年级下学期期末质检物理试卷(含答案)
- 2026年招标采购从业人员《招标采购专业理论与法律基础(初级)》考试真题(含解析)
- 山东铁投能源集团、山东清洁热网有限公司招聘笔试题库2026
- 2026年国际注册汉语教师资格等级考试基础综合教材笔记及真题题库
- 安徽省安庆市四中2026年九年级二模道德与法治试卷(含答案)
- 2026广东中山大学附属第三医院招聘事业单位人员29人(第二批)笔试备考题库及答案解析
- 2026年整体橱柜行业分析报告及未来发展趋势报告
评论
0/150
提交评论