通讯录

来源:互联网 发布:阿里云幕布邮寄要多久 编辑:程序博客网 时间:2024/04/25 06:18
实现一个通讯录;
通讯录可以用来存储1000个人的信息,每个人的信息包括:
姓名、性别、年龄、电话、住址


提供方法:
1. 添加联系人信息
2. 删除指定联系人信息
3. 查找指定联系人信息
4. 修改指定联系人信息
5. 显示所有联系人信息
6. 清空所有联系人
<pre name="code" class="cpp">#include <stdio.h>#include <iomanip>#include <iostream>#include <string.h>#include <stdlib.h>using namespace std;#defineMAXSIZE 15//输入姓名、性别、电话、地址时,最多只能输入15个字符,否则会影响版面#define MAXNUM 10struct info{char name[MAXSIZE];char sex[MAXSIZE];char age[MAXSIZE];//int age;char tel[MAXSIZE];char address[MAXSIZE];bool bo;}a[MAXNUM];void addinfo(struct info a[]){int i=0;while(i<MAXNUM){if(!a[i].bo){//FILE *pfile=fopen("Data.txt","a+");printf("请输入姓名:");cin>>a[i].name;printf("\n");printf("请输入性别:");cin>>a[i].sex;printf("\n");printf("请输入年龄:");cin>>a[i].age;printf("\n");printf("请输入联系电话:");cin>>a[i].tel;printf("\n");printf("请输入地址:");cin>>a[i].address;printf("\n");a[i].bo=true;cout<<"添加成功!";break;}i++;}}void del(struct info a[]){char name[MAXSIZE];printf("请输入要删除的联系人姓名:");scanf("%s",&name);int i=0;while(i<MAXNUM){if(strcmp(name,a[i].name)==0){a[i].bo=false;cout<<"删除成功!";}i++;}}void find(struct info a[]){char name[MAXSIZE];printf("请输入要查找的联系人姓名:");scanf("%s",&name);int i=0;cout<<setiosflags(ios_base::left)<<setw(10)<<"姓名:\t"<<setw(10)<<"性别:\t"<<setw(10)<<"年龄:\t"<<setw(20)<<"电话:\t"<<setw(25)<<"地址:"<<endl;while(i<MAXNUM){if(strcmp(name,a[i].name)==0){cout<<setiosflags(ios_base::left)<<setw(10)<<a[i].name<<setw(10)<<a[i].sex<<setw(10)<<a[i].age<<setw(20)<<a[i].tel<<setw(25)<<a[i].address<<endl;}i++;}}void change(struct info a[]){char name[MAXSIZE];printf("请输入要修改的联系人姓名:");scanf("%s",&name);int i=0;while(i<MAXNUM){if(strcmp(name,a[i].name)==0){printf("请输入姓名:");cin>>a[i].name;printf("\n");printf("请输入性别:");cin>>a[i].sex;printf("\n");printf("请输入年龄:");cin>>a[i].age;printf("\n");printf("请输入联系电话:");cin>>a[i].tel;printf("\n");printf("请输入地址:");cin>>a[i].address;printf("\n");cout<<"添加成功!";break;}i++;}}void showall(struct info a[]){int i=0;cout<<setiosflags(ios_base::left)<<setw(10)<<"姓名:"<<setw(10)<<"性别:"<<setw(10)<<"年龄:"<<setw(20)<<"电话:"<<setw(25)<<"地址:"<<endl;while(i<MAXNUM){if(a[i].bo){cout<<setiosflags(ios_base::left)<<setw(10)<<a[i].name<<setw(10)<<a[i].sex<<setw(10)<<a[i].age<<setw(20)<<a[i].tel<<setw(25)<<a[i].address<<endl;}i++;}}void cleanall(struct info a[]){int i=0;while(i<MAXNUM){if(a[i].bo){a[i].bo=false;}i++;}cout<<"清空完成!";}void interface(){printf("\t\t\t   欢迎使用本通讯录系统\n");printf("\t\t\t***************************\n");printf("\t\t\t*  1、添加联系人信息      *\n");printf("\t\t\t*  2、删除指定联系人信息  *\n");printf("\t\t\t*  3、修改指定联系人信息  *\n");printf("\t\t\t*  4、显示所有联系人信息  *\n");printf("\t\t\t*  5、清空所有联系人      *\n");printf("\t\t\t*  6、退出                *\n");printf("\t\t\t***************************\n");printf("\t\t请选择:");}void ReadinMem(){FILE *pfile;if((pfile=fopen("Data.txt","r"))==NULL){//free (pfile);//fclose(pfile);return;}//pfile=fopen("Data.txt","r");//上面if语句已经打开文件,不必重复打开for (int i=0;i<MAXNUM;i++){if (EOF!=(fscanf(pfile,"%s\t%s\t%s\t%s\t%s\t",&a[i].name,&a[i].sex,&a[i].age,&a[i].tel,&a[i].address))){a[i].bo=true;}}fclose(pfile);}void save(){FILE *pfile;pfile=fopen("Data.txt","w");for (int i=0;i<MAXNUM;i++){if (a[i].bo&&(EOF!=(fprintf(pfile,"%10s%10s%10s%20s%25s",a[i].name,a[i].sex,a[i].age,a[i].tel,a[i].address)))){fprintf(pfile,"\n");}}fclose(pfile);} int main(){ReadinMem();while(true){int x=0;interface();cin>>x;switch(x){case 1:addinfo(a);break;case 2:del(a);break;case 3:change(a);break;case 4:showall(a);break;case 5:cleanall(a);break;case 6:save();goto lable;break;default:printf("输入错误!");break;}system("pause");system("cls");}lable:return 0;}


                                             
0 0
原创粉丝点击