设计一个通讯录管理系统 实现文件的新建,保存及通讯录的增删查改功能 给出类的设计 主要功能模块算法设计,描述算法思想(可使用算法流程图),给出主要实现语句,基于MFC的操作过程(详细描述实验操作过程和步骤) 对实验过程中涉及的知识点进行总结
时间: 2023-12-03 14:47:06 浏览: 39
一、类的设计
1. Contact类:用于存储联系人信息,包括姓名、电话、邮箱等属性,提供相关的get/set方法。
2. ContactList类:用于管理Contact对象,包括增加、删除、查找、修改联系人信息等方法。
3. FileManager类:用于文件的新建、保存和读取操作。
二、主要功能模块算法设计
1. 文件新建与保存功能:
(1)新建文件:创建一个空的通讯录列表,保存到指定的文件路径。
(2)保存文件:将当前通讯录列表保存到指定的文件路径。
算法流程图:
```
新建文件:
1. 创建一个空的ContactList对象
2. 将ContactList对象保存到指定的文件路径
保存文件:
1. 将当前ContactList对象保存到指定的文件路径
```
主要实现语句:
```
// 新建文件
ContactList contactList;
FileManager fileManager;
fileManager.saveFile(contactList, filePath);
// 保存文件
fileManager.saveFile(contactList, filePath);
```
2. 通讯录增删查改功能:
(1)增加联系人:创建一个Contact对象,添加到ContactList中。
(2)删除联系人:从ContactList中移除指定的Contact对象。
(3)查找联系人:根据姓名、电话或邮箱等属性在ContactList中查找匹配的联系人。
(4)修改联系人:根据指定的联系人ID更新联系人的属性。
算法流程图:
```
增加联系人:
1. 创建一个新的Contact对象,设置相关属性
2. 将Contact对象添加到ContactList中
删除联系人:
1. 根据指定的联系人ID查找Contact对象
2. 从ContactList中移除Contact对象
查找联系人:
1. 根据指定的属性在ContactList中查找匹配的Contact对象
2. 返回匹配的Contact对象列表
修改联系人:
1. 根据指定的联系人ID查找Contact对象
2. 更新Contact对象的属性
```
主要实现语句:
```
// 增加联系人
Contact contact;
contact.setName(name);
contact.setPhone(phone);
contact.setEmail(email);
contactList.addContact(contact);
// 删除联系人
int contactId = getSelectedContactId();
Contact contact = contactList.getContactById(contactId);
contactList.removeContact(contact);
// 查找联系人
vector<Contact> contacts = contactList.searchContacts(name, phone, email);
// 修改联系人
int contactId = getSelectedContactId();
Contact contact = contactList.getContactById(contactId);
contact.setName(newName);
contact.setPhone(newPhone);
contact.setEmail(newEmail);
```
三、基于MFC的操作过程
1. 新建文件:点击菜单栏上的“新建”按钮,调用FileManager::saveFile方法,创建一个空的ContactList对象,保存到指定的文件路径。
2. 打开文件:点击菜单栏上的“打开”按钮,调用FileManager::loadFile方法,读取指定文件路径的ContactList对象,显示到界面上。
3. 增加联系人:点击“添加”按钮,弹出联系人信息输入对话框,输入联系人的姓名、电话、邮箱等信息,调用ContactList::addContact方法,将Contact对象添加到ContactList中。
4. 删除联系人:选中要删除的联系人行,点击“删除”按钮,调用ContactList::removeContact方法,从ContactList中移除指定的Contact对象。
5. 查找联系人:在搜索框中输入要查找的联系人的姓名、电话或邮箱等信息,点击“搜索”按钮,调用ContactList::searchContacts方法,返回匹配的Contact对象列表,显示到界面上。
6. 修改联系人:选中要修改的联系人行,点击“修改”按钮,弹出联系人信息编辑对话框,输入新的联系人信息,调用ContactList::updateContact方法,更新Contact对象的属性。
四、知识点总结
1. MFC框架:MFC是一个基于Windows的C++类库,用于快速开发Windows应用程序。它提供了大量的GUI组件、消息处理机制、线程管理、文件操作等功能,方便开发人员快速构建Windows应用程序。
2. 对象序列化:对象序列化是将对象转换为字节流的过程,可以方便地将对象保存到文件中或通过网络传输。MFC提供了CRuntimeClass、CArchive等类来实现对象序列化和反序列化操作。
3. 对话框设计:对话框是MFC中常用的GUI组件,用于显示和编辑数据。在对话框设计中,需要设计对话框布局、添加控件、添加消息处理函数等。
4. 数据结构:数据结构是计算机存储、组织和管理数据的方式。在本项目中,使用了vector容器来存储Contact对象列表,使用map容器来存储Contact对象的属性。
5. 文件操作:文件操作是程序中常用的操作之一,包括文件的新建、保存、读取和删除等。在本项目中,使用了CFile类来进行文件操作,实现了通讯录的新建、保存和读取功能。