通讯录系统 C语言 课程设计报告.docx
《通讯录系统 C语言 课程设计报告.docx》由会员分享,可在线阅读,更多相关《通讯录系统 C语言 课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。
通讯录系统C语言课程设计报告
《程序设计与算法综合实习I》
题目:
通讯录系统
1、问题描述
1.1对所选问题进行简要描述
该软件为用户提供一个在Windows系统上运行的通讯信息查找、浏览、修改、添加、删除等。
用户可以对所有联系人信息进行删除或修改,还可以浏览联系人信息。
对于联系人分类,用户可以查阅其总人数,并查看该分类的所有联系人。
用户可以手工输入查阅信息,十分方便的浏览到所需联系人的信息。
除了信息的查找、浏览、修改、添加、删除等,用户还可以进行账号管理,具体对通讯录使用者的管理操作有创建用户信息文件,使用可必须知晓自己的用户名和密码,并正确登录,以此来保证安全性。
还可以对用户信息进行修改和查询等管理操作。
1.2系统功能分析
通讯录是用来进行联系人通讯信息记录的应用程序,在执行各项功能之前需要进行身份验证。
用户经过验证后可以用浏览和查询的方式找到联系人的信息,并可对联系人的信息进行修改、删除。
1
1.1
用户功能需求如下:
◆联系人查阅方式(共3种):
1、选择“全部”菜单,按名字的字典顺序逐一查找;
2、选择“分类”菜单,选择相应分类,再逐一查找;
3、选择“搜索”菜单,人工输入联系人的名字,确应查找即可跳至相关联系人信息界面。
◆联系人信息删除方式:
在联系人信息界面下选择“删除”项,确定即可删除该联系人信息。
◆联系人信息添加方式:
选择“添加”菜单,添加各项信息,选择“确定”项即可。
◆联系人信息修改方式:
在联系人信息界面下选择“修改”项,进入信息修改界面,修改相关信息,选择“确定”项即可。
◆安全管理:
用户只有用设定的用户名和密码才能进入系统使用程序。
用户还可以更改用户名、密码,并对联系人信息进行查找、浏览、修改、添加、删除等操作。
1.3开发平台及工具介绍
开发平台为windows7ultimate,
开发工具为DEV-C++5
2、系统设计
2.1系统总体结构设计
2.2数据结构设计
2.2.1常量定义
1、People*contect=NULL;
通讯录链表头,向文件读取通讯录信息;
2、intsum=0;
记录通讯录总人数,初始化为0;
3、intGroup[6]={0};
记录每个分组总人数
4、intsave1=0,save2=0;
save1:
标记账号密码是否改动;
save2:
标记通讯录信息是否改动;
用于判断最后需不需要读入文件以保存信息。
5、charac[16]={'\0'},pw[21]={'\0'};
从文件读取用户账号和密码
2.2.2联系人信息数据结构
描述联系人的编号、分类号、姓名、生日、分类、电话、手机、qq、msn、email和地址信息,作为联系人信息记录存放在文件中。
typedefstructpeople
{
intnum;
//通讯录序号,按名称的字典顺序排
intgroupnum;
//组别序号:
1:
Family2:
Friend3:
Classmate4:
Workmate5:
Teacher6:
Other
charname[15];
charbirth[11];
chargroup[29];
charphone[29];
charmophone[29];
charqq[29];
charmsn[29];
charemail[29];
charadd[29];
structpeople*left;
structpeople*right;
}People;
2.3系统各个函数及函数之间关系设计
2.3.1身份验证
函数声明
voidpassword()函数
功能:
用户登录界面
输入:
用户账号和密码
处理:
与文件读取的账号密码进行对比
输出:
相关功能函数的处理或显示主菜单界面
2.3.2主菜单功能选择
函数声明
voidfmenu()函数
功能:
功能选择界面
输入:
用户选择的功能选项
处理:
根据用户选项跳转到相关功能函数
输出:
相关功能函数的处理或显示界面
2.3.3查阅功能模块
函数声明
voidsmenu1(People*move,intflag)函数
功能:
联系人信息浏览界面
输入:
用户选择的功能选项
处理:
根据用户选项跳转到相关联系人信息界面或功能函数
输出:
相关功能函数的处理或显示界面
2.3.4分类查阅模块
函数声明
voidsmenu2()函数
功能:
分类联系人信息浏览界面
输入:
用户选择的功能选项
处理:
根据用户选项跳转到相关联系人信息界面或功能函数
输出:
相关功能函数的处理或显示界面
2.3.5搜索功能模块
函数声明
voidsmenu3()函数
功能:
搜索联系人信息浏览界面
输入:
联系人名称
处理:
根据用户的输入跳转到相关联系人信息界面或功能函数
输出:
相关功能函数的处理或显示界面
2.3.6添加功能模块
函数声明
voidsmenu4()函数
功能:
添加联系人信息浏览界面
输入:
联系人各信息
处理:
根据用户的输入保存联系人信息或返回
输出:
相关功能函数的处理或显示界面
2.3.7用户管理模块
函数声明
voidsmenu5()函数
功能:
用户管理界面
输入:
用户选项
处理:
根据用户的输入进入修改界面
输出:
相关功能函数的处理或显示界面
2.4界面设计
2.4.1登录界面设计
充分考虑界面易于操作的系统需求,用自定义的modal()函数来构造简单的文字界面,具体功能选择界面设计效果如下图所示。
登录界面设计效果图
2.4.2查阅功能设计
浏览界面注重界面的简洁性,友好性,可显示通讯录总人数和当前联系人的编号(按字典顺序),可进行信息的删除和修改功能,具体设计效果如图所示。
查阅功能界面设计效果图
2.4.3分类查阅界面设计
联系人分类浏览的界面设计主要考虑浏览各分类信息时的清晰和易读性,将各分类以列表显示,便于用户了解个分类信息,具体设计效果图如图所示。
2.4.4搜索功能界面设计
为增加界面友好性,在此增加提示功能,即所输入的信息与通讯录中名字前部分相同的均显示出来。
具体设计效果如图
搜索功能界面设计效果图
2.4.5添加功能界面设计
为增加界面友好性,在确定添加的信息项时在旁弹出信息输入框,使操作更显简便、友好,具体设计效果如图所示
添加功能界面设计效果图
2.4.6用户管理界面设计
提供账号修改和密码修改功能。
具体设计效果如图所示
用户管理界面设计效果图
3系统实现
依据需求分析结果,通讯录程序可分为6个模块:
身份验证、查阅功能、分类查阅、搜索功能、添加功能、用户管理。
系统模块结构图如下图:
3.1身份验证模块
身份验证模块的作用是为了保障系统的安全性。
该模块需要从输入设备获取用户输入的用户名和密码,判断是否为合法身份,从而决定能否获取通讯录信息并执行相关功能操作。
3.2查阅功能模块
该模块为用户提供浏览联系人信息界面,用户登录后会看到功能选择界面,在界面中按照提示栏的系统提示按键并选择“全部”子菜单即可跳转到联系人信息界面,通过选择可执行修改、删除等相应的功能执行函数。
该模块主要用结构体类型的数组和文件的读写来完成对大量数据的管理操作。
3.3分类查阅模块
分类查阅模块和查阅功能模块相似,要对大量有一定结构的信息进行管理操作,如删、改和查。
因此定义联系人信息结构体,用于存储联系人信息记录,并且将大量揭露存储在硬盘的文件中以便保存。
用文件的读写函数辅助实现各项功能。
该模块主要实现通信录信息分类查阅,可实现联系人分类信息查询充能,并能对相应分类联系人信息进行删除、修改等。
3.4搜索功能模块
该模块主要实现联系人信息查找功能,在输入框输入查找人的姓名,确定即可快速查找该联系人的信息。
该功能主要运用对链表的查找操作从而实现信息的查找功能。
3.5添加功能模块
添加功能模块用于完成通讯录信息的添加功能,进入添加功能界面后,按提示添加各项信息,添加确定后,通讯录总人数及相应的分类总人数均加1,若选择取消,则不对链表做任何操作。
该功能主要运用对链表的添加和排序操作。
3.6用户管理模块
该模块共有账号修改、密码修改两大功能。
主要运用对文件的读取及修改操作如下图。
4总结
本课程设计进行了通讯录系统的分析、设计、实现。
主要实现了用户对通讯录信息进行查找、浏览、修改、添加、删除等的过程。
在设计过程中,我根据实际情况进行了详尽的系统需求分析,并给出了系统需求分析的典型分析步骤。
在程序设计部分,介绍了程序设计的总体思想。
程序设计的总体思想是整个程序的主线。
在总体设计部分还给出了系统模块结构图,并对各个模块的设计过程进行了阐述。
整个系统设计部分为系统的实现构建了骨架,并在详细设计中由各个功能模块实现各个细节部分。
在对本程序的实现过程中,将各个主要功能分别由不同的函数来实现,从而完成了在设计时对系统功能模块的划分。
另外,对于一些类似的功能,合并到同一函数中加以实现,从而有效地减少了代码的冗余,提高了程序的执行效率。
本系统虽然对通讯录系统的基本功能进行了实现,但也有需要完善的地方。
例如,图形界面的设计优化,以提高系统的效率。
对于联系人的信息以及账号密码采用文件的形式进行保存,还需要对文件的安全性进行考虑,对文件进行加密和读写权限的限制。