完整版C++毕业课程设计通信录管理程序Word文档格式.docx
《完整版C++毕业课程设计通信录管理程序Word文档格式.docx》由会员分享,可在线阅读,更多相关《完整版C++毕业课程设计通信录管理程序Word文档格式.docx(25页珍藏版)》请在冰点文库上搜索。
2.1设计一个简单的通讯录管理程序,要求有简单的界面,程序段要分清模块。
该程序应该具有下列功能:
1.个人通讯录
(1)添加联系人;
(2)查找联系人;
(3)删除联系人;
(4)修改联系人;
(5)显示联系人;
(6)复制全部信息;
(7)关闭该通迅录;
(8)退出此系统
2.公司通讯录
(1)添加公司;
(2)查找公司;
(3)删除公司;
(4)修改公司;
(5)显示公司;
(8)退出此系统
2.2题目要求
1、按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
2、为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
3.算法设计设计思想
3.1设计思想
采用模块化设计思想,分别定义了两个类:
一个是个人类,另一个是公司类,然后分别在各个类中定义实现各个功能的函数。
在个人类中定义了六个私有变量,分别是姓名,电话,地址,邮箱,QQ号和身份证号。
在公司类中定义了五个私有变量,分别是公司名称,公司电话,公司地址,公司网址和公司传真。
在主函数中分别定义了
个人类和公司类的两个对象和第一个主菜单。
由主菜单选择进入个人或公司通讯录。
而且在这两个类中实现了用文件保存信息,实现了信息的保存与读取。
4.结构框图、各模块的功能描述
4.1进入主函数(main()):
。
进入主函数的主菜单,这是一个无限循环的菜单,菜单中有三个选项,分别是管理个人电话薄,管理公司电话薄,退出系统。
只有选择3选项退出才能结束或者进入通讯录进行退出。
4.2个人类(Cbook)
当进入个人通讯录后,同样会出现一个功能选择菜单(menu());
1.添加联系人(add())2.查找联系(find())
3.删除联系人.(del())4.修改联系人.(alter());
5.显示联系人(appear())6.复制全部信息.(copy())
7.关闭该通迅录8.退出此系统
4.2.1添加联系人(add())
(1)按照提示依次输入个人信息:
姓名,电话,地址,邮箱,QQ号和身份证号。
(2)输入完成第一个联系人的信息后会提示你新联系人信息已经保存好!
你按任意键重新选择功能菜单。
4.2.2查找联系(find())
(1)首先建立一个输入流文件,用来连接存储信息的文本,若找不到文件,则提示"
对不起!
!
文件找不到!
......"
(2)若能找到文件,则提示"
请用户输入你想查找的联系人的姓名或电话号码:
"
(3)若没有此人的话,则提示"
联系人中没你找的人!
"
若有,则将显示所要查找的联系人的所有信息。
你按任意键重新选择功能菜单。
4.2.3删除联系人.(del())
(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个临时文本,若找不到文件,则提示"
请用户输入你想删除的联系人的姓名或电话号码:
若有,则将显示所要删除的联系人的所有信息,并且提示"
这个人的信息已经从你的通迅录中删除!
4.2.4修改联系人.(alter())
请用户输入你想修改的联系人的姓名或电话号码:
若有,则你可以按照提示修改信息。
修改完成后会提示你"
这个人的信息已经在你的通迅录中修改!
4.2.5显示联系人(appear())
(1)首先建立一个输入流文件,用来连接存储信息的文本,若找不到文件,则提示"
(2)若能找到文件,文本中却没有信息的话,则提示"
你的通迅录中没有联系人!
,有信息的话,显示全部信息你按任意键重新选择功能菜单。
4.2.6复制全部信息.(copy())
(1)首先建立一个输入流文件和一个输出流文件,用来连接存储信息的文本和和一个复制存储文本,若找不到文件,则提示"
(2)复制完成后会提示"
已经复制完毕!
4.2.7保存到文本(save())
建立一个输出流文件用来连接存储信息的文本,将数据存储到文本。
4.2.8.关闭该通迅录关闭所在的通讯录
4.2.9退出系统完全退出程序
4.3公司通讯录
当进入公司通讯录后,同样会出现一个功能选择菜单(menu())。
1.添加公司(add()).2.查找公司(find())
3.删除公司(del()).4.修改公司(alter())
5.显示公司(appear()).6.复制全部信息(copy()).
7.关闭该通迅录8.退出此系统
公司通讯录和个人通讯录实现功能函数类似,在此不再赘述。
以下是主框架图:
5.程序结构及代码解析
(1)主函数:
调用菜单函数menu()通过其返回值来选择哪个通讯录,进而选择调用后面的各个函数,实现其功能。
voidmain()
{charselect[100],choice[100];
memset(select,0,sizeof(select));
memset(select,0,sizeof(choice));
Cbookperson("
zheng"
"
***"
taik***"
81424***"
);
Companycom("
zhonghua"
qingyuan"
aaa"
select[0]='
1'
;
while(select[0]-48!
=3)
{
system("
cls"
system("
color5e"
choice[0]='
0'
cout<
<
endl;
\t★★★(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)(*^__^*)★★★"
<
endl
\t%>
_<
%%>
%"
<
%请选择管理分类:
%>
%1.管理个人电话薄%>
%2.管理公司电话薄%>
%3.退出系统%>
endl<
\t\t\t选择(1~3):
;
cin>
>
select;
if(select[0]-48==1)
{
while(choice[0]-48!
=7)
person.menu();
choice;
switch(choice[0]-48)
{
case1:
person.add();
break;
case2:
person.find();
case3:
person.del();
case4:
person.alter();
case5:
person.appear();
case6:
person.copy();
case7:
case8:
exit(0);
default:
cout<
输入错误!
请输入1~8:
pause"
break;
}
}
if(select[0]-48==2)
com.menu();
com.add();
com.find();
com.del();
com.alter();
com.appear();
case6:
com.copy();
if(select[0]-48==3){exit(0);
break;
}
}
(2)Cbook类的定义
classCbook
{
public:
Cbook(char*na,char*te,char*addre,char*ema,char*q,char*idd);
voidmenu();
*主菜单*
voidadd();
*添加联系人*
voidfind();
*查找联系人*
voiddel();
*删除联系人*
voidalter();
*修改联系人*
voidappear();
*显示联系人*
voidcopy();
*复制全部信息*
voidsave();
*保存信息*
private:
charname[12];
chartel[15];
charaddress[22];
charemail[20];
charqq[12];
charid[20];
};
Cbook:
:
Cbook(char*na,char*te,char*addre,char*ema,char*q,char*idd)
strcpy(name,na);
strcpy(tel,te);
strcpy(address,addre);
strcpy(email,ema);
strcpy(qq,q);
strcpy(id,idd);
(3)公司类的定义
classCompany
Company(char*comna,char*pubte,char*comadd,char*comemail,char*chuanzh);
*添加公司*
*查找公司*
*删除公司*
*修改公司*
*显示公司*
voidcomsave();
charcompanyname[24];
公司名称
charpubtel[20];
公司电话
charcompanyadd[30];
公司地址
charcompanyemail[20];
公司网址
charchuanzhen[20];
公司传真
Company:
Company(char*comna,char*pubte,char*comadd,char*comemail,char*chuanzh)
strcpy(companyname,comna);
strcpy(pubtel,pubte);
strcpy(companyadd,comadd);
strcpy(companyemail,comemail);
strcpy(chuanzhen,chuanzh);
(4)添加新联系人
voidCbook:
add()
cout<
请用户根据下面提示输入新联系人信息:
姓名:
cin>
name;
电话:
tel;
地址:
address;
邮箱:
email;
QQ号:
qq;
身份证号:
id;
save();
新联系人信息已经保存好!
(5)查找联系人
find()
ifstreaminput("
person.txt"
ios:
in);
if(!
input)
return;
}
stringsign;
sign;
fflush(stdin);
boolflag=true;
stringstr;
while(input>
name>
tel)
getline(input,str);
if((name==sign)||(tel==sign))
你要查找的联系人是:
setiosflags(ios:
left)<
setw(20)<
name
tel<
str<
flag=false;
}
if(flag)
cout<
system("
(6).删除联系人.
del()
fstreamoutput("
temp.txt"
ios:
out);
output||!
找不到该文件!
你要删除输入姓名或电话号:
if((sign==name)||(sign==tel))
你想删除的联系人:
output<
if(flag)
else
while(getline(input,str))
output.close();
input.close();
ofstreamout("
ifstreamin("
out||!
in)
对不起不能打开文件!
while(getline(in,str))
out<
out.close();
in.close();
(7)修改联系人
alter()
ofstreamoutput("
找不到文件!
你要修改输入姓名或电话号:
stringstr1;
你想修改的联系人:
str1<
setw(12)<
请根据下面提示修改信息:
}
name
(8)显示联系人
appear()
没有找到文件!
stringrecord;
while(getline(input,record))
所有联系人信息如下:
c