一、设计目标及系统功能
1.1 设计目标
现在,随着人际交往的频繁,电子信息技术的发展,通讯录程序已经很多见。这次课程设计,目标是做出一个通讯录管理系统,可以实现对多个联系人的各项信息(包括姓名、联系方式、学籍信息等)进行管理与储存。
这个通讯录系统采用Visual C++ 6.0以及MFC编程,形成一个可视化的管理界面。并能实现联系人的添加、编辑以及删除,对联系人的信息进行查找与替换,按分组进行管理数据,写入单文件与数据加密,并实现与其他常用格式之间的互换等功能。
1.2 文件管理功能
通讯录系统能够实现对文件的集成式管理。由于设计的需要,文件中需要储存通讯录数据标题信息、密码信息(为了数据库安全可是对数据库设计密码访问)、分组信息以及联系人信息。通过程序的新建功能,可以很容易地创建一个数据库。
新建的过程中,必须要指出数据库的标题(数据库名)以及数据库的储存位置,并且同时可以指定数据库的访问密码。数据库的文件格式是文本格式,但是本系统中将数据库的拓展名定义为.txl,以和其它文件类型区分。这样,通讯录的一个数据库就建立完成。用户在对数据库的实时操作过程中,能够随时保存联系人信息,备份数据库信息,在退出程序时应提示用户保存联系人信息。
1.3 查找与替换功能
通讯录管理系统能实现对数据库中所存储的联系人进行逐一检索,比对需要进行查找的信息,然后将查找的结果显示出来,或者对查找的结果进行值的替换。查找的时候可以指定查找的方向,即向前查找还是向后查找,找到符合条件的记录之后将其显示出来,下一次查找将在本次查找的基础上继续查找,直到找到数据库的开头(向前查找)或者末尾(向后查找)为止。查找应该支持一定程度的模糊查询。例如,能检索出所有姓王的联系人。
替换的功能应在查找的基础上实现对其中的某一个字段进行值替换。由于替换工作的需要,需要一次性检索出所有符合条件的联系人并将其列表显示。可以进行选择性替换,也可以一次性完成替换。
无论查找还是替换,其针对的属性应该是联系人的全体属性,即能对联系人的每一个信息进行检索和替换。
1.4 分组管理功能
当联系人多了,管理起来就会比较麻烦。为了解决这一问题,我在数据库管理系统引入了分组管理的功能。用户可以按照自己的喜好对联系人进行分组操作(比如分为亲人、朋友、同学等),然后将联系人与分组对应。分组的信息可以动态添加、删除和编辑,并且程序可以按照分组实现对联系人的筛选,以便于对联系人的快速定位。
1.5 对联系人的添加、编辑与删除功能
作为一个通讯录管理系统,对联系人进行添加、编辑和删除的功能是一个基本的功能。对联系人的添加没有上限,只要计算机的物理设备支持,联系人想添加多少就添加多少。对联系人还能进行实时修改与保存,并且能取消不当的修改操作。当然,也可以对联系人进行删除操作,删除之前系统会给出警告。删除是进行彻底的,即一个数据库里的所有联系人可以都被删除。
1.6 文件交互功能
有时候,用户为了不一个字一个字地输入联系人信息,而拥有一个Excel的数据表,程序应该能够支持对这张数据表的导入。同时,用户想把联系人信息统计成Excel数据表,程序应该也能将联系人信息导出到数据表中。
所以,通讯录系统应该能实现两个功能,导入和导出。
导出功能包括TXT格式导出(与记事本程序交互的文件格式)和CSV格式导出(与Excel程序交互的文件格式),并且导出的时候保证所有有效信息的导出,保证对应格式的文件的有效性。
导入功能包括TXT格式导入(与记事本程序交互的文件格式)和CSV格式导入(与Excel程序交互的文件格式),以TXT方式导入的时候,系统将执行按行人名方式导入,以CSV方式导入的时候,系统应提取列表头信息,并实现列表头与联系人属性之间的智能匹配,对联系组的智能添加等功能。
1.7 辅助功能
除了以上的基本功能之外,通讯录管理系统还能支持一定程度的辅助功能,以增强程序的可用性。
生日提示功能。根据用户输入的联系人的生日信息,与系统时间比对,一旦到了联系人的生日的时候,系统能够提示用户哪些联系人的生日到了。
按拼音首字母检索的功能。这个功能是大部分优秀的通讯录软件所具有的一个功能,把所有联系人的姓名按第一个字的首字母拼音排列。例如,通过检索W能够检索到所有姓王的联系人。
成员快速分组功能。能够实现联系人快速分组的功能,避免挨个输入的麻烦。
参考文档和完整的文档和源码下载地址: