通讯录-----第一版
//基于顺序表实现的简易通讯录-----1#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>#include<stdlib.h>#include<string.h>typedefstructstu//定义一个学生信息的结构体类型{charname[20];charsex[6];intage;chartele[20];charaddress[40];}stu;typedefstruct//创建一个顺序表{studata[1000];inti;}suquence;intfind(suquence*book,char*names){intn=0;while(n<book->i){if(strcmp(book->data[n].name,names)==0)break;n++;}if(n!=book->i)returnn;//如果找到则返回这个位置return-1;//没找到返回-1}voidAdd(suquence*book){if(book->i>=1000)//最多存储1000条信息{printf("通讯录已满\n");}else{printf("请输入名字:");scanf("%s",book->data[book->i].name);printf("请输入性别:");scanf("%s",book->data[book->i].sex);printf("请输入年龄:");scanf("%d",&book->data[book->i].age);printf("请输入电话:");scanf("%s",book->data[book->i].tele);printf("请输入地址:");scanf("%s",book->data[book->i].address);++book->i;printf("添加成功\n");}}voiddelete(suquence*book,char*names){if(book->i<=0){printf("通讯录已空\n");}else{intn=0;n=find(book,names);//根据名字查找if(n==0){printf("没有此人\n");}else{while(n<book->i-1)//如果找到,则进行删除,依次向前覆盖{book->data[n]=book->data[n+1];}book->i--;//删除一个,则记录位置的book->i也要减一printf("删除成功\n");}}}voidchange(suquence*book,char*names){intret=0;ret=find(book,names);//先找到这个人的位置if(ret==-1){printf("没有此人\n");}else{printf("请输入名字:");scanf("%s",book->data[ret].name);printf("请输入性别:");scanf("%s",book->data[ret].sex);printf("请输入年龄:");scanf("%d",&book->data[ret].age);printf("请输入电话:");scanf("%s",book->data[ret].tele);printf("请输入地址:");scanf("%s",book->data[ret].address);printf("修改成功\n");}}voidoutput(suquence*book){if(book->i<=0){printf("通讯录为空\n");}else{intn=0;while(n<book->i){printf("名字:%s性别:%s年龄:%d电话:%s地址:%s\n",book->data[n].name,book->data[n].sex,book->data[n].age,book->data[n].tele,book->data[n].address);n++;}}}voidinit(suquence*book){book->i=0;//只要将记录位置的book->i置0printf("初始化成功\n");}voidsort(suquence*book){if(book->i>1)//当通讯录中有1个以上记录再进行排序{inti=0;intj=0;intflag=0;for(i=0;i<book->i-1;i++){flag=1;for(j=0;j<book->i-i-1;j++){if(strcmp(book->data[j].name,book->data[j+1].name)<0)//根据名字进行排序{chararr[50];strcpy(arr,book->data[j].name);strcpy(book->data[j].name,book->data[j+1].name);strcpy(book->data[j+1].name,arr);strcpy(arr,book->data[j].sex);strcpy(book->data[j].sex,book->data[j+1].sex);strcpy(book->data[j+1].sex,arr);inttmp=book->data[j].age;book->data[j].age=book->data[j+1].age;book->data[j+1].age=tmp;strcpy(arr,book->data[j].tele);strcpy(book->data[j].tele,book->data[j+1].tele);strcpy(book->data[j+1].tele,arr);strcpy(arr,book->data[j].address);strcpy(book->data[j].address,book->data[j+1].address);strcpy(book->data[j+1].address,arr);flag=0;}//if结束}if(flag)//如果已经有序,则flag为真break;}}printf("排序成功\n");}voidexecute(suquencebook){intn=0;charname[20];while(1){printf("请选择:");scanf("%d",&n);switch(n){case0:exit(1);break;case1:Add(&book);break;case2:printf("请输入姓名:");scanf("%s",name);delete(&book,name);break;case3:printf("请输入姓名:");scanf("%s",name);change(&book,name);break;case4:printf("请输入姓名:");scanf("%s",name);intret=find(&book,name);if(ret==-1)printf("查询无果\n");elseprintf("名字:%s性别:%s年龄:%d电话:%s地址:%s\n",book.data[ret].name,book.data[ret].sex,book.data[ret].age,book.data[ret].tele,book.data[ret].address);break;case5:init(&book);break;case6:output(&book);break;case7:sort(&book);break;default:printf("选择无效\n");break;}}}intmain(){printf("*******************************\n");printf("*0.exit1.Add*\n");printf("*2.deletel3.change*\n");printf("*4.find5.init*\n");printf("*6.output7.sort*\n\n");suquencebook;book.i=0;execute(book);system("pause");return0;}
//后续增加更多版本
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。