C语言课程设计通讯录管理系统 .doc
《C语言课程设计通讯录管理系统 .doc》由会员分享,可在线阅读,更多相关《C语言课程设计通讯录管理系统 .doc(48页珍藏版)》请在三一办公上搜索。
1、中国海洋大学青岛学院C语言课程设计报告书题 目通讯录管理系统学生姓名指导教师学 院/系专业班级 组内分工姓名主要任务占系统比例主函数、修改、拨号,通话记录25%删除、退出25%查询25%创建25%目 录1 前言12 需求分析23 模块设计图34 NS流程图清单45 存储结构及函数说明56 课程设计结果67 实践心得体会71 前言1. 目的:加深对C语言课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。培养良好的编程方法。2. 内容:设计一个简易的手机通讯录管理系统。该题目要求熟练的掌握C语言的基本
2、知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算数运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握C语言基本知识的应用,包括链表、结构体、指针、文件读写,以及函数的调用操作等。其中结构体,函数的调用,算法的设计是尤为重要的。2 需求分析根据用户的需求,总结出系统将实现以下功能:创建:新增联系人:可以增加一个新的联系人,依次录入姓名、手机、电话号码、电子邮件、公司。新增分类:可以增加一个联系人的分类。例如、朋友、同事、家人等。查询:按号码查询:输入你所要查询的联系人号码,自动显示号码
3、所匹配联系人的详细信息。按姓名查询:输入所要查询的联系人姓名,自动显示号码所匹配联系人的详细信息。查询分类:可以显示自定义的所有分类。修改:修改联系人信息:可以修改联系人的纤细信息。例如修改联系人的姓名、手机号码、电话号码、电子邮件、公司等。添加联系人到类:可以新增一个联系人同时给他确定所属的分类,也可以把一个现有的联系人添加到一个存在的分类。更改类名:可以更改分类的名称,以及所有此类名的联系人的分类属性。删除:删除联系人:删除所有此联系人的信息。删除分类:可以删除分类并且将所有的此分类下的联系人分类属性更改为默认属性。删除分类中的联系人:通过输入联系人的姓名或者号码将此联系人从此分类中删除,
4、并将联系人的分类属性改为默认。拨号:按姓名拨号:输入要拨打的联系人的姓名可选择要拨打的号码,电话号码或者手机号码,实现虚拟拨号。按号码拨打:如果你要拨打的号码中联系人中已存在,自动在屏幕上显示联系人姓名,实现虚拟拨号。通话记录:将拨打过的号码保存起来并可以通过查询通话记录进行查询。退出:当选择此功能时将退出系统。3 模块设计图通讯录管理系统通话记录哭拨号删除修改查询退出创建添加联系人到类按姓名拨号查询通话记录按号码拨号删除类中联系人删除分类删除联系人查询分类修改联系人修改分组新增联系人新增分类按姓名查询按号码查询详细功能介绍:创建:新增联系人:可以增加一个新的联系人,依次录入姓名、手机、电话号
5、码、电子邮件、公司。新增分类:可以增加一个联系人的分类。例如、朋友、同事、家人等。查询:按号码查询:输入你所要查询的联系人号码,自动显示号码所匹配联系人的详细信息。按姓名查询:输入所要查询的联系人姓名,自动显示号码所匹配联系人的详细信息。查询分类:可以显示自定义的所有分类。修改:修改联系人信息:可以修改联系人的纤细信息。例如修改联系人的姓名、手机号码、电话号码、电子邮件、公司等。添加联系人到类:可以新增一个联系人同时给他确定所属的分类,也可以把一个现有的联系人添加到一个存在的分类。更改类名:可以更改分类的名称,以及所有此类名的联系人的分类属性。删除:删除联系人:删除所有此联系人的信息。删除分类
6、:可以删除分类并且将所有的此分类下的联系人分类属性更改为默认属性。删除分类中的联系人:通过输入联系人的姓名或者号码将此联系人从此分类中删除,并将联系人的分类属性改为默认。拨号:按姓名拨号:输入要拨打的联系人的姓名可选择要拨打的号码,电话号码或者手机号码,实现虚拟拨号。按号码拨打:如果你要拨打的号码中联系人中已存在,自动在屏幕上显示联系人姓名,实现虚拟拨号。通话记录:将拨打过的号码保存起来并可以通过查询通话记录进行查询。退出:当选择此功能时将退出系统。4 NS流程图清单主函数:void main()主函数:switch(choose)case 1case 2case 3case 4case 5c
7、ase 6case 0defaultsystem(cls);Addmenu();调用新增菜单函数Add();调用新增函数system(cls);Searchmenu();调用查询菜单函数Search();调用查询函数system(cls);Changemenu();调用更改菜单函数Change();调用更改函数system(cls);Deletemenu();调用删除菜单函数Del();调用删除函数system(cls);Callmenu();调用拨号菜单函数Call();调用拨号函数system(cls);Recordmenu();调用查询通话记录菜单函数Record();调用查询通话记录函
8、数exit(0);printf(nttt请输入0-6之间的一个数!n);新增模块:void Add()Addmenu():提示新增联系人种类Add():switch(choice)case 1case 2case 0defaultsystem(cls);creatContacts();/*创建联系人*/system(cls);creatClasses();/*创建分类*/system(cls);main();/*返回主函数*/printf(nttt请输入0-2之间的一个数!n);创建联系人函数:void creatContacts()while(1)打开文件按提示录入信息 head1=read
9、Contact(); p2=head1;while(p2!=NULL)if(strcmp(p2-name,p1-name)=0)假 真printf(ntt联系人已存在!n);break;p2=p2-next;假 if(p2=NULL) 真fprintf(fp,%s %s %s %s %s %sn,p1-name,p1-telephoneno,p1-phoneno,p1-email,p1-company,p1-classification);p1=(struct contact *)malloc(LEN);printf(ntt联系人创建成功!n);假 if(fclose(fp) 真printf(
10、ntt文件关闭失败!n); exit(0);printf(nntt是否要继续创建?(1/0)t); scanf(%d,&select);假 if(select!=1) 真break;创建分类函数:void creatClasses()while(1) 按提示录入信息 head=readClassification(); p=head;while(p!=NULL) if(strcmp(p1-class_name,p-class_name)=0) 假 真printf(ntt分类已存在!n); break;p=p-next; if(p=NULL) 假 真 if(fp=fopen(分类.txt,a)=
11、NULL)假 真printf(ntt文件打开失败!n);exit(0);fprintf(fp,%sn,p1-class_name); p1=(struct classification *)malloc(sizeof(struct classification);printf(ntt分类创建成功!n); if(fclose(fp)假 真printf(ntt文件关闭失败!n);exit(0);printf(nntt是否要继续创建?(1/0)t);scanf(%d,&select);if(select!=1)假 真break;读取联系人函数:struct contact *readContact(
12、)int n; FILE *fp; struct contact *head; struct contact *p1,*p2;p1=p2=(struct contact *)malloc(LEN); head=NULL; n=0; if(decideContact()=0) 判断contact文件是否为空函数 假 真return head; if(fp=fopen(contact.txt,r)=NULL | feof(fp) 真 假return head;while(!feof(fp)fscanf(fp,%s %s %s %s %s %sn,p1-name,p1-telephoneno,p1-
13、phoneno,p1-email,p1-company,p1-classification);n+; if(n=1)真 假head=p1;p2-next=p1;p2=p1; p1=(struct contact *)malloc(LEN);p2-next=NULL; fclose(fp); return head;读取分类函数:struct classification *readClassification()FILE *fp; int n; struct classification *head; struct classification *p1,*p2; n=0;p1=p2=(stru
14、ct classification *)malloc(sizeof(struct classification); head=NULL; if(decideClassification()=0) 判断分类文件是否为空函数假 真return head; if(fp=fopen(分类.txt,r)=NULL | feof(fp) 真 假return head;while(!feof(fp)fscanf(fp,%sn,p1-class_name); n+; if(n=1) 真 假head=p1;p2-next=p1;p2=p1; p1=(struct classification *)malloc(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言课程设计通讯录管理系统 语言 课程设计 通讯录 管理 系统
链接地址:https://www.31ppt.com/p-2384864.html