《C语言 电话簿管理系统VC++6.0运行通过》由会员分享,可在线阅读,更多相关《C语言 电话簿管理系统VC++6.0运行通过(16页珍藏版)》请在人人文库网上搜索。

1、*电话簿管理系统*/the telephon management system/created by tengzhenfang/data:2010.12.24/*/#include#include#include#include/*预定义*/#define HEADER1 -TELEPHONE BOOK-n#define HEADER2 | num | name | phonenumber | address |n#define HEADER3 |-|-|-|-|n#define FORMAT %-10s | %-10s | %-15s | %-20s |n#define DATA p-nu。

2、m,p-name,p-phonenum,p-address#define END -n#define N 100/*定义全局变量*/int saveflag=0; /是否需要存盘的标志变量/*定义系统的数据结构-电话簿相关信息组成的结构体*/typedef struct telebookint num; /编号char name15; /姓名char phonenum15; /电话号码char address20; /地址TELEBOOK;/*用户自定义函数原型说明*/void menu();void Disp(TELEBOOK temp,int n);void Wrong();int Add。

3、(TELEBOOK temp,int n);void Qur(TELEBOOK temp,int n);int Del(TELEBOOK temp,int n);void Modify(TELEBOOK temp,int n);int Insert(TELEBOOK temp,int n);void SelectSort(TELEBOOK temp,int n);void Save(TELEBOOK temp,int n);/*主函数*/void main()TELEBOOK teleN; /定义了N条电话簿记录FILE *fp; /定义文件指针int select; /保存选择结果变量cha。

4、r ch; /保存(y,Y,n,N)int count=0;fp=fopen(.telephonebook4.dat,ab+);/以追加方式打开二进制文件 c:telephonebook4.data,可读可写,若此文件不存在,则会自动创建此文件if(fp=NULL)printf(n=can not open file!n);exit(0); /程序退出函数,exit(0)为正常退出,在头文件 stdlib.h 里while(!feof(fp)if(fread(&telecount,sizeof(TELEBOOK),1,fp)=1) /一次从文件读取一条电话簿记录count+;fclose(fp。

5、); /关闭文件printf(n=open file success,the total records number is :%d.n,count);getchar();/menu();while(1)system(cls);menu();printf(n Please Enter your choice(09):);scanf(%d,&select);if(select=0)if(saveflag=1) /对数组的数据有修改且未存盘fflush(stdin);getchar();printf(n=Whether save the modified record to file?(y/n):。

6、);scanf(%c,&ch);if(ch=y|ch=Y)Save(tele,count); /保存记录至文件printf(n=thank you for useness!);fflush(stdin);getchar();break;switch(select)case 1:count=Add(tele,count); /增加电话簿记录break; case 2:system(cls);Disp(tele,count); /显示电话簿记录break;case 3:count=Del(tele,count); /删除电话簿记录break;case 4:Qur(tele,count); /查询电。

7、话簿记录break;case 5:Modify(tele,count); /修改电话簿记录break;case 6:count=Insert(tele,count); /插入电话簿记录break;case 7:SelectSort(tele,count); /排序电话簿记录break;case 8:Save(tele,count); /保存电话簿记录break;default:Wrong();fflush(stdin);getchar(); /按键有误,必须为数值09break; /*主菜单界面*/用户进入电话簿管理系统时,需要显示主菜单,提示用户进行选择,完成相应任务。此函数被主函数调用。/。

8、*/void menu()system(cls); /清屏,与clrscr()功能相同printf( The telephone-book Management System n);printf(*Menu*n);printf( * 1 input record 2 display record *n);printf( * 3 delete record 4 search record *n);printf( * 5 modify record 6 insert record *n);printf( * 7 sort record 8 save record *n);printf( * 0 q。

9、uit system n);printf(*n);/*显示电话簿记录*/显示从数组temp第一个元素开始的n条记录/*/输出表格头部,单独在一个函数里实现void printheader()printf(-TELEPHONE BOOK-n);printf(| num | name | phonenumber | address |n);printf(|-|-|-|-|n);void Disp(TELEBOOK temp,int n)int i;if(n=0)printf(n=Not telephone record!n);fflush(stdin);getchar();return;print。

10、f(nnnn);printheader(); /输出表格的头部for(i=0;i=lens)printf(n长度超出,请重新输入。n);while(strlen(n)=lens);strcpy(t,n); /将输入的字符串拷贝到字符串t中/int Add(TELEBOOK temp,int n)int number;int i=0;/char ch20;int flag=0;char ch1;Disp(temp,n); /先打印出已有的电话簿记录/printf(请输入增加的电话簿的编号:n);while(1)while(1)printf(请输入增加的电话簿的编号:n);scanf(%d,&nu。

11、mber);if(number=0)return n;while(i=15)printf(长度超出,请重新输入.n);elsebreak;strcpy(tempn.name,ch);printf(请输入电话号码:);while(1)scanf(%s,ch);if(strlen(ch)=15)printf(长度超出,请重新输入.n);elsebreak;strcpy(tempn.phonenum,ch);printf(请输入地址:);while(1)scanf(%s,ch);if(strlen(ch)=20)printf(长度超出,请重新输入.n);elsebreak;strcpy(tempn.。

12、address,ch);*/stringinput(tempn.name,15,请输入姓名);stringinput(tempn.phonenum,15,请输入电话号码:);stringinput(tempn.address,20,请输入地址:);saveflag=1;n+;return n;/*记录查找定位函数*/在对记录进行查询、修改、删除的时候,都要进行记录的定位操作,因此,将/记录的定位操作作为一个单独的函数进行处理,这样可以节省代码率,优化代码质量/以下Locate()函数完成了记录的查找定位功能,可以按联系人查找或者按电话号码查找/findmess保存要查找的具体内容,nameor。

13、phonenum保存按什么在数组中查找/*/int Locate(TELEBOOK temp,int n,char findmess,char nameorphonenum)int i=0;/printf(%s %sn,nameorphonenum,findmess);if(strcmp(nameorphonenum,phonenum)=0) /按电话号码查询for(i=0;iNot telephone record!n);fflush(stdin);getch();return;printf(n = 1 Search by name = 2 Search by telephone numbe。

14、rn);printf(Please choice1,2:);scanf(%d,&select);if(select=1) /按姓名查询stringinput(ch,15,请输入要查询的姓名:);p=Locate(temp,n,ch,name); /利用Locate函数查找符合ch内容的记录,并将记录的下标返回if(p!=-1)printheader();printf(|%-10d|%-15s|%-15s|%-20s|n,tempp.num,tempp.name,tempp.phonenum,tempp.address);printf(|-|-|-|-|n);printf(press any k。

15、ey to return );getch();elseprintf(The record is not foundn);getch();else if(select=2) /按电话号码查询stringinput(ch,15,请输入要查询的电话号码:);p=Locate(temp,n,ch,phonenum); /利用Locate函数查找符合ch内容的记录,并将记录的下标返回if(p!=-1)printheader();printf(|%-10d|%-15s|%-15s|%-20s|n,tempp.num,tempp.name,tempp.phonenum,tempp.address);prin。

16、tf(|-|-|-|-|n);printf(press any key to return );getch();elseprintf(The record is not foundn);getch();elseWrong();getch();/*删除电话簿记录*/调用Del(TELEBOOK temp,int n)函数删除电话簿记录的功能。可以根据/电话簿姓名删除,也可以按电话号码删除。/*/int Del(TELEBOOK temp,int n)int select;char ch20,ch0;int p,i;if(n=0)printf(n=no telephone num record.n。

17、);getch();return n;printf(删除之前的电话簿记录为:n);Disp(temp,n);printf(n=1 DElete by name =2 Delete by phonen);scanf(%d,&select);if(select=1) /按姓名删除stringinput(ch,15,请输入要删除的电话簿记录的姓名:);p=Locate(temp,n,ch,name);if(p!=-1)printf(n要删除的电话簿记录为:n);printheader();printf(|%-10d|%-15s|%-15s|%-20s|n,tempp.num,tempp.name,t。

18、empp.phonenum,tempp.address);printf(n确认要删除?y/n:);fflush(stdin);scanf(%c,&ch0);if(ch0=y|ch0=Y)for(i=p+1;ino telephone num record.n);getch();return ;stringinput(ch,15,请输入要查找的联系人姓名:);p=Locate(temp,n,ch,name);if(p!=-1)printf(修改前的联系人的信息为:n);printheader();printf(|%-10d|%-15s|%-15s|%-20s|n,tempp.num,tempp.。

19、name,tempp.phonenum,tempp.address);printf(n请输入要修改的联系人的相关信息:n);stringinput(tempp.name,15,请输入修改后的姓名:);stringinput(tempp.phonenum,15,请输入修改后的电话号码:);stringinput(tempp.address,20,请输入修改后的地址:);saveflag=1;elseprintf(您所要修改的联系人不存在,请返回。);getch();/*插入电话簿记录*/调用Insert(TELEBOOK temp,int n)函数,完成在数组temp中插入电话簿记录的/功能。在。

20、插入记录操作中,系统会先按记录编号查找到要插入的元素的位置,然后/在该记录编号处插入一个新记录。/*/int Insert(TELEBOOK temp,int n)int number,i;int flag=0,k;char ch;TELEBOOK newrecord;Disp(temp,n);while(1)printf(n请输入要插入的记录的编号:);scanf(%d,&number);for(i=0;i=k;i-) /从下标 k 开始元素逐个后移tempi+1=tempi;printf(请输入要插入的新记录的信息:n);newrecord.num=number;stringinput(n。

21、ewrecord.name,15,请输入姓名:);stringinput(newrecord.phonenum,15,请输入电话号码:);stringinput(newrecord.address,20,请输入地址:);tempk=newrecord;n+;saveflag=1;printf(插入记录成功!n);Disp(temp,n);getch();return n;/*对电话簿记录进行排序*/调用SelectSort(TELEBOOK temp,int n)函数,利用选择排序法完成对电话簿/记录的排序操作,可以按照编号排序,或者按照姓名排序/*/void SelectSort(TELEB。

22、OOK temp,int n)int select,k,i,j;TELEBOOK tt;if(n=0)printf(n=No telephone record !n);getch();return ;printf(排序前的电话簿记录为:n);Disp(temp,n);printf(=1 sort by number =2 sort by namen);printf(请选择排序方式:n);scanf(%d,&select);if(select=1)for(i=0;iopen file failed!n);getch();return;for(i=0;i0)getch();printf(n=save file complete,total saveds record number is %dn,i);getch();saveflag=0;elseprintf(n=the current link is empty,no telephone record is saved!n);getch();fclose(fp); /关闭此文件。

c语言电话簿管理系统的,C语言 电话簿管理系统VC++6.0运行通过相关推荐

  1. c语言机房管理系统答辩,C语言综合实验报告机房管理系统

    <C语言综合实验报告机房管理系统>由会员分享,可在线阅读,更多相关<C语言综合实验报告机房管理系统(19页珍藏版)>请在人人文库网上搜索. 1.机房管理系统(c语言)在vc+ ...

  2. c语言终极面试宝典 pdf,C语言终极面试--编程

    小程序帮你很好的理解C语言 第三部分:编程题 1.读文件file1.txt的内容(例如): 12 34 56 输出到file2.txt: 56 34 12 #include #include int ...

  3. c语言scanf函数作用,C语言scanf函数应用问题解答

    C语言scanf函数应用问题解答 C语言的输入是由系统提供的库函数完成的.scanf函数是C语言中最常用且功能最强的输入函数,但该函数如使用不慎,就会出现错误或得不到预想的结果.以下结果都是基于VC+ ...

  4. 简单电话簿管理系统(C语言)

    /*大二实践周所作,时间:2017.9,11电话簿管理系统*/#include<string.h> #include<stdio.h> #include<stdlib.h ...

  5. 用链表c语言程序设计,C语言程序设计-基于链表的学生成绩管理系统

    <C语言程序设计-基于链表的学生成绩管理系统>由会员分享,可在线阅读,更多相关<C语言程序设计-基于链表的学生成绩管理系统(18页珍藏版)>请在人人文库网上搜索. 1.华北科技 ...

  6. c语言用链表实现成绩管理系统,C语言基于单链表得学生成绩管理系统

    前言 传说中讲课通俗而不庸俗,说话风流而不下流的小编又来了哦,今天的主要内容是:C语言基于单链表得学生成绩管理系统.首先给年夜家总结下为什么你们学习C语言会觉得难,尤其是对单链表这块,主要原因得是因为 ...

  7. 校运动会c语言程序编写,校运动会管理系统报告C语言(含完整代码)

    <校运动会管理系统报告C语言(含完整代码)>由会员分享,可在线阅读,更多相关<校运动会管理系统报告C语言(含完整代码)(20页珍藏版)>请在人人文库网上搜索. 1.目 录陈一. ...

  8. c是过程化语言吗数据库,A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统...

    A.数据库语言B.过程化语言C.宿主语言D.数据库管理系统 更多相关问题 [填空题] 为了安全起见,起动发动机前要检查()有无行人.---叉车操作和保养手册第2-77.在起动叉车前()以警告周围的人. ...

  9. c语言课程设计2018,C语言课程设计报告(2018)——学生管理系统(17页)-原创力文档...

    兰州交通大学博文学院 <C语言程序设计> 课 程 设 计 报 告 系 别: 交通运输系 班 级: 16交通运输(3)班 姓 名: 学 号: 指导老师: 2018年1月5日 兰州交通大学博文 ...

最新文章

  1. Ubuntu Dapper 提速脚本
  2. ASP.NET程序中常用的三十三种代码
  3. Vue—上手实践—快速入门
  4. iOS开发-编译出错 duplicate symbols for architecture x86_64
  5. 张左峰的歪理邪说 之 大话Redmine插件
  6. java并发编程之线程的基本介绍
  7. 从零开始的JAVA反序列化漏洞学习(一)
  8. Q萌可爱,奇瑞QQ冰淇淋给年轻人爱的大礼物
  9. Mybatis Generator(简称MBG)的最完整配置文件详解
  10. Python如何快速爬取淘宝MM呢?教你一招
  11. 转: 雅虎35条优化黄金守则
  12. 2021年bilibili程序员节日
  13. 视觉导航定位系统工作原理及过程
  14. TBM410-ASEMI的4A贴片整流桥TBM410
  15. Kafka生产者与消费者详解
  16. Xmanager快速连接Linux图形界面教程
  17. 有什么好用的画画的app?这8款可以免费使用赶紧收藏吧!
  18. 为什么手机里的小爱音响app里搜不到家里的小爱音箱_教你500元用小米米家网关+小爱音箱尝鲜最AI智能生活...
  19. 实战录 | 基于openflow协议的抓包分析
  20. 苹果xsmax是什么接口_液态硅胶手机壳,媲美苹果官方同款,拿手里太舒服了~

热门文章

  1. 分享5款超级实用的电脑软件
  2. 骁龙778gplus什么水平 骁龙778gplus什么级别 骁龙778gplus相当于什么档次
  3. 报错:启动apache服务时出现报错
  4. 一键屏蔽百度热搜,专注工作!
  5. [NOIP2018 普及组] 龙虎斗
  6. 天干、地支纪年 月 日
  7. 论邮政有多硬核!邮车意外滑落悬崖,快递员的行为让人动容!
  8. 个人奋斗动力源的一些感想
  9. Java数据库篇之mysql VS postgresql
  10. Python爬虫爬取微博评论案例详解