人脉宝

ConnectSystem

编写细节

编写语言:c语言
数据结构:利用链表来存储数据,利用KMP算法实现模糊查找,利用冒泡排序实现通话次数排序

更新历史

  1. 这是第一次实现的功能
    以下是几处设计时所考虑的细节:
    • 判断姓名电话号码输入是否有效
    • 为查找联系人,修改联系人,排序联系人设置二级页面
    • 链表为空时实现显示联系人,删除联系人,查找联系人,排序联系人,修改联系人中任一功能系统直接显示没有联系人
  2. 这是第二次更新后实现的功能
    以下是在展示第二次更新多实现的功能以外所作的几处修改或细节:
    • 去除了输入名字带有数字,系统判断名字无效要求重新输入姓名这一不合适的函数
    • Contact结构体中增加了整形变量call_count统计通话次数,并在添加联系人时初始化为0
    • 先向文件中写入联系人再从文件里读取联系人才能读取,并且从文件读取联系人时初始化通话次数避免通话次数记录出错
    • 去除了Color.h这一头文件,将内容整合到了Showmenu.h里面
  3. 以下是第三次更新所作的几处修改或细节:
    • 在Showmenu.h中增加了对非数字字符判断,确保选择功能时输入无效字符程序不会报错
    • 去除了原先查找联系人这种未使用KMP算法从而无法实现模糊查找的功能
    • 将联系人功能里面判断所输入用户是否存在改为调用KMP算法的模糊查找增加效率,具体应用在Deletepeople和Changepeople函数中
    • 修改了修改联系人这一函数的逻辑,不再产生二级页面让用户选择修改姓名还是修改电话,直接在一个函数里通过是否从键盘输入yes来决定是否实现操作
    • 修改了联系人排序这一函数,可以选择按名字(升序/降序)/号码(升序/降序)排序
    • 修改了从文件读写之后之前通话记录清零的Bug,从文件读取时更新通话次数

源代码

  下载代码请复制以下命令到终端执行 :git clone git@gitee.com:wzhisyourdad/connect-system.git

注意事项

  1. 点开main.cpp即可运行
  2. 确保所输入的电话号码是11位数字,以1开头,第二位为[3-9]或者以”010-“开头,此时输入的号码才会有效