通讯录管理程序的设计与实现.docx

上传人:b****5 文档编号:7933714 上传时间:2023-01-27 格式:DOCX 页数:14 大小:122.58KB
下载 相关 举报
通讯录管理程序的设计与实现.docx_第1页
第1页 / 共14页
通讯录管理程序的设计与实现.docx_第2页
第2页 / 共14页
通讯录管理程序的设计与实现.docx_第3页
第3页 / 共14页
通讯录管理程序的设计与实现.docx_第4页
第4页 / 共14页
通讯录管理程序的设计与实现.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

通讯录管理程序的设计与实现.docx

《通讯录管理程序的设计与实现.docx》由会员分享,可在线阅读,更多相关《通讯录管理程序的设计与实现.docx(14页珍藏版)》请在冰豆网上搜索。

通讯录管理程序的设计与实现.docx

通讯录管理程序的设计与实现

课程设计任务书

学生姓名:

专业班级:

软件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语言设计(第三版)清华大学出版社

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1