《 通讯录软件工具》
一、题目简介
利用 Microsoft Visual C++ 软件工具设计一个通讯录软件。
通讯录是我们日常生活中经常用到的抽象通讯管理工具,用其自身的功能给人们带来通讯的方便。在本次的课程设计中我利用 Microsoft Visual C++ 软件工具设计这个工具。本工具实现了通讯录的添加、修改、删除 , 排序及查询功能。界面的列表框能显示本程序保存的全部名单 , 单击列表中的每一条记录能立即更新显示该记录的全部信息。在浏览状态下不能对人员信息进行修改。添加新记录,可向数据库添加记录并保存。修改当前记录,能够修改除此记录的信息。删除当前记录,删除记录之前提供确认信息。供有排序功能,即程序能够按照“姓名”、“关系”进行排序。当然少不了查询功能 , 此程序提供了两种不同的查询方式 , 可列出满足条件的人员名单。设计界面直观、实用 , 容易操作 .
二、系统概述
1. 系统介绍:
此通讯录是用 Microsoft Visual C++ 设计的 , 利用 ODBC 连接数据库 ,, 通过此工具可对数据库可靠读取 , 修改 , 筛选 , 录入 , 保存等操作 , 可对编译通过后 , 生成可执行文件 , 执行此程序可对人员信息进行管理.
2. 系统功能:
ü 流程图
无法显示
ü 具体实现
1) 显示所有已记录的资料:打开程序可看到一个列表, 表中记录了数据库中现在的所有记录。
2) 显示某个记录的详细资料:某人记录的记录除了可以在列表中看得到, 但为了直观, 也可点击列表中的某一条记录, 即可在界面上看到所指向的记录的具体资料.
3) 修改当前记录:当 用户点击了” 修改当前记录” 的按钮后, 会弹出一个新的对话框, 进行当前记录的数据的修改, 修改完之后, 点击确定即可把修改后的数据保存在数据库中.
4) 删除记录: 点击了” 删除当前记录” 的按钮, 会弹出一个对话框, 确认要删除当前记录, 点击确定后, 便可删除被选中的记录.
5) 添加记录: 点击了” 删除当前记录” 的按钮, 弹出一个新的对话框, 用户按照姓名、电话、手机、QQ 、电子邮件地址、地址、备注的顺序录入,输完之后, 点击确定即可把数据直接录入数据库中.
6) 查询记录: 本程序可通过姓名和关系两种途径来查询资料。点击了“查找”的按钮,会弹出一个新的对话框,提示用户选择哪种方式进行查询,选择完后确定,便可对数据库里的记录进行查找,若找不符合要求的记录,则提示“找不到该记录”,并返回主界面,若找到相符合的记录,则把相关的记录显示在主界面的列表中。
7) 排序:为了列表的直观,方便查找,本程序利用了数据库的筛选功能实现了排序的功能,并且提供了两种不同的排序方式,一是按姓名,二是按关系。点击“排序”按钮后,便弹出一个新的对话框,提供用户选择排序的方式,点击确定后,程序使全对数据库里的记录进行排序,并把排序后的记录重新载入到列表中。
8) 其它功能,本程序除了可利用按钮进行操作之外,也提供了多种操作方式,如菜单操作,工具条操作,例如,当你想添加记录时,除了可以点击“添加记录”按钮外,还可以点击菜单栏的“操作——> 添加记录”。想滚动查看记录,可利用程序上方的工具条进行操作。
9) 退出系统: 想退出本程序时,直接点击关闭即可,不需要再保存,因为对用户的操作与数据库更新是同步的。
、
三、系统设计
基础类为 CRecordset( 记录集类 ) , CRecordView( 记录视图类 ) , CMySet , CMyView
它们之间的关系如下图
无法显示
视图类为 CMyView 对话框类有 CDialogAdd , CFindDialog DialogOrd ,他们的关系如下图:
无法显示
四、关键技术
1. CDatabase 类
要建立与数据源的连接,首先应构造一个 CDatabase 对象,然后再调用 CDatabase 的 Open 成员函数. Open 函数负责建立连接 . 要从一个数据源中脱离,可调用函数 Close 。在脱离后,可以再次调用 Open 函数来建立一个新的连接.调用 IsOpen 可判断当前是否有一个连接,调用 GetConnect 可返回当前的连接字符串。
2. CMySet 类
CMySet 是从 CRecordset 派生出来的一个类,继承其父类的一些基本功能,CRecordset 类代表一个记录集.该类是MFC 的ODBC 类中最重要、功能最强大的类。
变量:
m_strFilter // 记录的过滤变量
m_strSort // 记录的排序变量
long m_ID;
CString m_column1; // 姓名
CString m_column2; // 关系
CString m_column3; // 电话
CString m_column4; // 手机
CString m_column5; // 地址
CString m_QQ; //QQ
CString m_Email; // 电子邮箱
CString m_column6; // 备注
函数说明:
void MoveNext( ); // 后退一个记录(由 CRecordset 继承)