文章标题
来源:互联网 发布:好莱坞演技 知乎 编辑:程序博客网 时间:2024/06/05 15:47
通讯录
内容文件名 telephone number list.txt
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <windows.h>struct TEL{ char name[10]; char sex[5]; char number[20]; char others[100]; };struct TEL phone[5000];int amount;void read(){FILE *fp;fp=fopen("telephone number list.txt","r");if(fp==NULL){ printf("Open time error! 0000017\n "); return;}char temp[1000];while(fgets(temp,1000,fp)>0){ temp[ strlen(temp)-1 ]=0; char *k1=strstr(temp," "); *k1=0; strcpy(phone[amount].name,temp); char *k2=strstr(k1+1," "); *k2=0; strcpy(phone[amount].sex ,k1+1); char *k3=strstr(k2+1," "); *k3=0; strcpy(phone[amount].number,k2+1); char *k4=strstr(k3+1,":"); strcpy(phone[amount].others,k4+1); amount++; }fclose(fp);}void write_in(){FILE *fp;fp=fopen("telephone number list.txt","w");if(fp==NULL){ printf("Open time error!\n"); return;}int i;for(i=0;i<amount;i++)fprintf(fp,"%s %s %s 备注:%s\n",phone[i].name,phone[i].sex, phone[i].number,phone[i].others);fclose(fp);return;}void edit(){int i,n,m,ok=0; char temp[100],temp2[100],y='y'; while(y=='y'){ printf("1.修改联系人\n"); printf("2.删除联系人\n"); printf("请输入编辑选项:"); scanf("%d",&n); if(n==1) { ok=0; printf("请输入要修改的联系人的姓名(全名):"); scanf("%s",temp); getchar(); for(i=0;i<amount;i++) if(strcmp(phone[i].name,temp)==0) {ok=1;break;} if(ok==0) printf("找不到该联系人\n"); if(ok==1){ printf("1.修改该联系人姓名\n"); printf("2.修改该联系人性别\n"); printf("3.修改该联系人电话号码\n"); printf("4.修改该联系人备注\n"); printf("请输入要修改的项目序号:"); scanf("%d",&m); switch(m){ case 1: printf("请输入新姓名:"); scanf("%s",temp2); getchar(); strcpy(phone[i].name,temp2); printf("修改成功!\n");break; case 2: printf("请输入新性别:"); scanf("%s",temp2); getchar(); strcpy(phone[i].sex,temp2); printf("修改成功!\n");break; case 3: printf("请输入新的电话号码:"); scanf("%s",temp2); getchar(); strcpy(phone[i].number,temp2); printf("修改成功!\n");break; case 4: printf("请输入新备注:"); scanf("%s",temp2); getchar(); strcpy(phone[i].others,temp2); printf("修改成功!\n");break; } } } if(n==2){ok=0; printf("请输入要删除的联系人的姓名(全名):"); scanf("%s",temp); getchar(); for(i=0;i<amount;i++) if(strcmp(phone[i].name,temp)==0) {ok=1;break;} if(ok==0) printf("找不到该联系人\n"); if(ok){ for(;i<amount-1;i++) {strcpy(phone[i].name,phone[i+1].name); strcpy(phone[i].sex,phone[i+1].sex); strcpy(phone[i].number,phone[i+1].number); strcpy(phone[i].others,phone[i+1].others);} amount--; printf("删除成功!\n"); } } printf("是否继续编辑联系人?(y/n) "); scanf("%c",&y);}write_in();system("cls");return;}void write(){char n;while(n-'n'){printf("请输入联系人姓名:");scanf("%s",phone[amount].name);printf("请输入联系人性别:");scanf("%s",phone[amount].sex);printf("请输入联系人电话号码:");scanf("%s",phone[amount].number);printf("请输入联系人备注:");scanf("%s",phone[amount].others);amount++;printf("是否继续录入?(y/n)");getchar();scanf("%c",&n);}write_in();system("cls");return;}void list(){int i;for(i=0;i<amount;i++)printf("%8s %2s %11s 备注:%s\n",phone[i].name,phone[i].sex,phone[i].number,phone[i].others);system("pause");system("cls");return;}void search(){int n,i,ok=0; char temp[100],c='y'; while(c=='y'){ printf("1.按姓名搜索\n"); printf("2.按性别搜索\n"); printf("3.按电话号码搜索\n"); printf("4.按备注内容搜索\n");printf("请输入搜索方式:"); scanf("%d",&n);getchar();switch(n){ case 1: ok=0; printf("请输入要查找的姓名字段:"); scanf("%s",temp); getchar(); for(i=0;i<amount;i++) if(strstr(phone[i].name,temp)!=NULL) {printf("%8s %2s %11s 备注:%s\n",phone[i].name,phone[i].sex,phone[i].number,phone[i].others); ok=1;} if(!ok) printf("没有找到含有该姓名字段的联系人\n"); break; case 2: ok=0; printf("请输入性别(男/女):"); scanf("%s",temp); getchar(); for(i=0;i<amount;i++) if(strstr(phone[i].sex,temp)!=NULL) {printf("%8s %2s %11s 备注:%s\n",phone[i].name,phone[i].sex,phone[i].number,phone[i].others); ok=1;} if(!ok) printf("没有找到此性别的联系人或性别输入错误\n"); break; case 3: ok=0; printf("请输入电话号码字段:"); scanf("%s",temp); getchar(); for(i=0;i<amount;i++) if(strstr(phone[i].number,temp)!=NULL) {printf("%8s %2s %11s 备注:%s\n",phone[i].name,phone[i].sex,phone[i].number,phone[i].others); ok=1;} if(!ok) printf("没有找到含有此号码字段的联系人\n"); break; case 4: ok=0; printf("请输入备注的字段:"); scanf("%s",temp); getchar(); for(i=0;i<amount;i++) if(strstr(phone[i].others,temp)!=NULL) {printf("%8s %2s %11s 备注:%s\n",phone[i].name,phone[i].sex,phone[i].number,phone[i].others); ok=1;} if(!ok) printf("没有含有此备注字段的联系人\n"); break;}printf("是否重新搜索?(y/n)");scanf("%c",&c);getchar();}system("cls");return; }int choose(void){printf("------------通讯录-----------\n"); printf(" made by Drug\n"); printf("1.录入联系人\n"); printf("2.全部列出联系人\n"); printf("3.搜索联系人\n"); printf("4.编辑联系人\n"); printf("0.结束\n"); int i; printf("请输入操作序号:"); scanf("%d",&i); getchar(); if(i==1) write(); if(i==2) list(); if(i==3) search(); if(i==4) edit(); if(i==0) return 0;}int main(){ printf("读取通讯录文件中.....\n"); read(); printf("读取完成!\n"); Sleep(1000); system("cls"); while(choose()); return 0; }
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- PrintWriter格式化输出如何实现换行?\r\n
- OpenStack Neutron N版本VLAN aware VMs特性解析(一)
- 第14周 项目5-二叉排序树的查找
- 小数在JS中表示怎么不准确
- Android开发——控件TextView的用法(常用属性)
- 文章标题
- CodeForces 471D<差分+KMP>--scanf的读入远比cin快
- Javascipt中documentHeight,windowHeight的含义
- 配置多个监听以及故障转移
- C++primer学习及OPENCV总结
- ACL的使用(摘抄至鸟叔的私房菜)
- usaco Home on the Range
- ssl双向认证和单向认证原理
- 7种实现下划线的方法