通讯录管理程序的设计与实现Word文件下载.docx
《通讯录管理程序的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《通讯录管理程序的设计与实现Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
![通讯录管理程序的设计与实现Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/26/71b92bc7-922a-4575-9b87-106149d290a1/71b92bc7-922a-4575-9b87-106149d290a11.gif)
(3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试、不足之处、设计体会等;
(4)结束语;
(5)参考文献。
时间安排:
2010年7月5日-9日(第19周)
7月5日查阅资料
7月6日系统设计,数据结构设计,算法设计
7月7日-8日编程并上机调试
7月9日撰写报告
7月10日验收程序,提交设计报告书。
指导教师签名:
2010年7月4日
系主任(或责任教师)签名:
摘要:
该程序主要部分有:
1)通讯录资料的输入,包括姓名、专业、电话号码、住址、电子邮箱。
2)可通过成员相关资料的查找,显示出查找人的相关信息。
3)可以通过指定成员姓名进行成员信息的修改
4)通过指定成员的姓名进行成员信息的删除。
关键字:
通讯录管理,保存,查找,修改,删除
0.引言
在我们的日常生活中,通讯录是经常用到的抽象通讯管理工具。
通讯录记录着用户的联系成员的基本信息,以便用户更好的和成员联系。
在本次的课程设计中我选择了用C++语言编写程序,实现了通讯录的添加、修改、删除以及查询功能。
1.需求分析
成员信息数据的添加﹑存储;
数据的查找:
按姓名查找通讯人的信息;
另外就是修改;
信息的删除;
信息的全部显示等等。
2.数据结构设计
structmember
{
charm_cName[15];
charm_cMajor[25];
charm_cMobile[15];
charm_cAddress[30];
charm_cEmail[50];
}mem[100];
3.算法设计
3.1文件输入
voidinputfile()
inti,num;
cout<
<
"
请输入你本次操作要录入的成员人数"
endl;
cin>
>
num;
请输入成员的姓名、专业、手机号码、地址、邮件"
注意:
每次的输入用空格隔开!
for(i=0;
i<
i++)
{
cin>
mem[i].m_cName>
mem[i].m_cMajor>
mem[i].m_cMobile>
mem[i].m_cAddress>
mem[i].m_cEmail;
}
save(num);
}
3.2显示信息
voidshow()
inti=0;
所有人的资料:
姓名专业手机号码地址邮件"
FILE*fp;
fp=fopen("
mem_list"
"
rb"
);
while(!
feof(fp))
fread(&
mem[i],sizeof(structmember),1,fp);
cout<
mem[i].m_cName<
mem[i].m_cMajor<
mem[i].m_cMobile<
mem[i].m_cAddress<
mem[i].m_cEmail<
if(++i==100)
{
break;
}
fclose(fp);
3.3搜索信息
voidsearchname()
inti;
charname2[15];
100;
请输入你要查询成员的姓名"
name2;
查询的结果是"
if(strcmp(mem[i].m_cName,name2)==0)
cout<
voidsearchmajor()
charmajor1[25];
fp=fopen("
"
i<
i++)
mem[i],sizeof(structmember),1,fp);
请输入你要查询成员的专业"
major1;
if(strcmp(mem[i].m_cMajor,major1)==0)
3.4修改信息
voidchangefile()
inti,mark;
charname1[15];
loop:
请输入你要修改成员的姓名:
name1;
i=0;
if(strcmp(mem[i].m_cName,name1)==0)
cin>
++i;
remove("
wb"
for(intj=0;
j!
=i;
++j)
fwrite(&
mem[j],sizeof(structmember),1,fp);
您还想继续修改成员信息吗?
1:
代表是2:
代表否"
mark;
if(mark==1)
gotoloop;
3.5删除信息
voidDelete()
stringszName;
输入姓名:
"
szName;
j<
i;
j++)
if(szName!
=string(mem[j].m_cName))
fwrite(&
3.6保存信息到文件夹
voidsave(intiCnt)
if((fp=fopen("
ab"
))==NULL)
无法打开文件"
return;
iCnt;
mem[i],sizeof(structmember),1,fp);
//主函数
intmain()
label:
printstar();
*欢迎您使用通讯录管理系统*"
*请选择你想要进行的操作:
*"
*1.录入成员信息:
*2.修改成员信息,并保存修改:
*3.按姓名查找成员信息:
*"
*4.按专业查找成员信息:
*5.显示所有成员的信息*"
*6.删除成员*"
*7.退出系统*"
switch(i)
case1:
inputfile();
break;
case2:
changefile();
case3:
searchname();
case4:
searchmajor();
case5:
show();
case6:
Delete();
case7:
default:
输入代码错误!
goto
loop;
你想继续操作本系统吗?
1代表是,2代表否!
if(mark==1)
gotolabel;
return0;
}
4.程序运行结果
4.1、开始的界面
4.2、文件的录入
4.3、显示所有成员信息
4.4、删除成员
删除后:
4.5、修改成员的信息
4.6、通过姓名查询
4.7通过专业查询
5.不足之处
由于自己的能力不足和思维的局限性导致程序有很多不足的地方:
(1)通讯录并没有考虑到姓名重复的情况;
(2)由于通讯录没有设置成可视化的界面,导致操作有冗余的部分;
(3)由于时间的限制,很多其余的功能并没有添加进去,
(4)由于考虑的欠缺,导致程序的健壮性不够并且显示不够美观。
在课下的时间我会把此课程设计进一步改正。
在以后的编程过程中我会严格注意本次课程设计中存在的不足,从中获益!
6.设计体会
为了便于查错、阅读,在设计该程序的时候我采用了结构化程序方法编辑,添加了尽可能多的注释,这为我来的调试过程带来了很多方便。
开始的时候,总是感觉编程是一件很枯燥、乏味的事情,同时又是一件很难的事,于是很少亲自动手去编程。
但是经过这次课程设计之后,通过自己的主动思考、查找资料、翻阅书籍、和同学探讨进而编出自己想要的程序的过程,发现编程是一件饶有趣味的事情,一旦自己全身心的投入进去,没有什么是可以阻挡前进的脚步。
编程是一件很锻炼人的事情,其中的苦乐只有亲身经历才能体会到。
要想做出满意的程序,必须做好充分的准备。
要有足够的耐心和信心,不可半途而废。
在以往的编程过程中,我懒得动手,感觉编程实在太复杂,感觉太费时,致使自己很容易说放弃,也导致自己的编程能力没有提高。
但是说服了自己坚持了下来,看到自己最后的作业,知道这并不是算是圆满,但是还是为自己的付出和得到的成果感觉欣慰。
总之,编程是一项细致深入的工作,真的需要下苦功夫,多动脑思考,善于积累经验。
态度决定高度。
只有这样编程能力才会更上一层楼!
.
7.结束语
本文是通讯录管理系统,主要功能有:
通讯成员资料的输入,显示,搜索,修改、删除以及保存。
整个程序用C++语言实现。
8.参考文献
[1]严蔚敏,吴伟民.数据结构(C语言版)清华大学出版社
[2]StanleyB.LippmanJoseeLajoieBarbaraE.MooC++Primer(中文版)
人民邮电出版社
[3]谭浩强C++面象对象程序设计清华大学出版社
[4]谭浩强.C语言设计(第三版)清华大学出版社