C++课程设计同学录设计报告.docx
- 文档编号:16926134
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:13
- 大小:42.85KB
C++课程设计同学录设计报告.docx
《C++课程设计同学录设计报告.docx》由会员分享,可在线阅读,更多相关《C++课程设计同学录设计报告.docx(13页珍藏版)》请在冰点文库上搜索。
C++课程设计同学录设计报告
面向对象程序设计
课程设计报告
同学录管理系统
杨敬周
计算101
题目
班级
姓名
学号
2011年7月1日
同学录管理系统详细设计说明书
1.项目设计背景:
2.项目设计目的:
通过设计一个《同学录管理系统》,进一步熟悉C++中类的概念、基本知识和技能,类的封装、继承的实现方式。
掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用:
逐步熟悉程序设计的方法,并养成良好的编程习惯。
3.项目需求分析
以本班的同学的具体数据为背景,设计一个本班同学同学录,要求如下:
(1)录入信息,必须包括:
姓名,性别,电话,家庭地址,邮编,E-mail等基本信息;
(2)修改信息,包括插入一条或多条信息,修改或者删除某人的信息;
(3)查询信息,可以按姓名,家庭住址,性别等多种方式查询;
(4)显示所有信息;
4.概要设计
同学录管理系统
数据结构及各模块分析:
1.设计类,对象及基本数据类型:
创建一个Classmates类,它有五个私有数据成员:
stringname;姓名
stringaddress;地址
stringnumber;电话号码
stringpost;邮编
stringemailE-mail
stringqq;QQ号码
包含七个公有成员函数:
功能如下:
chardiaplay();首页
voidadd_person();添加同学
voiddel_person();删除同学
voidshow_all();显示所有同学
voidalter();修改信息
voidinquiry();查询同学
voidsave_new();保存新增加的同学
在主函数main()之中,
.Classmatesobj;创建名为obj的对象
结构体:
structstudent
{
Classmatesobject;object对象作为结构体student的一个成员
student*prior;定义一个指向前驱的结构体指针
student*next;定义一个指向后继的结构体指针
};
该结构体是在alter()修改函数中用来处理相关信息的修改.
字符串变量:
str,record;
字符变量:
choose;
布尔型变量:
flag;
数据保存方式以及格式:
该同学录管理系统将把输入的人员信息保存为pClassmates.txt文本文件,在文件读取时系统将会把该文件中相关信息读出,并在屏幕上显示出相关信息.
2.实现各模块功能的相应程序:
1.界面:
display()
{
system("cls");
cout< cout<<"\t\t------------------------------ …..…… fflush(stdin); returnchoose; } 添加同学: add_person() { cout< …….…… .save_new() { ofstreamoutData("pClassmates.txt",ios: : app); if(! outData) …… outData.close(); } cout< ! ! "< system("pause"); } 删除同学信息 del_person() { ofstreamoutData("temp.txt",ios: : out); …… cout< ! ! "< } system("pause"); } 显示所有同学信息: show_all() { ifstreaminData("pClassmates.txt",ios: : in); …… cout<<"所有同学信息已经全部显示出来! ! ! "< } system("pause"); } 修改同学信息 alter() { ifstreaminData("pClassmates.txt",ios: : in); …… cout< ! ! "< system("pause"); } } 查询同学信息 select() { ifstreaminData("pClassmates.txt",ios: : in); …… } system("pause"); } 5.详细设计 详细功能如下: A,添加: 系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名,电话号码,QQ号,邮箱,邮编,地址. B,删除: 首先由用户输入要删除的人员的姓名或者电话号码,然后调用删除函数,删除该人员的所有相关资料. C,显示所有人员信息: 该功能将显示已经保存的所有人员的姓名,电话,QQ号,邮编及地址. D,修改: 首先由用户输入要修改的人员姓名或者电话号码,然后系统用修改函数查找,显示该名同学的资料,然后系统提示用户输入需要修改的人员的相关信息.并用双向链表来实现修改功能 E,查询: 可由用户输入要查找的人员姓名或电话号码,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息. F,退出系统 关闭同学录管理系统. 菜单用于选择各项功能: 其中包括: .a: 添加新同学; .b: 删除同学; .c: 显示所有人员信息; .d: 修改人员信息; .e: 查询同学; .f: 关闭同学录. 采用面向对象的程序设计方法,a,b,c,d,e,这五项菜单都调用一个函数来实现. voidClassmates: : alter() { ifstreaminData("pClassmates.txt",ios: : in); //打开文件pClassmates.txt,进行读操作 if(! inData)//判断文件打开是否成功 { cout< ! ! "< //如果打开失败,输出“对不起不能打开文件! ! ! ” system("pause");//屏幕暂停 return; } stringsign;//定义字符串变量sign cout< 的姓名或电话号码: "; cin>>sign;//输入变量sign fflush(stdin);//清空缓冲区 record*H=newrecord; //新建结构体指针变量H,并为其分配空间 record*p=H;//使p指针指向指针H record*q=H;//使q指针也指向指针H boolflag=true;//定义布尔型变量flag. while(inData>>p->object.name>>p->object.number>> p->object.qq>>p->object.post>>p->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)) //判断输入是否为空. { if(flag) { cout< "< cout< : left)< < < < < < //输出要修改的人的信息 flag=false; } cout< "< cout<<"姓名: "; cin>>p->object.name; fflush(stdin); cout<<"电话号: "; cin>>p->object.number; fflush(stdin); cout<<"QQ: "; cin>>p->object.qq; fflush(stdin); cout<<"邮编: "; cin>>p->object.post; fflush(stdin); cout<<"地址: "; cin>>p->object.address; fflush(stdin); break; //根据提示进行修改 } p=p->next;//使结构体指针p指向该指针的末尾 } if(flag) { cout< ! ! "; cout< system("pause"); return; } else { ofstreamout("pClassmates.txt",ios: : out); //打开文件pClassmates.txt,进行写操作 if(! out)//判断文件打开是否成功打开 { cout< ! ! 不能打开文件! ! ! ! "< system("pause"); return; } p=H;//使结构体指针p指向被修改的人的记录的首地址. while(p)//如果p不为空,则执行以下语句 { out< : left)< <<""< <<""< <<""< <<""< 将修改后的信息保存到原来位置 p=p->next;//使用p指针指向其本身的末尾 } out.close();//关闭pClassmates.txt文件 cout< ! ! "< system("pause");//屏幕暂停 } } 6.设计总结 参考文献: 《C++程序开发深入浅出》 参考网站: Google,XX,csdn等等 在开发当中,遇到问题是正常的,关键是怎样解决问题。 不要因为问题难解决就放弃了,如果那样,你就很难完成一件事情了!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 同学录 设计 报告