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

下载本文档

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

文档简介

1、面向对象程序设计课程设计报告 同学录管理系统 杨敬周 计算101 题 目班 级姓 名 学 号2011年7月1日青岛科技大学信息科学技术学院计算机软件教研室同学录管理系统详细设计说明书1. 项目设计背景:2. 项目设计目的: 通过设计一个同学录管理系统,进一步熟悉C+中类的概念、基本知识和技能,类的封装、继承的实现方式。掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C+的理解与Visual C+环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。3.

2、 项目需求分析以本班的同学的具体数据为背景,设计一个本班同学同学录,要求如下:(1) 录入信息,必须包括:姓名,性别,电话,家庭地址,邮编,E-mail等基本信息;(2)修改信息,包括插入一条或多条信息,修改或者删除某人的信息;(3)查询信息,可以按姓名,家庭住址,性别等多种方式查询;(4)显示所有信息 ;4. 概要设计 同学录管理系统关闭通讯录查询同学修改信息显示所有同学删除信息添加同学 数据结构及各模块分析:1.设计类,对象及基本数据类型:创建一个Classmates类,它有五个私有数据成员:string name;姓名string address;地址string number;电话号码

3、string post; 邮编string email E-mailstring qq; QQ号码包含七个公有成员函数:功能如下:char diaplay();首页void add_person();添加同学void del_person();删除同学void show_all(); 显示所有同学void alter();修改信息void inquiry();查询同学void save_new();保存新增加的同学在主函数main()之中,.Classmates obj; 创建名为obj的对象结构体:struct studentClassmates object; object对象作为结构体s

4、tudent的一个成员student *prior;定义一个指向前驱的结构体指针student *next;定义一个指向后继的结构体指针;该结构体是在alter()修改函数中用来处理相关信息的修改.字符串变量: str,record;字符变量: choose;布尔型变量: flag;数据保存方式以及格式:该同学录管理系统将把输入的人员信息保存为pClassmates.txt 文本文件,在文件读取时系统将会把该文件中相关信息读出,并在屏幕上显示出相关信息.2.实现各模块功能的相应程序:1.界面:display()system("cls");cout<<endl;c

5、out<<"tt-. fflush(stdin);return choose;添加同学:add_person()cout<<endl<<"根据下面 . .save_new()ofstream outData("pClassmates.txt", ios:app);if(!outData) outData.close();cout<<endl<<"新同学信息已经保存好!"<<endl<<endl;system("pause");删除同

6、学信息del_person()ofstream outData("temp.txt", ios:out); cout<<endl<<"这个人的信息已经从你的同学录中删除!"<<endl<<endl;system("pause");显示所有同学信息:show_all()ifstream inData("pClassmates.txt",ios:in); cout<<"所有同学信息已经全部显示出来!"<<endl;system(

7、"pause");修改同学信息alter()ifstream inData("pClassmates.txt", ios:in); cout<<endl<<"信息已经修改完成!"<<endl<<endl;system("pause");查询同学信息select()ifstream inData("pClassmates.txt",ios:in); system("pause");5. 详细设计 详细功能如下:A,添加:系统将提示

8、用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名,电话号码,QQ号,邮箱,邮编,地址.B,删除:首先由用户输入要删除的人员的姓名或者电话号码,然后调用删除函数,删除该人员的所有相关资料.C,显示所有人员信息:该功能将显示已经保存的所有人员的姓名,电话,QQ号,邮编及地址.D,修改:首先由用户输入要修改的人员姓名或者电话号码,然后系统用修改函数查找,显示该名同学的资料,然后系统提示用户输入需要修改的人员的相关信息.并用双向链表来实现修改功能E,查询:可由用户输入要查找的人员姓名或电话号码,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.F,退出系统关闭同学录

9、管理系统.菜单用于选择各项功能:其中包括:.a:添加新同学; .b:删除同学;.c:显示所有人员信息;.d:修改人员信息;.e: 查询同学; .f:关闭同学录.采用面向对象的程序设计方法,a,b,c,d,e,这五项菜单都调用一个函数来实现. void Classmates:alter() ifstream inData("pClassmates.txt", ios:in); /打开文件pClassmates.txt,进行读操作 if(!inData)/判断文件打开是否成功 cout<<endl<<"对不起不能打开文件!"<&

10、lt;endl<<endl; /如果打开失败,输出 “对不起不能打开文件!” system("pause");/屏幕暂停 return; string sign;/定义字符串变量sign cout<<endl<<"请输入你想要修改的同学的姓名或电话号码:" cin>>sign;/输入变量sign fflush(stdin);/清空缓冲区 record *H=new record;/新建结构体指针变量H,并为其分配空间 record *p=H;/使p指针指向指针H record *q=H;/使q指针也指向指针

11、H bool flag=true;/定义布尔型变量flag. while(inData>>p->>>p->object.number>>p->object.qq >>p->object.post>>p->object.address)/读取文件中一个人的信息 p->next=new record; /建立双向链表 p=p->next; p->prior=q; q->next=p; q=p; p->next=NULL;/使p的next成员指向NULL. i

12、nData.close();/关闭pClassmates.txt文件 p=H;/使指针变量P指向结构指针H的头节点 while(p)/当p不为空时 if(p->=sign)|(p->object.number=sign)/判断输入是否为空. if(flag) cout<<endl<<"你想修改你同学的信息如下:"<<endl<<endl; cout<<setiosflags(ios:left)<<setw(17) <<p-><

13、;<""<<setw(16)<<p->object.number<<" "<<setw(18)<<p->object.qq <<" "<<setw(14)<<p->object.post<<""<<setw(20)<<p->object.address<<endl;/输出要修改的人的信息 flag=false; cout<<endl

14、<<"请根据下面提示修改信息 : "<<endl; cout<<"姓名 :" ; cin>>p->; fflush(stdin); cout<<"电话号:" cin>>p->object.number; fflush(stdin); cout<<"QQ :" cin>>p->object.qq; fflush(stdin); cout<<"邮编 :"

15、 cin>>p->object.post; fflush(stdin); cout<<"地址 :" cin>>p->object.address; fflush(stdin); break;/根据提示进行修改 p=p->next;/使结构体指针p指向该指针的末尾 if(flag) cout<<endl<<"你的同学录中没有你找的联人!"cout<<endl<<endl; system("pause"); return; else of

16、stream out("pClassmates.txt",ios:out); /打开文件pClassmates.txt,进行写操作 if (!out)/判断文件打开是否成功打开 cout <<endl <<"对不起!不能打开文件!" <<endl; system("pause"); return; p=H; /使结构体指针p指向被修改的人的记录的首地址. while(p)/如果p不为空,则执行以下语句 out<<setiosflags(ios:left)<<setw(17)&

17、lt;<p-> <<" "<<setw(16)<<p->object.number <<" "<<setw(18)<<p->object.qq <<" "<<setw(14)<<p->object.post <<" "<<setw(20)<<p->object.address<<endl;将修改后的信息保存到原来位置 p=p-

温馨提示

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

评论

0/150

提交评论