通讯录管理程序的设计与实现.docx
《通讯录管理程序的设计与实现.docx》由会员分享,可在线阅读,更多相关《通讯录管理程序的设计与实现.docx(14页珍藏版)》请在冰豆网上搜索。
![通讯录管理程序的设计与实现.docx](https://file1.bdocx.com/fileroot1/2023-1/26/71b92bc7-922a-4575-9b87-106149d290a1/71b92bc7-922a-4575-9b87-106149d290a11.gif)
通讯录管理程序的设计与实现
课程设计任务书
学生姓名:
专业班级:
软件080班
指导教师:
夏红霞工作单位:
计算机科学与技术学院
题目:
通讯录管理程序的设计与实现
课程设计要求:
1、熟练掌握基本的数据结构;
2、熟练掌握各种算法;
3、运用高级语言编写质量高、风格好的应用程序。
课程设计任务:
1、系统应具备的功能:
(1)输入姓名、电话等信息
(2)对通讯录进行修改、添加、删除
(3)通过各种条件进行查询
2、数据结构设计;
3、主要算法设计;
4、编程及上机实现;
5、撰写课程设计报告,包括:
(1)设计题目;
(2)摘要和关键字;
(3)正文,包括引言、需求分析、数据结构设计、算法设计、程序实现及测试、不足之处、设计体会等;
(4)结束语;
(5)参考文献。
时间安排:
2010年7月5日-9日(第19周)
7月5日查阅资料
7月6日系统设计,数据结构设计,算法设计
7月7日-8日编程并上机调试
7月9日撰写报告
7月10日验收程序,提交设计报告书。
指导教师签名:
2010年7月4日
系主任(或责任教师)签名:
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<<"请输入你本次操作要录入的成员人数"<cin>>num;
cout<<"请输入成员的姓名、专业、手机号码、地址、邮件"<cout<<"注意:
每次的输入用空格隔开!
"<for(i=0;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;
cout<<"所有人的资料:
"<cout<<"姓名专业手机号码地址邮件"<FILE*fp;
fp=fopen("mem_list","rb");
while(!
feof(fp))
{
fread(&mem[i],sizeof(structmember),1,fp);
cout<if(++i==100)
{
break;
}
}
fclose(fp);
}
3.3搜索信息
voidsearchname()
{
inti;
charname2[15];
FILE*fp;
fp=fopen("mem_list","rb");
for(i=0;i<100;i++)
{
fread(&mem[i],sizeof(structmember),1,fp);
}
fclose(fp);
cout<<"请输入你要查询成员的姓名"<cin>>name2;
cout<<"查询的结果是"<cout<<"姓名专业手机号码地址邮件"<for(i=0;i<100;i++)
{
if(strcmp(mem[i].m_cName,name2)==0)
cout<}
}
voidsearchmajor()
{
inti;
charmajor1[25];
FILE*fp;
fp=fopen("mem_list","rb");
for(i=0;i<100;i++)
{
fread(&mem[i],sizeof(structmember),1,fp);
}
fclose(fp);
cout<<"请输入你要查询成员的专业"<cin>>major1;
cout<<"查询的结果是"<cout<<"姓名专业手机号码地址邮件"<for(i=0;i<100;i++)
{
if(strcmp(mem[i].m_cMajor,major1)==0)
cout<}
}
3.4修改信息
voidchangefile()
{
inti,mark;
charname1[15];
FILE*fp;
fp=fopen("mem_list","rb");
loop:
cout<<"请输入你要修改成员的姓名:
"<cin>>name1;
i=0;
while(!
feof(fp))
{
fread(&mem[i],sizeof(structmember),1,fp);
if(strcmp(mem[i].m_cName,name1)==0)
{
cout<<"请输入成员的姓名、专业、手机号码、地址、邮件"<cout<<"注意:
每次的输入用空格隔开!
"<cin>>mem[i].m_cName>>mem[i].m_cMajor>>mem[i].m_cMobile>>mem[i].m_cAddress>>mem[i].m_cEmail;
}
++i;
}
fclose(fp);
remove("mem_list");
fp=fopen("mem_list","wb");
for(intj=0;j!
=i;++j)
{
fwrite(&mem[j],sizeof(structmember),1,fp);
}
fclose(fp);
cout<<"您还想继续修改成员信息吗?
"<cout<<"1:
代表是2:
代表否"<cin>>mark;
if(mark==1)
{
gotoloop;
}
}
3.5删除信息
voidDelete()
{
stringszName;
inti=0;
cout<<"输入姓名:
"<cin>>szName;
FILE*fp;
fp=fopen("mem_list","rb");
while(!
feof(fp))
{
if(++i==100)
{
break;
}
fread(&mem[i],sizeof(structmember),1,fp);
}
fclose(fp);
fp=fopen("mem_list","wb");
for(intj=0;j
{
if(szName!
=string(mem[j].m_cName))
{
fwrite(&mem[j],sizeof(structmember),1,fp);
}
}
fclose(fp);
}
3.6保存信息到文件夹
voidsave(intiCnt)
{
inti;
FILE*fp;
if((fp=fopen("mem_list","ab"))==NULL)
{
cout<<"无法打开文件"<return;
}
for(i=0;i{
fwrite(&mem[i],sizeof(structmember),1,fp);
}
fclose(fp);
}
//主函数
intmain()
{
inti,mark;
label:
printstar();
cout<<"*欢迎您使用通讯录管理系统*"<printstar();
cout<<"*请选择你想要进行的操作:
*"<cout<<"*1.录入成员信息:
*"<cout<<"*2.修改成员信息,并保存修改:
*"<cout<<"*3.按姓名查找成员信息:
*"<cout<<"*4.按专业查找成员信息:
*"<cout<<"*5.显示所有成员的信息*"<cout<<"*6.删除成员*"<cout<<"*7.退出系统*"<printstar();
loop:
cin>>i;
switch(i)
{
case1:
inputfile();
break;
case2:
changefile();
break;
case3:
searchname();
break;
case4:
searchmajor();
break;
case5:
show();
break;
case6:
Delete();
break;
case7:
break;
default:
cout<<"输入代码错误!
"<goto
loop;
}
cout<cout<<"你想继续操作本系统吗?
"<cout<<"1代表是,2代表否!
"<cin>>mark;
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语言设计(第三版)清华大学出版社