通讯录(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
原创粉丝点击