通讯录(C语言、文件保存)
来源:互联网 发布:搜客软件下载 编辑:程序博客网 时间:2024/05/18 00:14
contact.h
#ifndef __CONTACT_H__#define __CONTACT_H__#define NAME_LEN 10#define SEX_LEN 6#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 nb[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 save(Pcon pcon);void read(Pcon pcon);void init(Pcon pcon);#endif
contact.c
#include<stdio.h>#include<string.h>#include<stdlib.h>#include"contact.h"void add_peo(Pcon pcon){if (pcon->count <= MAX_PEO){printf("请输入姓名:");scanf("%s", pcon->nb[pcon->count].name);printf("请输入年龄:");scanf("%d", &pcon->nb[pcon->count].age);printf("请输入性别:");scanf("%s", pcon->nb[pcon->count].sex);printf("请输入电话:");scanf("%s", pcon->nb[pcon->count].tele);printf("请输入地址:");scanf("%s", pcon->nb[pcon->count].addr);pcon->count ++;printf("添加成功!\n");}elseprintf("电话本已满!");}void show(Pcon pcon){int i=0;printf("姓名 年龄 性别 电话 地址\n");for(i=0;i<pcon->count;i++){printf("%s%8d%8s%15s%18s\n",pcon->nb[i].name,pcon->nb[i].age,pcon->nb[i].sex,pcon->nb[i].tele,pcon->nb[i].addr);}}int find(char *c,Pcon pcon){int i=0;for(;i<pcon->count;i++){if(strcmp(c,pcon->nb[i].name)==0)return i;}return -1;}void del_peo(Pcon pcon){char nam[NAME_LEN];int index=0;printf("请输入你想删除的人:");scanf("%s",nam);index = find(nam,pcon->nb[index].name);for(;index<=pcon->count-1;index++){pcon->nb[index]=pcon->nb[index+1];}pcon->count--;printf("删除成功!\n");}void search(Pcon pcon){char nam[NAME_LEN];int i=0;printf("请输入你想查找的人:");scanf("%s",nam);i = find(nam,pcon->nb[i].name);printf("姓名 年龄 性别 电话 地址\n");printf("%s%8d%8s%15s%20s\n",pcon->nb[i].name,pcon->nb[i].age,pcon->nb[i].sex,pcon->nb[i].tele,pcon->nb[i].addr);}void modify(Pcon pcon){char nam[NAME_LEN];int i=0;printf("请输入你想修改的人:");scanf("%s",nam);i = find(nam,pcon->nb[i].name);pcon->nb[i] = pcon->nb[-1];printf("请输入姓名:");scanf("%s", pcon->nb[i].name);printf("请输入年龄:");scanf("%d", &pcon->nb[i].age);printf("请输入性别:");scanf("%s", pcon->nb[i].sex);printf("请输入电话:");scanf("%s", pcon->nb[i].tele);printf("请输入地址:");scanf("%s", pcon->nb[i].addr);printf("添加成功!\n");}void clear(Pcon pcon){pcon->count = 0;}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->nb[i]),sizeof(Peo),1,pfwrite);}fclose(pfwrite);}void read(Pcon pcon){int i = 0;FILE *pfread = fopen("contact.txt","r");if(pfread == NULL){perror("contact.txt");exit(EXIT_FAILURE);}while(fread(&(pcon->nb[i]),sizeof(Peo),1,pfread)==1){i++;}pcon->count = i;for(i= 0;i<pcon->count;i++){fwrite(&(pcon->nb[i]),sizeof(Peo),1,pfread);}fclose(pfread);}
main.c
#include <stdio.h>#include "contact.h"void print_menu(){printf("****************************\n");printf("*** 1>add 2>del ***\n");printf("*** 3>show 4>search ***\n");printf("*** 5>modify 6>clear ***\n");printf("*** 7>save 8>read ***\n");printf("****************************\n");}int main(){PCON con;int input = 1;con.count = 0;while (input){print_menu();printf("请选择:");scanf("%d", &input);//system("cls");switch (input){case 1:add_peo(&con);break;case 2:del_peo(&con);break;case 3:show(&con);break;case 4:search(&con);break;case 5:modify(&con);break;case 6:clear(&con);break;case 7:save(&con);break;case 8:;break;default:break;}}return 0;}
1 0
- 通讯录(C语言、文件保存)
- 【C语言】通讯录实现以及信息保存至文件。
- 通讯录(C语言)
- 通讯录(C语言)
- 通讯录(链表+文件)形式 C语言源代码
- 通讯录(链表+文件)形式 C语言源代码
- 【C语言】通讯录代码(一个文件下实现)
- 【C语言】实现一个通讯录(三:加入文件读写)
- 通讯录——(C语言文件版本)
- 电子通讯录(C语言)
- 文件版通讯录的c语言实现
- 【c语言小项目】通讯录-文件版
- 电子通讯录(文件保存版)
- 【C语言】C语言实现文件版通讯录
- (C语言)自写通讯录
- 通讯录系统 (C语言 控制台应用程序)
- C语言通讯录(初级版)
- 基于sqlite3的通讯录(c语言)
- 连载《一个程序员的成长历程》-19.工作7年,对做技术的一点感悟和理解
- 《程序员修炼之道–从小工到专家》笔记
- cannot resolve getAttribute(java.lang.String)问题的解决
- Android从零单排之签名打包
- HDU 2022 海选女主角
- 通讯录(C语言、文件保存)
- vim自动补全插件YouCompleteMe的安装及配置
- ExtJs4.2示例中infinite-scroll出现PageMap asked for range which it does not have错误及解决
- poj 1700 Crossing River 【贪心】
- 如何不通过maven或者ant将项目打包成可执行的Jar包
- 数据库逆向框架代码生成工具:MyBatis Generator的使用
- uml精粹——8.部署图 & 9.用例
- 周末闲着无聊分享一个自己写的带呼吸效果的android水波纹自定义view
- Spring2.5学习2.4_Spring如何装配各种集合类的属性