收藏 分销(赏)

c语言程序设计通讯录标准管理系统.doc

上传人:快乐****生活 文档编号:4452882 上传时间:2024-09-23 格式:DOC 页数:33 大小:1.54MB
下载 相关 举报
c语言程序设计通讯录标准管理系统.doc_第1页
第1页 / 共33页
c语言程序设计通讯录标准管理系统.doc_第2页
第2页 / 共33页
c语言程序设计通讯录标准管理系统.doc_第3页
第3页 / 共33页
c语言程序设计通讯录标准管理系统.doc_第4页
第4页 / 共33页
c语言程序设计通讯录标准管理系统.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、c语言程序设计通讯录标准管理系统根据题目要求,通讯录保存在文件中,要提供文件的输入和输出功能;还有就是要提供通讯录添加(个人信息包括姓名、学号、年龄、住址、电子邮件等)、删除、显示、修改等基本功能。系统总体设计是信息的输入、信息的编辑和退出。系统功能模块如下:1. 添加通讯录;2. 输出通讯录;3. 查找通讯录;4. 修改通讯录;5. 删除通讯录;6. 退出通讯录;,所以要添加信息。用键盘逐个输入通讯录里联系人的信息。YN开始新建联系人是否继续添加联系人?结束。开始输出所有联系人信息结束。开始按姓名查找按号码查找结束,然后 其作出修改。开始输入姓名查找联系人选择要修改的信息是否继续修改其它联系

2、人结束YN。还可以集体删除通讯录中的联系人。开始删除单人按姓名删除按电话删除删除集体结束。#include #include #include #include struct record char name20;char age20; char phone20; char adress40; char number30;char e_mail20; contact500; int NO=0;FILE *fp; void mainmenu(); void newrecord();void browsemenu();void searchmenu(); void searchname(); vo

3、id searchphone();void modifymenu(); void deletemenu();void deleteall(); void deletesingle();void deletename();void deletephone();int loadfile(); void savefile(); void main() printf(ntt :)欢迎使用通讯录管理系统beta);printf(ntt文件导入中请稍后nnnnn); system(cls);loadfile();while (1) mainmenu(); void mainmenu() char choi

4、ce; system(cls); printf(ntt* 主菜单 *); printf(ntt* 1-新建菜单 *); printf(ntt* 2-浏览菜单 *);printf(ntt* 3-查找菜单 *); printf(ntt* 4-修改菜单 *);printf(ntt* 5-删除菜单 *); printf(ntt* 6-退 出 *); printf(ntt*); printf(ntt请选择:); choice=getch(); switch (choice) case 1:newrecord();break; case 2:browsemenu();break; case 3:searc

5、hmenu();break; case 4:modifymenu();break; case 5:deletemenu();break;case 6:exit(0);default:mainmenu(); void newrecord() printf(ntt* 请输入联系人信息 *n); printf(ntt输入姓名:); scanf(%s,&contactNO.name);printf(ntt输入年龄:); scanf(%s,&contactNO.age); printf(ntt输入电话号码:); scanf(%s,&contactNO.phone);printf(ntt输入家庭住址:);

6、 scanf(%s,&contactNO.adress);printf(ntt输入学号:); scanf(%s,&contactNO.number);printf(ntt输入电子邮件:); scanf(%s,&contactNO.e_mail);NO+;savefile(); printf(ntt是否继续添加?(y/n):); if (getch()=y) newrecord();return; void browsemenu() int i; *); else printf(ntt通讯录中无任何纪录); printf(ntt按任意键返回主菜单:); getch(); return; void

7、 searchmenu() char choice; system(cls); printf(ntt* 查找菜单 *); printf(ntt* 1-按姓名查找 *); printf(ntt* 2-按电话查找 *); printf(ntt* 3-返回主菜单 *); printf(ntt*); printf(ntt请选择:); choice=getch(); switch (choice) case 1:searchname();break; case 2:searchphone();break; case 3:mainmenu();break; void searchname() int ma

8、rk=0; int i; int a=0;char name20; printf(ntt* 按姓名查找 *); printf(ntt请输入姓名:); scanf(%s,name); for(i=a;iNO;i+) if (strcmp(contacti.name,name)=0) printf(ntt* 以下是您查找的联系人信息 *); printf(ntt姓 名: %s,contacti.name);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone);printf(ntt家庭住址: %s,contacti.a

9、dress); printf(ntt 学 号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt*);printf(ntt按任意键返回主菜单:); mark+; getch(); return; return;if(mark=0) printf(ntt没有该姓名的联系人纪录); printf(ntt按任意键返回主菜单); getch(); return; void searchphone() int mark=0; int i; int a=0; char phone10; printf(ntt* 按电话查找

10、 *); printf(ntt请输入电话:); scanf(%s,phone); for(i=0;iNO;i+) if (strcmp(contacti.phone,phone)=0) printf(ntt* 以下是您查找的联系人信息 *); printf(ntt姓 名: %s,contacti.name);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学 号:%s,contacti.number);prin

11、tf(ntt电子邮件: %s,contacti.e_mail); printf(ntt*); printf(ntt按任意键返回主菜单:); mark+; getch(); return; if (mark=0) printf(ntt没有该联系人信息); printf(ntt按任意键返回主菜单); getch(); return; void modifymenu() int mark=0; int i,k; int a=0;int t=0;char choice;char name20;struct record modify;system(cls);printf(ntt请输入您要修改的姓名:)

12、; scanf(%s,name); for(i=a;iNO;i+) if (strcmp(contacti.name,name)=0) k=i;mark=1;modify=contacti;printf(ntt* 以下是您将修改的联系人信息 *); printf(ntt姓 名: %s,contacti.name);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone);printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学 号: %s,contacti.number);p

13、rintf(ntt电子邮件: %s,contacti.e_mail); printf(ntt是否继续?y/n);if(getch()=n) modifymenu(); else printf(ntt选择您要修改的选项:); printf(nttt(1).姓 名);printf(nttt(2).年 龄); printf(nttt(3).联系电话); printf(nttt(4).家庭住址); printf(nttt(5). 学 号);printf(nttt(6).电子邮件); printf(nttt(7).返 回); printf(ntt请选择: ); choice=getch(); switc

14、h(choice) case 1: printf(姓 名:); scanf(%s,contacti.name); break;case 2: printf(年 龄:); scanf(%s,contacti.age); break; case 3: printf(联系电话:); scanf(%s,contacti.phone); break; case 4: printf(家庭住址:); scanf(%s,contacti.adress); break;case 5: printf( 学 号:); scanf(%s,contacti.number); break;case 6: printf(电

15、子邮件:); scanf(%s,contacti.e_mail); break; case 7: mainmenu(); break; default: modifymenu(); printf(ntt您的修改结果为:);printf(ntt姓 名: %s,contacti.name);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学号: %s,contacti.number);printf(ntt电子邮件:

16、 %s,contacti.e_mail); printf(ntt确认修改?y/n);if(getch()=n)contacti=modify; printf(ntt修改未保存!);else printf(ntt修改成功!);savefile();mark=0; printf(ntt是否继续修改?(y/n); if (getch()=y) modifymenu(); if (mark=0) printf(ntt没有该联系人的纪录); printf(ntt是否继续修改?(y/n); if (getch()=y) modifymenu(); return;void deletemenu() char

17、 choice; if(NO=0) printf(ntt对不起,文件中无任何纪录); printf(ntt按任意键返回主菜单); getch(); return; system(cls); printf(ntt* 删除菜单 *); printf(ntt* 1-删除所有 *); printf(ntt* 2-删除单个 *); printf(ntt* 3-返回主菜单 *); printf(ntt*); printf(ntt请选择:); choice=getch(); switch(choice) case 1:deleteall();break; case 2:deletesingle();brea

18、k; case 3:mainmenu();break; default:mainmenu(); void deleteall() printf(ntt确认删除?(y/n); if (getch()=y) if (fp=fopen(contact,w)=0) printf(ntt不能打开文件,删除失败); loadfile(); NO=0; printf(ntt纪录已删除,按任意键返回主菜单); getch(); fclose(fp);return; else return; void deletesingle() char choice; printf(nttt1-按姓名删除); printf

19、(nttt2-按号码删除);printf(nttt3-返回删除菜单);printf(ntt请选择:); choice=getch(); switch (choice) case 1:deletename();break; case 2:deletephone();break; case 3:deletemenu();break; void deletename() int i,j; int mark=0; char name20; printf(ntt请输入要删除联系人姓名:); scanf(%s,name); if(NO=0) printf(ntt对不起,文件中无任何纪录); printf(

20、ntt按任意键返回主菜单); getch(); return; for (i=0;iNO;i+) if (strcmp(contacti.name,name)=0) printf(ntt以下是您要删除的联系人纪录:); printf(ntt姓 名: %s,contacti.name);printf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学号: %s,contacti.number);printf(ntt电子邮件:

21、%s,contacti.e_mail); printf(ntt是否删除?(y/n); if (getch()=y) for (j=i;jNO-1;j+) contactj=contactj+1; NO-; mark+; printf(ntt删除成功); savefile();printf(ntt是否继续删除?(y/n); if (getch()=y) deletename(); return; else return; continue; if (mark=0) printf(ntt没有该联系人的纪录); printf(ntt是否继续删除?(y/n); if (getch()=y) delet

22、ename(); return; void deletephone() int i,j; int mark=0; char phone20; printf(ntt请输入要删除联系电话:); scanf(%s,phone); if(NO=0) printf(ntt对不起,文件中无任何纪录); printf(ntt按任意键返回主菜单); getch(); return; for (i=0;iNO;i+) if (strcmp(contacti.phone,phone)=0) printf(ntt以下是您要删除的联系人纪录:); printf(ntt姓 名: %s,contacti.name);pr

23、intf(ntt年 龄: %s,contacti.age); printf(ntt联系电话: %s,contacti.phone); printf(ntt家庭住址: %s,contacti.adress); printf(ntt 学号: %s,contacti.number);printf(ntt电子邮件: %s,contacti.e_mail); printf(ntt是否删除?(y/n); if (getch()=y) for (j=i;j0) rewind(fp); for (NO=0;!feof(fp) & fread(&contactNO,sizeof(struct record),1

24、,fp);NO+); printf(nnnntttt :)文件导入成功); printf(ntttt 按任意键返回主菜单); getch(); return(NO); printf(nnnnttt :)文件导入成功); printf(nttt电话簿文件中无任何纪录); printf(nttt 按任意键返回主菜单); getch(); return(NO); void savefile() int i; if (fp=fopen(,wb)=0) printf(ntt文件打开失败!n); for (i=0;iNO;i+) if (fwrite(&contacti,sizeof(struct rec

25、ord),1,fp)!=1) printf(ntt写入文件错误!n); printf(ntt已成功保存至文件!n);fclose(fp); 本程序中大量使用了结构体和结构体数组,系统的功能模块都是使用子函数完成的,子函数中也存在大量结构体数组。:。我就以新建菜单的例子来说,按1以后输入系列信息即可:因为程序过大,所以遇到了很多问题,特别是最后的文件的导入和导出一直没搞好,最后是到网上找到了相关的模块,做了些参考才完成的。不过这个程序中大部分子函数定义明确,可以看书,上网查资料一遍一遍尝试着去写,虽然很麻烦,但断断续续的还是可以完成的。在这短时间的编写过程中我对c语言有啦更进一步的认识和了解。此次编程过程的经验和知识肯定能促进我以后的学习,对我的帮助是很多的,无论是学到的知识还是经验。在程序的编写过程中学习了很多对函数运用的方法,其中真的遇到了很多困难,还是慢慢坚持下来了。程序写完后也感到了很兴奋和快乐,毕竟有了个结果。当然因为其中个别模块的程序是参考其他资料写的,所以有些地方还需要我进一步去学习和巩固,以便于查漏补缺。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服