C课程方案设计书《通讯录的制作》.docx
《C课程方案设计书《通讯录的制作》.docx》由会员分享,可在线阅读,更多相关《C课程方案设计书《通讯录的制作》.docx(25页珍藏版)》请在冰豆网上搜索。
C课程方案设计书《通讯录的制作》
封面
作者:
PanHongliang
仅供个人学习
河南城建学院
课程设计报告书
专业:
计算机科学与技术
课程设计名称:
《数据结构课程设计》
题目:
通讯录的制作
班级:
0814102班
学 号:
081410203
姓 名:
郝静琳
同组人员:
王芳
指导老师:
张延红张芳芳杨斌
完成时间:
2012年2月17日
摘要
通讯录是现在社会中最常用到的东西,在信息社会,对通讯录的电子化已经是很平常的事了。
本文主要叙述了一个使用VC制作一个通讯录的过程。
系统主要是为了满足个人用户对联系人的管理和查询而设计。
实现了用户对联系人信息的添加、查询、浏览、删除和对基本用户的管理,并且联系人的信息必须包括姓名、街道、城市、邮编、国家这些信息选项。
系统使用visualc++作为编程语言数据结构。
系统设计突出、人性化的特点。
界面美观,友好。
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言。
关键词:
VC、通讯录、数据
目录
目录1
第一章开发环境和开发工具1
1.1C语言简介1
1.2开发背景1
1.3开发环境1
第二章算法思想5
2.1系统需求分析5
2.2系统总体设计5
2.2.1系统设计目标5
2.2.2开发设计思想5
2.2.3系统功能模块设计6
2.3算法思想描述6
第三章算法实现8
3.1数据结构8
3.2程序模块8
3.3各模块之间的调用关系23
3.4源程序代码23
第四章测试与分析29
4.1测试数据选择29
4.2测试结果分析29
总结34
心得体会35
参考文献36
第一章开发环境和开发工具
1.1C/C++语言简介
也可以让各种组件方便的转变为基于Web的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。
1.2开发背景
随着科学技术的不断发展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它己进入人类社会的各个领域并发挥着越来越重要的作用。
采用计算机进行通讯录管理已成为衡量企业管理科学化和现代化的重要标志,而通讯录管理的全面自动化则是其中重要的组成部分。
因此,本文所研究的通讯录管理系统具有一定的使用价值和现实意义。
1.3开发环境
本文所采用的开发环境主要是基于vc6.0。
编程语言经过编译或解析成为机器语言,才能别计算机理解并执行。
高级语言按照翻译方式可以分为两类:
编译性和解释性。
C++是一种编译性的高级语言,其过程严格按照6个步骤进行:
语法分析、词法分析、语义分析、中间代码生成、优化代码和目标代码生成。
Vc6.0是当今主流的c/c++集成开发环境,除集编辑、编译和运行与一体外,还提供了丰富的控件、菜单和类定义自动处理功能。
语言编译
程序员------集成开发工具计算机
程序员Vc6exe(0101001)
VC6.0的全称是:
Visualc++6.0;它是美国Microsoft公司研发的基于Windows操作系统的C++集成开发环境。
高级语言的编程的学习,主要分为两个方面:
语言理论和开发工具。
VC6.0作为一个集成开发环境,是学习的重点。
开始/所用程序\MicrosoftVisualStudio6.0\MicrosoftVisualC++6/0启动VC6.0开发环境,也可以通过找到安装VC6.0的子目录启动MSDEV.EXE执行文件来启动VC6.0开发环境。
用向导来创建一个软件项目。
在软件开发过程中,人们认识到应用程序的创建有相似性和重复性,如果能有一种功能,即自动化创建一类程序,则可以大大提高软件开发效率和软件编程的入门门槛。
因此应用程序向导应运而生。
C/C++编译器
C和C++都是高级语言。
C语言主要是用于面向对象的程序设计,而C++是C的超集,即C是C++的子集。
C++包含了原有的C的语法规则,同时增加了面向对象和泛型编程的思想,支持了类的定义,对象的创建和通用算法的使用。
高级语言要被计算机理解并执行,都要经过一个“翻译的过程”。
在编译语言中,这种“翻译过程”有两种:
编译性和解释性。
变异性缘是将该语言一次性编译成另外一种语言或机器语言,如C/C++;解释性语言是在运行时逐行或逐段解释成其他语言或机器语言,如HTML.
连接器和调试器
VC6.0集成开发环境提供了很方便的功能之一;
编辑、连接、编译和运行的一体化。
原来连接器要做的工作就是将C/C++编译器产生OBJ文件和资源编译器生成的RES文件连接起来。
而现在这个步骤在VC6.0中队橙学院来说是透明的。
调试器是VC6.0中查找程序错误的工具,该工具个语法分析过程的语法错误提示不同。
首先应该理解程序从开发到使用种可能发生两种错误:
语法错误和逻辑错误。
第二章算法思想
随着计算机技术的飞速发展,电子计算机和通信技术的发展,人类已经逐渐地进入信息化社会。
人们对信息和数据的利用与处理也已进入自动化、网络化的阶段,因此,开发相关的通讯录管理系统已经成为各行各业的必要了。
2.1系统需求分析
目前,各类企业所管理的人数不断增加,依靠传统的方式来管理人员通讯录信息已经不能满足各类企业对人员的了解,在这种情况下,通讯录管理系统应运而生。
一套合格的通讯录管理系统必须具备以下特点:
能够对给类人员通讯信息进行集中管理。
能够大大提高用户的工作效率。
能够对人员信息实现增,删,改,查功能。
通讯录管理系统最重要的功能包括以下几个方面:
人员信息的添加、删除、查询、修改。
2.2系统总体设计
2.2.1系统设计目标
本文研究开发的通讯录管理系统用于支持企业完成对人员进行通讯管理工作,有如下三个方面的目标:
●支持企业实现规范化的管理。
●支持企业高效率完成人事通讯管理的日常业务,包括新员工加入时人事通讯录档案的建立、老员工转出、辞职、退休等。
2.2.2开发设计思想
基于以上系统设计目标,本文在开发人事管理信息系统时遵循了以下开发设计思想:
●采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。
●尽量达到操作过程中的直观、方便、实用、安全等要求。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
●系统应具备基本功能,及时根据用户需求进行数据的添加、删除、修改、等操作。
2.2.3系统功能模块设计
本系统分为四个模块:
添加信息模块,查看信息,查找信息,删除信息。
得到如图3-1所示的系统功能模块图。
图2-1系统功能模块图
2.3算法思想描述
本程序的算法根基程序要实现功能进行算法说明。
1.建立通讯录
建立通讯录是在函数person *create(int)中实现的。
本质上是一个链表的建立。
首先我们需要两个指针TEL *head,*rear=NILL.,进行链表数据的保存,建立表头对指针head分配内存,head=new TEL。
对分配内存是否成功,j进行数据输入。
否则分配不成功,结束程序!
然后进行表体的建立,因为要输入多次,而且次数是清楚的,所以用while做循环,进行表体的建立及朋友信息的录入。
2.查看通讯录
查看通讯录的实质是对链表的遍历,循环次数不确定,选择用 if 循环对数据进行输出, 当不为空的时候,一直循环,当 ( head==NULL)时,跳出循环体。
这样实现了查看的功能。
3.查找联系人
本功能的实质就是传入一个关键之,姓名,然后在链表中进行查找,找到后对该节点进行输出。
具体算法:
for ( p=head;p!
=NULL;p=p->next)
{
if(strcmp(p->name, findname)==0)//比较字符串s1和s2。
{
printf("%-16s%-16s%-16s%-16s%-16s\n",p->name,p->street,p->city,p->eip,p->state);
++count;
}
}
if(count==0)
printf("查无此人\n");
getchar();
4.删除联系人
删除联系人,查找到该联系人,链表调整,删除指定节点!
删除联系人的姓名和表头,用while循环对链表惊醒条件遍历,当前节点的姓名等于传入姓名,跳出循环体。
然后对当前节点和前节点进行判断,如果当前节点为空。
五次朋友的信息。
如果前节点为空。
删除表头。
其他情况删除为表体。
第三章算法实现
3.1数据结构
资料信息系统是一个数据库应用系统,个人相关的所有信息都保存在数据库中。
3.2程序模块
1.文件引用
在通讯录管理系统中应用一些头文件,这些头文件可以帮助程序更好的运行。
头文件引用时通过#include命令来实现的,下面为本程序所引用的头文件。
#include//定义输入/输出函数
#include//字符串处理
#include//定义杂项函数及内存分配函数
2.声名结构体
在本系统中定义了一个结构体telephone,用来表示个人信息,其中包括个人信息的名字、街道、城市、邮编和国家等信息。
定义了一个名为TEL的telephone类型的结构体变量。
structTelephone
{
charname[20];
charstreet[20];
charcity[20];
chareip[20];
charstate[20];
structTelephone*next,*front;
};
typedefstructTelephoneTEL;
3.函数声明
在本程序中使用了几个自定义的函数,这些函数的功能及声名格式如下。
voidshowmenu();//菜单
voidenter();//输入条目
voiddisplay();//输出条目
voidsearch();//查找条目(按姓名)
voiddelet();//删除信息
4.主函数
主函数是程序的入口。
本程序数的时间的功能是:
调用showmenu函数显示主菜单功能;然后等待用户输入所选功能的编号,吉尔调用相应的功能;最后再次调用showmenu,显示主菜单功能。
程序代码如下:
voidmain()
{
charch;
color();
for(;;){
while
(1)
{
showmenu();//显示菜单
scanf("%c",&ch);
getchar();
switch(ch)
{
case'1':
enter();//添加条目
break;
case'2':
display();//输出条目
break;
case'3':
search();//查找条目1.按姓名
break;
case'4':
delet();//删除信息
display();//输出删除后的结果
break;
case