通讯录管理系统
作者:郭小强 日期:2010-07-27
修改记录
编号 | 修改日期 | 修改人 | 备注说明 |
1 | 2010-07-27 | 郭小强 | 创建 |
2 | 2010-07-28 | 郭小强 | 修改(去掉密码) |
3 | 2010-07-28 | 郭小强 | 注释数据结构 |
4 | 2010-07-29 | 郭小强 | 实现具体的操作功能 |
5 | 2010-07-30 | 郭小强 | 定义界面操作 |
6 | 2010-07-31 | 郭小强 | 创建目录 |
7 | 2010-08-01 | 郭小强 | 修改目录 |
目录
一.概述.................................................................................................................................................................... 4
二.使用范围........................................................................................................................................................... 4
三.功能描述........................................................................................................................................................... 4
四.定义模块........................................................................................................................................................... 5
五.框架结构........................................................................................................................................................... 5
1.add命令....................................................................................................................................................... 6
2.find命令...................................................................................................................................................... 6
3.modify命令................................................................................................................................................ 7
4.delete命令.................................................................................................................................................. 7
5.list命令........................................................................................................................................................ 7
6.export命令................................................................................................................................................. 8
7.help命令...................................................................................................................................................... 8
8.exit命令........................................................................................................................................................ 9
六.功能实现........................................................................................................................................................... 9
1.定义数据结构............................................................................................................................................. 9
2.具体功能的实现......................................................................................................................................... 9
七.界面操作......................................................................................................................................................... 12
1.add界面操作........................................................................................................................................... 12
2.find界面操作........................................................................................................................................... 12
3.delete界面操作....................................................................................................................................... 13
4.list界面操作............................................................................................................................................ 14
5.export命界面操作................................................................................................................................. 14
6.modify界面操作..................................................................................................................................... 14
7.help界面操作.......................................................................................................................................... 15
8.exit界面操作............................................................................................................................................ 15一. 概述
互联网的出现与迅速发展、信息技术步伐的加快,使得个人的技术面临着众多的挑战和竞争,在竞争过程中对信息的掌握程度、信息获取是否及时、信息能否得到充分的利用、对信息的反应是否敏感准确也逐渐成为衡量一个人竞争能力的重要因素,手机的使用现在已经趋于全球化,为了满足市场的需要、适应现代竞争产业,就基于手机功能的多功能化、快捷化,本系统就上是从这里出发的。
传统的用人脑记忆通讯信息不但麻烦,而且还十分耗费人的体力和时间。而手机通讯系统对手机用户的姓名、手机号码、住宅号码、电话、传真、电子邮箱等进行了综合统计和管理,是你能够更快的得到自己想要的信息。
二. 使用范围
本系统是一个手机通讯录的自动化系统,它简单操作,只要用户有一个属于自己的帐号和手机密码(由于时间的关系,本系统暂时没有追加手机密码,但为了是功能更完整话,在版本升级的时候就实现此功能),就可以方便是用本系统了。
三. 功能描述
1. 面向使用者提供交互式的个人通讯记录的添加、修改、查找、删除、数据导出等基本功能。
1.1使用者可以在通讯录中添加姓名 、手机号码;
1.2使用者可以在通讯录中修改已经存在的姓名 、手机号码;
1.3使用者可以在通讯录中输入姓名 查找出与该姓名相对应的相关信息以备用户所需;
1.4使用者可以在通讯录中删除已经存在的姓名 、手机号码;
1.5使用者可以让通讯录中的姓名和号码以列表的形式显示;
1.6使用者可以在通讯录中导出手机中所存的所有姓名 、手机号码,即备份防止丢失.
2.用户通过终端命令,完成通讯录的使用。
2.1使用者可以在通讯录中可以使用help命令,寻求帮助;
2.2使用者可以在通讯录中可以使用exit命令,返回上一菜单。
四.定义模块
为了实现多功能化的操作,可以通过定义许多模块各自去实现各自的功能,然后将每个模块包含在主函数中就可以了,现定义模块的命令和功能如下:
add 命令 (添加功能)
find 命令 (查找功能
list 命令 (列表功能)
delete 命令 (删除功能)
modify命令 (修改功能)
export 命令 (导出功能)
help 命令 (帮助功能)
exit 命令 (退出功能)
五.框架结构
1. add命令
1)用户输入add命令用户输入add命令,按enter键 ;
2)系统提示用户输入用户名,用户输入后按enter键 ;
3)系统提示用户输入电话号码,用户输入后按Enter键;
4)系统会根据输入信息,只做添加操作:
• 判断用户名是否合法
• 判断电话号码是否合法
• 提醒用户是否保存
2. find命令
1)用户输入find命令,按enter键;
2)系统提示请输入要查找的内容,输入后按enter键 ;
3)系统会根据输入信息,只做查找操作:
• 提醒用户是否存在
• 判断用户名是否合法
3. modify命令
1)用户输入modify命令,按enter键 ;
2)系统提示输入要修改的信息,输入后按enter键 ;
3)系统会根据输入信息,只做修改操作:
• 提醒用户是否存在
• 判断用户名是否合法
• 判断电话号码是否合法
• 提醒用户是否保存
4. delete命令
1) 用户输入delete命令,按enter键 ;
2)系统提示输入要删除的信息,输入后按enter键 ;
3)系统会根据输入信息,只做修改操作:
• 提醒用户是否存在
• 提醒用户确认删除
5. list命令
用户输入list命令,按enter键 .
6. export命令
1) 用户输入export命令,按enter键 ;
2)系统提示输入要导出到的地址,输入后按enter键 ;
3)系统会根据输入信息,只做导出操作:
• 判断是否存在列表
• 判断地址是否有效
• 提醒用户是否确认导出
7. help命令
1)用户输入help命令,按enter键
2)以列表形式输出以上各种命令,以及它们的操作方法
• 添加:用户输入add命令,按enter键,输入要查找的信息,若收到错误提示,则说明你输入内容有误,继续输入,添加成功后会有成功提示;
• 修改:用户输入modify命令,按enter键,输入要修改的信息,若收到错误提示,说明你输入内容有误,继续输入,若输入正确,会提示是否确定修改,修改成功后会有提示 ;
• 删除:用户输入delete命令,按enter键,输入要删除的信息,若收到错误提示,说明你输入内容有误,继续输入,若输入正确,会提示是否确定删除,删除成功后会有提示 ;
• 列表:用户输入list命令,按enter键;
• 导出:用户输入export命令,按enter键,输入要导出到何处,若收到错误提示,说明此地无效,继续输入,若输入正确,会提示是否确定导出,导出成功后会有提示 ;
• 退出:用户输入exit命令,按enter键,按照提示确定是否删除,若是则会退出.
8. exit命令
1) 用户输入exit命令,按enter键 ;
2) 系统会根据输入信息,只做退出操作:
a) 提醒是否确认退出
b) 提醒是否保存已经操作过的信息
1. 定义数据结构
teypedef struct student
{
char name[20];
char phone[20];
int flag;
struct student * next;
} contact;
2. 具体功能的实现
1. 创建动态链表,在主函数中调用创建动态链表函数contact* init_contact(){},返回头指针contact * head;
2 .创建动态链表,在主函数中调用创建动态链表函数contact* init_contact(){},返回头指针。contact * head
3.定义一个菜单函数void displayMenu(Contact * head){},来调用各种操作的函数。用while(true)死循环一直循环输出(contact>>)和接受用户输入的内容,直到用户执行退出操作为止,用户输入的内容用定义的变量char command[20]接收。用if来判断用户输入的要执行的是那一种操作,继而调用相应的操作函数来实现。
4.定义contact* add(contact* head){}函数,来实现添加用户的操作。用malloc函数在内存中开辟一块(contact*)malloc(sizeof(contact))的内存空间,赋给变量 contact* node,接收增加进来的用户。
5.定义函数 int isValidUserName(char* name){},用if判断输入的用户名是否合法,当用户名为字母,且长度小于20时为合法,合法return 1,不合法return 0
6.定义函数 int isValidTelephone(char* phone){}, 用if来判断输入的电话号码是否合法,当电话号码长度为11时为合法,合法return 1,不合法return 0;
7.定义函数contact* getLastcontact(contact* head){},来得到链表的最后一个指针,当表为空时,头指针Contact* head指向NULL,并返回;当链表不为空时,用while()输出最后一个指针。
8.定义函数contact* find(contact* head){},实现查找功能,定义两个指针分别指向链表的头指针,再定义一个指针字符串,提示用户输入需要查找的姓名,然后判断如果指针指向的地址的姓名和用户输入的字符串相等的话,输出与姓名相匹配的信息,否则志指向head的指针移动到链表的下一个结点出继续判断,直到出现p->next=NULL时结束,提示未找到;
9.定义函数contact* delete(contact* head){},实现删除功能.定义两个指针指向head,调用函数contact* find(contact* head){},如果找到了需要删除的用户,就让上一个指针指向下一个结点;
10. 定义函数contact* modify(contact* head){},实现修改功能, 定义一个指针p指向head,再定义一个字符串new_name指针和整型new_phone指针存放用户输入的信息,调用函数contact* find(contact* head){},如果找到了需要修改的用户,则p->name=new_name 或者p->name=new_phone;
11.定义函数 contact* list(contact* head){}实现列表功能,定义两个指针指向head,p1->name,p2->phone,依次输出就可以了,还必须使得p=p->next循环起来,直到p->next=NULL为止;
12. 定义函数void*export(contact* head){}实现导出功能,此时需要文件操作 FILE* fp=fopen(exportPath,"w");即将计算机内存中存储的信息导出到计算机硬盘文件中;
13.定义函数void* help(contact* head){}实现帮助功能, 当void displayMenu(Contact * head){}函数接到command命令help后输出一些帮助信息即可;
14.当void displayMenu(Contact * head){}接到command 的命令为 exit后提示是否保存退出,再将信息写到文件中即可.
七.界面操作
1. add界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入add,按回车enter键进入add>>目录下;
2.当用户看到please input the name时, 就输入一个姓名(有字母组成且长度小于20),按回车键enter,如果用户输入的用户名不合法,系统会提示错误,the name is illegal,please input other name:直到输入的用户名合法;
3.当用户输入的用户名正确之后,系统会提示用户please input the phone No,在用户输入电话号码(只能由数字组成不多于20位)之后,按回车键enter,如果用户输入的电话号码不合法,系统会提示错误,the phoneNo is illegal,please input other :直到输入的电话号码合法;
4.此时系统提示are you want to save(y/n):如果输入y或者Y则不保存退出到菜单界面,如果输入n或者N则保存退出到菜单界面。
2.find界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入find,按回车enter键进入find>>目录下;
2.当用户看到please input the name which you want to find时, 就输入一个姓名(有字母组成且长度小于20),按回车键enter,如果用户输入的用户名不合法,系统会提示错误,the name is illegal,please input other name:直到输入的用户名合法;
3.如果通讯录中有此姓名的用户,则输出与此用户相关的信息,否则系统提示sorry,no such an user!
3.delete界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入delete,按回车enter键进入detete>>目录下;
2.当用户看到please input the name which you want to find时, 就输入一个姓名(有字母组成且长度小于20),按回车键enter,如果用户输入的用户名不合法,系统会提示错误,the name is illegal,please input other name:直到输入的用户名合法;
3.如果通讯录中有此姓名的用户,则系统提示are you assure to delete? 若是则删除退出返回到主菜单,否则则不删除退出返回到主菜单;
4.如果没有查找到,则系统提示sorry,no such an user!
3. list界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入list,按回车enter键进入list>>目录下;
2.系统就会显示当前通讯录中的信息,若通讯录为空的话,则会给出提示信息there is no record!
5.export界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入export,按回车enter键进入export>>目录下;
2.系统会提示are you assure to export?如果是则导出返回到主菜单,否则不导出返回到主菜单。
6.modify界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入modify,按回车enter键进入modify>>目录下;
2.当用户看到please input the name which you want to find时, 就输入一个姓名(有字母组成且长度小于20),按回车键enter,如果用户输入的用户名不合法,系统会提示错误,the name is illegal,please input other name:直到输入的用户名合法。
3.如果通讯录中有此姓名的用户,则系统提示please input a name: 就输入一个姓名(有字母组成且长度小于20),按回车键enter,如果用户输入的用户名不合法,系统会提示错误,the name is illegal,please input other name:直到输入的用户名合法。
4.如果修改电话号码的话,系统会提示are you want to modify the phoneNo 用户输入确认的信息后,系统会提示用户please input the phone No,在用户输入电话号码(只能由数字组成不多于20位)之后,按回车键enter,如果用户输入的电话号码不合法,系统会提示错误,the phoneNo is illegal,please input other :直到输入的电话号码合法。
5.最后系统提示are you assure to modify?若是则保存退出,否则则不保存退出返回到主菜单。
7.help界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入help,按回车enter键进入help>>目录下;
2.系统会自动显示如何对通讯录管理的操作方法。
8.exit界面操作
1.用户进入系统时会看见contact>>,在光标停闪处输入exit,按回车enter键进入exit>>目录下;
2.接下来系统会提示are you want to save(y/n)?
3.如果是则保存当前的操作记录,退出返回到主菜单;
4否则不保存当前的操作记录,退出返回到主菜单。