当前位置:文档之家› c语言通讯录源代码

c语言通讯录源代码

#include #include #include #include struct person //每个元素都是结构体类型 { char name[15]; //结构体数组,用于存储姓名 char celephone[22]; char QQ[20]; }per[500]; //定义一个per数组,它有500个元素

int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// **模块1**

void newrecord();//新添纪录(括写入到文件)*// **模块2** void readfromfile();//*读取文件*// **模块2.1**

void searchmenu();//*查询菜单*// **模块3** void searchbyname();//*按姓名查询*// **模块3.1** void searchbycelephone();//*按手机号码查询*// **模块3.2** void searchbyqq();//*按QQ查询*// **模块3.3**

void xiugaimenu();//*修改菜单*// **模块4** void xiugaibyname();//*按姓名查找修改*// **模块4.1** void xiugaibycelephone();//*按手机号码查找修改*// **模块4.2** void xiugaixiangmu(int a);//*查找后要修改的项目(分名字和号码)*// **模块4.3**

void deletemenu();//*删除菜单*// **模块5** void deleteall();//*删除所有信 息*// **模块5.1** void deleteone();//*删除单个*// **模块5.2** void deletebycelephone(); //*按手机号码删除*// **模块5.2.1** void deletebyname();//*按姓名删除*/ **模块5.2.2**

void showall();//*输 出 全 部 信 息*// **模块6** void main()//*主函数*// { while (1) { mainmenu(); } } //*主函数结束*// void mainmenu()//*主菜单函数*// **模块1** { int a; //以下模块是主界面 printf("**********欢迎来到【通信录】**********"); printf("\n\n"); printf(" 选择1:导入信息\n"); printf(" 选择2:新建信息\n"); printf(" 选择3:查询信息\n"); printf(" 选择4:修改信息\n"); printf(" 选择5:删除个人\n"); printf(" 选择6:删除所有\n"); //printf(" 选择7:输出信息\n"); printf(" 选择0:退出系统\n\n"); printf("***************************************\n");

printf("【请选择数字0-7,其他键暂时不起作用】\n"); loop1: scanf("%d",&a); switch (a) { case 1:readfromfile();break; case 2:newrecord();break; case 3:searchmenu();break; case 4:xiugaimenu();break; case 5:deletemenu();break; case 6:deleteall();break; case 7:showall();break; case 0:exit(0); default:printf("对不起!您的输入有误!请重新输入: ");getchar();goto loop1; } }

void readfromfile()//*读取文件*// **模块2.1** { int i,j,k; if((fp=fopen("c:\\string.txt","rb"))==NULL) { printf("\n\t\t****************************"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t* 通讯录文件不存在! *"); if ((fp=fopen("per.bin","wb"))==NULL) { printf("\n* 建立失败! *"); printf("\n* *"); printf("\n* *"); printf("\n****************************"); exit(0); } else { printf("\n\t\t* 通讯录文件已建立! *"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t****************************"); printf("\n\t\t 按任意键进入主菜单 "); printf("\n\t\t 请输入您的数字选择: "); scanf("%d",&k); return; } exit(0); } fseek(fp,0,2); //*文件位置指针移动到文件末尾*// if (ftell(fp)>0) //*文件不为空*// { rewind(fp); //*文件位置指针移动到文件开始位置*// for (num=0;!feof(fp) && fread(&per[num],sizeof(struct person),1,fp);num++); printf("\n\t\t****************************"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t* 文件导入成功! *"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t****************************"); printf("\n\t\t 按1显示所有信息,按2回主菜单! "); printf("\t\t 请输入您的数字选择: "); scanf("%d",&j); if(j==1) showall(); } else { printf("\n\t\t****************************"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t* 文件导入成功! *"); printf("\n\t\t* 通讯录文件中无任何纪录! *"); printf("\n\t\t* *"); printf("\n\t\t* *"); printf("\n\t\t****************************"); printf("\n\t\t请按任意数字键返回主菜单"); scanf("%d",&i); return; } }

void newrecord()//*添加纪录模块*// **模块2** { char s[81];

int a; loop: printf("\n\n\n\n\t\t 请输入您要添加的联系人的信息: \n"); printf("\n请输入姓名:\n"); name: scanf("%s",&per[num].name); if(strlen(per[num].name)>15) { printf("对不起!您的输入有误!请重新输入"); goto name; } if((fp=fopen("c:\\string.txt","a"))==NULL) //打开文件 { printf("无法打开文件\n"); exit(1); }

fprintf(fp," 姓名\t\t 电话\t\t\t QQ\n"); fprintf(fp,"%-15s",per[num].name); //将字符串写进文件 fclose(fp); //关闭文件

printf("\n请输入手机号码:\n"); celephone: scanf("%s",&per[num].celephone); if(strlen(per[num].celephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto celephone; } if((fp=fopen("c:\\string.txt","a"))==NULL) //打开文件 { printf("无法打开文件\n"); exit(1); }

相关主题