封辉玲通讯录课设报告论文.docx
- 文档编号:11589813
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:20
- 大小:1.89MB
封辉玲通讯录课设报告论文.docx
《封辉玲通讯录课设报告论文.docx》由会员分享,可在线阅读,更多相关《封辉玲通讯录课设报告论文.docx(20页珍藏版)》请在冰豆网上搜索。
封辉玲通讯录课设报告论文
课程名称:
Visualc++
湖南涉外经济学院
本科学生课程设计(论文)
题目通讯录管理系统
姓名封辉玲
学号
学部计算机科学与技术
专业、年级计科1001
指导教师胡德鹏
2011年6月12日
摘要
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。
随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、寿命长、成本低等。
这些优点能够极大地提高通讯录管理的效率,也是用户理财的科学化、正规化管理,与先进科学技术接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
本系统使用VisualC++编写,VisualC++6.0是Microsoft公司推出的功能最强大、最复杂的语言产品之一,它是目前为止在Windows环境下进行大型软件开发的首选。
VisualC++6.0作为VisualStudio家族中的一员,是Microsoft公司以C++语言为基础开发的可视化集成开发工具。
对于我们学习计算机专业的学生来说,也是一次将计算机应用于现实管理的一次很有意义的实践。
关键词:
VC++;通讯录;通讯管理系统.
目录
第1章前言1
1.1引言1
1.2课题背景1
1.3研究状况2
1.3.1国内研究状况2
1.3.2国外研究状况2
1.4目的意义2
第2章系统功能分析3
2.1系统功能分析3
2.2可行性分析3
2.2.1技术可行性分析3
2.2.2经济可行性分析4
2.2.3系统主界面需求4
第3章总体设计5
3.1系统目标5
3.2系统模块划分5
3.3系统流程图6
3.3.1系统程序流程图6
第4章详细设计8
4.1说明8
4.1.1开辟空间8
4.1.2结构体定义8
4.1.3链表8
4.2各模块的详细设计及主要算法9
4.2.1录入功能的实现9
4.2.2修改功能的实现9
4.2.3查找功能的实现10
4.2.4删除功能的实现11
4.2.5保存功能的实现12
4.2.6退出功能的实现13
4.2.7列表记录的功能13
4.2.8主界面背景图片的实现14
第5章系统测试15
5.1系统测试概述15
5.2系统测试15
5.2.1录入15
5.2.2修改16
5.2.3删除16
第6章总结17
参考文献18
第1章前言
1.1引言
通讯录软件设计的灵感来源于生活和工作中的需要。
如今,随着社会的飞速发展,信息时代改变着人们的各种生活方式。
人们的联系信息,联系方式变得复杂而多样化,以前所使用的各种电话簿、通讯本等小册子由于查找不方便、功能单一等缺陷已经无法胜任它的“时代使命”,而现在各种手机,商务通内设的电话簿尽管携带方便却又挥之不去其“记录量少,界面小,浏览不方便”的缺点。
工作中看到有些人巧妙地利用excell或者word制表格来建立通讯录,每逢用时再
打开,可是查找极其不便,维护起来也麻烦。
通讯录管理系统的建立也可以有效地节省同学、朋友、亲人、客户间日常交流,其设计理念很简单,变传统的纸张与笔录方式为计算机自动化进行通讯录信息管理系统,既省时间又提高效率。
为了解决上述的问题,由此想到做一个简单的通讯录系统很有必要。
通讯录系统设计,它的内容对于计算机来说是至关重要的,通讯录系统为计算机的使用者提供充足的信息和快捷的查询手段。
用C++语言构建的通讯录系统设计,通过课上学到的和查阅一些文献的一些关于结构体、数组、指针、函数以及循环函数的运用和链表等基本知识可以初步的实现通讯录的输入、显示、查找、删除、快速查询等通讯录简单而用的一些实用的功能,给人们带来更多的方便。
本管理系统设计合理、操作方便、运行稳定、功能完备,具有较高的实用价值。
1.2课题背景
通讯录管理系统是每一个用户管理通讯录的不可缺少的一个管理信息系统,它的内容对于用户的管理者来说是至关重要的,所以通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。
随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
当今时代,网络已经成为人们生活中不可缺少的一部分,Internet它打破了地域时间限制,改变了人们的工作和生活方式。
随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,计算机在管理中应用的普及,利用计算机实现各种管理势在必行。
随着社会的发展及知识经济时代的到来,管理信息系统在各行各业发挥着越来越重要的作用。
通信录管理系统是典型的信息管理系统。
通信录管理系统包含了大量的信息数据,满足管理者的需求。
1.3研究状况
1.3.1国内研究状况
近年来,国内大中型企业、政府、高校等通过网络平台宣传自己,而以ASP为基础的通讯录系统平台为主流。
该平台功能比较齐全,可以满足绝大部分用户的需要。
并且该平台易于开发、维护,使用方便。
1.3.2国外研究状况
政府机关单位都拥有本身的通讯录系统,从而不必为基础设施、软件以及职员方面投入大量资金,大大减少了经费的支出,还减少了职员的工作量。
1.4目的意义
今天,计算机的价格已经十分低廉,性能却有了长足的进步。
它已经被应用于许多领域。
现在我国的通讯录管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高管理的效率。
开发这一系统的好处大约有以下几点:
第一、可以存储大量的通讯录信息,安全、高效;
第二、只需一档案录入员即可操作系统,节省人力;
第三、可以迅速查到所需通讯录信息。
第2章系统功能分析
2.1系统功能分析
随着经济的飞速发展,工作负担和压力急剧增长,时间更显得短促珍贵,自己的同事、朋友的联系受到了极大的影响。
本系统的主要功能是使用户方便的对于自己的同事、朋友的基本情况稍作处理存入本系统,就可实现对于同事、朋友基本情况的管理等,目的是减轻人们工作的负担和简化和同事、朋友联系的方便。
本课程设计主要运用C语言中的结构体、数组、链表等数据结构,设计一个简单的管理系统应用程序。
本程序设计出了通讯录管理系统的基本功能,并设计了简单的界面,主要考察对自定义函数的熟悉程度,使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。
通过完成本课题进一步熟悉C++语言基本知识,并掌握数据结构的一些基本算法思想,进一步熟悉指针的用法,数组的建立运用、函数调用和链表的使用,加深对数据结构的理解,提高算法设计的能力,锻炼编程的能力。
用C++语言编程的通讯录管理系统,要求实现通讯录系统中,添加新记录、修改信息、删除记录、保存记录信息、按名字查找信息和退出系统等功能。
录入人员的编号、姓名、个人邮箱、QQ、地址、联系电话。
显示人员的信息。
通过输入姓名或编号查找人员信息。
通过输入或选择姓名查找到要删除的人员信息,然后可以进行删除,回显当前通讯录信息。
通过输入姓名查找到要修改的人员信息,次进行信息修改。
添加人员信息。
2.2可行性分析
在程序的界面里面可以选择添加、删除、查询、修改和输出学生的信息,其中删除、查询、修改学生信息都通过对学生姓名或编号的选择来实现,本程序能基本满足简单信息管理以及通讯联系的使用需要。
2.2.1技术可行性分析
本系统基于Win32平台下的VisualC++6.0语言编写,具有可移值性、高效性等特点,适应于Windows系列操作系统。
依托管理系统理论及先进的计算机技术,将其与计算机技术相结合,生成的代码,可靠性高适用于各种应用软件及普通用户进行操作。
由于对通讯录管理系统这一类的联系记录管理系统进行开发已有一定的时期,有很多成功的实例,技术基础也已经非常雄厚,因而技术上的准备应该不成问题。
2.2.2经济可行性分析
由于通讯录管理系统是一个比较小型的系统,本系统的开发成本包括开发时间、软件、硬件。
开发时间为一个月,是由我一个人利用课余的时间进行开发的。
软件成本为现有软件,已经网上找到的免费开发工具,完全胜任开发要求。
硬件成本是已有的一台电脑,相关现有的外围设备。
开发本系统的经济条件具备,可以开发。
2.2.3系统主界面需求
要求提供一个界面供管理者来选择,以实现对个人基本信息的添加、删除、查询、修改等功能,也就是说界面要求尽量简洁、直观、美观,并且操作简单灵活,效率高等特点。
本系统最终主界面如下:
第3章总体设计
3.1系统目标
随着科学技术的不断提高,计算机科学日渐成熟,网上通讯工具的迅速发展,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
通讯录管理系统应该能够为每一个用户的管理者提供充足的信息和快捷的查询手段,大大的方便用户合理的管理通讯录。
3.2系统模块划分
图3-1系统功能模块图
根据功能描述,通讯录管理系统分为1个主要功能模块,即用户模块,此系统结构图如图3-1所示。
用户模块的主要功能包括录入个人基本信息、修改个人信息、删除个人信息、查找个人信息、保存个人信息和退出通讯录管理系统。
用户录入个人的信息包括姓名、编号、邮箱、电话、地址、QQ号码;修改信息则是按照姓名来进行的;查找信息则是按照编号或者姓名进行的;当编号和姓名都存在是以编号优先查询;删除信息则是按照姓名进行的;保存则是当所有个人的基本信息填好后再进行保存;最后退出系统。
特别地,当录入一个人的基本信息后,与此同时其名字也会存放到列表里,可以进行相应的操作,以方便管理者的查找、修改和删除等操作。
3.3系统流程图
假
假
真
3.3.1系统程序流程图
程序流程图如图3-2所示。
首先登录系统,进入界面后可以对系统内部数据进行录入、修改、删除等操作了,并且可以控制整个系统的运行状态,决定是否退出本系统。
单击相应的按钮,可以调用相应的函数,从而进行相应的操作。
当内存里无任何信息时,相应的操作会提示信息:
警告或是提醒,从而让你正确的使用此操作。
第4章详细设计
4.1说明
4.1.1开辟空间
在传统的数组定义中,必须先对数组的大小进行定义后方可进行数据的存储,但对于本系统的要求而言,在进行运算之前,是无法确定数组的大小,数组的大小是由用户在程序运行的过程中进行定义。
若是在程序运行之前预先定义好大小,如果用户需要进行比较大的数组运算,则显然不适用,再者,如果预先将数组大小定义得过大,则浪费了系统资源,显而易见,在本系统中,必须录找到
一种新的定义方法,要能在程序运行的过程中动态地定义数组的大小。
为解决这一问题,本系统实现了动态地定义,其主要的算法如下:
TEL*p1=NULL;
p1=newTEL;
4.1.2结构体定义
用结构体描述个人基本信息,结构体是由若干成员组成,为方便管理,各成员都是相同的类型。
本系统信息可用结构体描述为:
typedefstructTelephone
{
charnumber[200];
charname[20];
charoff[20];
charaddrass[20];
charmail[20];
chartelephone[20];
Telephone*next;
}TEL;
TEL*head=NULL;
4.1.3链表
主要函数和数据的声明,其中对学生信息的查询,添加,修改,删除用链表实现,链表是最简单也是最常见的一种动态数据结构,链表中每一个元素称为结点,每个结点都应包括两部分:
一是用户需要用的实际数据,二是下一个结点的地址。
4.2各模块的详细设计及主要算法
4.2.1录入功能的实现
voidCCommunicateDlg:
:
OnCrease()
{
TEL*p1=NULL,*p2=NULL;
p1=newTEL;//申请结点
strcpy(p1->name,m_Name);//添加信息
strcpy(p1->off,m_Of);
strcpy(p1->addrass,m_Address);
strcpy(p1->mail,m_Mail);
strcpy(p1->telephone,m_Phone);
strcpy(p1->number,m_Num);
p1->next=NULL;
//保存到链表
if(head==NULL)
{
head=newTEL;//申请空间
head->next=p1;
}
else
{
for(p2=head;p2->next!
=NULL;p2=p2->next);//找到结点尾
p2->next=p1;
}
MessageBox("此信息已添加");
}
如果没有任何信息的输入就单击了“录入”按钮,则系统会弹出一警告提醒信息“请输入基本信息”,要求管理者正确使用。
当个人所有的基本信息都输入完毕后,用鼠标单击录入按钮,系统会显示"此信息已添加"的提示信息,表示成功录入。
4.2.2修改功能的实现
voidCCommunicateDlg:
:
OnChange()
{
UpdateData(true);
TEL*p;
CStringname;
name=m_Name;
for(p=head->next;p!
=NULL;p=p->next)
{
if(p->name==name)
{
strcpy(p->name,m_Name);//修改信息
strcpy(p->off,m_Of);
strcpy(p->addrass,m_Address);
strcpy(p->mail,m_Mail);
strcpy(p->telephone,m_Phone);
strcpy(p->number,m_Num);
break;
}
}
if(p==NULL)MessageBox("无此信息!
","警告",MB_ICONWARNING);
elseMessageBox("修改成功","提示");
}
修改功能首先是通过姓名来查询获得某联系人的所有信息,然后进行修改操作。
如果没有输入要修改联系人的姓名,那么系统会出现一警告信息,要求重新操作;如果输入的姓名不存在,则系统会出现“无此信息”的提示。
当姓名存在且修改了要修改的信息后,系统会提示你"修改成功"。
4.2.3查找功能的实现
voidCCommunicateDlg:
:
OnSearch()
{
UpdateData(true);
TEL*p;
CStringfind;
if(!
m_Num.IsEmpty())
{
find=m_Num;
for(p=head;p!
=NULL;p=p->next)
{
if(p->number==find)
{
m_Num=p->number;m_Name=p->name;
m_Of=p->off;m_Address=p->addrass;
m_Mail=p->mail;m_Phone=p->telephone;
UpdateData(false);
return;
}
}
MessageBox("请输入正确的编号","提醒",MB_ICONWARNING);
}
else
{
find=m_Name;
for(p=head;p!
=NULL;p=p->next)
{
if(strcmp(p->name,find)==0)
{
m_Num=p->number;m_Name=p->name;
m_Of=p->off;m_Address=p->addrass;
m_Mail=p->mail;m_Phone=p->telephone;
UpdateData(false);
return;
}
}
MessageBox("请输入正确的姓名","提醒",MB_ICONWARNING);
}
}
查找功能可以通过两种方式实现:
编号和姓名。
当操作者没有输入任何查询关键字,则系统会提示“请输入要查找对象的编号或姓名”信息,要求正确使用。
如果你输入的是姓名或编号,单击“查找”按钮,那么都会出现两种情况:
存在和不存在。
如果不存在则会提示你输入正确的编号或姓名,以继续操作。
如果存在,单击“查找”按钮就会出现相对应的联系人所有信息。
4.2.4删除功能的实现
voidCCommunicateDlg:
:
OnDelete()
{
CStringfind;/*先查找后删除*/
TEL*p=head,*pr;
find=m_Name;
while((strcmp(p->name,find)!
=0)&&p->next!
=NULL)
{
pr=p;
p=p->next;
}
if(strcmp(find,p->name)==0)/*输出删除信息*/
{
if(p==head->next)
head->next=p->next;
else
pr->next=p->next;
free(p);
MessageBox("此信息已删除!
");
}
else
MessageBox("无此信息!
","警告",MB_ICONWARNING);
intnIndex=m_List.GetCurSel();
if(nIndex!
=LB_ERR)
{
m_List.DeleteString(nIndex);
}
else
{
GetDlgItem(IDC_Delete)->EnableWindow(FALSE);
}
}
删除功能是在选择列表中的姓名来进行的删除操作。
当成功删除后,系统会提示你“此信息已删除”;如果操作者没进行任何的选择,就进行删除操作,那么系统会要求“请选择要删除的对象”来继续进行操作;如果系统中没有任何的信息,那么系统会提示这是“空链表”。
4.2.5保存功能的实现
voidCCommunicateDlg:
:
OnSave()
{
TEL*p=NULL;
FILE*fp;
char*Book="books.txt";
if((fp=fopen(Book,"wb+"))==NULL)
{
MessageBox("\n打不开文件!
\n");
return;
}
while(p!
=NULL)/*保存信息*/
{
fwrite(p,sizeof(TEL),1,fp);
p=p->next;
}
MessageBox("保存完毕!
","提示");
fclose(fp);
}
保存功能是在所有的操作进行后,如果需要在下次进入通讯录系统时还能看见的前提下进行的操作。
所有基本信息为空时保存成功就会提示“保存完毕”。
4.2.6退出功能的实现
voidCCommunicateDlg:
:
OnQuite()
{
/*****释放链表空间*****/
TEL*p;
for(;head->next!
=NULL;)
{
p=head->next;
head->next=head->next->next;
free(p);
}
free(head);
CDialog:
:
OnCancel();
}
当你想退出系统时,只要单击“退出”按钮就可以了。
4.2.7列表记录的功能
voidCCommunicateDlg:
:
OnSelchangeList1()
{
intnIndex=m_List.GetCurSel();
if(nIndex!
=LB_ERR)
{
m_List.GetText(nIndex,m_Name);
CStringfind=m_Name;
TEL*p;
for(p=head;p!
=NULL;p=p->next)
{
if(strcmp(p->name,find)==0)
{
m_Num=p->number;m_Name=p->name;
m_Of=p->off;m_Address=p->addrass;
m_Mail=p->mail;m_Phone=p->telephone;
}
}
}
UpdateData(false);
}
列表记录的功能是通过把姓名显示到列表中来达到只要单击姓名就可以查看到所有的基本信息,功能强大,程序简单。
4.2.8主界面背景图片的实现
voidCCommunicateDlg:
:
OnPaint()
{
//CDialog:
:
OnPaint();//禁止这个调用
CPaintDCdc(this);
CRectrect;
GetClientRect(&rect);
CDCdcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmapbmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP4);//加入的位图资源
BITMAPbitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap*pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,360,100,SR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 封辉玲 通讯录 报告 论文