通讯录管理程序设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(6)修改联系人功能测试,先按数字6,出现确定修改?回答y,输入修改信息,
再按数字4,输出修改后的信息。如图下图所示:
(7)通讯录排序的功能测试,按姓名字母的方式排序,
先选择7,在选择4,如图所示:
(8)安全突出功能的测试,选择数字8,出现Press any key to continue
然后按键盘任何键退出。测试如图所示:
8退出系统
3详细设计
⑴通讯录逻辑结构描述
通讯录中的联系人类型相同,依次排列,故为线性结构,可描述如下:
通讯录联系人信息表
姓名
性别
电话
群组
地址
电子邮箱
张三
男
15503776658
同学
南阳市
zhangsan@sina.com
李四
男
15603772518
同事
北京市
lisi@126.com
王五
女
18803775599
}ElemType;
//顺序表的结构定义
typedef struct
{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量以一数据元素存储长度为单位
int incrementsize;//约定的增补空间长度
}SqList;
char e_mail[30];//电子邮箱
}ElemType;
通讯录采用的顺序存储结构如下:
typedef struct
{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量以一个数据元素存储长度为单位
int incrementsize;//约定的增补空间长度
//顺序表的基本操作
void ErrorMessage(char *s) //错误处理函数
{
cout<<s<<endl;
exit(1);
}
// 1.初始化操作
void InitList_Sq(SqList &L, int maxsize=LIST_INIT_SIZE, int incresize=LISTINCREMENT)
《数据结构》课程设计报告
题目:数据结构试验
学生姓名:鲁枝权
学院:计算机与信息技术学院
班级:十五班
学号:12013211507
起止日期:2012/12/1—2013/12/14
成绩:
通讯录管理系统
1任务及需求
本设计要求为管理通讯录设计,能够实现对通讯录的日常管理与查询,如:添加、删除、修改、排序、按不同的关键字进行查询、显示、保存等功能。实现程序时要考虑采用合适的数据结构,保证功能较完善。
亲戚
上海市
wangwu@163.com
…
…
…
…
…
…
⑵通讯录数据存储结构描述
存储联系人信息的数据类型定义如下:
typedefstruct
{charname[10];//姓名
char sex[3];//性别
char phone[12];//电话
char group[11];//群组
char addr[31];//地址
6附:完整程序清单
头文件:addrlist.h
#include <iostream>
#include <iomanip>
#include <fstream>
#include <process.h>
#include <string.h>
using namespace std;
const int LIST_INIT_SIZE=10;
保存通讯录
将保存在线性表的联系人信息存入指定的磁盘文件。
调用通讯录
将保存在磁盘文件中的通讯录调入内存的线性表中。
4测试结果
在VC++6.0下运行程序,屏幕提示新建通讯录,输入文件名及若干联系人后,出现程序主菜单,如下图所示
(1)保存与打开通讯录功能测试
在上图中,选出5保存通讯后,退出重新运行通讯录,结果如下图,说明存盘的内容已调入内存并显示。
通过对通讯录管理的需求分析,系统应包括以下功能:
⑴添加联系人信息
⑵编辑修改联系人信息
⑶查询联系人信息,能根据姓名、电话号码、群组等进行查询
⑷删除联系人信息
⑸以某种顺序输出联系人信息
⑹文件操作:能将联系人的信息保存到磁盘文件,并且可以从文件中读出所有信息
⑺排序:能够对所有联系人按姓名、电话号码等进行排序。
{
L.elem=new ElemType [maxsize];
5收获与体会
通过半年的数据结构学习,又通过老师的指导完成这个实验,感觉自己掌握了很多有用的知识,知道如何运用数组,如何运用排序思想,更加知道如何在框架程序中添加数据元素,通过这次试验才发现一直用的手机通讯录自己也可以通过代码展现出来。我感觉到数据结构在生活中的运用,这也表明本专业在就业方面的前景,我会更加努力学习数据结构知识,以增加我的专业能力。
2总体设计
根据任务及需求分析确定程序的总体设计,采用交互方式进行操作,通过主菜单实现对各功能模块的调用,为了保证长期反复使用通讯录信息,方便实现数据的更新和维护,分别设计保存通讯录、读入通讯录模块。系统功能模块如下:
1添加Baidu Nhomakorabea系人
2删除联系人
3查询联系人
4修改联系人
5显示所有联系人
6保存通讯录
7调用通讯录
const int LISTINCREMENT=5;
//联系人数据结构定义
typedef struct
{char name[10];//姓名
char sex[3];//性别
char phone[12];//电话
char group[11];//群组
char addr[31];//地址
char e_mail[30];//电子邮箱
}SqList;
⑶主要功能模块设计
添加联系人
此模块依次输入每位联系人信息,保存到线性表中。
删除联系人
按联系人姓名删除指定的联系人。
查询联系人
按姓名或电话号码查询指定的联系人,若存在,显示相关信息,否则显示此人不存在。
修改联系人
若指定联系人存在,允许修改联系人的信息。
显示所有联系人
按一定的格式输出通讯录联系人信息。
(2)添加联系人与输出通讯录功能测试
选择菜单中的1,添加一位联系人后,再选择4,结果如下图:
(3)删除联系人功能测试
选择菜单中的2,删除一位联系人后,再选择4,结果如下图所示:
(4)查询通讯录信息测试,选择查询数字3,输入查询信息人的名字,测试结果如图所示:
(5)保存功能的测试,一般进行功能测试后都需要这保存功能,上面进行的测试及下面进行的测试反应保存功能测试。
再按数字4,输出修改后的信息。如图下图所示:
(7)通讯录排序的功能测试,按姓名字母的方式排序,
先选择7,在选择4,如图所示:
(8)安全突出功能的测试,选择数字8,出现Press any key to continue
然后按键盘任何键退出。测试如图所示:
8退出系统
3详细设计
⑴通讯录逻辑结构描述
通讯录中的联系人类型相同,依次排列,故为线性结构,可描述如下:
通讯录联系人信息表
姓名
性别
电话
群组
地址
电子邮箱
张三
男
15503776658
同学
南阳市
zhangsan@sina.com
李四
男
15603772518
同事
北京市
lisi@126.com
王五
女
18803775599
}ElemType;
//顺序表的结构定义
typedef struct
{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量以一数据元素存储长度为单位
int incrementsize;//约定的增补空间长度
}SqList;
char e_mail[30];//电子邮箱
}ElemType;
通讯录采用的顺序存储结构如下:
typedef struct
{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量以一个数据元素存储长度为单位
int incrementsize;//约定的增补空间长度
//顺序表的基本操作
void ErrorMessage(char *s) //错误处理函数
{
cout<<s<<endl;
exit(1);
}
// 1.初始化操作
void InitList_Sq(SqList &L, int maxsize=LIST_INIT_SIZE, int incresize=LISTINCREMENT)
《数据结构》课程设计报告
题目:数据结构试验
学生姓名:鲁枝权
学院:计算机与信息技术学院
班级:十五班
学号:12013211507
起止日期:2012/12/1—2013/12/14
成绩:
通讯录管理系统
1任务及需求
本设计要求为管理通讯录设计,能够实现对通讯录的日常管理与查询,如:添加、删除、修改、排序、按不同的关键字进行查询、显示、保存等功能。实现程序时要考虑采用合适的数据结构,保证功能较完善。
亲戚
上海市
wangwu@163.com
…
…
…
…
…
…
⑵通讯录数据存储结构描述
存储联系人信息的数据类型定义如下:
typedefstruct
{charname[10];//姓名
char sex[3];//性别
char phone[12];//电话
char group[11];//群组
char addr[31];//地址
6附:完整程序清单
头文件:addrlist.h
#include <iostream>
#include <iomanip>
#include <fstream>
#include <process.h>
#include <string.h>
using namespace std;
const int LIST_INIT_SIZE=10;
保存通讯录
将保存在线性表的联系人信息存入指定的磁盘文件。
调用通讯录
将保存在磁盘文件中的通讯录调入内存的线性表中。
4测试结果
在VC++6.0下运行程序,屏幕提示新建通讯录,输入文件名及若干联系人后,出现程序主菜单,如下图所示
(1)保存与打开通讯录功能测试
在上图中,选出5保存通讯后,退出重新运行通讯录,结果如下图,说明存盘的内容已调入内存并显示。
通过对通讯录管理的需求分析,系统应包括以下功能:
⑴添加联系人信息
⑵编辑修改联系人信息
⑶查询联系人信息,能根据姓名、电话号码、群组等进行查询
⑷删除联系人信息
⑸以某种顺序输出联系人信息
⑹文件操作:能将联系人的信息保存到磁盘文件,并且可以从文件中读出所有信息
⑺排序:能够对所有联系人按姓名、电话号码等进行排序。
{
L.elem=new ElemType [maxsize];
5收获与体会
通过半年的数据结构学习,又通过老师的指导完成这个实验,感觉自己掌握了很多有用的知识,知道如何运用数组,如何运用排序思想,更加知道如何在框架程序中添加数据元素,通过这次试验才发现一直用的手机通讯录自己也可以通过代码展现出来。我感觉到数据结构在生活中的运用,这也表明本专业在就业方面的前景,我会更加努力学习数据结构知识,以增加我的专业能力。
2总体设计
根据任务及需求分析确定程序的总体设计,采用交互方式进行操作,通过主菜单实现对各功能模块的调用,为了保证长期反复使用通讯录信息,方便实现数据的更新和维护,分别设计保存通讯录、读入通讯录模块。系统功能模块如下:
1添加Baidu Nhomakorabea系人
2删除联系人
3查询联系人
4修改联系人
5显示所有联系人
6保存通讯录
7调用通讯录
const int LISTINCREMENT=5;
//联系人数据结构定义
typedef struct
{char name[10];//姓名
char sex[3];//性别
char phone[12];//电话
char group[11];//群组
char addr[31];//地址
char e_mail[30];//电子邮箱
}SqList;
⑶主要功能模块设计
添加联系人
此模块依次输入每位联系人信息,保存到线性表中。
删除联系人
按联系人姓名删除指定的联系人。
查询联系人
按姓名或电话号码查询指定的联系人,若存在,显示相关信息,否则显示此人不存在。
修改联系人
若指定联系人存在,允许修改联系人的信息。
显示所有联系人
按一定的格式输出通讯录联系人信息。
(2)添加联系人与输出通讯录功能测试
选择菜单中的1,添加一位联系人后,再选择4,结果如下图:
(3)删除联系人功能测试
选择菜单中的2,删除一位联系人后,再选择4,结果如下图所示:
(4)查询通讯录信息测试,选择查询数字3,输入查询信息人的名字,测试结果如图所示:
(5)保存功能的测试,一般进行功能测试后都需要这保存功能,上面进行的测试及下面进行的测试反应保存功能测试。