您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > C++课程设计_同学录设计报告
1面向对象程序设计课程设计报告班级计算101姓名杨敬周青岛科技大学信息科学技术学院计算机软件教研室题目同学录管理系统学号10080101112011年7月1日2同学录管理系统详细设计说明书1.项目设计背景:2.项目设计目的:通过设计一个《同学录管理系统》,进一步熟悉C++中类的概念、基本知识和技能,类的封装、继承的实现方式。掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。3.项目需求分析以本班的同学的具体数据为背景,设计一个本班同学同学录,要求如下:3(1)录入信息,必须包括:姓名,性别,电话,家庭地址,邮编,E-mail等基本信息;(2)修改信息,包括插入一条或多条信息,修改或者删除某人的信息;(3)查询信息,可以按姓名,家庭住址,性别等多种方式查询;(4)显示所有信息;4.概要设计同学录管理系统数据结构及各模块分析:1.设计类,对象及基本数据类型:创建一个Classmates类,它有五个私有数据成员:添加同学删除信息显示所有同学修改信息查询同学关闭通讯录4stringname;姓名stringaddress;地址stringnumber;电话号码stringpost;邮编stringemailE-mailstringqq;QQ号码包含七个公有成员函数:功能如下:chardiaplay();首页voidadd_person();添加同学voiddel_person();删除同学voidshow_all();显示所有同学voidalter();修改信息voidinquiry();查询同学voidsave_new();保存新增加的同学在主函数main()之中,.Classmatesobj;创建名为obj的对象结构体:structstudent5{Classmatesobject;object对象作为结构体student的一个成员student*prior;定义一个指向前驱的结构体指针student*next;定义一个指向后继的结构体指针};该结构体是在alter()修改函数中用来处理相关信息的修改.字符串变量:str,record;字符变量:choose;布尔型变量:flag;数据保存方式以及格式:该同学录管理系统将把输入的人员信息保存为pClassmates.txt文本文件,在文件读取时系统将会把该文件中相关信息读出,并在屏幕上显示出相关信息.2.实现各模块功能的相应程序:1.界面:display(){6system(cls);coutendl;cout\t\t------------------------------…..……fflush(stdin);returnchoose;}添加同学:add_person(){coutendl根据下面…….…….save_new(){ofstreamoutData(pClassmates.txt,ios::app);if(!outData)……outData.close();7}coutendl新同学信息已经保存好!!!endlendl;system(pause);}删除同学信息del_person(){ofstreamoutData(temp.txt,ios::out);……coutendl这个人的信息已经从你的同学录中删除!!!endlendl;}system(pause);}显示所有同学信息:show_all(){8ifstreaminData(pClassmates.txt,ios::in);……cout所有同学信息已经全部显示出来!!!endl;}system(pause);}修改同学信息alter(){ifstreaminData(pClassmates.txt,ios::in);……coutendl信息已经修改完成!!!endlendl;system(pause);}}查询同学信息select()9{ifstreaminData(pClassmates.txt,ios::in);……}system(pause);}5.详细设计详细功能如下:A,添加:系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名,电话号码,QQ号,邮箱,邮编,地址.B,删除:首先由用户输入要删除的人员的姓名或者电话号码,然后调用删除函数,删除该人员的所有相关资料.C,显示所有人员信息:该功能将显示已经保存的所有人员的姓名,电话,QQ号,邮编及地址.10D,修改:首先由用户输入要修改的人员姓名或者电话号码,然后系统用修改函数查找,显示该名同学的资料,然后系统提示用户输入需要修改的人员的相关信息.并用双向链表来实现修改功能E,查询:可由用户输入要查找的人员姓名或电话号码,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.F,退出系统关闭同学录管理系统.菜单用于选择各项功能:其中包括:.a:添加新同学;.b:删除同学;.c:显示所有人员信息;.d:修改人员信息;.e:查询同学;.f:关闭同学录.11采用面向对象的程序设计方法,a,b,c,d,e,这五项菜单都调用一个函数来实现.voidClassmates::alter(){ifstreaminData(pClassmates.txt,ios::in);//打开文件pClassmates.txt,进行读操作if(!inData)//判断文件打开是否成功{coutendl对不起不能打开文件!!!endlendl;//如果打开失败,输出“对不起不能打开文件!!!”system(pause);//屏幕暂停return;}stringsign;//定义字符串变量signcoutendl请输入你想要修改的同学的姓名或电话号码:;cinsign;//输入变量signfflush(stdin);//清空缓冲区record*H=newrecord;//新建结构体指针变量H,并为其分配空间12record*p=H;//使p指针指向指针Hrecord*q=H;//使q指针也指向指针Hboolflag=true;//定义布尔型变量flag.while(inDatap-object.namep-object.numberp-object.qqp-object.postp-object.address)//读取文件中一个人的信息{p-next=newrecord;//建立双向链表p=p-next;p-prior=q;q-next=p;q=p;}p-next=NULL;//使p的next成员指向NULL.inData.close();//关闭pClassmates.txt文件p=H;//使指针变量P指向结构指针H的头节点while(p)//当p不为空时{if((p-object.name==sign)||(p-object.number==sign))13//判断输入是否为空.{if(flag){coutendl你想修改你同学的信息如下:endlendl;coutsetiosflags(ios::left)setw(17)p-object.namesetw(16)p-object.numbersetw(18)p-object.qqsetw(14)p-object.postsetw(20)p-object.addressendl;//输出要修改的人的信息flag=false;}coutendl请根据下面提示修改信息:endl;cout姓名:;cinp-object.name;fflush(stdin);14cout电话号:;cinp-object.number;fflush(stdin);coutQQ:;cinp-object.qq;fflush(stdin);cout邮编:;cinp-object.post;fflush(stdin);cout地址:;cinp-object.address;fflush(stdin);break;//根据提示进行修改}p=p-next;//使结构体指针p指向该指针的末尾}if(flag){15coutendl你的同学录中没有你找的联人!!!;coutendlendl;system(pause);return;}else{ofstreamout(pClassmates.txt,ios::out);//打开文件pClassmates.txt,进行写操作if(!out)//判断文件打开是否成功打开{coutendl对不起!!!不能打开文件!!!!endl;system(pause);return;}p=H;//使结构体指针p指向被修改的人的记录的首地址.while(p)//如果p不为空,则执行以下语句{16outsetiosflags(ios::left)setw(17)p-object.namesetw(16)p-object.numbersetw(18)p-object.qqsetw(14)p-object.postsetw(20)p-object.addressendl;将修改后的信息保存到原来位置p=p-next;//使用p指针指向其本身的末尾}out.close();//关闭pClassmates.txt文件coutendl信息已经修改完成!!!endlendl;system(pause);//屏幕暂停}}6.设计总结参考文献:《C++程序开发深入浅出》参考网站:Google,百度,csdn等等在开发当中,遇到问题是正常的,关键是怎样解决问题。不要因为问题难解决就放弃了,如果那样,你就很难完成一件事情17了!
本文标题:C++课程设计_同学录设计报告
链接地址:https://www.777doc.com/doc-2904396 .html