通讯录(静态版本)
来源:互联网 发布:淘宝企业店入驻 编辑:程序博客网 时间: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
- 通讯录(静态版本)
- 通讯录--静态版本
- 通讯录静态版本
- 通讯录(动态版本)
- 通讯录(文件版本)
- 通讯录(文件版本)
- 通讯录(静态版)一
- C++通讯录(基础版本)
- 静态通讯录、动态通讯录
- 静态通讯录
- 静态通讯录
- 通讯录.静态
- 静态通讯录
- 实现动态版本通讯录(在简易通讯录的基础上)
- 模拟实现通讯录(静态方法)
- 链表+文件版本通讯录(源代码)
- 通讯录-静态实现
- 通讯录的静态实现
- Android 开发中颜色资源使用详细介绍
- tomcat,web.xml配置异常页面跳转与拦截器问题
- 文章标题
- 每天一个linux命令(14):head 命令
- ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'test'
- 通讯录(静态版本)
- Activity的启动模式解析
- 使用UpdateLayeredWindow有概率出现317错误解决方法
- linux命令笔记
- 设计模式之行为型模式
- Android异常--bitmapUtils加载图片不显示
- mybatis的xml没有提示
- phpmailer使用美橙互联企邮发送邮件
- Python网络数据采集5(译者:哈雷)