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

下载本文档

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

文档简介

1、-. z.中南大学本科生课程设计(实践)任务书、设计报告(C+程序设计)题 目学生管理系统学生*蔡云伟指导教师李大扬学 院材料科学与工程专业班级材料国际1401班学生*0605140118计算机根底教学实验中心2015年 6 月 4 日目 录 TOC o 1-3 h z u HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527825 一、程序设计目的 PAGEREF _Toc359527825 h 1 HYPERLINK file:/D:用户目录我的文档Ten

2、cent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527826 二、程序功能介绍 PAGEREF _Toc359527826 h 1 HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527827 三、程序设计 PAGEREF _Toc359527827 h 1 HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobile

3、Filec+程序设计报告.doc l _Toc359527828 1程序构造 PAGEREF _Toc359527828 h 1 HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527829 2模块说明 PAGEREF _Toc359527829 h 1 HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527830 四、调试与分析

4、 PAGEREF _Toc359527830 h 1 HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527831 1程序调试过程 PAGEREF _Toc359527831 h 1 HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527832 2程序的缺乏 PAGEREF _Toc359527832 h 1 HYPERLINK

5、file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527834 五课程设计总结 PAGEREF _Toc359527834 h 1 HYPERLINK file:/D:用户目录我的文档Tencent%20Files2723937344FileRecvMobileFilec+程序设计报告.doc l _Toc359527835 参考文献 PAGEREF _Toc359527835 h 1人员信息管理系统摘要 通过设计程序实现对人员的快速信息化管理关键词 输入输出,数据化,智能查询一 程

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

7、me、string se*、string politic、string address,分别表示编号,年龄,性别,出生年月,地址,等。公有成员函数包括:set( ) ,add( ) ,del( ) ,change( ) ,research( ) ,show( ) ,分别用来实现对人员信息的数据初始录入、增加数据、删除数据、修改数据、查询数据、显示所有数据功能。然后定义了一个menu( ) 菜单函数,使功能菜单显示在运行窗口以提示用户如何进展操作。主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数。1程序构造 构造框图信息管理系统信息输入信息删除信息

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

9、明1、set函数,初始化信息,第一次对信息的录入。内容包括输入编号、性别、年龄、地址、电子、出生年月。首先定义可以存信息总量为200。然后从1开场依次录入相应个数人员的信息。当人员*为“0”时停顿输入。2、change();函数,修改*人员信息,选择要修改人员信息的对象,即第k个数据,然后依次对int numk;stringnamek,se*k,agek,numberk,addressk,e_mailk,birthk等数据进展修改,完毕修改后,系统将提示“已完成修改。3、add函数,添加人员信息,以追加的方式录入信息,直接将信息追加到以前文件的末尾。具体操作依次输入相应的数据,并且追加到之前的

10、文件中去。完成后系统将进展提示。4、del函数,删除人员信息,选择要删除的信息,系统将进展将数组储存的数据取出到文件中的操作。5、menu菜单函数。菜单函数将对系统使用者进展提示,显示内容为系统的功能以及各功能相对应的数字键。例如,在菜单下输入“4”,系统将进入信息修改界面,并且出现“你想修改第几个数据的提示。输入“0”可返回。6)、search函数,查询人员信息,查询人员信息可以通过编号和*两种方式进展。在此系统使用了选择语句功能,输入“a进入编号查询,输入“b则进入*查询,输入其他内容系统将进展提示“没有此选项。操作完成后,系统将显示该名人员的全部信息。(7)、display函数,显示全部

11、人员的所有信息。(8)、switch函数,程序主函数。使用者在对主函数进展相应操作后,该函数将调用上述函数,case“1”至“6”分别对应信息的输入、添加、删除、修改、查询和显示功能。Case“0”对应功能为中止当前操作。工作进程22232425262728293012蔡云伟分配工作主函数以及声明调试添加文件主界面的设计调试添加、显示、删除文件调试修改文件整合全部程序及初步调试最终调试及辩论*嘉雪初始化文件显示文件添加文件删除文件修改文件四 调试与分析1程序调试过程:所谓程序调试是指对程序的查错和排错。我们调试程序经过以下几个步骤: 先进展人工检查。在程序以后,我们对程序进展人工检查,发现程序

12、设计人员由于疏忽而造成的多数错误。为了更有效地进展人工检查,我们所编的程序力求做到以下几点A、应当采用构造化程序方法编程B、并尽可能多加注释,以帮助理解每段程序的作用C、在编写复杂的程序时不将全部语句都写在main函数中,而多利用函数,用一个函数来实现一个单独的功能。 2在人工检查无误后,进展上机调试。在编译时给出语法错误的信息,根据提示的信息具体找出程序中出错之处并改正之。并注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找。3在改正语法错误后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析,看

13、它是否符合要求。 4运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下方法A、将程序与流程图仔细对照,如果流程图是正确的话,程序写错了,是很容易发现的。 B、 如果实在找不到错误,可以采用“分段检查的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,往下检查。直到找到在哪一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区,就可能发现错误所在。总之,程序调试是一项细致、较为繁琐的工作,需要下功夫,动脑子,善于累积经历。2程序的缺乏本程序设计存在的缺乏在于:存储信息时会会出现以下问题:1在程序设计时,由于将数据定义为字符串等

14、操作,在其中需要使用到循环语句时,会出现一些小问题,如系统无法成功提取相应组数据。2添加或修改信息时,之前已储存的信息可能会被新进信息所覆盖,而出现无法调用之前的数据的情况。五 课程设计总结经过了一个学期的学习和上机实践,使我们对C+语言有了更深的认识和了解。通过对本程序的编写,我们根本掌握了软件的运用,同时也学会了如何分析设计调试等过程中遇到的问题,并耐心细心对待问题,一步步去解决它。学会了如何将繁杂的工作细化处理,合理分配到每个人。在共同编写程序的过程中,我们发扬团队合作精神,一起查阅资料编写代码,探讨编程方法和技巧,相互学习。当然设计中还遇到很多棘手的技术性问题,面对这些以我们自身能力无

15、法解决的问题,我们积极寻求其他同学还有教师的帮助,最终完成了设计。总的来说,我们运用了自己的知识,凭借团队的力量完成了理论到实践的结合,使我们受益良多,同时激发了我们日后深入学习C+语言的兴趣。参考文献1 C+语言程序设计第三版,*莉,清华大学,2004 2C+语言程序设计案例教程,*莉,清华大学,20053C+程序设计教程,钱能主编,清华大学,1999.4 4C+程序设计,谭浩强,清华大学,20045C+程序设计实践指导,谭浩强,清华大学 6C+程序设计课程设计,*振安,机械工业,2004.8程序代码:#include#include#include#includeusing namespa

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

17、il,age,birth;int student:num=110;student:student() /初始化文件int student:CountLines(char *filename)ifstream ReadFile;int n=0;char line512;string temp;ReadFile.open(filename,ios:in);/ios:in 表示以只读的方式读取文件if(ReadFile.fail()/文件翻开失败:返回0 return 0;else/文件存在while(getline(ReadFile,temp) n+; return n;ReadFile.clos

18、e();void student:set()int i;string setname,setse*,setnumber,setaddress,sete_mail,setage,setbirth;ofstream outfile;outfile.open(student.t*t,ios:out); /翻开文件if(!outfile)cerr open errorendl; e*it(1);/依次录入相应个数的人员信息for(i=0;iM;i+)cout当*输入为0时,停顿输入!endl;cout请输入*:setname;if(setname=0) break;if(setname!=0)num+

19、; outfilenum ;outfilesetname ; cout请输入性别:setse*; outfilesetse* ;cout请输入年龄:setage; outfilesetage ;cout请输入:setnumber; outfilesetnumber ; cout请输入住址:setaddress; outfilesetaddress ;cout请输入:sete_mail; outfilesete_mail ;cout请输入出生年月:setbirth; outfilesetbirthendl;outfile.close(); /关闭文件/添加文件void student:add()

20、string addname,addse*,addnumber,addaddress,adde_mail,addbirth,addage;/以追加的方式录入信息,直接将信息追加到以前文件的末尾ofstream outfile(student.t*t,ios:app);if(!outfile) cerr open errorendl; e*it(1); N=N+1;/依次输入相应的数据,并且追加到之前的文件中去cout请输入您要添加的数据endl; num+; outfilenum ;cout请输入*:addname;outfileaddname ;cout请输入性别:addse*;outfil

21、eaddse* ;cout请输入年龄:addage;outfileaddage ;cout请输入:addnumber;outfileaddnumber ;cout请输入住址:addaddress;outfileaddaddress;cout请输入:adde_mail;outfileadde_mail ;cout请输入出生年月:addbirth;outfileaddbirthendl;outfile.close();cout已添加成功!endl;/删除文件void student:del()N=CountLines(student.t*t);int k,i;int numM;string nam

22、eM,se*M,ageM,numberM,addressM,e_mailM,birthM;ifstream infile(student.t*t,ios:in);if(!infile)cerr open errorendl;e*it(1);cout=endl;cout编号性别年龄住址出生年月endl;for(i=0;inumi;coutnamei;couttse*i;couttagei;couttnumberi;couttaddressi;coutte_maili;couttbirthi;couttbirthiendl;cout=endl;cout你想删除第几个?k;k=k-1;infile.

23、close();ofstream outfile(student.t*t,ios:out);if(!outfile)cerr open errorendl; e*it(1); /退出程序/将数组存取的信息输出到文件中去for(i=0;iN;i+)if(i!=k)outfilenumi ;outfilenamei ;outfilese*i ;outfileagei ;outfilenumberi ;outfileaddressi ;outfilee_maili ;outfilebirthi endl;outfile.close();N=N-1;cout已删除成功!endl;/修改文件void s

24、tudent:change()N=CountLines(student.t*t);int i,k;int numM;string nameM,se*M,numberM,addressM,ageM,e_mailM,birthM;ifstream infile(student.t*t,ios:in); if(!infile)cerr open errorendl;e*it(1);cout=endl;cout编号性别年龄住址出生年月endl;for(i=0;inumi;coutnamei;couttse*i;couttagei;couttnumberi;couttaddressi;coutte_ma

25、ili;couttbirthi;couttbirthiendl;cout=endl;infile.close();ofstream outfile(student.t*t,ios:out);if(!outfile) cerr open errorendl; e*it(1); cout你想修改第几个数据k;k=k-1;if(k=N)cout请输入新的数据:endl;cout请输入编号:num k;cout请输入*:namek;cout请输入性别:se*k;cout请输入年龄:agek;cout请输入:numberk;cout请输入住址:addressk;cout请输入:e_mailk;cout请

26、输入出生年月:birthk;for(i=0;i=N;i+) outfilenumi ;outfilenamei ;outfilese*i ;outfileagei ;outfilenumberi ;outfileaddressi ;outfilee_maili ;outfilebirthiendl;outfile.close();cout已修改成功!endl;elsecout没有该学生endl;/查询文件void student:search()N=CountLines(student.t*t);int i,n,w=0,numM,aM;char ch;string searchname,nam

27、eM,se*M,ageM,numberM,addressM,bM7,e_mailM,birthM; couta.按编号查找 b.按*查找endl;ifstream infile(student.t*t,ios:in); if(!infile)cerr open errorendl;e*it(1);for(i=0;inumi;ai=numi;infilenamei;bi0=namei;infilese*i;bi1=se*i;infileagei;bi2=agei;infilenumberi;bi3=numberi;infileaddressi;bi4=addressi;infilee_maili

28、;bi5=e_maili;infilebirthi;bi6=birthi;cout请输入a或者b!ch; if(ch=a)cout请输入编号!n;for(i=0;iN;i+)if(ai=n)w=1;cout=endl;cout编号性别年龄住址出生年月endl;coutai; couttbi0; couttbi1; couttbi2; couttbi3; couttbi4; couttbi5; couttbi6endl;cout=endl;if(w=0) cout无此人信息!endl;else if(ch=b)cout请输入*!searchname;for(i=0;iN;i+)if(namei=searchname)w=1;cout=endl;cout编号性别年龄住址出生年月endl; coutai; couttbi0; couttbi

温馨提示

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

评论

0/150

提交评论