2013数据结构课程设计之通讯录(复习链表与文件知识)
题目一 通讯录
[问题描述]
1) 通过键盘建立通讯录,每条记录至少包括2个数据项:姓名、电话号码;
2) 对通讯录进行插入、删除、修改和查找;
3) 通过姓名查找,必须实现精确查找和模糊查找,例如输入“张”,则显示第一个姓张的朋友,然后可以选择“下一个”,鼓励思路创新,提供其他多种查找方式,例如拼音查找等;
4) 也可以根据电话号码或部分电话号码进行精确查找和模糊查找;
5) 自行定义数据结构,可以选择性的将顺序查找、折半查找、索引查找、树型查找、哈希表等灵活运用其中,完成多方式查找功能。
感想:大一上结束的时候,老师要求做过学生管理系统,那时看见代码就挠头的我只能站在很低的位置仰慕那些做出来去找汪老师的人。自己当时一点也不会。当时到最后竟然连东西也没写,就那样放着放着就没了。现在多少会一点,虽然代码真的很屁,至少是昨天一晚上加今天早上的心血。凑合凑合吧。
解题思路:我直接写了一个主菜单menu,然后每次访问的时候就清屏,看起来很舒服。因为是链表,如果真的使用二分查找只能转换为数组方可。所以主菜单的6就是先对名字排序,然后7就是根据名字精确查找或模糊查找二分查找。8是根据电话号码精确查找或模糊查找,此处的模糊查找号码必须是前缀子串。9是根据关系精确查找。10是根据联系人地址模糊查找,此处的模糊查找只需要地址是子串即可。然后我每次查找的时候都会统计找到的人数!
选择11的话就把当前所有联系人保存到文件中,保存更改,选择12则不保存。
具体实现见代码与截屏。
代码:
我去,忘记用strstr来判断子串了。。。。


