C++程序设计通讯录管理系统Word下载.docx
- 文档编号:17727708
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:21
- 大小:165.96KB
C++程序设计通讯录管理系统Word下载.docx
《C++程序设计通讯录管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C++程序设计通讯录管理系统Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
(二)通讯录对象的主要属性
(三)功能分析
1、联系人管理者
(1)增加联系人:
联系人信息包括姓名、就读学校、班级、专业、家庭地址、家庭联系电话、邮编、本人联系电话这些信息。
添加时,内容不能为空。
(2)修改联系人资料:
对已存的联系人信息进行变更、修改。
正常情况下,联系人的姓名是不会发生变化的,但考虑到更名的情况还是偶有发生,因此设计为联系人所有资料都允许更改,这样可以灵活应对这些不太常见的情况。
(3)删除联系人:
对选定联系人执行删除操作,为了防止误删除,给使用者一个反悔的机会,在执行删除前要询问使用者是否真的要删除,在得到确认后执行删除操作。
2、联系人信息查询与显示
通讯录使用频率最高的功能就是查询联系人的信息。
查询可以查询某个学院、某个专业、某个班级下所有的联系人。
并且提供了按姓名和按学号查询的功能,并且同名的人都可以显示。
联系人显示窗口示姓名、就读学校、班级、专业、家庭地址、家庭联系电话、邮编、本人联系电话这些信息。
三,系统运行效果图
1,主界面
2,添加联系人信息
3删除联系人信息
4显示所有联系人
5,修改信息
6,查询联系人信息
7,关闭系统
四,系统开发过程中遇到的问题
在初步完成该程序时,我发现程序有一个严重的漏洞,当系统保存的学生信息中有同名或者编号相同的同学时,这时若要执行查询或者删除学生信息时,只能查询到或删除第一个符合条件的同学,这就导致了程序的错误。
后来我发现只需要将程序中一些“break”换成“continue”便可以解决这个问题,也就使程序在读到第一个符合条件的同学信息时不结束读取,而是继续读入,这样就可以将同名或编号相同的学生全部查询到,不会漏查。
五,课程设计心得体会
1.在编写程序的过程中,我将课本中的大部分知识又都熟悉了一遍,使我对课本又有了更深的记忆,同时又弄懂了一些以前不太明白的地方。
2.在编程过程中,我还明白了做事要有耐心,决不能心急,要一步一步地来,不清楚的地方一定要查书,用到什么就查什么,比如在用到输入、输出函数时,不知道整型、实型、字符型、字符串用什么格式,就要认真地去看一下教材,切不可自我放弃。
3.我还明白了只要我们肯用心,就没有什么是困难的。
或许我们在编程时会遇到各种各样的困难,但只我们用心思考,我们总能从学过的知识中找到解决这些问题的方法,这些
方法或许是书上没有的,或许是没人用过的。
当这些问题得到解决时,我发现自己真的很开心!
六,附录源代码及简要说明
#include<
iostream>
string>
stdio.h>
string.h>
algorithm>
conio.h>
usingnamespacestd;
//各种变量。
。
intn;
stringd="
"
;
intflag=0;
/**************************************************************///上面是一些乱遭的遍量。
classfile{
public:
n,strings,stringb,stringt):
name(n),sex(s),banji(b),telephone(t){};
file(){}
~file(){}
voidset(stringn,strings,stringb,stringt);
//一系列修改。
voidalter_name(stringn)
{
name=n;
}
voidalter_sex(strings){
sex=s;
voidalter_banji(stringb){
banji=b;
voidalter_telephone(stringt){
telephone=t;
/***************************/
staticintgetnumber()
returnnumber;
staticvoidaddnumber()
number++;
staticvoidcutnumber()
number--;
booljudgename(strings)
stringstrA=name;
transform(strA.begin(),strA.end(),strA.begin(),:
:
tolower);
//全部改为小写<
transform(s.begin(),s.end(),s.begin(),:
if(s==strA)
returntrue;
else
returnfalse;
booljudgetelephone(strings)
stringstrA=telephone;
if(s==strA)
voidadd();
voiddisplay();
private:
//名字性别生日单位参加工作时间职称住址
stringname,sex,banji,telephone;
intstatus;
staticintnumber;
};
[100];
int=2;
//静态计数器。
void(stringn,strings,stringb,stringt)
{
name=n,sex=s,banji=b,telephone=t;
}
void()
cout<
<
"
请输入档案信息:
endl;
姓名"
性别"
班级"
电话"
stringn,s,b,t;
cin>
>
n>
s>
b>
t;
addnumber();
name<
d<
sex<
banji<
telephone<
/***************************************************************///上面是类的各种定义下面是系统的各种函数
voidinit()
person[0].set("
Dongquan"
"
man"
"
15-6"
);
person[1].set("
Tourist"
15-8"
return;
voidmenu()
序号"
姓名"
性别"
班级"
电话"
}
voidshow()
menu();
for(inti=0;
i<
();
i++)
cout<
i+1<
\t"
person[i].display();
intname_search(strings)
intnum=-1;
if(person[i].judgename(s))
{
person[i].display();
num=i;
}
returnnum;
inttelephone_search(strings)
();
if(person[i].judgetelephone(s))
voidMain_screen()
system("
CLS"
\n\n\n\n"
if(!
flag)
\t\t---------欢迎使用档案信息管理系统--------"
else
\t\t-----------------------------------------"
endl
<
\t\t
(1)浏览数据"
endl
\t\t
(2)增加数据"
\t\t(3)修改数据"
\t\t(4)查询数据(按姓名,按电话)"
\t\t(5)删除数据"
\t\t(0)退出程序"
flag=1;
intmain(intargc,char**argv)
{
init();
head:
//重新进入主界面
Main_screen();
n;
if(n==1)//浏览
if(!
())
cout<
列表内无数据"
添加数据请按1"
endl<
按其他任意键返回主界面。
intx;
cin>
x;
if(x==1)
{
system("
gotoplus;
}
show();
列表浏览成功,"
按任意键返回主菜单"
getch();
system("
}
elseif(n==2)//增加
plus:
;
person[()].add();
添加成功,"
elseif(n==3)//修改
是否先浏览一下数据?
[Y(y)/N(n)])"
strings1;
s1;
if(s1=="
Y"
||s1=="
y"
)
show();
请输入需要修改的档案序号"
intn3;
n3;
//修改什么?
?
//多个数据修改单个数据修改。
cout<
全部数据修改请按1)单个数据修改请按2)"
intn4;
n4;
if(n==1)
cout<
姓名"
性别"
班级"
电话"
stringn,s,b,t;
cin>
person[n3-1].set(n,s,b,t);
}
else
修改姓名请按1,性别请按2,班级请按3,电话请按4"
intn5;
n5;
if(n5==1)
{cout<
请输入新的姓名"
strings4;
cin>
s4;
person[n3-1].alter_name(s4);
}
elseif(n5==2)
{
cout<
请输入新的性别"
person[n3-1].alter_sex(s4);
elseif(n5==3)
请输入新的班级"
person[n3-1].alter_banji(s4);
elseif(n5==4)
请输入新的电话号码"
person[n3-1].alter_telephone(s4);
修改成功"
elseif(n==4)//查询
query:
cout<
请选择查询方式:
<
1)姓名2)电话"
cin>
if(x==1)
name_query:
请输入查询的姓名:
stringna;
na;
查询结果:
intnn=name_search(na);
if(nn==-1)
cout<
很抱歉,没有查询到相关信息:
重新查找请按1:
返回上级菜单请按2:
返回主页面请按3:
intmm;
mm;
if(mm==1)
{
gotoname_query;
}
elseif(mm==2)
gotoquery;
}
elseif(mm==3)
gotohead;
tele:
请输入查询的电话:
stringun;
un;
intnn=telephone_search(un);
gototele;
system("
elseif(n==5)//删除数据
reduce:
(Y/N)"
strings1;
if(s1=="
//删除方式
请输入需要删除的数据序号"
intn2;
n2;
for(inti=0;
if(i>
=n2)
person[i-1]=person[i];
();
删除成功。
继续删除请按1)、返回主页请按其它任意键"
intn3;
n3=getch();
if(n3==1)
gotoreduce;
elseif(n==0)
gototail;
else
该选项不存在!
getch();
gotohead;
gotohead;
tail:
//退出程序
-----------感谢您使用档案信息管理系统!
再见!
-----------"
return0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 程序设计 通讯录 管理 系统