编程开发中如何实现文件版本通讯录
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下编程开发中如何实现文件版本通讯录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!源码:"Contact.h
千家信息网最后更新 2026年11月02日编程开发中如何实现文件版本通讯录
小编给大家分享一下编程开发中如何实现文件版本通讯录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
源码:
"Contact.h"
#ifndef __CONTACT_H__#define __CONTACT_H__#include#include #include enum OP{ EXIT, ADD, DELE, SER, MODIFY, DISPLAY, CLEAR, SORT };#define NAME_MAX 20#define SEX_MAX 5#define TELE_MAX 12#define ADDR_MAX 25#define MAX 1000#define DEFAULT 2 //通讯录首次的默认大小#define MAX_INIT 2typedef struct PerInfo{char name[NAME_MAX];int age;char sex[SEX_MAX];char tele[TELE_MAX];char addr[ADDR_MAX];}PeoInfo;typedef struct Contact{PeoInfo *data;int size;int i;int temp;int capacity;}Contact,*Pcon;void init(Pcon pcon);void _add(Pcon pcon);void _display(Pcon pcon);void _del(Pcon pcon);void _search(Pcon pcon);void _modify(Pcon pcon);void _sort(Pcon pcon);void _clear(Pcon pcon);void _destory(Pcon pcon);void _save(Pcon pcon); void _load(Pcon pcon); #endif //__CONTACT_H__
"Contact.c"
#include "Contact.h"void init(Pcon pcon){pcon->size = 0;pcon->capacity = DEFAULT; pcon->data=(PeoInfo *)malloc(MAX_INIT*sizeof(PeoInfo)); if(pcon->data == NULL) { printf("out of menory"); exit(EXIT_FAILURE); } memset(pcon->data,0,pcon->capacity*sizeof(PeoInfo)); _load(pcon); }void _rise(Pcon pcon) //增大容量 { PeoInfo *temp = (PeoInfo *)realloc(pcon->data,(pcon->capacity+MAX_INIT)*sizeof(PeoInfo)); if(temp == NULL) { printf("out of memory!\n"); exit(0); } else pcon->data = temp; }void _dela(Pcon pcon) //减小容量 { PeoInfo *temp = (PeoInfo *)realloc(pcon->data,(pcon->capacity-MAX_INIT)*sizeof(PeoInfo)); if(temp == NULL) { printf("电话本已空!\n"); return ; } else pcon->data = temp; } void _destory(Pcon pcon) { if(pcon->data != NULL) { free(pcon->data); pcon->data = NULL; } } void _add(Pcon pcon){ PeoInfo *temp = NULL; if(pcon->size == pcon->capacity) { _rise(pcon); } printf("请输入名字:>");scanf("%s",pcon->data[pcon->size].name);printf("请输入年龄:>");scanf("%d",&(pcon->data[pcon->size].age));printf("请输入性别:>");scanf("%s",pcon->data[pcon->size].sex);printf("请输入电话:>");scanf("%s",pcon->data[pcon->size].tele);printf("请输入地址:>");scanf("%s",pcon->data[pcon->size].addr);pcon->size++;printf("添加成功\n");}void _display(Pcon pcon){int i = 0;printf("%9s\t%3s\t%4s\ts\ts\n","name","age","sex","tele","addr");for(i = 0;isize;i++){printf("%9s\t%3d\t%4s\ts\ts\n",pcon->data[i].name,pcon->data[i].age,pcon->data[i].sex,pcon->data[i].tele,pcon->data[i].addr);}}static int find(Pcon pcon, char *name){int i = 0;for(i = 0;isize; i++){if(strcmp(pcon->data[i].name,name) == 0){return i;}}return -1;}void _del(Pcon pcon){int pos = 0;int index = 0;char name[NAME_MAX];if(pcon->size == 0){printf("电话本空\n");return;}printf("请输入要删除人的名字:>");scanf("%s",name);pos = find(pcon, name);if(pos == -1){printf("找不到要删除的人\n");return;}//for(index = pos; index < pcon->size; index++){pcon->data[index] = pcon->data[index+1];}pcon->size--;printf("删除成功\n");_dela(pcon);}void _search(Pcon pcon){char name[NAME_MAX] = {0};int pos = 0;printf("请输入要查找人的名字:>");scanf("%s",name);pos = find(pcon, name);if(pos == -1){printf("指定联系人不存在\n");return;}else{printf("%9s\t%3s\t%4s\ts\ts\n","name","age","sex","tele","addr");printf("%9s\t%3d\t%4s\ts\ts\n",pcon->data[pos].name,pcon->data[pos].age,pcon->data[pos].sex,pcon->data[pos].tele,pcon->data[pos].addr);}}void _modify(Pcon pcon){char name[NAME_MAX] = {0};int pos = 0;printf("请输入要修改人的名字:>");scanf("%s",name);pos = find(pcon, name);if(pos == -1){printf("指定联系人不存在\n");return;}else{printf("请输入名字:>");scanf("%s",pcon->data[pos].name);printf("请输入年龄:>");scanf("%d",&(pcon->data[pos].age));printf("请输入性别:>");scanf("%s",pcon->data[pos].sex);printf("请输入电话:>");scanf("%s",pcon->data[pos].tele);printf("请输入地址:>");scanf("%s",pcon->data[pos].addr);}}void _sort(Pcon pcon){int i = 0;int j = 0;PeoInfo temp = {0};for(i = 0;isize-1; i++)//控制排序趟数{for(j = 0; jsize-1-i; j++){if(strcmp(pcon->data[j].name,pcon->data[j+1].name) > 0){temp = pcon->data[j];pcon->data[j] = pcon->data[j+1];pcon->data[j+1] = temp;}}}}void _clear(Pcon pcon){pcon->size = 0;}void _save(Pcon pcon) //写入文件 { int i = 0; FILE *pfWrite = fopen("contact.txt","w"); //打开一个文件 if(pfWrite == NULL) { perror("open file for write"); exit(0); } else { for(i=0; isize; i++) { fwrite(&(pcon->data[i]),sizeof(PeoInfo),1,pfWrite); } fclose(pfWrite); } } void _load(Pcon pcon) //加载文件内容 { int i = 0; PeoInfo temp = {0}; FILE *pfRead = fopen("contact.txt","r"); if(pfRead == NULL) { perror("open file for read"); exit(0); } while(fread(&temp,sizeof(PeoInfo),1,pfRead)) { _rise(pcon); pcon->data[i] = temp; i++; pcon->size++; } } "test.c"
#include "Contact.h"void menu(){printf("***************************\n");printf("********* 1.add ***********\n");printf("********* 2.del **********\n");printf("********* 3.search ********\n");printf("********* 4.modify ********\n");printf("********* 5.display *******\n");printf("********* 6.clear *********\n");printf("********* 7.sort **********\n");printf("********* 0.exit **********\n");printf("***************************\n");}int main(){int input = 1;Contact pcon;init(&pcon);while(input){menu();printf("请选择要操作的数字:");scanf("%d",&input);printf("\n");{switch(input){case ADD:_add(&pcon);break;case DELE:_del(&pcon);break;case SER:_search(&pcon);break;case MODIFY:_modify(&pcon);break;case DISPLAY:_display(&pcon);break;case CLEAR:_clear(&pcon);break;case SORT:_sort(&pcon);break;case EXIT:_save(&pcon);_destory(&pcon);break;default:printf("无效选择!");break;}}}system("pause");return 0;}以上是"编程开发中如何实现文件版本通讯录"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
输入
文件
名字
电话
通讯
通讯录
内容
篇文章
版本
开发
编程
成功
地址
容量
年龄
性别
电话本
联系人
联系
选择
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网是第几次科技革命的成果
互联网巨头反垄断金融科技
港股互联网科技股
没上市的科技互联网公司
互联网科技作文
猫创互联网科技
中国互联网有什么科技含量
承德科技产业互联网发展
茂名市互联网科技产业园
湖南一路畅行互联网科技
互联网科技大奖都有哪些公司
互联网金融科技展
民营互联网公司国防科技
内蒙古九一互联网科技
宁波跨境商互联网科技有限公司
互联网科技接地气
北京互联网科技类企业分布
山东蛋芒互联网科技有限公司
10位科技互联网大佬
北京瑞云互联网科技有限公司
互联网的科技创新
善班互联网科技
互联网科技宣传片
人人互联网科技是培训
富国互联网科技创新基金
中国的互联网科技企业的崛起
宁夏众和广鑫互联网科技有限公司
智腾互联网科技有限公司
互联网科技大奖都有哪些公司
互联网领先科技活动