通讯录管理系统.docx
《通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《通讯录管理系统.docx(34页珍藏版)》请在冰豆网上搜索。
通讯录管理系统
课程名称:
C++
计算机科学与技术学部
学生课程设计报告
题目通讯录管理系统
姓名
学部计算机科学与技术
专业、班级
指导教师
2018年10月27日
摘要
随着科学技术的发展,计算机领域不断取得新的研究成果。
计算机的应用越来越广泛.计算机知识也越来越普及.计算机的应用也不仅仅局限于科学研究方面.计算机的应用与我们的生活息息相关.在学校里学生的成绩管理系统,在日常生活中给我们带来很大方便的通讯录,都与计算机的管理系统有关,都是通过程序设计,开发,调试形成的管理系统.
通讯录系统能方便用户迅速、准确的查找修改或者删除联系人信息,把各个联系人的信息以文档保存。
本文介绍了简易通讯录管理系统在MicrosoftVisualC++6.0环境下的实现过程:
系统的分析,功能模块的设计,系统的调试和测试。
此系统的主要管理的信息有:
联系人的姓名,联系人的号码.本系统的主要功能有联系人的添加、删除、插入、显示.可以随时查找修改通讯录.
实现主要功能:
建立文件,文件的存取和显示,删除记录,查询记录,使用list类等。
可以随时检索,删除,或增加记录,也可以保存或取消新的记录。
姓名可以由字符和数字混合编码。
电话号码可由字符和数字组成。
关键词:
通讯录、功能模块(函数)、文件操作、list类、面向对象
任务分配表
通讯录信息包括姓名、电话、QQ、邮箱和住址。
试设计一通讯录管理系统,使之能提供以下功能:
系统以菜单方式工作。
(1)通讯录的录入(增加数据)。
将联系人信息存入数组中,然后把它们输出。
(2)通讯录的删除(删除数据)。
任意输入一位联系人的姓名,将其信息从数组中删除。
(3)通讯录的浏览(查找数据)。
任意输入一位联系人的姓名,显示其相关信息。
按姓名、电话查询联系人的相关信息。
(4)通讯录的修改(修改数据)。
任意输入一位联系人的姓名,显示其相关信息,且可以修改并保存其相关信息。
注意:
课程设计报告由四人合力编写,每人分别编写函数对应的部分
表1任务分配表
通讯录的录入
XX
通讯录的删除
XX
通讯录的浏览
XX
通讯录的修改
XX
目录
摘要1
任务分配表2
目录3
第1章前言1
第2章系统功能分析2
2.1管理信息系统(MIS)的概念2
2.2管理信息系统的作用2
2.3性能需求2
2.4系统开发背景发展前景3
2.5程序运行平台4
第3章系统总体设计5
3.1系统描述5
3.2添加模块6
3.3删除模块7
3.4查找模块8
3.5修改模块9
第4章系统详细设计10
4.1设计原理10
4.2系统界面10
4.3各模块功能详细分析11
第5章系统测试21
5.1可行性分析21
5.2调试过程21
总结25
参考文献26
第1章前言
当前社会是一个信息社会,一个知识经济时代,自世界上第一台计算机ENINC于1946年在美国问世到现在,计算机业飞速发展技术淘汰指标高的惊人,价格下降以及软件应用的快速扩展引发了以信息处理计算机化为标志的‘‘微机革命’’,随之而来的是以全球信息网络普及和全球信息共享为标志的‘‘全球信息网络革命’’的蓬勃兴起。
可见,世界已进入在计算机信息管理领域中激烈竞争的时代,计算机已经变得普通的不能再普通的工具,如同我们离不开的自行车,汽车一样。
网络应该承认,谁掌握的只是多,信息量大,信息处理速度快,批量大,谁的效率就高,谁就能在各种竞争中立于不败之地、
自20世纪50年代将计算机引入数据处理以来,历经管理信息系统发展各个阶段。
一方面是信息技术应用的迅猛发展,另一方面,许多管理信息系统在耗费了大量的人力,物力,财力之后夭折了,或者根本没有实现原定系统开发目标,而把计算机用作了打字机。
这是长期以来困惑着人们的一大问题。
现在人们日益深刻认识到,把信息技术应用与应用环境分离是办不到的。
管理信息系统根本不仅是技术系统,而且是社会系统。
管理信息系统为一门融管理科学,信息科学,系统科学,现代通信技术和电子计算机技术为一体的综合性边缘学科,它以人为主导,利用计算机硬件,软件,网络通信设备办公和设备,进行信息的收集,加工,存储,更新和维护,以及提高企业效率为目的的一种集成化的人机系统。
MIS系统设计到多方面的内容,因此,人们称MIS学科是一个交叉综合性的学科,企业人事管理是一项琐碎,繁杂而又非常细致的工作,一般是不允许发生差错的,它直接影响着劳动者对工作的积极性,是提高劳动生产力,提高企业活力的基础,在以往手工进行的办公工作中,需反复的进行各种抄写,计算等工作,不仅花费大量的时间,而且往往会出错。
计算机应用于企业的人事信息处处理,不仅可以使企业各类人员以最少的劳动和最短的实践取得足够的,可靠的,准确的信息。
而且可以使他们从简单的数据系统统计,收集,汇总等重复繁重的事务中解脱出来。
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。
在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
小型企业出于这种目的制作了这个人事管理系统。
第2章系统功能分析
2.1管理信息系统(MIS)的概念
管理信息系统是1961年美国人J。
D。
GALLAGHER首先提出来的,是一门新兴的,集管理科学,信息科学,系统科学及计算机学为一体的综合性学科,研究的是企业中信息管理活动的全过程,以便有效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。
2.2管理信息系统的作用
管理信息系统是企业的信息系统,它具备数据处理,计划,控制,预测和辅助决策功能,具体如下:
(1)用统一标准处理和提供信息,排除使用前后矛盾的不完整的数据。
(2)完整,及时提供在管理及决策中需要的数据。
(3)利用指定的数据关系式分析数据,客观预测未来。
(4)想各级管理机构提供不同详细程度的报告,缩短分析的解释时间。
(5)用最低的费用最短的时间提供尽可能精确,可靠的信息,以便使决策者选择最佳的实施方案,以提高企业的经济效益。
2.3性能需求
为了保证系统能够长期,安全,稳定,可靠,高效的运行,通讯录管理系统应该满足以下的性能需求:
2.3.1系统处理的准确性和及时性
完成系统的升级和更系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑当前和将来可能承受的工作量,使系统处理能力和响应时间能够满足企业对信息处理的需求。
在系统开发过程中,必须采用一定的方法保证系统的准确性。
2.3.2系统的开放性和系统的可扩充性
通讯录管理系统在开发过程中,应该充分考虑以后的可扩充性。
例如用户查询的需求会不断的更新和完善。
所有这些,都是求系统提供足够的手段进行功能的调整和扩充。
而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补,替换新换代。
2.3.3系统的易用性和易维护性
职工信息管理系统是直接面对使用人员的,而使用人员往往对计算机并不是非成熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
人力资源管理系统中涉及到的数据是公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,日常的安全管理,系统意外崩溃时数据的恢复等工作。
2.3.4系统的标准型
系统在设计开发使用过程中都要涉及到很多计算机硬件,软件。
所有这些都要符合主流国际,国家和行业标准,例如在开发中使用的操作系统开发工具都必须符合通用标准。
如规范的数据库操纵界面,同时,在自主开发本系统时,要进行良好的设计工作,制定行之有效的软件工程规范,保证代码的易读性,可操作性和可移植性。
2.3.5系统的先进性
目前计算系统的技术发展相当快,作为企业信息管理系统工程,应该保证系统在下个世纪仍旧是先进的,在系统的生命周期尽量做到系统的先进,充分完成企业信息处理的要求而不至于落后。
这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成,另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。
2.4系统开发背景发展前景
随着国企三年脱困的顺利结束,企业管理人员素质的提高,以及加入WTO对我国带来的影响,相对部门企业的领导已经开始认识到信息化给自己带来的竞争优势。
从我国企业信息管理的现状来看,企业职业信息管理系统是一个现代化的企业在竞争中立于不败之地的必要部分,它能够为企业部门进行职工信息管理提供充足和快捷的操作。
系统的信息管理方式是人工的管理文件档案,这种管理方式存在着许多缺点,如效率低,保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难,而且容易丢失。
随着计算机的飞速发展,计算机操作和管理日趋简化,计算机知识日趋普及,同时,市场经济快速多变,竞争激烈,人类每时每刻都会面对层出不穷的新技术,新概念。
毫无疑问,利用科技手段提高企业管理便成了一条行之有效的途径。
虽然,计算机管理不是一个企业走向成功的关键,但它可以最大限度的发挥准确,快捷,高效等作用。
随着社会的发展,一方面,管理信息系统对企业的影响会越来越重要,甚至关系到企业的存亡,另一方面,管理信息系统本身也在不断的发展,其开发方法从早期的生命周期发到80年代初发展起来的原型法,再到面向对象的开发方法,一直现在最新技术-计算机辅助软件工程(CASE)的出现,是管理信息系统开发的效率,性能都在不断提高。
本系统虽然具有一定的有点(由于POWERBUILDER能够与各种数据库相联系,有一定的应用范围,故短期应不会落伍),但若不时进行调整,改进,完善,必将被更新的,功能更完善的管理系统所代替。
2.5程序运行平台
本系统是在MicrosoftWindows7开发的,采用的工具是Microsoft公司的Visualstudio6.0中文版,后台采用了Microsoft和SQLserver2000数据库。
具体操作如下:
新建C++语言源程序工程,添加相应的源文件至此源程序,再编译发现是否有错误,有则改之,无则链接成可执行文件,执行次可执行文件。
第3章系统总体设计
3.1系统描述
通讯录主要有以下模块:
通讯录界面设计、添加联系人、删除联系人、查询联系人、修改信息。
主要功能是设计通讯录的界面,能够提示用户的实际操作等。
我采用的是按照序号来实现相应的操作的,其中:
1添加联系人;2删除联系人;3查询联系人;4修改信息;5关闭通讯录
图3.1总设计图
3.2添加模块
主要功能是添加联系人,首先输入联系人数目;添加操作是根据用户的要求实现的。
包括添加联系人的姓名、电话、QQ、邮编、地址等,最后输入完成后,将提示按任意键回到首页。
图3.2录入流程
3.3删除模块
主要功能是删除不再需要的联系人。
根据操作者输入的姓名进行查找,如果没有的话,将提示没有这个人;如果找到,则显示删除联系人的所有信息和这个人的信息已经从你的通讯录中删除的确认信息。
图3.3删除流程
3.4查找模块
主要功能是查找信息,分为三个小功能:
按姓名查找、按电话查找和整体预览。
显示所有的联系人的信息或者根据姓名、电话显示指定联系人的信息。
包括姓名、电话、QQ、邮编、地址等信息。
图3.4查找流程
3.5修改模块
主要是修改联系人的信息,界面提示要输入需要修改的姓名,如果不正确,提示没有这个人。
如果正确,则显示出改联系人的所有信息,并询问是作单一修改还是全部修改,如果单一修改则选择修改项目;如果全部修改则逐一修改所有联系人信息。
修该完成后,按任意键回到首页。
图3.4修改流程
第4章系统详细设计
4.1设计原理
通讯录管理系统以菜单选择,通过调用各个函数,通过使用各种循环语句如while和do…while,实现不同的功能.不同函数处理后返回的只是一个头结点,但是通过头结点可以找到所有链表中的信息,只要有函数,找到头指针就能进行相应的操作,所以模块化的程序方便以后添加或者删除某些功能,程序中通过system(“cls”)清屏函数实现界面的转换,主函数中的循环保证程序不会退出,一个循环和一个清屏函数实现了主菜单和各子画面的切换(子函数)。
这样的话各个子函数都可以调用一开始输入的数据,这样就实现了各个不同函数调用时都能使用整个系统连续起来了。
作为一个通讯录管理系统,增加了文件的读入和写出功能,增加了程序的实用性。
4.2系统界面
通讯录界面主要以菜单形式展示。
包括1、新增通讯录;2、删除通讯录;3、修改通讯录;4、查找通讯录;5、退出。
由一个类单独实现,并在主函数创建一个对象,需要时调用类中的print()函数即可实现。
classshou
{
public:
voidprint()
{
system("cls");
//设置字体为绿色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|
FOREGROUND_GREEN);
cout<cout<<"\t\t\t\t"<<"通讯录管理系统"<cout<cout<<"\t\t\t======================================"<cout<<"\t\t\t★☆\t1.新增通讯录\t☆★"<cout<<"\t\t\t★☆\t2.删除通讯录\t☆★"<cout<<"\t\t\t★☆\t3.修改通讯录\t☆★"<cout<<"\t\t\t★☆\t4.查询通讯录\t☆★"<cout<<"\t\t\t★☆\t0.退出\t☆★"<cout<<"\t\t\t======================================"<cout<<"\t\t\t请输入选择:
\t";
cin>>choice;
}
};
4.3各模块功能详细分析
所有的实现模块由一个类实现,每个模块为类中的一个函数,分为ADD()函数;Delete()函数;Modify()函数和Query()函数。
classperson1
{
public:
voidAdd();//添加信息
voidDelete();//删除信息
voidModify();//修改信息
voidQuery();//查询信息
};
4.3.1录入模块
进入程序界面后,首先要做的是输入数据,进入后首先要输入你要输入人数的个数,然后就可以输入每个学生的信息了,信息包括姓名、电话、QQ、邮箱和住址五项内容,这些内容组成学生的通讯录信息,输入结束后保存供后面其他操作使用,退出程序后数据消失。
voidperson1:
:
Add()//通讯录信息的添加
{
for(inti=1;i<=renshu;i++)
{
system("cls");
cout<cout<<"\t\t\t第"<
cout<<"\t\t\t姓名:
";
cin>>x[i].name;
cout<<"\t\t\t电话:
";
cin>>x[i].tel;
cout<<"\t\t\tQQ:
";
cin>>x[i].QQ;
cout<<"\t\t\t邮箱:
";
cin>>x[i].email;
cout<<"\t\t\t住址:
";
cin>>x[i].addr;
}
system("pause");
}
4.3.2删除模块
需要输入数据后方能执行此模块,此模块供操作者删除错误的学生信息,需输入正确的学生姓名,如果输入错误,系统则会提示错误,然后退出此模块,否则显示此人通讯录信息,包括姓名、电话、QQ、邮箱和住址全部信息,按指定的键确定删除,按任意键退出。
voidperson1:
:
Delete()//通讯录信息的删除
{
intb,n=0;
chara[10];
cout<<"\t\t\t请输入姓名:
\t";
cin>>a;
for(inti=1;i<=renshu;i++)
{
if(strcmp(x[i].name,a)==0)
{
system("cls");
n++;
cout<cout<<"\t\t\t你要删除的通讯录"<cout<<"姓名:
"<cout<<"电话:
"<cout<<"QQ:
"<cout<<"邮箱:
"<cout<<"住址:
"<cout<cout<<"确认删除请按1,不删除按其他任意数字:
";
cin>>b;
if(b==1)
{
for(intj=i;j<=renshu;j++)
{
strcpy(x[j].name,x[j+1].name);
strcpy(x[j].tel,x[j+1].tel);
strcpy(x[j].QQ,x[j+1].QQ);
strcpy(x[j].email,x[j+1].email);
strcpy(x[j].addr,x[j+1].addr);
}
cout<"<}
}
}
if(n==0)
{
cout<!
"<}
system("pause");
}
4.3.3查找模块
查找模块分二部分,分别为姓名查找、电话查找和整体预览。
进入后选择查找方式,然后按照要求输入姓名或电话。
输入后系统自动显示相关信息。
按任意键退出。
voidperson1:
:
Query()//联系人信息的查找
{
system("cls");
intc,n=0;
chard[10],e[20];
cout<cout<<"\t\t\t1、按姓名查找"<cout<<"\t\t\t2、按电话查找"<cout<<"\t\t\t3、整体预览"<cout<<"\t\t\t请选择查找方式:
";
cin>>c;
if(c==1)//按姓名查找
{
cout<cout<<"\t\t\t请输入姓名:
";
cin>>d;
cout<for(inti=1;i<=renshu;i++)
{
if(strcmp(x[i].name,d)==0)
{
n++;
cout<<"姓名:
"<cout<<"电话:
"<cout<<"QQ:
"<cout<<"邮箱:
"<cout<<"住址:
"<cout<}
}
if(n==0)
cout<!
"<}
elseif(c==2)//按电话查找
{
cout<cout<<"\t\t\t请输入电话:
";
cin>>e;
cout<for(inti=1;i<=renshu;i++)
{
if(strcmp(x[i].tel,e)==0)
{
n++;
cout<<"姓名:
"<cout<<"电话:
"<cout<<"QQ:
"<cout<<"邮箱:
"<cout<<"住址:
"<cout<}
}
if(n==0)
cout<!
"<}
elseif(c==3)
{
cout<for(inti=1;i<=renshu;i++)
{
cout<<"姓名:
"<cout<<"电话:
"<cout<<"QQ:
"<cout<<"邮箱:
"<cout<<"住址:
"<cout<}
}
else
cout<<"\t\t\t你输入的数有误!
!
"<system("pause");
}
4.3.4修改模块
修改模块分两个阶段,显示通讯录信息和修改通讯录信息。
第一阶段输入姓名查找,系统判断确实有此人后显示信息。
第二阶段有单一修改、全部修改和不修改三个选择供操作者选择,按键后分别实现不同内容,如果修改完成提示操作者是否确认修改,修改成功。
按任意键退出。
voidperson1:
:
Modify()//联系人信息的修改
{
intb,c,n=0;
chara[10];
cout<<"\t\t\t请输入姓名:
\t";
cin>>a;
for(inti=1;i<=renshu;i++)
{
if(strcmp(x[i].name,a)==0)
{
system("cls");
n++;
cout<"<cout<<"姓名:
"<cout<<"电话:
"<cout<<"QQ:
"<cout<<"邮箱:
"<cout<<"住址:
"<cout<