王萌郑州科技学院课程设计论文电话薄管理系统Word格式文档下载.docx
《王萌郑州科技学院课程设计论文电话薄管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《王萌郑州科技学院课程设计论文电话薄管理系统Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
2014年6月13日
指导教师签名:
评审小组负责人签名:
摘要
在信息技术迅速发展的今天,网络对于大对数人已经不再陌生,并且其应用在人们的工作、学习和生活中越来越多地发挥着不可替代的作用。
很多学校纷纷根据自身的需要,采用了先进的信息技术来加强教学管理、提高教学质量。
电话薄管理系统是基于电话的普及为背景而设计开发的一套软件,该程序主要实现对电话薄进行管理,具有与浏览、增加、删除、查询等功能,方便快捷。
同时实现把保存在文件中的数据读取出来,实现相应的功能。
同时,这一套系统基于基本的C语言编辑知识,应用C语言创编的源程序。
其调用函数根据所需模块进行引用。
在编制好之后,要对程序进行相应的性能调试和测试,以验证程序的正确性和可用性。
调试及测试时,通过相应信息,充分验证程序的可行性。
本程序通篇均用C语言写成,具有很高的逻辑性和严密性,测试运用通用电话薄实力,具有很高的真实性和可靠性,这一点也充分验证了C语言在现代社会中的实用性和普及型的特点。
关键词:
源程序代码;
电话薄管理系统;
指针。
1引言
俗话说海内存知己,天涯若比邻”在现在竞争激烈,快节奏的生活中,人们之间的交流变得十分重要。
由于个人社会交流圈子的扩大,结识的人也越来越多,仅靠手机存储联系人的信息还不够全面也不够安全,为此开发出通讯录管理系统,方便存储联系人的详细信息,更安全更方便。
电话薄管理系统提供电话薄科学、规范的现代管理模式,使电话薄管理跨上一个新的台阶,一个先进的管理手段即高效率计算机管理方式引导通讯信息系统产业的发展,不仅能为人们带来巨大的直接便利,而且还能提高通讯行业的创新发展,使电话薄管理进入一个新层次,提高服务质量,改善人们通讯系统查询水平。
电话薄管理系统会给电话薄管理带来很多优点如:
功能强大,可靠性高;
操作简单,响应快;
界面丰富,明了清晰。
为人们的的电话信息查询提供了巨大便利,数据维护方面,快速高效;
多层次,多方位的维护实用程序,使系统在运行过程中出现的数据失误能及时恢复。
更新用户界面,操作方便、直观、友好、便于系统功能扩充。
电话薄管理系统是一个信息管理系统要求应用程序功能完备易使用等特点。
本论文根据毕业计的内容,系统地阐述了整个通讯录管理系统的功能与实现。
该系统实现了添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯的联系人,并且可以根据数据表的各个字段来查询你所要找的联系人等功能。
一个成功的电话薄管理系统,对电话薄本身而言,不仅可以提供多种服务功能,而且能使电话薄管理可规范,工作效率高,差错少,更重要的是促进了电话薄管理的创新,加快了人们的生活节奏,为电话薄通讯系统行业的创新发展做出了促进作用。
1.1项目开发的背景
在现在信息时代告诉发达的时代,人与人的交流和联系日益增加,因此电话薄管理系统是一种必不可少的通讯工具的内容。
电话薄信息管理系统主要是为用户记录和管理联系人信息活动提供信息服务,它涵盖了联系人姓名、手机号、固话(可选)、性别、生日(可选)、QQ号(可选家庭住址(可选)和备注(可选)的各项管理工作,涉及多方面的功能。
系统能够对用户联系人信息提供存储、更新、查询、删除、修改等功能,是用户可以合理控制信息管理的各个功能,实现管理的方便性、高效性、安全性、科学化、现代化和智能化。
该电话薄管理系统是基于当今社会大环境,人们对通讯工具的要求逐渐增高的背景之下,结合程序设计的日益进步而设计出来的。
1.2可行性分析
建设信息管理系统的必要性取决于需求的迫切性和现实的可行性。
因此在进行系统调查之后就应该进行可行性分析。
可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程。
可行性分析的主要目标是进一步分析和澄清问题定义,进一步明确系统的目标、规模和功能,对系统开发的背景、必要性和意义进行调查分析并根据需求提出开发系统的初
步方案和计划。
它对初步调查进行复审,重新明确问题,对所提系统大致规模和目标及约束进行论证。
一般来说,可行性分析应该在技术可行性、经济可行性金额操作可行性3个方面尽心研究。
该通讯录信息管理系统也从这3个方面进行可行性分析,并论证通讯录信息管理系统建设的必要性和可行性。
1.2.1技术可行性分析
技术可行性主要研究使用现有的技术能否实现构想的信息管理系统即现在我们要开发的通讯录信息管理系统。
本系统采用Microsoft
Visual
C++
6.0数据结构进行开发,在开发技术上具有如下的特点和功能:
1)开发软件:
Microsoft
6.0和亿图提供了以直观的界面、简洁的语言、强大的功能、开放的系统为特色,便于数据的管理和调试,使开发的效率大大提高。
2)采用面向对象的程序设计:
6.0是做数据结构程序中比较好的软件,所有的程序编写都是由对象组成,对象中的各种控件功能齐全,而其对象都具有其特色——封装性、继承性和多态性,增加了应用程序的可重用性、可移植性和可扩展性。
1.2.2经济可行性分析
经济可行性分析主要是分析一个系统的经济效益能否超过它的开发成本,它的主要任务是对项目进行经济效益的评价,评价指标主要分为两部分:
费用的支出主要包括软件开发费、管理费和维护费、开发人员工资和培训费,这套待开发的通讯录信息管理系统由学生在学习实践过程中自行开发,因此在支出的费用上耗资很少。
2)资金的收益采用纸笔记录联系人信息的方法费时费力,如果采用数据库电脑化管理,有效的提高了信息管理的质量和速度,可以节省很多时间。
用户只需要具备简单的电脑操作知识,按照系统提示就可以使用该系统,费用投资较少总之,系统建成后所带来的效益远远大于其发本身所投资的费用,可以降低办公费用,提高办公效率。
1.2.3操作可行性操作可行性
主要考虑待开发系统的操作方式在这个用户组织内能否行得通。
该系统的硬件方面只需要一定数目的电脑设施,软件方面,待该系统开发完成后,系统界面良好,便于操作;
系统移植性较好;
模块与模块之间相互独立,数据具有较好的保密性。
而且在软件的开发过程中会以用的角度对系统进行总体的设计,使系统具有造作的可行性。
在对待开发的通讯录信息管理系统进行了上述三方面的可行性分析之后,发现该系统已具备了开发的基础。
2需求分析
2.1设计题目及要求:
建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;
能够提供添加、删除和修改通讯录信息的功能;
能够提供安不同方式查询的功能;
如按姓名或年龄、电话等查询;
将通讯录保存在文件中;
能够按表格方式输出通讯录信息。
2.2系统功能需求分析:
主要包含一下多种功能:
2.2.1添加:
添加通讯录记录
2.2.2.显示:
显示通讯录记录
2.2.3.删除:
删除通讯录记录
2.2.4.查询:
查询通讯录记录
2.2.5修改:
修改通讯录记录
2.2.6保存:
将信息保存到文件
2.3功能实现
该系统用下面几个模块编写,每个模块执行不同的功能,体现了模块化设计思想。
所有的模块都是利用C语言文件,向文件中添加数据、修改数据、查询数据、删除数据和储存数据。
(1).系统设置功能
用户选择系统设置功能,系统显示当前设置,并可让用户更改设置,用户更改设置,用户选择保存,系统存储用户修改过的设置,并提示保存成功。
(2).联系人信息功能
对联系人的信息根据选择进行相应的修改编辑,再选择保存,系统存储用户输入的联系人信息,并提示保存成功。
(3).信息查询功能
用户输入关键词并按搜索键,系统显示搜索到的相关联系人姓名和电话号码列部信息。
对于查询联系人信息,我则提供了四种查找方法:
①按姓名查找;
②按号码查找;
③按序号查找;
④按年龄查找。
(4).添加联系人功能
通过键盘输入电话薄联系人员的序号、姓名、电话号码、地址、年龄信息便可实现将信息添加到电话薄中,添加完毕后系统会自动询问你是否继续添加,再通过键盘输入电话薄联系人员的序号、姓名、电话号码、地址、年龄信息等即可实现继续添加的功能。
(5).显示联系人信息
鉴于该系统的连续可操作性,所以通过之前模块的运行,即可继续运行显示信息的模块,通过调用相关函数来显示所有联系人信息,此功能具有逐个显示的特点。
(6).删除联系人信息
通过调用del()函数来实现此功能,先按输入的联系人姓名查询到该记录,然后提示用户修改该记录编号之外的值,编号不能修改。
修改完毕后会提示是否据需修改。
(7).储存退出系统
该模块是居于整个模块末尾,完成整个程序的运行,通过输入数字“0”即可完成操作。
3总体设计
3.1设计思想
(1)架构选择
当今B/S已经成为一种趋势,由于我们的系统是多用户使用的系统,而且是希望随时随地使用,所以用B/S是比较合理的。
(2).编程语言
我们选择C语言为开发语言,因为C非常的简单易用,易于部署,而且已经比较成熟,有很多现成的资料可供参考。
3.2设计基本概念
在概念设计阶段中,设计人员从用户的角度看待数据及处理要求和约束,产生一个反映用户观点的概念模式。
然后再把概念模式转换成逻辑模式。
将概念设计从设计过程中独立开来使各阶段的任务相对单一化,设计复杂程度大大降低,不受特定的限制。
利用C程序语言的基本设计概念设计,可分成三步进行:
首先设计局部模式,然后把各局部模式综合成一个全局模式,最后对全局ER模式进行优化,得到最终的模式,即概念模式。
3.3处理流程
由于程序流程比较复杂,所以采取分块画出程序流程图,在这里简要选取添加联系人、显示和查询联系人的相关功能流程图。
3.3.1添加联系人功能流程图
由添加联系人的流程图可以看出,在添加的模块上,设计了四种信息,即输入序号、姓名、电话、地址,输入完成后会提示是否继续输入,如果输入y后则可以继续操作,输入n后返回主菜单。
添加联系人程序流程图如下图图3.1所示。
图3.1添加联系人功能程序流程图
3.3.2显示和查询联系人功能流程图
在主菜单上输入2和4后便可进入显示和查询联系人的主界面,在此我提供了五选项:
1.按姓名查询;
2.按电话查询;
3.按地址查询;
4.按序号查询;
5.按姓氏查询。
当主界面打开后输入相应的数字即可实现对应的功能,同理,系统会在您查询完毕后询问您是否继续查询,操作同上。
显示和查找联系人程序流程如下图图3.2所示:
图3.2显示和查找联系人功能程序流程图
3.4总体结构
程序的相关模块结构图能直观的反映出程序功能的,由下面的模块图3.3可以清晰地看出整个电话薄管理系统实现添加、显示、删除与修改的功能。
图3.3总体程序结构图
3.4.1添加
可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、地址,会提示是否继续添加。
3.4.2显示
可以以表格形式输出所有通讯录里的记录
3.4.3删除
输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
3.4.4查询
可以选择用姓名、电话、地址、序号、年龄等方式查询
3.4.5修改
输入欲修改的那个人的名字后,再依次输入编号、姓名年龄、电话号码、地址、即可完成修改
3.4.6保存
输入文件名(带后缀名)后,即可将通讯录信息保存到文件
3.5功能分配
该功能分配主要有:
信息添加、信息显示、信息删除、信息查询、信息修改和信息的存储等功能,这几种功能是基于电话薄通用的功能之下继续编辑的。
3.6主要模块
3.6.1信息查询模块
其中第三种和第四种是基于源代码的第一和第二种而实现运行功能,在上一个查询程序运行之后,按相应数字键即可继续运行其他几种信息查询功能。
3.6.2添加联系人模块
4核心代码实现
本章罗列了三种核心代码,其他代码在此省略不再罗列。
4.1插入模块代码设计
/*插入记录:
按编号查询到要插入的数组元素的位置,然后在该记录编号之后插入一个新数组元素。
*/
intInsert(TELEBOOKtemp[],intn)
{
charch,num[10],s[10];
/*s[]保存插入点位置之前的记录编号,num[]保存输入的新记录的编号*/
TELEBOOKnewinfo;
intflag=0,i=0,kkk=0;
system("
cls"
);
Disp(temp,n);
while
(1)
{stringinput(s,10,"
pleaseinputinsertlocationaftertheNumber:
"
flag=0;
i=0;
while(i<
n)/*查询该编号是否存在,flag=1表示该编号存在*/
{
if(strcmp(temp[i].num,s)==0){kkk=i;
flag=1;
break;
}
i++;
}
if(flag==1)
break;
/*若编号存在,则进行插入之前的新记录输入操作*/
else
{getchar();
printf("
\n=====>
Thenumber%sisnotexisting,tryagain?
(y/n):
s);
scanf("
%c"
&
ch);
if(ch=='
y'
||ch=='
Y'
)
{continue;
{returnn;
/*以下新记录的输入操作与Add()相同*/
{stringinput(num,10,"
inputnewNumber:
i=0;
flag=0;
if(strcmp(temp[i].num,num)==0){flag=1;
getchar();
Sorry,Thenumber%sisexisting,tryagain?
num);
strcpy(newinfo.num,num);
/*将字符串num拷贝到newinfo.num中*/
stringinput(newinfo.name,15,"
Name:
stringinput(newinfo.phonenum,15,"
Telephone:
stringinput(newinfo.address,15,"
Adress:
saveflag=1;
/*在main()有对该全局变量的判断,若为,则进行存盘操作*/
for(i=n-1;
i>
kkk;
i--)/*从最后一个组织元素开始往向移一个元素位置*/
strcpy(temp[i+1].num,temp[i].num);
strcpy(temp[i+1].name,temp[i].name);
strcpy(temp[i+1].phonenum,temp[i].phonenum);
strcpy(temp[i+1].address,temp[i].address);
strcpy(temp[kkk+1].num,newinfo.num);
/*在kkk的元素位置后插入新记录*/
strcpy(temp[kkk+1].name,newinfo.name);
strcpy(temp[kkk+1].phonenum,newinfo.phonenum);
strcpy(temp[kkk+1].address,newinfo.address);
n++;
\n\n"
returnn;
4.2查询模块代码设计
*按编号或姓名,查询电话簿记录*/
voidQur(TELEBOOKtemp[],intn)
intselect;
/*1:
按姓名查,:
按电话号码查,:
按序号查,:
按年龄查,其他:
返回主界面(菜单)*/
charsearchinput[20];
/*保存用户输入的查询内容*/
intp=0;
if(n<
=0)/*若数组为空*/
Notelephonerecord!
\n"
return;
system("
printf("
\n=====>
1Searchbyname=====>
2Searchbytelephonenumber====>
3Searchbynum====>
4Searchbyage\n"
pleasechoice[1,2,3,4]"
scanf("
%d"
select);
if(select==1)/*按姓名查询*/
stringinput(searchinput,10,"
inputtheexistingname:
p=Locate(temp,n,searchinput,"
name"
/*在数组temp中查找编号为searchinput值的元素,并返回该数组元素的下标值*/
if(p!
=-1)/*若找到该记录*/
printheader();
printdata(temp[p]);
printf(END);
pressanykeytoreturn"
Nofind();
elseif(select==2)/*按电话号码查询*/
stringinput(searchinput,15,"
inputtheexistingtelephonenumber:
phonenum"
=-1)
elseif(select==3)/*按序号查询*/
inputtheexistingnum:
num"
elseif(select==4)/*按年龄查询*/
inputtheexistingage:
age"
else
Wrong();
4.3删除模块核心代码设计与实现
/*删除电话簿记录:
先找到保存该记录的数组元素的下标值,然后在数组中删除该数组元素*/
intDel(TELEBOOKtemp[],intn)
intsel;
charfindmess[20];
intp=0,i=0;
=0)
{system("
Disp(temp,n);
1Deletebyname=====>
2Deletebytelephonenumber=====>
3Deletebynum=====>
4Deletebyage\n"
sel);
if(sel==1)
stringinput(findmess,10,"
p=Locate(temp,n,findmess,"
for(i=p+1;
i<
n;
i++)/*删除此记录,后面记录向前移*/
{
strcpy(temp[i-1].num,temp[i].num);
strcpy(temp[i-1].name,temp[i].name);
strcpy(temp[i-1].phonenum,temp[i].phonenum);
strcpy(temp[i-1].address,temp[