【数据库设计作业.doc】是一个关于班级通讯录程序的C++代码实现,主要涉及数据库设计的基本概念和简单数据管理。在程序中,通过一个名为`book`的类来表示每个联系人的信息,包括姓名(name)、电话(number)、邮箱(address)、邮编(post)等字段。此外,还使用了一个`record`结构体来构建一个双向链表,用于存储和管理这些联系人对象。
1. **数据结构与类设计**:
- `book`类:代表单个联系人信息,包含了姓名、地址、电话、邮编和邮箱等属性,同时定义了相关的成员函数,如添加、删除、显示、修改和查询联系人。
- `record`结构体:用于链表节点,每个节点包含一个`book`对象以及指向前驱和后继节点的指针,实现了数据的动态存储。
2. **类方法**:
- `inter_face()`函数:实现程序的主界面,提供用户交互菜单,允许用户选择不同的操作,如添加、删除、显示所有联系人等。
- `add_person()`函数:接收用户输入的新联系人信息,并将其保存到文件。
- `del_person()`函数:删除指定的联系人。该函数通过创建临时文件并重新写入不包含待删除联系人的数据,达到删除的效果。
- `show_all()`函数:显示所有联系人信息。
- `alter()`函数:修改已有的联系人信息。
- `select()`函数:查询特定的联系人信息。
- `save_new()`函数:保存新增加的联系人信息到文件。
3. **文件操作**:
- 程序利用`ifstream`和`ofstream`进行文件读写操作,如在`del_person()`中,用`temp.txt`作为临时文件,`pbook.txt`存储原始的联系人信息。在删除操作后,原始文件被覆盖为不含被删除联系人的新内容。
4. **用户交互**:
- 用户通过标准输入(cin)提供数据,程序通过标准输出(cout)展示信息和交互菜单。使用`fflush(stdin)`清空输入缓冲区,确保每次输入不受之前输入的影响。
5. **异常处理与流程控制**:
- 虽然这段代码没有显式地处理异常,但在实际应用中,应考虑加入异常处理机制,以应对可能出现的错误情况,如文件读写失败、内存不足等。
- 程序使用`system("pause")`暂停程序执行,以便用户阅读输出信息。
这个作业展示了简单的数据库设计思想,通过C++实现了一个基本的联系人管理系统,涵盖了数据结构、文件操作、用户交互和基本的类设计。然而,为了满足实际需求,它还可以进一步扩展,例如,增加搜索功能、使用更复杂的数据结构、提供更友好的用户界面、支持数据库存储而非文件存储等。