通讯录大型实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大类基础课程大型实验
实验题目通讯录
学生姓名
学生学号
学生班级
任课教师
提交日期
计算机科学与技术学院
通讯录实验报告
一、大型实验的内容
通讯录用于联系人信息的管理,要求完成的主要的功能包括查询功能、根据姓名对人员信息排序输出、能根据姓名、电话修改或删除人员信息等。可以完成查询联系人、添加、删除或修改联系人、从小到大依次显示联系人信息等工作。要求使用学习过的C/C++程序设计的知识完成通讯录的设计与实现。
二、运行环境
通讯录(LMS)在Visual Studio 2010平台下开发,操作系统:Windows 7。
硬件环境:(备注:可以查看“计算机”属性)
处理器:Intel(R) Core(TM) i5-2557M CPU @ 1.70GHz 1.70GHz
内存:2.00GB
系统类型:32位操作系统
三、实验课题分析(主要的模块功能、流程图)
3.1 通讯录的主要功能
通讯录主要功能为:查询功能、根据姓名对人员信息排序输出、能根据姓名、电话修改或删除人员信息等,可以完成查询联系人、添加、删除或修改联系人、从小到大依次显示联系人信息等工作。详细的系统功能结构为图1所示。
图1 系统结构图
系统各模块的功能具体描述为:
1、查找模块
选择查找方式,不同查找方式的结果可能会有差异。根据姓名、电话能精确查询人员信息;根据地址能够进行模糊查询人员信息;根据人员类别能查询人员信息。
2、输入模块
使用者可以添加新的联系人,添加内容包括联系人的姓名、性别、电话、地址、邮政编码、邮箱、QQ号、类别。
3、排序展示模块
该功能可以显示排序前通讯录中所有联系人信息,然后按照各名字的中文ASCII大小从小到大进行排序,然后显示排序后的所有联系人信息。
4、变更人员模块
修改:首先进行查找,按姓名或电话号码进行查找,找到相应的联系人直接进入修改。根据提示选择该联系人需要修改的字段,并进行修改。
删除:首先进行查找,按姓名或电话号码进行查找,找到相应的联系人直接进入确认删除。
3.2 系统分析及设计
系统涉及对象有一个基本类:人员类。人员类涉及的功能操作归纳为如下表1所示:表1 人员类涉及的操作
3.3系统的实现
(1)类的编写
系统工程名为:LMS。包含了person类,Node类(图书类)两个基本类。
具体类结构声明如下:
person类
#ifndef PRESONL_H
#define PRESONL_H
#include
#include
#include
#include
#include
usingnamespace std;
class person
{
string name; //姓名
string gender; //性别
string telnumber; //电话
string adress; //地址
string postcode; //邮政编码
string email; //邮箱
string qq; //QQ号
string relation; //类别(例如:同学、朋友等)
public:
person(string name1="null",string gender1="null",string
telnumber1="null",string adress1="null",
string postcode1="null",string email1="null",string qq="null",string relation1="null")
:name(name1),gender(gender1),telnumber(telnumber1),adress(adress1),
postcode(postcode1),email(email1),qq(qq),relation(relation1){} //初始化
person* next;
person* getnext()const{ return next; }
string gname()const{ return name; } //获得姓名
string ggender()const{ return gender; } //获得性别
string gtelnumber()const{ return telnumber; } //获得电话
string gadress()const{ return adress; } //获得地址
string gpostcode()const { return postcode; } //获得邮政t编码
string gemail()const{ return email; } //获得邮箱?
string gqq()const{ return qq; } //获得QQ号
string grelation()const { return relation; } //获得类别
void display();
void setnull(){name="null";} //将姓名设置为null
bool ifbnofull(); //判断姓名是否为null
void setinformationg(); //设置联系人信息
void setname(string newname){name=newname;} //设置姓名
void setgender(string newgender){gender=newgender;} //设置性别
void settelnumber(string newtelnumber){telnumber=newtelnumber;} //设置电话号码
void setadress(string newadress){adress=newadress;} //设置地址
void setpostcode(string newpostcode){postcode=newpostcode;} //设置邮政编码void setemail(string newemail){email=newemail;} //设置邮箱
void setqq(string newqq){qq=newqq;} //设置QQ号
void setrelation(string newrelation){relation=newrelation;} //设置类别};