- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Visual C++课程设计
题目名称:手机通讯录
班级:软件1101
姓名:马毅
学号:1111250109
指导教师:彭文
完成时间:2013.1.18
题目描述
利用Visual C++实现一个手机通讯录管理软件。该软件能够进行分组管理,用户管理,用户查询和手机通话短信功能模拟。
功能分析
软件主要功能包括:
(1)分组管理
能够添加,删除,修改,每个分组设置一个来电音乐。
(2)用户管理
包括添加,插入,删除,修改用户姓名,手机,办公电话,电子邮箱,QQ,微博,来点音乐。
(3)用户查询
通过输入关键字,按姓名和手机号码两种方式可以对用户进行模糊查询。
(4)功能模拟
当选中一个用户时,有通话和短信选项可以操作,选择后进入相应界面。
软件设计
软件整体结构
软件中的联系人信息链表类型
本软件中,联系人信息存放在Phonecard类变量组成的链表中,信息有联系人的姓名,手机,办公电话,电子邮箱,QQ,微博,来电音乐。
图1. 人员信息的各个成员
对信息联系人的操作
对联系人能够添加,删除,修改,插入,通过姓名和手机号查询用户姓名,手机,办公电话,电子邮箱,QQ,微博,通过设置不同的分组来改变来电音乐,并且可以对其对进行通话或短信的操作。
关于背景音乐,用了mmsystem.h中的playsound()函数,总共设置了三个分组,不同分组的人员在拨打电话时能够播放不同的来电音乐,并且用sndPlaySound( NULL , NULL )控制停止音乐播放。
主要模块设计
对话框类的设计
主要数据结构
本程序采用了较多对话框类,都是继承CDialog类.
在本程序的实现中,设置了结构体链表来存储各个联系人分组信息,把联系人信息存在结构体链表里的结构体数组中实现对联系人信息管理,通过遍历链表,查找结点,实现了软件的添加,删除,修改,插入等功能。
文件存储
文件的存储格式主要有文本格式和二进制格式。文本格式的一个显著优点是可以用文本编辑软件(如记事本)打开文件进行观察和读取。与文本格式不同,二进制格式不能简单的将文件打开编辑。但二进制文件读取速度快,并且能够利用 MFC库进行序列化,是主流的文件输出格式。
在中,
程序界面设计
界面环境作为人机信息交流的通道,主要是辅助用户完成工作。为了方便用户使用,在软件实现中进行了对程序界面美化设计。
背景设计
在主对话框中调用SetDialogBkColor(RGB(0,0,0),RGB(255,255,255))函数,使界面背景变为黑色,字体为白色,看起来更加舒适美观。
界面设计
通过对话框和listbox列表框,清晰的再现了通讯录中人员的信息存储情况,并且人性化的添加了各种操作相应按钮。
类与函数的设计与实现
对话框类设计与实现
由对话框基类CDialog派生出程序需要的各种类。
(1)在该类中定义了结构体链表等信息,完成在程序中对数据的存储。
struct PhoneCard
{
char name[20]; //姓名
char phone[13]; //电话
char number[13]; //办公电话
char email[20]; //电子邮箱
char qq[10]; //QQ
char blog[20]; //微博
int divide;
struct PhoneCard *prev; //指向前一指针
struct PhoneCard *next; //指向后一指针
};//定义结构体
(2)自定义初始化函数
void CPhoneBookDlg::DataInit()
{
struct PhoneCard *p,*q;//
bFileEmpty=FALSE;
bNewFile=FALSE;
bFileModified=FALSE;
p=head=(struct PhoneCard*)malloc(sizeof(struct PhoneCard));
head-prev=head-next=NULL;
if(!(fp=fopen(data.txt,r)))
{
bNewFile=TRUE;
bFileEmpty=TRUE;
iCount=0;
last=head;
}
if(!bFileEmpty)
{
fread(iCount,sizeof(int),1,fp);
for(int i=0;iiCount;i++)
{
q=(struct PhoneCard*)malloc(sizeof(struct PhoneCard));
fread(q,sizeof(struct PhoneCard),1,fp);
q-next=NULL;
q-prev=p;
您可能关注的文档
最近下载
- 日立牌SET-FREE AⅢ系列产品提案书20240628.docx VIP
- AquaECO特灵产品技术手册20231212.pdf VIP
- 中考语文成语易错48道选择题(有详细解析).pdf VIP
- 天津钢管集团股份有限公司.pdf VIP
- 海尔物联多联MAX样册2025-4-10.pdf VIP
- 2023年小升初语文专项练习《地名人名拼写规则》(含答案).docx VIP
- 辅警结构化面试题及答案(2025年.docx VIP
- SET-FREE AⅢ产品样册-日立.pdf VIP
- 105656-海尔智慧楼宇检测中心概况(实验室布局,测试能力范围,实验室介绍,数字化测试,实验室认证).docx VIP
- 井控考试试题库(DOC) .pdf VIP
文档评论(0)