C++课程设计报告_第1页
C++课程设计报告_第2页
C++课程设计报告_第3页
C++课程设计报告_第4页
C++课程设计报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、c+课程设计 c+课程设计一、 课程设计目的及要求1. 设计目的c+课程设计是教学实践环节中一项重要内容,进行此课程设计旨在:提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势;本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。2. 设计要求学生通讯系统学生通讯系统信息包括:姓名、学号、年龄、性别、家庭住址、联系电话、寝室号等信息。现要求编写程序来完成如下功能:(1) 学生通讯信息的输入(2) 学生通讯信息的删除和修改(3) 学生通

2、讯信息的查询和统计(4) 学生通讯信息的输出显示二、 课程设计具体实现1. 总体设计(1) 系统设计总模块学生通讯系统进入欢迎界面(提示相关操作)录入学生信息查询学生信息显示录入学生信息修改学生信息删除已录入学生信息统计男女生数和总人数选择相应的选项按学号查询学生信息按姓名查询学生信息(2) 主函数流程图主函数欢迎界面运用switch语句提示用户下一步操作调用inp-ut函数调用chazhao函数调用dis-play函数调用cha-nge函数调用all函数调用dele函数做出选择调用student类下的searna函数调用student类下的searno函数2. 详细设计(1)学生信息录入模块

3、主要功能:实现学生信息的录入,并将录入的学生信息存储到硬盘上(以txt文本文档保存)。主要技术: 1.使用一个输出文件流(ofstream),把该流与一个特定的磁盘文件关联起来,通过输入,实现学生信息的磁盘存储,后运用close成员函数关闭这个输出文件流关联的磁盘文件。2.运用do-while语句实现学生信息的连续录入。关键代码:doofstream f1 (wyp.txt,ios_base:app);cout请输入学生信息:endl;coutname;f1nameendl;.f1. close();cout a;while(a=y);代码解释:doofstream f1 (wyp.txt,i

4、os_base:app); /把输出文件流和特定的磁盘文件关联起来cout;/接收键盘输入f1endl;/将接收的信息输出到磁盘文件中存储f1.close() /关闭与文件流相关联的磁盘文件while(.) / do-while 实现连续录入学生信息(2)查询学生信息模块主要功能:通过姓名和学号实现对学生信息的查找。主要技术:1. 调用student类下的chazhao函数 ,chazhao函数运用switch 来选择用学号(嵌套调用student类下searno函数)或是用姓名(嵌套调用student类下searna函数)来查找学生信息;2. student类下的searna和searno函

5、数使用了输入文件流(ifstream),来实现从磁盘文件中输入;3. while 语句实现读取整个关联磁盘文件数据的任务;4. do-while语句实现查找的连续进行。关键代码和代码解释:void student:searna()/按姓名查找 string na1; char m;dobool f=0; cout na1;while(!f2.eof() / 实现该文件的完全读取f2namestudentnosexageaddteleroomno; /磁盘文件数据输入if (na1=name) /找到与之相符的姓名信息后进行显示f=1;cout学生信息显示如下:endl;cout姓名:namee

6、ndl;.cout寝室号:roomnoendl; f2.close(); /关闭输入流文件if(f=0) cout该学生信息尚未录入endl;coutm;coutn;while(m=y);/实现连续按姓名查找 void student:searno()/按学号进行查找 string no; char n; do bool e=0; cout no;while(!f3.eof()f3namestudentnosexageaddteleroomno; /磁盘文件数据输入if (no=studentno) /找到与之相符的学号信息后进行显示if (e=1) break;cout学生信息显示如下:en

7、dl;cout姓名:nameendl;.cout寝室号:roomnoendl;e=1; f3.close(); /关闭输入流文件if(e=0) cout该学生信息尚未录入endl; coutn;coutn; while (n=y);/实现连续用按学号查找(3)学生信息修改模块主要功能:通过学生学号修改学生信息主要技术:运用数组,输入(ifstream)和输出(ofstream)流类,do-while和while语句关键代码和代码解释: student sd100; /声明数组 int o=0; char d; int n,p;bool i=0; /定义波尔型变量 do coutner;whil

8、e(!s1.eof() /实现从磁盘文件的完整输入 o+; sdo.studentnosdo.sexsdo.agesdo.addsdo.telesdo.roomno; if(ner=sdo.studentno) p=o; i=1; /记录所查信息的指向 n=o; s1.close();if(i=1) /查到相应学生后 cout请输入这一学生的新信息:endl; cout ; /输入新的数据 . cout sdp.roomno; ofstream s2(wyp.txt,ios_base:out); o=1; do endlsdo.stude

9、ntnoendlsdo.sexendlsdo.ageendlsdo.addendlsdo.teleendlsdo.roomnoendl; o+; /修改后的学生信息覆盖式写入 while (on);s2.close();/数组指定数据写入的信息已经修改endl;else cout该学生尚未录入!endl; / 未查到相应学生时 显示该信息 coutn;coutd; while (d=y); /通过循环实现学生信息的连续修改(4)删除学生信息模块主要功能:删除相应姓名的学生信息主要技术: 运用数组,输入(ifstream)和输出(ofstream)流类,do-while语

10、句,while语句关键代码和代码解释:void student:dele() student st100; /声明对象数组 . coutna2; int o=0; int p,n,i;ifstream f6 (wyp.txt,ios_base:in); while(!f6.eof()o+; sto.studentnosto.sexsto.agesto.addsto.telesto.roomno;/从文件中输入,存放到内存中if(na2=) p=o; i=1; /记录查到的该学生的指向 n=o; f6.close(); if(i=1) ofstream f7(

11、wyp.txt,ios_base:out); o=1; /重新赋值do if(o!=p) /要删除的学生信息不再写入磁盘文件 endlsto.studentnoendlsto.sexendlsto.ageendlsto.addendlsto.teleendlsto.roomnoendl; /覆盖式写入相应磁盘文件中 o+;else o+; while (on); f7.close(); cout 学生na2的信息已删除!endl;else cout 对不起,学生 na2尚未被录入!endl; / 未查到相应学生时 显示该信息 coutnamestudentnosexagea

12、ddteleroomno;if(sex=女) x+; if(sex=男) y+; /遇到相应字符时,x y 对应相加 f5.close();cout女生为x个,男生为y个,总人数是x+y个.endl; /显示统计结果3. 程序调试所遇到的问题 主函数中欢迎界面输入除1-6的其他数或字符是进入死循环,通过更改选择项的类型后解决; 调用display函数显示所有学生信息时,显示的最后一行学生信息缺少字符型数据,后通过运用数组解决问题; 在没有录入学生信息时,选择2-5项会发生系统错误,后加入提示进行操作; 调用change 函数进行学生信息修改时,; 调用dele函数进行学生信息删除时,输入为录入

13、的学生信息也提示学生信息删除,更改if条件语句后解决;三、 源代码#include #include #include #include using namespace std;class student protected :string name; /姓名 string studentno ; /学号string age; /年龄string add; /地址string tele; /电话string sex; /性别 string roomno; /寝室号public :void input();void chazhao(); void searna(); void searno();

14、void display();void dele();void all();void change();void student:input() char a;doofstream f1 (wyp.txt,ios_base:app);cout请输入学生信息:endl;coutname;f1nameendl;coutstudentno;f1studentnoendl;coutsex;f1sexendl;coutage;f1ageendl;coutadd;f1addendl; couttele;f1teleendl;coutroomno;f1roomnoendl;f1. close();cout

15、a;while(a=y);void student:display()int o=0;int i;student so100; ifstream f4 (wyp.txt,ios_base:in);while(!f4.eof()o+; soo.studentnosoo.sexsoo.agesoo.addsoo.telesoo.roomno; i=o; o=1; docout姓名:;cout 学号:soo.studentno;cout 性别:soo.sex;cout 年龄:soo.age;cout 家庭住址:soo.add;cout 电话:soo.tele;co

16、ut 寝室号:soo.roomnoendl;o+; while(oi); void student:chazhao()char k;int j=1; do coutnntt-*-*-*-*-*-*查找功能子菜单-*-*-*-*-*-*n; couttt* *n; couttt* 1、按照姓名查找 *n; couttt* 2、按照学号查找 *n; couttt* 3、退出查找 *n; couttt* *n; couttt-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*nn; coutk; switch(k) case 1: student:searna(); /调用按

17、姓名查找函数 break; case 2: student :searno(); /调用按姓名查找函数 continue;case 3: j=0;break;default: cout您的输入有误,请重新输入!endl;break; while(j!=0); void student:searna() string na1; char m;dobool f=0; cout na1;while(!f2.eof()f2namestudentnosexageaddteleroomno;if (na1=name)f=1;cout学生信息显示如下:endl;cout姓名:nameendl;cout学号:

18、studentnoendl;cout性别:sexendl;cout年龄:ageendl;cout家庭住址:addendl;cout电话:teleendl;cout寝室号:roomnoendl; f2.close();if(f=0) cout该学生信息尚未录入endl;coutm;coutn;while(m=y); void student:searno() string no; char n; do bool e=0; cout no;while(!f3.eof()f3namestudentnosexageaddteleroomno;if (no=studentno)if (e=1) brea

19、k;cout学生信息显示如下:endl;cout姓名:nameendl;cout学号:studentnoendl;cout性别:sexendl;cout年龄:ageendl;cout家庭住址:addendl;cout电话:teleendl;cout寝室号:roomnoendl;e=1; f3.close();if(e=0) cout该学生信息尚未录入endl; coutn;coutn; while (n=y); void student:dele() student st100; char h; string na2; do coutna2; int o=0; int p,n; bool i=

20、0;ifstream f6 (wyp.txt,ios_base:in);while(!f6.eof()o+; sto.studentnosto.sexsto.agesto.addsto.telesto.roomno;if(na2=) p=o; i=1; n=o; f6.close();if(i=1) ofstream f7(wyp.txt,ios_base:out); o=1;do if(o!=p) endlsto.studentnoendlsto.sexendlsto.ageendlsto.addendlsto.teleendlsto.

21、roomnoendl; o+;else o+; while (on); f7.close(); cout 学生na2的信息已删除!endl;else cout 对不起,学生 na2尚未被录入!endl;coutn; couth; coutnamestudentnosexageaddteleroomno;if(sex=女) x+; if(sex=男) y+; f5.close();cout女生为x个,男生为y个,总人数是x+y个.endl; void student:change() string ner; student sd100; int o=0; char d; int n,p;bool

22、 i=0; do coutner; while(!s1.eof()o+; sdo.studentnosdo.sexsdo.agesdo.addsdo.telesdo.roomno; if(ner=sdo.studentno) p=o; i=1; n=o; s1.close();if(i=1) cout请输入这一学生的新信息:endl; ; coutsdp.studentno; coutsdp.sex; coutsdp.age; coutsdp.add; coutsdp.tele; coutsdp.roomno; ofstream s2(wyp.txt

23、,ios_base:out); o=1; do endlsdo.studentnoendlsdo.sexendlsdo.ageendlsdo.addendlsdo.teleendlsdo.roomnoendl; o+; while (on);s2.close();的信息已经修改endl;else cout该学生尚未录入!endl; coutn;coutd; while (d=y); int main()char xuanze; student stu;cout.fill(*); /设置填充符号cout.width(50);cout / 欢迎进入学生信

24、息管理系统 /;cout.fill(*);cout.width(20);cout endl; for (;) couttt 请选择以下操作:n; couttt 1.录入学生信息 n;coutt* 2.查询学生信息* n;coutt*3.显示所有录入信息*n;coutt*4.修改学生信息 *n;coutt* 5.删除学生信息 *n;coutt* 6.统计录入男女生数和总人数* n ; coutt* 0.退出程序 *n ;cout-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*n;cout注意!

25、请确保录入学生信息后,在进行26的操作。endl;cout-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*n;coutxuanze; switch (xuanze) case 0: exit(0); case 1: stu.input();coutn; break; case 2: stu.chazhao();coutn;break;case 3: stu.display();coutn;break;case 4: stu.change();coutn;break;case 5: stu.dele();coutn;break;case 6: stu.all();coutn;break;default: cout您的输入有误,请重新输入!endl;break;return 0;四、 心得体会经过三周的课程设计,我有了很多的收获,这种收获不仅仅只是体现在c+这门课程基础知识上的巩固和一些更

温馨提示

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

评论

0/150

提交评论