C++实验报告书_第1页
C++实验报告书_第2页
C++实验报告书_第3页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中南大学本科生课程设计(实践)任务书、设计报告(C+程序设计)题目学生管理系统学生姓名蔡云伟指导教师李大扬学院材料科学与工程专业班级材料国际1401班学生学号0605140118计算机基础教学实验中心2015年6 月 4 日目录一、程序设计目的 3二、程序功能介绍 3三、程序设计 31) 程序结构 42) 模块说明 5四、调试与分析 61) 程序调试过程 62) 程序的不足 7五 课程设计总结 错误!未定义书签人员信息管理系统摘要 通过设计程序实现对人员的快速信息化管理关键词 输入输出 , 数据化, 智能查询一 程序设计目的针对本学期C+课程,运用Microsoft Visual C+6、0完

2、成对设计题目的编写、调试、运行 , 进一步掌握面向进一步掌握面向过程与 面向对象程序设计的基本方法与编程技巧 , 巩固所学理论知识 , 同时 使理论与实践结合 , 提高查阅资料、独立思考、团队合作的能力。二 程序功能介绍本组课程设计的课题就是“人员信息管理系统设计” , 本系统以 菜单方式工作 , 有一名管理员可以进行人员编号、姓名、年龄、性别、 出生年月、地址、电话、 E-mail 等信息的录入 , 并对人员信息进行浏 览, 还有按编号与姓名查询删除及修改人员信息的功能。三 程序设计设计思路 : 将人员信息定义为一个 student 类, 在类中包含私有 数据成员 int num 、 str

3、ing name 、 string sex 、 string politic 、 string address, 分别表示编号 , 姓名, 年龄, 性别, 出生年月 , 地址, 电 话,E-mail等。公有成员函数包括:set( ) ,add( ) ,del( ) ,cha nge( ) ,research( ) ,show(),分别用来实现对人员信息的数据初始录入、增加数据、删除数据、修 改数据、查询数据、显示所有数据功能。然后定义了一个menu()菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。主函 数就是一个程序必不可少的,在主函数中,使用一个switch语句来选 择调用主菜单

4、中的各个功能函数。1)程序结构结构框图结构流程该人员信息管理系统包括信息输入、添加、删除、修改、查询 与显示功能。所包含的人员信息包括编号,姓名,年龄,性别,出生年月, 地址等。所以程序中包括公有成员函数set(); void add();voiddel();void cha nge();void search();void display。;其作用分另 U为初始化信息,第一次对信息的录入;添加人员信息;删除某人员信息; 修改某人员信息;查询某人员信息;显示全部学生信息。同时定义menu()菜单函数,作用为使系统以菜单方式工作。最后定义主函数, 使用一个switch语句来选择调用主菜单中的各个

5、功能函数。2)模块说明(1) 、set() 函数,初始化信息 ,第一次对信息的录入。内容包括输入 编号、姓名、性别、年龄、电话、地址、电子邮件、出生年月。首先 定义可以存信息总量为 200。然后从 1 开始依次录入相应个数人员的 信息。当人员姓名为“ 0”时停止输入。(2) 、change(); 函数, 修改某人员信息 , 选择要修改人员信息的对象 , 即 第 k 个 数 据 , 然 后 依 次 对 int numk;string namek,sexk,agek,numberk,addressk,e_mailk,birth k 等数据进行修改 ,结束修改后 , 系统将提示“已完成修改” 。(3

6、) 、add() 函数, 添加人员信息 , 以追加的方式录入信息 ,直接将信 息追加到以前文件的末尾。具体操作依次输入相应的数据 , 并且追加 到之前的文件中去。完成后系统将进行提示。(4) 、del() 函数, 删除人员信息 , 选择要删除的信息 ,系统将进行将 数组储存的数据取出到文件中的操作。(5) 、menu() 菜单函数。菜单函数将对系统使用者进行提示 , 显示内 容为系统的功能以及各功能相对应的数字键。 例如, 在菜单下输入“4”, 系统将进入信息修改界面 , 并且出现“您想修改第几个数据” 的提示。 输入“ 0”可返回。(6) 、search() 函数, 查询人员信息 , 查询人

7、员信息可以通过编号与 姓名两种方式进行。在此系统使用了选择语句功能,输入“a”进入编 号查询,输入“ b”则进入姓名查询,输入其她内容系统将进行提示“没 有此选项”。操作完成后 , 系统将显示该名人员的全部信息。(7) 、display。函数,显示全部人员的所有信息。(8) 、switch()函数,程序主函数。使用者在对主函数进行相应 操作后,该函数将调用上述函数,case “ 1”至“6”分别对应信息的输 入、添加、删除、修改、查询与显示功能。 Case “0”对应功能为中 止当前操作。四调试与分析1)程序调试过程:所谓程序调试就是指对程序的查错与排错。我们调试程序经过以下 几个步骤:1.

8、先进行人工检查。在程序以后,我们对程序进行人工检查,发现程序设计人员由于疏忽而造成的多数错误。为了更有效地进行人工检工作进程22232425262728293012蔡云伟分配主函数以及 声明调试添加 文件主界面 的设计调试添加、显示、 删除文件调试修改整合全部程序及最终调 试及答亠、亠辩刘嘉雪工作初始化文件显示文件文件初步调试添加文件删除文件修改文件查,我们所编的程序力求做到以下几点A、应当采用结构化程序方法编程B并尽可能多加注释,以帮助理解每段程序的作用C在编写复杂的程序时不将全部语句都写在main函数中,而多利用函数,用一个函数来实现一个单独的功能2. 在人工检查无误后,进行上机调试。在编

9、译时给出语法错误的 信息,根据提示的信息具体找出程序中出错之处并改正之。并注意的 就是有时提示的出错并不就是真正出错的行,如果在提示出错的行上 找不到错误的话应当到上一行再找。3. 在改正语法错误后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作 分析,瞧它就是否符合要求。4. 运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细 检查与分析才能发现。可以采用以下办法A、将程序与流程图仔细对照,如果流程图就是正确的话,程序写 错了 ,就是很容易发现的。B、 如果实在找不到错误,可以采用“分段检查”的方法。在程 序不同的位置设几个printf

10、函数语句,输出有关变量的值,往下检 查。直到找到在哪一段中数据不对为止。 这时就已经把错误局限在这 一段中了。不断减小“查错区”,就可能发现错误所在。总之,程序调 试就是一项细致、较为繁琐的工作,需要下功夫,动脑子,善于累积经 验。2)程序的不足本程序设计存在的不足在于:存储信息时会会出现以下问题:1)在程序设计时 ,由于将数据定义为字符串等操作 , 在其中需要 使用到循环语句时 ,会出现一些小问题 , 如系统无法成功提取相应组 数据。2) 添加或修改信息时 , 之前已储存的信息可能会被新进信息所覆 盖, 而出现无法调用之前的数据的情况。五 课程设计总结经过了一个学期的学习与上机实践,使我们对

11、C+语言有了更深 的认识与了解。通过对本程序的编写 , 我们基本掌握了软件的运用 , 同时也学会了如何分析设计调试等过程中遇到的问题 , 并耐心细心对 待问题 , 一步步去解决它。学会了如何将繁杂的工作细化处理 , 合理分 配到每个人。在共同编写程序的过程中 , 我们发扬团队合作精神 , 一起 查阅资料编写代码 , 探讨编程方法与技巧 , 相互学习。当然设计中还遇 到很多棘手的技术性问题 , 面对这些以我们自身能力无法解决的问题 我们积极寻求其她同学还有老师的帮助 , 最终完成了设计。总的来说 , 我们运用了自己的知识 , 凭借团队的力量完成了理论到实践的结合 , 使我们受益良多,同时激发了我

12、们日后深入学习 C+语言的兴趣。参考文献1 C + +语言程序设计 (第三版), 郑莉, 清华大学出版社 ,20042 C+语言程序设计案例教程,郑莉,清华大学出版社,20053 C+程序设计教程,钱能主编,清华大学出版社,1999、44 C+g序设计,谭浩强,清华大学出版社,20045 C+g序设计实践指导,谭浩强,清华大学出版社 C+g序设计课程设计,刘振安,机械工业出版社,2004、8程序代码 :#include<iostream>#include<fstream> #include<string>#include<iomanip>usin

13、g namespace std;#define M 200 /可以存信息总量int N=0; /人员总量class student public:初始化信息 , 第一次对信息的录入 添加人员信息删除某人员信息修改某人员信息查询某人员信息 显示全部人员信息student();void set(); / void add(); / void del(); / void change(); / void search(); / void display(); / int CountLines(char *); private:static int num;string name,sex,number

14、,address,e_mail,age,birth; ;int student:num=110;student:student() / 初始化文件int student:CountLines(char *)ifstream ReadFile;int n=0;char line512;string temp;Read();/ios:in 表示以只读的方式读取文件 if(Read()/ 文件打开失败 : 返回 0 return 0;else/ 文件存在while(getline(Read)n+;return n;Read();void student:set()int i;string setna

15、me,setsex,setnumber,setaddress,sete_mail,setage,setbirth; ofstream outfile;out("student 、 txt",ios:out); / 打开文件 if(!outfile)cerr<<" open error"<<endl;exit(1);/ 依次录入相应个数的人员信息 for(i=0;i<M;i+)cout<<" 当姓名输入为 '0' 时, 停止输入! "<<endl;cout<&l

16、t;" 请输入姓名 :"<<endl;cin>>setname;if(setname="0") break;if(setname!="0")num+;outfile<<num<<" "outfile<<setname<<" "cout<<" 请输入性别 :"<<endl;cin>>setsex;outfile<<setsex<<" &q

17、uot;cout<<" 请输入年龄 :"<<endl;cin>>setage;outfile<<setage<<" "cout<<" 请输入电话 :"<<endl; cin>>setnumber;outfile<<setnumber<<" " cout<<" 请输入住址 :"<<endl; cin>>setaddress; outfile&l

18、t;<setaddress<<" "cout<<" 请输入 E-mail:"<<endl; cin>>sete_mail; outfile<<sete_mail<<" "cout<<" 请输入出生年月 :"<<endl; cin>>setbirth; outfile<<setbirth<<endl;out(); / 关闭文件 / 添加文件void student:add()str

19、ing addname,addsex,addnumber,addaddress,adde_mail,addbirth,addage; / 以追加的方式录入信息 , 直接将信息追加到以前文件的末尾 ofstream outfile("student、 txt",ios:app);if(!outfile)cerr<<" open error"<<endl;exit(1);N=N+1;/ 依次输入相应的数据 , 并且追加到之前的文件中去 cout<<" 请输入您要添加的数据 "<<endl;n

20、um+; outfile<<num<<" "cout<<" 请输入姓名 :"<<endl; cin>>addname;outfile<<addname<<" " cout<<" 请输入性别 :"<<endl; cin>>addsex; outfile<<addsex<<" " cout<<" 请输入年龄 :"<<

21、;endl; cin>>addage; outfile<<addage<<" " cout<<" 请输入电话 :"<<endl; cin>>addnumber;mEnu 茎一._空C一 =5 / -U pms=)sunlunooUNoopnu P9S _eH迤臺 =pu vv= - =vxno。ono=pu vvll 七一 qppevv 一七no二七 一 qppeAAUQ=pu vv-.K>刖耳 <緯>-vxno。J-vv-roE ppevv 一七norolu PP

22、PAAUQ=pu vvLroEQ <緯>-vxno。wsalppeppevv -七nowsalppeppeAAUQ =pu vv-.却甲<緯>-vxno。 厂=vvqEnuppevv一七nomsa>mqlunuvv-乍vvlnoo 兰 qlunuAA -u=u- 三O6PVV-乍vvlnoo mo-u=u- -二x SVV-乍vvlnoo mx SAA -u=u- 三olueuvv-乍vvlnoo 兰 lueuAA -u=u- mEnuvvlnoo 三EnuAA -u=u- (+Nv_o.!l)04 =pu vv=K>刖IO 7 戟 申<=vvln。_

23、pu VV-HHH宀二)七x_puvv=oudo -VVLOQ(2 匸 ug e'r;so£xl c pms=o_u=u 一 Erooe-S-cout<<'t'<<addressi; infile>>e_maili; cout<<'t'<<e_maili; infile>>birthi;cout<<'t'<<birthi<<endl; cout<<"= ="<<endl;cout

24、<<" 您想删除第几个? "<<endl; cin>>k;k=k-1; in(); ofstream outfile("student、 txt",ios:out);if(!outfile) cerr<<" open error"<<endl; exit(1); / 退出程序 / 将数组存取的信息输出到文件中去 for(i=0;i<N;i+)if(i!=k) outfile<<numi<<" " outfile<<

25、namei<<" " outfile<<sexi<<" " outfile<<agei<<" " outfile<<numberi<<" " outfile<<addressi<<" " outfile<<e_maili<<" " outfile<<birthi<<" "<<endl; ou

26、t(); N=N-1; cout<<" 已删除成功! "<<endl;/ 修改文件void student:change()N=CountLines("student 、 txt");asmx SAA -u=u-三olueuvv-乍vvlnoo 兰 lueuAA -u=u-mEnuvvlnoo三EnuAA -u=u- (+Nuv_o.!l)04=pu vv=K>刖 _山 W ms f 套、 w 戟 申<=vvln。_pu VV-HHH 宀 二)七x_puvv=oudo -VVLOQ(2 匸 uge'r;so&#

27、163;xl c pms=o_u=u 一 Erooe-S- -IAIN 七一 q-l/l=roEI9-l/lo69-l/nss2PPE-l/HeqEnu-l/l><es-l/loEEU 6UES mEnu lu-M 二u 一-L.总=pu vvd 粵懸 JWWMS題嵋-vvln。宀A MX®_puvv=oudo =vv。(2 七 noifano:so=pq -u pnls=o七 no Erooe-EO ou 一 _pu VV-HHH 宀】pu vvmll 主 qvv-hvxns 兰毛一 qA2u=u 一 mhroUJ VVAVxns 兰一roE AA2U=U 一 -二 s

28、salppevv-乍vvlnoo 兰 ssalppeAA -u=u- mqlunuvv-乍vvlnoo 兰 qlunuAA -u=u- 三O6PVV-乍vvlnoo mo-u=u-if(k<=N)cout<<" 请输入新的数据 :"<<endl; cout<<" 请输入编号 :"<<endl; cin>>num k;cout<<" 请输入姓名 :"<<endl; cin>>namek;cout<<" 请输入性别

29、:"<<endl; cin>>sexk;cout<<" 请输入年龄 :"<<endl; cin>>agek;cout<<" 请输入电话 :"<<endl; cin>>numberk;cout<<" 请输入住址 :"<<endl; cin>>addressk;cout<<" 请输入 E-mail:"<<endl; cin>>e_mailk;c

30、out<<" 请输入出生年月 :"<<endl; cin>>birthk;for(i=0;i<=N;i+)outfile<<numi<<" "outfile<<namei<<" " outfile<<sexi<<" " outfile<<agei<<" " outfile<<numberi<<" " outfile&

31、lt;<addressi<<" " outfile<<e_maili<<" " outfile<<birthi<<endl;out(); cout<<" 已修改成功! "<<endl;elsecout<<" 没有该学生 "<<endl;/ 查询文件void student:search()N=CountLines("student 、 txt"); int i,n,w=0,numM,

32、aM;char ch; stringsearchname,nameM,sexM,ageM,numberM,addressM,bM7,e_mailM,birthM ;cout<<"a 、按编号查找 b 、按姓名查找 "<<endl;ifstream infile("student 、 txt",ios:in);if(!infile)cerr<<" open error"<<endl; exit(1);for(i=0;i<N;i+)infile>>numi;ai=numi;

33、 infile>>namei;bi0=namei; infile>>sexi;bi1=sexi; infile>>agei;bi2=agei; infile>>numberi;bi3=numberi; infile>>addressi;bi4=addressi; infile>>e_maili;bi5=e_maili; infile>>birthi;bi6=birthi;cout<<" 请输入 a 或者 b!"<<endl;cin>>ch;if(ch=&#

34、39;a')cout<<" 请输入编号! "<<endl;cin>>n;for(i=0;i<N;i+) if(ai=n) w=1;住址cout<<"= ="<<endl;cout<<" 编号 姓名 性别 年龄 电话 E-mail 出生年月 "<<endl;cout<<ai;cout<<'t'<<bi0;cout<<'t'<<bi1;cout<

35、<'t'<<bi2;cout<<'t'<<bi3;cout<<'t'<<bi4;cout<<'t'<<bi5;cout<<'t'<<bi6<<endl;cout<<"="<<endl;if(w=0) cout<<" 无此人信息! "<<endl;else if(ch='b')cout<

36、;<" 请输入姓名! "<<endl; cin>>searchname;for(i=0;i<N;i+) if(namei=searchname) w=1;cout<<"= ="<<endl;cout<<" 编号 姓名 性别 年龄 电话 住址 E-mail 出生年月 "<<endl;cout<<ai;cout<<'t'<<bi0;cout<<'t'<<bi1;co

37、ut<<'t'<<bi2;cout<<'t'<<bi3;cout<<'t'<<bi4;cout<<'t'<<bi5; cout<<'t'<<bi6<<endl;cout<<"= ="<<endl;if(w=0)cout<<" 无此人信息! "<<endl;else cout<<"

38、; 没有此选项! "<<endl;/ 显示文件void student:display()N=CountLines("student 、 txt");int k,num;string name,sex,age,number,address,e_mail,birth;celTAA- oopen elror-AAendr exifuruuu-AAend-八couAd>4養w型<B吕 舟<出-AAend-八 for(kuo_kAN 八 k+)宀infi-evvnum 八 couAAnum 八 infi-evvnampCOUAA詬AAnamp

39、infi-evvsex COUAA詬AAsex infi-evvagpCOUAA詬AAagp审卑 Emai-COUAA詬AAnumbec infi-evvaddress 八COUAA詬AAaddress infi-evvelma=COUAA詬AAelma= infi-evvbirth 八COUAA詬AAbirthAAendr oocxa-hhhhhhhhhhhhhhhhuuu-AAend-八im-=sfudenf sc八void main()宀char ch八void menu()八menu。八 cinvvch 八wh=e(ch'ilQ)system("cls");

40、switch(ch)case '1':stu 、 set();break;case '2':stu 、 add();break;case '3':stu 、 del();break;case '4':stu 、 change();break;case '5':stu 、 search();break;case '6':stu 、 display();break;case '0':cout<<" 退出系统 !"break; default:cout<<" 没有此选项! "<<endl;break;menu();cin>>ch;/ 菜单void menu()cout<<"cout<<"*"<<endl;*"<<endl;cout<<"* 欢迎使用本人员信息管理系统*"<<endl;cout<<"*"<<endl;cout<<""<<endl;c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论