### C++学生信息管理系统大作业实验报告知识点梳理
#### 一、项目背景及目标
- **项目名称**:《高级程序语言设计C++》大作业——个人通信录管理系统。
- **学院**:计算机科学与技术。
- **专业**:计算机科学与技术(全英创新班)。
- **指导教师**:徐雪妙。
- **提交日期**:2013年6月。
- **项目目的**:设计并实现一个基于C++的学生信息管理系统,旨在管理学生的个人信息,如联系方式、生日等。
#### 二、问题描述
- 该系统的主要功能包括编辑、查看、搜索联系人资料以及发送信息/电子邮件等。
#### 三、系统设计
- **设计概述**:整个系统采用面向对象的设计方法,通过定义多个类来实现不同的功能模块。
##### 1. 类体系设计
- **对话框类**:
- **通讯录Dlg.h**:主界面类,负责弹出主窗口并链接至其他菜单。
- **ViewMenu.h**:“查看”界面类。
- **Conglation.h**:查看最近生日的人时发送邮件的类。
- **Editmenu.h**:“编辑”界面类。
- **InputDlg.h**:新建联系人时输入信息的类。
- **ModifyDlg.h**:修改联系人信息的类。
- **Contact.h**:“联系”界面类。
- **Send.h**:发送email/信息的类。
- **SearchMenu.h**:“查找”界面类。
- **非对话框类**:
- **WhoHasBirthday.h**:用于查看最近谁过生日的类。
- **AdressBookBase.h**:基类,负责保存记录、搜索、创建合并文件、获取时间及排序。
- **ABFschoolMate.h**:继承自AdressBookBase.h,专门用于处理同学信息。
- **ABFworkMate.h**:继承自AdressBookBase.h,专门用于处理同事信息。
- **ABFfriend.h**:继承自AdressBookBase.h,专门用于处理朋友信息。
- **ABFrelative.h**:继承自AdressBookBase.h,专门用于处理亲戚信息。
##### 2. 类的说明
- **通讯录Dlg类**:
- 主要功能为弹出主窗口,链接至Edit、View、Search、Contact菜单。
- 包含以下成员函数:
- `OnBnClickedCancel()`:按下Exit键时,将弹出消息询问用户是否确定退出。
- `OnBnClickedEdit()`:按下Edit键时,将弹出编辑窗口。
- `OnBnClickedSearch()`:按下Search键时,将弹出搜索窗口。
- `OnBnClickedView()`:按下View键时,将弹出查看窗口。
- `OnBnClickedButton1()`:按下Contact键时,将弹出联系窗口。
- **EditMenu类**:
- 此为编辑界面的类,主要功能有显示所有客户,并提供新建、修改、删除联系人的链接。
- 包含以下成员函数:
- `OnInitDialog()`:初始化列表,设置列表风格为可全行选中和栅栏风格,插入8列显示“name”、“birthday”等信息,读取Adressbook1~4文件并将内容显示在列表中。
- `OnBnClickedNewaccount()`:显示新建联系人时填写信息的窗口,若用户点击确认,则保存数据至列表中。
- `OnBnClickedCancel()`:按下Back键时退出编辑界面,并保存列表中的数据至Adressbook1~4文件。
- `OnBnClickedModify()`:按下修改键时获取当前选择的位置,允许用户修改信息并更新列表。
- `OnBnClickedDelete()`:按下Delete键时,先获取选中的位置,然后弹出消息询问用户是否确定删除。
- **ViewMenu类**:
- 主要功能为查看联系人,提供了查看所有、按组查看等功能。
- 包含以下成员函数:
- `OnInitDialog()`:与`CEditmenu::OnInitDialog()`相似,同时调用`AdressBookBase`的函数以初始化显示。
#### 四、总结
本项目通过面向对象的方法实现了学生信息管理系统的各项功能,包括编辑、查看、搜索和发送信息等。通过细致的类设计和功能划分,系统能够有效地管理和维护学生的个人信息。此外,通过使用C++进行开发,不仅提高了程序的性能,还锻炼了学生的编程技能和面向对象的设计思维。