- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象的程序设计报告
面向对象的程序设计报告
设计题目:
姓名:
系别
专业:
学号:
指导教师:
2014/2/28
问题分析
问题: 编写一个通讯录管理系统。要求包括通讯录建立、增加号码、删除号码、查询号码、修改号码、号码分组等功能,并设计主控菜单和子菜单供用户选择要执行的操作。
实现以下功能:
1) 通讯录编辑(添加、删除);
2) 按不同的项进行查找;
3) 对已存在的通讯录按不同的项排序;
4) 将通讯录写入文件;
5) 从文件读入通讯录。
创建一个链表,每个节点有姓名和号码以及关系三个信息。增加号码操作为增加节点,删除号码操作为删除节点,查找号码为链表的遍历。每个功能以函数的形式出现,由主控菜单控制。并以文件的形式对号码信息进行保存。
详细设计
主函数(main()函数)是通过一个多分支语句(switch(i)语句)实现的。显示菜单函数( displaymenu()函数)显示与用户交互的界面。以下是各个模块实现程序各项功能的函数的详细设计:
1、插入新的记录:insert()函数
定义变量,设计loop模块,模块的功能是用来输入记录:输入姓名、性别、电话号码、地址的信息。用for语句查找是否输入了与原有记录相同的记录,用strcmp 函数比较,if 语句判断,如果输入了重复的记录,提示信息:“此记录已存在,请重新输入!”并且用?goto语句返回到loop,重新输入信息。设计一个a模块:键盘输入一个字符,必须是“Y”“y”“N”“n”,否则重新输入。最后if 语句判断变量的值是否重新输入信息,如果输入的是“Y”或“y”,返回到loop,用户可以输入下一条信息,直到用户输入“N”或“n”返回主界面。每插入一条记录n的值加1。功能的实现见源程序:
2、查找好友的信息search()函数
定义字符型变量c,字符型数组a,定义loop模块,功能:通过键盘输入要查找的信息。首先显示提示信息:“输入你要查找的好友的姓名”然后从键盘输入姓名。For语句循环内嵌if语句,用strcmp 函数查找信息,并且显示该记录的所有信息,并跳出循环。再用for 语句内嵌if语句判断,如果没有查到显示提示信息:“如果没有查到相关语句,是否重新查找(Y/N)?定义abc模块的功能输???一个字符(“Y”或“y”“N”“n”)用来判断是否重新查找。如果输入“Y”或“y”,则用goto语句返回loop重新查找。否则令i的值为n跳出循环。最后返回主界面。
3、显示好友的信息:display()函数
定义整型变量i用来循环输出记录。分别输出每条记录,并输出记录的个数。
4、删除好友信息:del()函数
首先定义字符数组、变量和a、b两个goto标识符。在a模块中用scanf函数输入要删除的好友的姓名,用for循环和if 语来实现对好友的查找,如果找到记录末尾,提示查无此人。在b模块中,用来实现删除功能。先确认是否删除,如果键盘输入Y 或y来确认要删除再执行for循环,通过strcmpy函数把后一条记录复制到前一条记录。进行删除记录后,并把原末尾记录数据赋空字符,按任意键删除,按任意键返回主菜单。
5、修改记录:modify()函数
定义了a、b两个goto标识符。在a模块中,用scanf函数输入要修改人的姓名,用for 循环、if语句及strcmp函数找到该姓名的记录,若到记录末尾提示“查无此人”是否继续重新输入姓名,如果重新输入姓名再用goto语句再执行重新查找。在b模块中,用于修改记录,如果要修改记录则从键盘输入Y或y,用scanf函数来输入新的记录数据来实现修改记录。
6、排序:sort()函数
选择法排序的方法。定义变量i,j,用于循环,定义4个字符型数组,用于替换的中间变量;用两个for循环语句,用strcmp函数比较。按姓名升序排序。比较前一条记录和后一条记录的姓名,如果strcmp函数值大于0,则将这两条记录的所有信息替换,4个字符型数组用作替换的中间变量。最后调用display()(显示结果)显示排序后的结果。
程序编码
#includeiostream.h
#includefstream.h
#includestring.h
struct student
{
char no[13];
char name[20];
char address[100];
char tel_no[12];
char QQ_code[7];
};
class inter
{
private:
student st[35];
public:
void add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[10]);
void del(char n
您可能关注的文档
最近下载
- 移动L1认证传输专业试题汇总(含答案).pdf VIP
- (新版)中移动传输专业L1认证考试复习题库-上(单选题汇总).docx VIP
- 计算机专业(基础综合)模拟试卷3(共456题).pdf VIP
- 项目编号szcg2007041645 项目名称2007年度深圳市储备土地管理.doc
- 离婚登记申请受理回执单民法典版(可直接打印).pdf VIP
- 人教五年级数学上册1.2.2 倍数是小数的实际问题和乘法验算 课时训练.doc VIP
- 光伏电站检修规程(行业标准).docx VIP
- (新版)中移动传输专业L1认证考试复习题库-下(多选题汇总).docx VIP
- 基于大概念的初中音乐单元整体教学设计探索.doc VIP
- 《企业经营数据分析》课件.ppt VIP
文档评论(0)