通讯录管理系统的设计与实现

  • 格式:doc
  • 大小:354.50 KB
  • 文档页数:26

下载文档原格式

  / 26
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告

通讯录管理系的设计与实现

姓名:钟婷英班级:计122

学号:1213023039 时间:2014年1月10日

1,问题描述

通讯录是用来记载和查询联系人通讯信息的工具,电子通讯录已经为手机,电子词典等设备中不可缺少的工具软件,请设计一个能够满足这种需求的软件,基本功能模块如下图所示。

输入:记录的录入。

显示:通讯录的显示。

查找:按指定方式,输入关键字,查找指定记录。

插入:实现记录的添加或在指定位置插入记录。

保存:将内存中正在被操作的通讯录以文件形式保存到磁盘。

读入:保存的逆操作,讲存在磁盘中的通讯录文件读到内存中。

排序:按指定关键字对通讯录数据进行排序。

修改:提供修改某条记录的功能。

移动:移动记录在通讯录中的存储位子,使其被查找或显示时的位序前移或后移。退出:结束程序运行。

2,设计要求

(1)设计通讯录数据的逻辑结构和物理结构。

(2)通讯录至少包括下列数据信息:姓名,电话,单位等。

(3)完成图示基本功能。

(4)软件易用,操作简单。

(5)根据自己使用通讯录体会扩充其他功能,如按姓名查找,按号码查找,按序号删除等。

(6)设计足够多的测试用例

(7)数据输入有效性检验:如姓名不能为空,号码中不能有非法字符等。(8)提供分组管理的相关功能,如:分组显示,加入组,组创建,组查询等。(9)可视化的界面设计。

3,概要设计

1,使用struct data struct addressList定义结构体类型,struct data结构体中包括年月日的定义,strcut addressList中包括联系人ID账号,名字,性别,名族,生日,手机号码,QQ号码和家庭地址等。

struct date

{

int year;

int month;

int day;

};

struct addressList

{

char ID[10];

char name[10];

char gender[4];

char minzu[2];

date birthday;

char shoujihao[14];

char QQ[11];

char address[40];

};

2,程序设计过程中用到的函数有:

int zhujiemian( );

void tianjia(fstream & );

void xiugai(fstream & );

void shanchu(fstream & );

void chazhao(fstream & );

void liulan(fstream & );

int findRecord(fstream &, const char *);

int getAmount(fstream & );

3,整个程序用的是面向对象的方法,在主函数中调用各种函数,来实现通讯录的功能。在主函数中,使用的是c++语言中的开关语句(switch)用来选择通讯录的各种功能。

4,在各个函数的编译过程中使用了system(“cls)命令,进项清屏工作,在利用各种输出命令。, 5,主界面设计为

采用了单链表形式,使得选择更加方便,快速。程序段为:

int zhujiemian( )

{

system("cls");

int selection=0;

cout<<"***********************************************"<

cout<<" ※通讯录※"<

cout<<"***********************************************"<

cout<

cout<<" 1、添加联系人信息"<

cout<

cout<<" 2、删除联系人信息"<

cout<

cout<<" 3、修改联系人信息"<

cout<

cout<<" 4、查询联系人信息"<

cout<

cout<<" 5、浏览联系人信息"<

cout<

cout<<" 6、退出"<

cout<<" **********************************************"<

cout<<"请选择:";

cin>>selection;

return(selection);

}

6,下面开始写各个函数,在函数中,采用了边做边存的思想,减少了工作量。

,提供了是否正确打开通讯录的程序

7,调用函数void tianjia(fstream &listFile )当打开方式正确时,输入联系人的信息ID账号,姓名,性别(男/女)民族,出生年月,手机号,QQ号,家庭住址等。以防信息的重复添加,还提供了添加提醒,当添加好一个联系人之后会提醒是否继续添加,或者是回到主界面,运用了while,if,选择语句,进行操作。程序代码如下:

void tianjia(fstream &listFile )

{

system("cls");

cout<<"*********************************************"<

cout<<" ※添加界面※"<

cout<<"*********************************************"<

addressList a;

char b,c;

do

{

listFile.open("tongxunlu.dat",ios::out|ios::app|ios::binary);

if(listFile.fail())

{

cout<<"打开通讯录失败!"<

exit(0);

}

cout<<" 请输入以下信息:"<