通讯录(静态版本)

来源:互联网 发布:淘宝企业店入驻 编辑:程序博客网 时间:2024/06/03 14:57

用静态开辟的方法是一次性就把内存开辟好。

头文件concate.h

#ifndef __CONCATE_H__#define __CONCATE_H__#include<stdio.h>#include<stdlib.h>#include<string.h>#define MAX_NAME 10#define MAX_SEX  5#define MAX_ADDR 20#define MAX_TELE 12#define MAX_CON  1000typedef struct PeoINFO{char name[MAX_NAME];int age;char sex[MAX_SEX];char tele[MAX_TELE];char addr[MAX_ADDR];}Peo;typedef struct Con{Peo con[MAX_CON];int count;}Con,*pCon;void Initcon(pCon pcon);        void add(pCon pcon);void show(pCon pcon);void del(pCon pcon);void search(pCon pcon); void mod(pCon pcon);void sort(pCon pcon);void Exit(pCon pcon);#endif  //_CONCATE_H__
源文件concate.c

#include "concate.h"void Initcon(pCon pcon)      //初始化{memset(pcon->con,0,MAX_CON*sizeof(Peo));  //pcon->count =0;}void add(pCon pcon)        //添加信息{if(pcon->count>=MAX_CON){printf("电话本已满");}else{printf("name:");scanf("%s",pcon->con [pcon->count ].name);printf("age:");        scanf("%d",&(pcon->con [pcon->count ].age));printf("sex:");        scanf("%s",pcon->con [pcon->count ].sex);printf("tele:");        scanf("%s",pcon->con [pcon->count ].tele);printf("addr:");        scanf("%s",pcon->con [pcon->count ].addr );pcon->count++;}}int find(pCon pcon){    char name[10]={0};int i=0;printf("请输入姓名:>");scanf("%s",name);for(i=0;i<pcon->count ;i++){        if(strcmp(name,pcon->con [i].name)==0){return i;}}return -1;}void del(pCon pcon)         //删除通讯录成员{int i=0;int ret=0;if(pcon->count ==0){printf("通讯录为空\n");return;}ret=find(pcon);if(ret==-1){printf("没有找到\n");}else{for(i=ret;i<pcon->count-1;i++){pcon->con [i]=pcon->con [i+1];}        pcon->count --;printf("删除成功\n");}}void search(pCon pcon)     //查找通讯录成员{int ret=0;if(pcon->count ==0){printf("通讯录为空\n");return;}ret=find(pcon);if(ret==-1){printf("没有找到\n");}else{printf("%5s\t%s\t%5s\t%5s\t%5s\n","name","age","sex","tele","addr");printf("%5s\t%d\t%5s\t%5s\t%5s\n",pcon->con [ret ].name,pcon->con [ret ].age,pcon->con [ret].sex,pcon->con [ret ].tele,pcon->con [ret ].addr);}}void mod(pCon pcon)      //修改通讯录成员信息{int ret=0;if(pcon->count ==0){printf("通讯录为空\n");return;}    ret=find(pcon);if(ret==-1){printf("没有找到\n");}else{printf("name:");scanf("%s",&(pcon->con [ret].name) );printf("age:");        scanf("%d",&(pcon->con [ret ].age));printf("sex:");        scanf("%s",&(pcon->con [ret].sex) );printf("tele:");        scanf("%s",&(pcon->con [ret].tele) );printf("addr:");        scanf("%s",&(pcon->con [ret].addr) );}}void sort(pCon pcon)     //从小到大排序{int flag=0;int i=0;int j=0;for(i=0;i<pcon->count -1;i++){flag=1;for(j=0;j<pcon->count -i-1;j++){if(strcmp(pcon->con [j].name ,pcon->con [j+1].name )>0){Peo tmp=pcon->con [j];pcon->con [j]=pcon->con [j+1];pcon->con [j+1]=tmp;flag=0;}}if(flag==1)break;} //show(pcon);printf("排序完成\n");}void Exit(pCon pcon)         //退出{exit(0);}void show(pCon pcon)        //打印通讯录成员信息{int i=0;printf("%5s\t%s\t%5s\t%5s\t%5s\n","name","age","sex","tele","addr");//printf("%d\n",pcon->count );for(i=0;i<pcon->count ;i++){printf("%5s\t%d\t%5s\t%5s\t%5s\n",pcon->con [i ].name,pcon->con [i ].age,pcon->con [i ].sex,pcon->con [i ].tele,pcon->con [i].addr);}}
测试源文件test.c

#include "concate.h"enum op{EXIT,    //从0开始ADD,DEL,SEARCH,MOD,SHOW,SORT};   //增加代码的可读性void menu(){printf("****1.add 2.del 3.search 4.mod 5.show 6.sort 0.exit****\n");}int main(){Con my_con;int input=1;Initcon(&my_con);while(input){menu();printf("请输入:>");scanf("%d",&input);switch(input){case ADD:{    add(&my_con);    break;}case DEL:{    del(&my_con);    break;}case SEARCH:{    search(&my_con);    break;}case MOD:{    mod(&my_con);    break;}case SHOW:{    show(&my_con);    break;}case SORT:{sort(&my_con);break;}case EXIT:{    Exit(&my_con);    break;}default:break;}}system("pause");return 0;}




0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 自考科目停考了怎么办 把wlan密码忘了怎么办 滕州不给报新婚怎么办 体内锁水能力差怎么办 别人说你人品差怎么办 面对没素质的人怎么办 遇到很坏的室友怎么办 餐饮员工与顾客发生矛盾怎么办 新员工老员工出现矛盾怎么办 手机移动4g网慢怎么办 碰到素质低的老公怎么办 小孩做事拖拉 没时间观念怎么办 execl表中日期加3.5怎么办 狗狗喜欢咬人怎么办 烧烤一顿吃多了怎么办 派派背包食物不足怎么办 未转变者下不了怎么办 小升初户籍与房产不一致怎么办 小孩在外地读书怎么办计生证明 泉州居住证要半年小孩读书怎么办 孩子上学有兰山户口没有房产怎么办 培训机构跑路了怎么办 报的培训班跑路怎么办 巡视组举报后会怎么办 巡视组交办不办怎么办 分手以后还要不要联系忘不了怎么办 父母穷且不上进怎么办 惹父母生气了该怎么办 小孩戒奶不吃奶粉怎么办 孩子听不进去话怎么办 异性好朋友喜欢自己亲吻自己怎么办 对方对你反感了怎么办 家长偷看孩子日记老师怎么办 儿子与父母相冲怎么办 初二孩子不争气老师打他怎么办? 孩子被老师打又怎么办 家里2个孩子打架怎么办 一年级的学生特别会顶嘴怎么办 私立学校的学生顶嘴老师该怎么办 孩子做错事家长不道歉怎么办 孩孑语文成绩差怎么办