实现一个通讯录并将信息保存到文本中
来源:互联网 发布:人工智能的利弊 作文 编辑:程序博客网 时间:2024/05/17 07:06
contact.h
#ifndef __CONTACT_H__#define __CONTACT_H__#include <stdlib.h>#include <stdio.h>#define NAME_LEN 20#define SEX_LEN 5#define TELE_LEN 12#define ADDR_LEN 20#define MAX_PEO 1000typedef struct Peo{ char name[NAME_LEN]; int age; char sex[SEX_LEN]; char tele[TELE_LEN]; char addr[ADDR_LEN];}PEO,*PPEO;typedef struct Contact{ PEO dhb[MAX_PEO];//存储人的信息 int count;//记录有效个数}PCON,*Pcon;void add_peo(Pcon pcon);void del_peo(Pcon pcon);void search(Pcon pcon);void modify(Pcon pcon);void show(Pcon pcon);void clear(Pcon pcon);void init(Pcon pcon);void save(Pcon pcon);#endif
text.c<pre name="code" class="cpp">#include <stdio.h>#include "contact.h"void print_menu(){ printf("*************************************\n"); printf("*****1:add 2:del******\n"); printf("*****3:search 4:modify***\n"); printf("*****5:show 6:clear****\n"); printf("************* 7:save ****************\n");printf("*************************************\n");}int main(){ PCON con; int input = 1; con.count = 0;init(&con); while(input) { print_menu(); printf("请选择操作:\n"); scanf("%d",&input); switch(input) { case 1: add_peo(&con); break; case 2: del_peo(&con); break; case 3: search(&con); break; case 4: modify(&con); break; case 5: show(&con); break; case 6: clear(&con); break;case 7:save(&con);break; default: break; } } return 0;}
main.c<pre name="code" class="cpp">#include<stdio.h>#include<string.h>#include"contact.h"int find(char *p, Pcon pcon){ int i = 0; for(;i < pcon->count; i++) { if(strcmp(pcon->dhb[i].name,p) == 0) return i; } return -1;}void add_peo(Pcon pcon){ if(pcon->count < MAX_PEO) { printf("请输入姓名、年龄、性别、电话、住址:\n"); scanf("%s",pcon->dhb [pcon->count].name); scanf("%d",&pcon->dhb [pcon->count].age); scanf("%s",pcon->dhb [pcon->count].sex); scanf("%s",pcon->dhb [pcon->count].tele); scanf("%s",pcon->dhb [pcon->count].addr); } pcon->count ++; printf("存储成功\n");}void del_peo(Pcon pcon){ int i = 0; int ret = 0; char name[10]; printf("请输入要删除的名字:\n"); scanf("%s",name); ret = find(name,pcon); if(ret == -1) { printf("无此联系人\n"); } else for(i = ret; i < pcon->count-1; i++) { pcon->dhb[i] = pcon->dhb[i + 1]; } pcon->count--; printf("删除成功\n");}void search(Pcon pcon){ int i = 0; int ret = 0; char name[10]; printf("请输入要查找人的名字:\n"); scanf("%s",name); ret = find(name,pcon); if(ret == -1) { printf("无此联系人\n"); } else { printf("姓名:%10s\t",pcon->dhb[i].name); printf("年龄:%10d\t",pcon->dhb[i].age); printf("性别:%10s\t",pcon->dhb[i].sex); printf("电话:%10s\t",pcon->dhb[i].tele); printf("住址:%10s\t",pcon->dhb[i].addr); printf("\n"); }}void modify(Pcon pcon){ int i = 0; int ret = 0; char name[10]; printf("请输入要查找人的名字:\n"); scanf("%s",name); ret = find(name,pcon); printf("请输入姓名、年龄、性别、电话、住址:\n"); scanf("%s",pcon->dhb [i].name); scanf("%d",&pcon->dhb [i].age); scanf("%s",pcon->dhb [i].sex); scanf("%s",pcon->dhb [i].tele); scanf("%s",pcon->dhb [i].addr); printf("修改成功\n");}void show(Pcon pcon){ int i = 0; for(; i <pcon->count; i++) { printf("姓名:%10s\t",pcon->dhb[i].name); printf("年龄:%10d\t",pcon->dhb[i].age); printf("性别:%10s\t",pcon->dhb[i].sex); printf("电话:%10s\t",pcon->dhb[i].tele); printf("住址:%10s\t",pcon->dhb[i].addr); printf("\n"); }}void clear(Pcon pcon){ pcon->count = 0;}void init(Pcon pcon){int i = 0;FILE *pfread = fopen("contact.txt","r");if(pfread == NULL){perror("contact.txt");exit(EXIT_FAILURE);}while(fread(&(pcon->dhb[i]),sizeof(PEO),1,pfread)==1){i++;}pcon->count = i;fclose(pfread);}void save(Pcon pcon){int i = 0;FILE *pfwrite = fopen("contact.txt","w");if(pfwrite == NULL){perror("contact.txt");exit(EXIT_FAILURE);}for(i= 0;i<pcon->count;i++){fwrite(&(pcon->dhb[i]),sizeof(PEO),1,pfwrite);}fclose(pfwrite);}
0 0
- 实现一个通讯录并将信息保存到文本中
- 实现一个通讯录并将信息保存到文本中
- 用链表实现通讯录,并保存到文件
- Intent将在APP中获取到的联系人信息保存到通讯录
- android将一个String保存到.txt文本中
- 将一个文本里的信息,读入到 list 中
- Android 保存信息到系统通讯录的实现
- Python将文本去空格并保存到txt文件中
- 读取一个文件夹下所有的txt文件,并保存到一个txt文本中
- 将man出来的信息保存到文本
- Java如何将字符串信息保存到文本文档
- 将学生信息保存到文件中,并读出文件内容
- Javaweb中的文件批量上传,并将文件路径等信息保存到数据库中
- 实现访问一个网站并将指定的一个页面保存到本地
- ASP 中JS如何将ACCESS数据库的一个文本字段保存到变量里面?
- 保存一个信息到person中
- python pickle模块使用-将内存数据保存到文本中以及从文本中直接读取信息到内存中
- iOS 手机通讯录,将电话保存到本机通讯录
- OpenCV学习笔记04--图片和视频的保存
- JSEE总结(一)——JNDI
- HDU 1690 Bus System (Floyed求最短路)
- ViewUtils模块的使用
- 使用 FileSystem JAVA API 对 HDFS 进行读、写、删除等操作
- 实现一个通讯录并将信息保存到文本中
- CSU 文本计算器
- 学习笔记一:TCP与UDP通信协议
- CreateFile 打开 I/O device
- 跟我学Java反射——三步曲
- 非UI线程加载图片
- FileSystem JAVA API 对 HDFS 进行读、写、删除等操作
- 的刚恢复规划风格和风格和符合规范化
- 【C++总结】函数模板