#include "stdio.h"
#include "string.h"
#include "malloc.h"
#include "stdlib.h"
# define FORMAT "%s\t%s\t%s\t%s\t%s\t%s\t"
/**********结构体定义**************/
struct person
{
int num;
int n;
char name[20];
int hphone[20];
int mphone[20];
char address[50];
char group[20];
char email[50];
}person[800];
void add()
{
FILE *fp;
int a;
char b;
printf("请输入需要保存的姓名:\n");scanf("%s",person[n].name);
printf("请输入需要保存的住宅电话:\n");scanf("%s",person[n].hphone);
printf("请输入需要保存的手机号码:\n");scanf("%s",person[n].mphone);
printf("请输入需要保存的家庭地址活工作单位:\n");scanf("%s",person[n].address);
printf("请给保存号码分组:\n ");printf("1: 朋友\t2: 家人\t3: 同事\t4: 同学\n");person[n].group=gets();
printf("请输入需要保存的E-MAIL:\n");scanf("%s",person[0].email);
printf("确定?Y/N");scanf("%c",b);
switch(b)
{
case Y: ;break;
case N: return;break;
default
printf("输入错误!!!");}
}
fwrite(&person[i],sizeof(struct person),1,fp);
printf("添加成功!!!\n");
n=n+1;
printf("继续进行其他操作? Y/N");
scanf("%c",b);
switch(b)
{
case Y: return;break;
case N: exit();break;
default
printf("输入错误!!!");
}
}
void del()
{ FILE *fp;
if((fp=fopen(通讯录.txt,"rb"))==NULL)
{
printf("打开文件错误!!!\n");
return;
}
printf("请输入需要删除的记录的标记)
printf("请您选择删除种类:\n 1: 通过姓名删除 2: 通过所在通讯录序号删除 3: 通过手机号删除 4: 通过住宅电话删除 5: 返回\n");
switch(a)
case 1:
{ printf("请输入待删除记录姓名: ");
scanf("%s",a[]);
for(i=0;i<=n;i++)
{
if(strcmp(a[],person[i].name)=0)
fread(person[i],sizeof(struct person),1,fp);
printf(FORMAT,person[i].num,person[i].name,person[i].mobilephone,person[i].homephone,person[i].address,person[i].email);
}
};break;
case 2: {printf("请输入待删除人序号: ");
scanf("%s",a[]);
for(i=0;i<=n;i++)
{
if(strcmp(a[],person[i].num)=0)
fread(person[i],sizeof(struct person),1,fp);
printf(FORMAT,person[i].num,person[i].name,person[i].mobilephone,person[i].homephone,person[i].address,person[i].email);
}
};break;
case 3: {printf("请输入待删除人手机号: ");
scanf("%s",a[]);
for(i=0;i<=N;i++)
{
if(strcmp(a[],person[i].mobilephone)=0)
fread(person[i],sizeof(struct person),1,fp);
printf(FORMAT,person[i].num,person[i].name,person[i].mobilephone,person[i].homephone,person[i].address,person[i].email);
}
};break;
case 4: {printf("请输入待删除人住宅电话: ");
scanf("%s",a[]);
for(i=0;i<=n;i++)
{
if(strcmp(a[],person[i].homephone)=0)
fread(person[i],sizeof(struct person),1,fp);
printf(FORMAT,person[i].num,person[i].name,person[i].mobilephone,person[i].homephone,person[i].address,person[i].email);
}
};break;
case 5: return;break;
default
printf("输入错误!!!\n");
printf("确定?Y/N");
scanf("%c",b);
switch(b)
{
case Y: ;break;
case N: return;break;
default
printf("输入错误!!!");
}
for(j=i+1;j<n;j++)
{
person[j-1]=person[j];
}
person[n]=NULL;
n=n-1;
printf("删除成功!!!\n");
printf("继续进行其他操作? Y/N");
scanf("%c",b);
switch(b)
{
case Y: return;break;
case N: exit();break;
default
printf("输入错误!!!");
}
}
void modify() /******对编辑函数定义********/
{ FILE *fp;
int a;
char b;
if((fopen("通讯录.txt","rb"))==NULL)
{
printf("打开文件错误!!!");
return;
}
printf("请输入要待修改人的序号: ");
scanf("%d",a);
fprintf();
printf("请重新输入要修改人的信息: \n");
printf("请输入需要保存的姓名:\n");
scanf("%s",person[a].name);
printf("请输入需要保存的住宅电话:\n");
scanf("%s",person[a].homephone);
printf("请输入需要保存的手机号码:\n");
scanf("%s",person[a].mobilephone);
printf("请输入需要保存的家庭地址活工作单位:\n");
scanf("%s",person[a].address);
printf("1: 朋友\2: 家人\3: 同事\4: 同学\n");
printf("请给保存号码分组:\n ");
person[a].group=gets();
printf("请输入需要保存的E-MAIL:\n");
scanf("%s",person[a].email);
printf("确定?Y/N")
scanf("%c",b);
switch(b)
{
case Y: ;break;
case N: return;break;
default
printf("输入错误!!!");
}
fwrite(&person[i],sizeof(struct person),1,fp);
printf("修改成功!!!\n");
printf("继续进行其他操作? Y/N");
scanf("%c",b);
switch(b)
{
case Y: return;break;
case N: exit();break;
default
printf("输入错误!!!");
}
}
void print() /****对查看函数定义*****/
{
struct person ;
char b;
FILE *fp;
if((fp=fopen(通讯录.txt,"rb"))==NULL)
{
printf("打开文件错误!!!\n");
return;
}
Printf("the all records are:\n");
for(i=0;i<=n;i++)
{
fprintf(&person[i],sizeof(struct person),1,fp);
}
printf("请您选择操作种类: \n");
printf("1: 添加 2: 修改 3: 查找 4: 返回 \n");
scanf("%c",b);
switch(b)
{
case 1: add();break;
case 2: modify();break;
case 3: search();break;
case 4: return;break;
default
printf("输入错误!!!");
}
}
void search() /*****对查找函数定义*********/ 需要添加一个筛选(对电话号码)查找功能
{
int i,j,a,a[20],b[i];
FILE *fp;
if((fp=fopen("通讯录.txt","rb"))==NULL)
{
printf("打开文件错误!!!\n");
return;
}
printf("please input the number that you are searching:\n");
scanf("%d",&a);
switch(a)
{
case 1:b[i]=person[i].name;break;
case 2:b[i]=person[i].homephone;break;
case 3:b[i]=person[i].mobielphone;break;
case 4:b[i]=person[i].address;break;
case 5:b[i]=person[i].group;break;
case 6:b[i]=person[i].email;break;
default
printf("输入错误!!!");break;
}
scanf("%s",a[20]);
for(i=0,j=0;i<n;i++)
{
if(a[20]=b[i])
printf("name:\t%s homephone:\t%d mobilephone:\t%d address\t%s groupname:\t%s\n",name[i],name
[i].homephone,name[i].mobilephone,name[i].address,name[i].group);j++;
if(j=0)
printf("通讯录中没有此项记录!!!");
}
}
void search() /******定义查找函数********/
{
int i,j,a,a[20],b[i];
FILE *fp;
printf("1;按姓名查找\t 2:按住宅电话查找\t 3:按手机号码查找\t 4:按地址查找\t 5:按组查找\t 6 : 按email查找\n please input the number that you know of the person:\n");
if((fp=fopen(通讯录.txt,"rb"))==NULL)
{
printf("打开文件错误!!!\n");
return;
}
printf("please input the number that you are searching:\n");
scanf("%d",&a);
switch(a)
{
case 1:b[i]=person[i].name;break;
case 2:b[i]=person[i].homephone;break;
case 3:b[i]=person[i].mobielphone;break;
case 4:b[i]=person[i].address;break;
case 5:b[i]=person[i].group;break;
case 6:b[i]=person[i].email;break;
default
printf("输入错误!!!");break;
}
scanf("%s",a[20]);
for(i=0,j=0;i<n;i++)
{
if(a[20]=b[i])
printf("name:\t%s homephone:\t%d mobilephone:\t%d address\t%s groupname:\t%s\n",name[i],name
[i].homephone,name[i].mobilephone,name[i].address,name[i].group);j++;
if(j=0)
printf("通讯录中没有此项记录!!!");
}
void out() /**********定义退出函数**********/
{
printf("谢谢使用!!!");
exit();
}
void begin()
{
int a;
printf("**************** ****************************** *********************");
printf("**************** ************************** ****************** *************");
printf("****************欢迎使用!!!希望她能给你带来方便!!!*************");
printf("************************************************************************************************");
printf("**********************************************************************************************************");
}
/******进入主函数*********/
void main()
{
int n=0;
begin();
printf("1: 添加\t2: 查看\t\n3: 编辑 \t4: 删除\t5: 退出\t");
printf("请输入您想进行的操作号:");
scanf("%d",&a);
swich(a)
{
case "1": add(struct person *head);break;
case "2": searchp();break;
case "3": modify(struct person person[]);break;
case "4": del(struct person person[]);break;
case "5": out();break;
default
printf("输入错误!!!");break;
}
}
printf("谢谢使用!!!");
exit(0);
}
[此贴子已经被作者于2006-5-19 17:16:13编辑过]