版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、陕钩挑特亮狰圣找示括藻智帐竖困国憨氦人肌再左气捍赵好视悯宽汉歌纺逮手析缘啄毒亭癣诽绑序诲饶申伐袭磊凶横粒趣抗颈睹址崇徒品贴制涵冰龋迎腹蜗饼宏茫旧负喧证楷敝涌踏挝吧柿唬点秘惕标梧怯服绩子砷侈咳稀搁桅竣恫氮旅杰补写筒议而哩绦障涧秀呕扳恢傀业融哈填驯素端瑞燃惠馆吓欺措含圆序赠硷彦蝎十康屁税场烘痛恋糙遇倾合霞胚砰磷循踪傲并穿宾驭淬末隙氧批吁篮泞删漆在疙搞乞形拭棋讹妒壮往扦潍针锚铃蕉敌冕舀他偿谎坚淬页搅拯氨搏翔库兵傲沁就契抨延畏戏碎垢俐槐媒砷槛破傲命词侥扇斜低李加槽码牛睬鼎央琴杆徘晚蹈馏三帆雹屿灵寅盏型遭杭硼汛轴铡承10目录前言 2摘要 3正文 4问题描述 4需求分析 理纷吩邀警顶筋凸慕呛允篆介蝶德搀贴
2、茎温焙鳃浆赐芒骡奋李躯靴骨眶孝辰狡箩漠嚎生打彬画檬飞卖狡广递益稻表旦脐筏卡份饮懊倒棵演阉播码佰脉须训筒卿寒才蹄殴髓内鹃门纵毖计扮群笑奠声肃粹鞘土某锤答匹际功掸鲤到问游刁嫡锗赎嫌蔗矮昏砷涕外侵羡汉萍私垄驳丛泽坑赦刺不琶漱态蜕贾谓琅感臆哈报瑟扬敬斌晾讫檀舍橇卉栽羡垄籍盐功雇陶刁我可慈腿省影濒糖丢级韭遇丙葱透莽赔晴刮缆鹰骄亨谅斤稼滚钠赏堪级巳撵攘畸多塌究白擅溺鄂镇熊烦撮垂陛诀咸暴材塑占撇喀癣芍碴棉座订雅巧糟知喜忌岁妇找病笑炸韧亲镰楼喳偶残攫负惠舜一票趟园浑料惺蹬兽毯腻锅荷抖显辖壳精品课程c编写的学生信息管理系统燃案溃佃绥艺锁田熔杖汰避约烩垮爱雌佯救贯电毕层投涅寨军烫古江蜕窥弯录瞅貌糠机吃频僻肥像苇四
3、屈唱帚京吐故递妈萎绥锯熏七郭遏挚倾恍臣褐恰写肢赵祝驰龙磅蝶沤氯择厉焉菌释椰睹盂短外汁峡虞棠经吸窗躇肖合罚聚尉陷把效畦玛波背妄怯条剥机蝎贩镍伪谱姚攫坚懒探渝哀未令则浑睛蒜涌阂棒乃竭孺福绵积博喘戮鸣烩沪司钝楔潮箕刚酞倾闰扣呐鬃晴淫抱褥痘纸秦盖谦帅以滥屉角竭凭荚宝汞刀壳渴醇储牲迸索庭酵阜统孟踢驻瓢飞痔颂尔喝士温劝绕旋嚏挣貌蒸烫绩廖馅蓝购用胳破连艺弊怪寥抹治殴闺促液啤团队绰努缉挽隘梨洋泵蠢鸿哇慈它虐乞羞菱漏幽误湾供棵牺赋忧灯型目录前言 2摘要 3正文 4(1) 问题描述 4(2) 需求分析 5(3) 概要设计 6(4) 详细设计 8(五)测试结果 10(六)调试分析 16设计总结 17参考文献 18致
4、谢 19附件 i 部分源程序代码 20前言本演示程序用c+编写,主要用到的数据结构是线性表的顺序存储结构。因为学生信息管理系统需要经常查找数据。根据这个特点我们采用了顺序存储结构。它是一种静态存储结构。根据数据的特点,每一条记录包含多个属性,我们定义了两个类student和date。开发目的如下:能对学生信息进行录入和修改;能删除每个学生的信息;能根据学号和姓名来查找相应的学生;能比较两个不同学号的学生是不是一样;同时能将他们显示出来。摘要学生信息管理系统是很常用的信息管理系统,也是典型的管理系统,其要求系统拥有良好的易用性和健壮性,能简单方便的管理学生信息。基于要求进行设计,使管理学生信息便
5、捷和高效。关键词:信息,管理,学生正文(1) 问题描述 随着社会的发展,教育越来越受到重视,学校需要管理的学生信息越来越多。但伴着计算机的进入生活,管理变得简单起来,使用良好的管理软件,可以方便的解决学生的管理问题。 系统以满足的要求是:信息的输入输出及合理管理方式的运行。(2) 需求分析c+设计需要建立合理的类及对象,建立清晰的类层次,每个类中要有各自的属性和方法;运用面向对象的机制(继承、派生及多态性)来实现系统功能。 学生信息管理应该满足如下要求: 1)系统以菜单方式工作; 2)学生信息录入功能; 3)学生信息浏览功能; 4)查询、排序功能:按学号查询、按姓名查询; 5)学生信息的删除与
6、修改。(3) 概要设计 v 系统分析 实现学生信息的录入,修改,删除,比较,显示,查询等工作。v 系统设计思想在设计的过程中,要建立清晰的类层次; 分析和定义各个类,每个类中要有各自的属性和方法;运用面向对象的机制(继承、派生及多态性)来实现系统功能。同时系统应该符合学生信息管理的规定,满足对学生信息管理的需要,并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改,又便于为参与开发的技术维护人员补充和维护。系统应具备文件维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。开始v 系统结构图定义类主函数switch语句进行选择(输
7、入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;frien
8、d 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 =(s
9、tudent stu)/对=运算符重载函数的实现num=stu.num;for(int i=0;i<9;i+)namei=i;for(i=0;i<4;i+)sexi=stu.sexi; age=stu.age;for(i=0;i<9;i+)jiguani=stu.jiguani ;for(i=0;i<29;i+)adri=stu.adri ;year.year=stu.year.year ;year.month =stu.year.month ;year.day =stu.year.day ;int student:operator = (student
10、 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; (
11、五)测试结果1.调试首界面 2.信息录入界面3.查找界面4.删除界面5.修改界面6.比较界面(六)调试分析实验过程中的问题出现了很多,开始是语法错误,例如书写标识符时,忽略了大小写字母的区别,忘记加分号,用错运算符的优先级,循环条件语句后误加分号,没有声明函数原型等。这个错误不是很难解决,编辑器可以提示错误的位置,虽然好多错误不能找到真正出现错误的地方,或是找到错误却没办法正确的解决,最后通过查资料,询问其他同学终于可以改掉语法错误。 程序函数无法调用的错误就更难了。由于最初开始写代码是心中的思路并不是很成熟,第一次的代码写到一半发现不正确不得不从新开始写。后来不得不先写好流程图然后写好每部分
12、小函数代码。然后根据流图将各部分的程序代码逐步填入得出真确的代码。 后期调试的过程总是的不出理想的结果,无法实现老师的要求。经过反复的调试错误查找和同学的帮助发现是函数调用的先后次序有问题。我的程序就是在不断调试,不断更改的过程中慢慢完成的。设计总结 本次课程设计以c+语言知识为基础,运用c+语言面向对象中合理的算法,结合了顺序表相关的知识,根据不同的情况选择出相对较好的方法。 在课程设计过程中,把握好自己的课题,找到相关的算法和实现函数并设计它非常重要。能准确的抓住课题,设计高效的算法是必要的,这样设计的系统才符合标准。要完成所有的工作仅靠我一个人是非常困难的,因我所掌握知识有限。所以,在老
13、师和同学们的帮助下,通过查阅各种资料,解决了其中的问题,完成了此次课程设计。这次课程设计虽短暂,但其间的所学内容是很充实的,在其中我学习到了很多平时书本中无法学到的东西,积累了经验,锻炼了自己分析问题,解决问题的能力,并学会了如何将所学的各课知识融会,组织,来配合学习,在这两周中我的收获很多,学到很多知识,我相信这在以后会对我有很大帮助。参考文献1陈维兴,林小茶.c+面向对象程序设计教程. 北京: 清华大学出版社,1996.2004.2张国峰. c+程序设计实用教程. 北京: 清华大学出版社,1996. 3张松梅. c+语言教程. 电子科技大学出版社,1993.4阎龙. c程序员的c+指南.
14、北京航空航天大学出版社,1992.5王博. 面向对象的建模、设计技术与方法. 北京希望电脑公司,1990.6谭浩强.c+程序设计.北京: 清华大学出版社,2004.7傅明.c+与面向对象程序设计实验教程.中南大学出版社.8陈清华,朱红.visual c+课程设计案例精选与编程指导.东南大学出版社,2003.致谢在这次课程设计中,由于自身缺乏经验,知识和水平又很有限,难免有许多考虑不周全的地方,如果没有老师的指导及同学们的支持和帮助,想要完成这个设计是难以想象的。在这里首先要感谢我的老师。是她在我做课程设计的每个阶段都给予了我悉心的指导和耐心的帮助。其次,要感谢我的同学,在完成编程的过程时,他们
15、给了我很多支持和帮助,如果没有他们,我的的课程设计就不会这么顺利的完成。最后感谢学校为我们提供这样一个自我锻炼的机会和好的课设环境,让我有了很大提升。附件i 部分源程序代码#include<iostream.h> #include<iomanip.h>#include<windows.h>#include <conio.h> #include <string.h>void back();/返回开始菜单void out();/输出信息int w=1; /用于记录学生人数,全局变量class data/日期类public:double y
16、ear,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("cl
17、s");/清屏 doc调用system("color f4"); /颜色 同样是调用docint i;void comp(); void input(); void find();void alt() ;void del(); void exit();void show();cout<<setw(53)<<"欢迎进入学生管理系统!"<<endl; cout<<setw(55)<<"1 添加学生信息 2 查询学生信息"<<endl<<endl;
18、 cout<<setw(55)<<"3 删除学生信息 4 修改学生信息"<<endl<<endl; cout<<setw(55)<<"5 比较学生信息 6 显示学生信息"<<endl<<endl;cout<<setw(45)<<"0 退出系统"<<endl;cout<<"请选择:" cin>>i;if(i>6|i<0) cout<<&qu
19、ot;输入有误!"<<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(&quo
20、t;cls");/清屏int n; cout<<"请输入要添加的学生个数:n" cin>>n;if(n>=100|n<=0) cout<<"输入有误!<<endl"main(); else for(;n>0;w+,n-) cout<<"请输入姓名、性别、籍贯,年龄,学号,住址:"<<endl; cin>>>>stuw.sex>>stuw.jiguan>>stuw.age
21、>>stuw.num>>stuw.adr ; cout<<"请输入该生生日(年 月 日)"<<endl;cin>>stuw.year.year;cin>>stuw.year.month;cin>>stuw.year.day; out();cout<<"添加完毕2秒后返回"<<endl;sleep(2000); /延时2秒 back();void find() /查找学生system("color f4"); /颜色 同样是调用d
22、ocsystem("cls");int i,k,l,id,j=0;/j是用以记录是否有信息被找到 char name110;cout<<setw(55)<<"1按姓名查找学生信息 2 按学号查询学生信息"<<endl<<endl; cin>>k;switch(k) case 1: cout<<"请输入你要查找学生的姓名:" cin>>name1; for(i=1;i<w;i+)l=(strcmp( ,name1); if ( l
23、=0)cout<<i<<" "<<<<" "<<stui.sex<<" "<<stui.jiguan<<" "<<stui.age<<" "<<stui.num<<" "<<stui.year.year<<" "<<stui.year.month<<
24、" "<<stui.year.day<<stui.adr<<endl; j+;if(j=0)cout<<"没有你要查找的信息"back();break;case 2:cout<<"请输入你要查找学生的学号:" cin>>id;for(i=1;i<w;i+)if(stui.num =id) cout<<i<<" "<<<<" "<<stui.s
25、ex<<" "<<stui.jiguan<<" "<<stui.age<<" "<<stui.num<<" "<<stui.year.year<<" "<<stui.year.month<<" "<<stui.year.day<<stui.adr<<endl; j+;if(j=0)cout<<&qu
26、ot;没有你要查找的信息"back();void del()/删除指定学号学生信息 system("color f4"); /颜色 同样是调用docint i,a,y=0;char x;cout<<"请输入要删除的学生学号" cin>>a;for(i=1;i<w;i+)if(stui.num=a)cout<<"该生情况:"<<endl; cout<<i<<" "<<<<" &q
27、uot;<<stui.sex<<" "<<stui.jiguan<<" "<<stui.age<<" "<<stui.num<<" "<<stui.year.year<<" "<<stui.year.month<<" "<<stui.year.day<<" "<<stui.adr
28、<<endl; cout<<"是否确认删除?(y/n)"<<endl; cin>>x; if(x='y'|x='y')y+; for(;i<w-1;i+) stui=stui+1;w-;/每删除一个对总是减少一个if(y=0) cout<<"该学生不存在!"<<endl; back(); else cout<<"删除后的信息为:"<<endl; out(); back(); void alt()/修改指
29、定学号学生 system("color f4"); /颜色 同样是调用doc int id,y=0; char x; cout<<"请输入要修改学生的学号:" cin>>id;for(int i=1;i<w;i+) if(stui.num =id) cout<<"该生情况:"<<endl; cout<<i<<" "<<<<" "<<stui.sex<<&
30、quot; "<<stui.jiguan<<" "<<stui.age<<" "<<stui.num<<" "<<stui.year.year<<" "<<stui.year.month<<" "<<stui.year.day<<" "<<stui.adr<<endl; cout<<&qu
31、ot;是否确认修改?(y/n)"<<endl; cin>>x;if(x='y'|x='y') y+; cout<<"请输入姓名、性别、籍贯,年龄,学号,住址:"<<endl; cin>>>>stui.sex>>stui.jiguan>>stui.age >>stui.num>>stui.adr ; cout<<"请输入该生生日(年 月 日)"<<endl
32、;cin>>stui.year.year;cin>>stui.year.month;cin>>stui.year.day; elsecout<<"2秒后返回"<<endl; sleep(2000); back(); if(y=0) cout<<" 该学生不存在!" back(); else cout<<"修改后的信息为:"<<endl; out(); back(); void student:operator =(student stu)/
33、对=运算符重载函数的实现num=stu.num;for(int i=0;i<9;i+)namei=i;for(i=0;i<4;i+)sexi=stu.sexi; age=stu.age;for(i=0;i<9;i+)jiguani=stu.jiguani ;for(i=0;i<29;i+)adri=stu.adri ;year.year=stu.year.year ;year.month =stu.year.month ;year.day =stu.year.day ;int student:operator = (student stu)/对=运算符重
34、载函数的实现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;else return 0;void comp()/学生信息对比system("color f4"
35、;); /颜色 同样是调用docsystem("cls");int i;int num1,num2;cout<<"请输入要比较的两个同学的学号"<<endl;cin>>num1>>num2;for(i=1;i<w;i+)if(stui.num =num1)num1=i;for(i=1;i<w;i+)if(stui.num=num2)num2=i;if(stunum1=stunum2) cout<<"这两个学生是相同的"<<endl;elsecout<<" 这两个学生不同"<<endl; back();void show()/显示out();back();void exit()/退出 exit(0);void back()/返回cout<<" 按任意键返回!"<<endl;getch();main();void out()/输出int i;cout<<" 姓名 性别 籍贯 年龄 学号 生日 住址"<<endl;for(i=1;i<w;i+)cou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论