通讯录管理系统的设计
问题需求分析
在计算机还未普及之前通讯管理都是由联系人采用名片,通讯录往往采用的是笔录手工记帐的方式来操作的。现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。本通讯录信息管理系统用计算机管理电子通讯录的一种计算机应用技术的创新,通讯录管理系统是典型的信息管理系统,其开发主要包括后台文件存储通信用户记录和维护,以及客户端操作应用程序的开发两个方面。要求应用程序功能完备,易使用等特点。
数据结构定义
我使用两种类型的结构体的方式存储数据, 通过链表的方式存储通讯录信息, 第一个结构是手机号码包含如下内容: 编号, 姓名, 性别, 号码, QQ, 微信号, 住址, 生日, 第二个结构体是节点, 每一个节点包含一个手机号和一个指针, 通过指针的相互连接形参链表, 也就是变成我们需要的通讯录。
系统功能详细设计
实现通讯录管理系统的基本功能,可以实现电话用户的查询,电话号码的查询,电话号码的添加及删除等功能,以方便人们的记录和通讯。
通讯者姓名查询:输入用户姓名,根据用户姓名查询对应用户具体信息。
通讯者号码查询:输入用户号码,根据号码查询对应用户具体信息。
通讯者号码查询:输入用户性别,根据性别查询对应用户具体信息。
通讯者生日查询:输入用户,根据号码查询对应用户具体信息
通讯者信息添加:输入用户具体信息,将用户具体信息存入指定文件中,便于以后的查询。
通信者信息修改:输入用户姓名或者号码,根据输入的用户信息查询指定用户信息,然后对用户的信息进行修改,修改保存后,将修改后的用户信息存入文件中。
通讯者信息删除:输入用户信息,根据用户信息查询指定用户,针对该用户从文件中,删除对应的信息。
通讯录信息显示:显示通讯录中所有的用户的具体信息,也可以指定输出某一项具体信息。
通讯者信息的保存:将所用用户信息, 存入指定文件中。
通讯者信息的加载:加载指定文件中所有用户的信息, 存入链表中。
通讯者信息的添加:添加用户到链表中指定位置。
函数关系调用图
设计体会
此处设计中出现的问题就是对C++文件操作的不熟悉,导致做文件操作的时候出现很多问题, 这个程序中还有很多不完善的地方, 就比如查找, 添加, 修改, 当数据非常多的时候, 如果还是采用顺序操作, 那么将会引起很大性能问题。
完整代码
#include<iostream>
#include<stdlib.h>
#include<fstream>
#include<string>
#include<conio.h>
using namespace std;
typedef struct{
int id;
string name, sex, number, qq, weChat, addr, birth;
}Telephone;
struct Node{
Telephone tele;
struct Node *next;
};
void Input(Telephone &t){//数据域的输入
cout<<"请输入联系人的姓名:"<<endl;
cin>>t.name;
cout<<"请输入联系人的电话:"<<endl;
while(true){
cin>>t.number;