c++通讯录程序设计文档格式.docx
- 文档编号:17026443
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:25
- 大小:397.52KB
c++通讯录程序设计文档格式.docx
《c++通讯录程序设计文档格式.docx》由会员分享,可在线阅读,更多相关《c++通讯录程序设计文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
2.2系统环境
采用C++语言实现,开发环境为VC++6.0,可以运行在操作系统windows98及以上皆可。
2.3运行要求
能不受限制的录入通讯录信息
界面友好,操作方便,例如删除前需要提示用户是否删除
三概要设计
3.1系统流程设计
根据系统要求,设计如下的系统流程。
3.2系统模块设计
根据系统的功能设计,如下模块
1.主界面模块:
完成系统菜单的显示
2.功能选择模块:
根据用户的选择,完成其相应的功能
(1)通讯录信息录入:
完成用户从界面输入通讯录,保存入系统的功能
(2)通讯录信息修改:
完成用户从界面输入通讯录,在系统中查询定位,并将录入的数据保存入系统的功能
(3)通讯录信息查询:
完成用户从界面输入查询条件,在系统查询符合条件的通讯录信息,并在界面上显示的功能。
(4)通讯录信息导入:
完成用户从界面输入需要导入的文件路径名称,读取该文件的内容,保存入系统,并在界面上显示导入内容的功能。
(5)通讯录信息导出:
完成用户从界面输入需要导出的文件路径名称,将系统中通讯录信息保存入文件中。
(6)通讯录信息删除:
完成用户从界面输入需要的通讯录信息的姓名,并将其从系统中删除。
四详细设计
4.1数据结构设计
根据系统要求,系统中需要保存的数据有通讯录的信息,其结构如下:
数据项名称
数据项系统表示
数据类型
数据长度
备注
姓名
name
字符串
20
地址
address
100
电话
tele
4.2界面设计
1.主界面:
根据系统要求,设计一个字符界面,显示系统的菜单,为了体现友好性,将在每个菜单前显示该菜单项对应的数字用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。
2.输入界面:
在光标下输入通讯录的信息,用空格将信息隔开
3.修改界面:
首先输入通讯录的姓名,显示该通讯录的详细信息,输入修改后的信息,将原来信息修改。
4.删除界面:
输入需要删除的姓名,将其从通讯录中删除
5.导出界面:
输入需要导出的文件路径,将通讯录信息导出到文件。
6.列表显示页面:
将通讯录中所有记录显示,每页显示10条
7.导入页面:
相关功能的整合
8.查询界面:
4.3模块实现
1.主界面实现:
调用cout函数,在屏幕上打印需要显示的字符信息,需要在显示之前调用system(“cls”)函数将前面的界面清空。
对应的实现函数menu_show();
2.功能选择模块实现:
接受从键盘输入的菜单选择,判断并调用相应的功能函数,完成其对应的功能。
实现功能选择。
对应的函数:
menu_select();
(1)通讯录信息录入模块实现:
模块说明:
从键盘接收输入的通讯录信息,在动态存储区中创建通讯录的节点,遍历链表,将其插入到通讯录链表的最后位置。
模块流程:
对应函数:
add(structphone*head)
(2)通讯录信息修改模块实现:
从键盘接收输入的需要修改通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入修改后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
对应函数:
update(structphone*head)
(3)通讯录信息删除模块实现:
从键盘接收输入的需要删除通讯录的姓名,遍历链表,判断节点的姓名是否输入的姓名相等,如果相等,从键盘输入删除后的信息,保存在该节点中,改变标识变量,最后判断标识变量判断是否在链表中找到该姓名的通讯录。
delete(structphone*head)
(4)通讯录信息导入模块实现:
模块流程:
load(structphone*head)
(5)通讯录信息导出模块实现:
模块说明:
save(structphone*head)
(6)通讯录信息查询模块实现:
search(structphone*head)
(7)通讯录信息显示模块实现:
list(structphone*head)
五测试
5.1录入通讯录测试
测试结果:
程序运行出现错误,如下
原因电话输入的长度超过了电话表示的长度
测试结果:
程序运行正常,正确的插入到链表的最后位置
3.测试数据:
输入:
张吴波湖北汽车工业学院8241470425
程序运行不正常,可以将张吴波湖北汽车工业学院,8241470插入到链表的最后位置,但是425不能保存
原因:
使用了scanf(“%s”),将空格作为截止符
5.2修改通讯录测试
测试数据:
在系统中存在4个名称为li的通讯录
测试数据:
在系统中不存在名称为张三的通讯录,输入后,提示姓名不存在,如下图
5.3导入通讯录测试
输入C:
\dd.tst路径(系统中不存在该文件)
提示不能打开文件,不能导入
回车后程序结束
不能打开文件文件使用了exit函数
\data.txt路径(系统中该文件,格式符合程序要求)
提示能将文件中的数据正确导入
查询模块测试:
\data.txt路
提示能将文件中的数据正确查询
删除模块测试
\data.txt路径
提示能将文件中的数据正确删除
六结论及改进设想
此通讯录管理系统的程序开发,其亮点主要是引用了类来宏观调运程序,使得程序简单、明了、可读性强,在程序操作上也比较省事、方便。
通讯录程序无节点,这是一个非常大的不足,急需要改进,但由于时间比较紧,就没有想这部分程序。
其实,这部分程序也就是退出,需要一个好的位置来安放此程序。
通讯录程序是我做的第一个比较大的程序,在专业人士看来这不算什么,但对我来说有很大的意义,他的做出激发着我更好的学好c++,更好的学好专业课。
七心得体会
对第一次用C++应用程序来做这么大课题的我来说,了解C++语言的概念是非常重要的,C++语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构造出模拟现实问题的实体和操作;
编写出的程序具有结构清晰、易于扩充等优良特性,适合于各种应用软件、系统软件的程序设计。
用C++编写的程序可读性好,生成的代码质量高。
所谓C++语言:
是一种使用非常广泛的计算机编程语言。
任何一个优秀的程序,无非有以下几点:
效率高,可读性高,可重用性强,可移植性好。
具体到C++程序,如果做面向对象那块,无非是合理的类的设计,在类中合理安排数据和对数据的处理,信息隐藏的特性等等。
从C++应用程序目前的活跃程度,以及应用现状来说是完全能够肯定C++仍然是软件工业的基础,也不会退出历史舞台的。
我们也能够看到C++的发展非常活跃,对于新技术新思维非常激进,C++仍然广泛受到关注。
八.参考文献
九附录
程序源代码:
#include<
iostream>
string>
iomanip>
fstream>
cstdlib>
intn,m;
usingnamespacestd;
classmsg
{
public:
msg();
//默认构造函数
charinter_face();
//首页
voidadd_person();
//添加联系人
voiddel_person();
//删除联系人
voidshow_all();
//显示所有联系人
voidalter();
//修改信息
voidselect();
//查询联系人
voidsave_new();
//保存新增加的联系人
private:
stringname;
//姓名
stringsex;
//性别
stringnum;
//电话号码
stringad;
//地址
stringrl;
//类型
};
msg:
:
msg()
name="
\0"
;
ad="
num="
sex="
rl="
}
charmsg:
inter_face()
cout<
<
endl;
cout<
"
\t\t***********************************************"
<
endl
<
\t\t※※"
\t\t※通迅录※"
endl
\t\t※1.添加新联系人.4.修改信息.※"
\t\t※2.删除联系人.5.查询联系人.※"
\t\t※3.显示所有联系人.0.关闭通迅录.※"
\t\t*****************************************"
endl<
\t\t\t选择:
;
charchoose;
cin>
>
choose;
returnchoose;
voidmsg:
add_person()
根据下面提示输入新联系人信息"
姓名:
name;
电话:
"
num;
类型:
rl;
性别:
sex;
地址:
ad;
save_new();
新联系人信息已经保存好!
!
endl;
del_person()
ofstreamoutData("
temp.txt"
ios:
out);
ifstreaminData("
pbook.txt"
in);
//
if(!
outData||!
inData)
{
cout<
对不起!
找不到文件!
system("
pause"
);
return;
}
stringsign;
你要删除输入姓名或电话号:
sign;
stringstr1;
boolflag=true;
stringstr;
while(inData>
name>
num)
getline(inData,str);
if((sign==name)||(sign==num))
{
cout<
你想删除的联系人:
str1<
setiosflags(ios:
left)<
setw(17)<
<
num<
str<
flag=false;
break;
}
outData<
<
if(flag)
联系人中没你找的人!
else
while(getline(inData,str))
outData<
outData.close();
inData.close();
ofstreamout("
ifstreamin("
if(!
out||!
in)
对不起不能打开文件!
return;
while(getline(in,str))
out<
out.close();
//
in.close();
这个人的信息已经从你的通迅录中删除!
}
show_all()
ios:
没有找到文件!
stringrecord;
while(getline(inData,record))
if(flag)
所有联系人信息如下:
cout<
姓名"
setw(18)<
电话"
setw(15)<
性别"
setw(21)<
类型"
地址"
record<
flag=false;
你的通迅录中没有联系人!
所有联系人已经全部显示出来!
alter()
你要修改输入姓名或电话号:
你想修改的联系人:
请根据下面提示修改信息:
姓名:
cin>
fflush(stdin);
电话号:
性别:
地址:
save_new();
system("
这个人的信息已经在你的通迅录中修改!
select()
文件找不到!
输入你想查找的联系人的姓名或电话号码:
fflush(stdin);
if((name==sign)||(num==sign))
你要查找的联系人是:
save_new()
app);
outData)
打开文件失败!
outData<
setiosflags(ios:
setw(17)<
name
setw(16)<
num<
setw(18)<
sex<
setw(14)<
rl<
setw(20)<
ad<
outData.close();
voidmain()
msgabj;
do{
\
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 通讯录 程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)