📄 addrbook.c
字号:
struct member
{
char name[15];
char major[25];
char unit[20];
char addr[30];
char office[15];
char home[15];
char mobile[15];
char Email[50];
}mem[100];
#include <stdio.h>
#include <string.h>
#define OUT "%s%s%s%s%s%s%s%s"
printstar()
{
printf("***************************************************************\n");
}
void save()
{
int i;
FILE *fp;
if((fp=fopen("mem_list","ab"))==NULL)
{
printf("无法打开文件!\n");
return;
}
fseek(fp,0L,2);
for(i=0;i<100;i++)
if(fwrite(&mem[i],sizeof(struct member),1,fp)!=1)
printf("文件写入错误!\n");
fclose(fp);
}
void inputfun()
{
int i,num;
printf("请输入你本次操作要录入的成员人数!\n");
scanf("%d",&num);
printf("请输入成员的姓名,专业,单位,地址,办公电话,家庭电话,手机和电子邮件,用空格隔开!\n\n");
for(i=0;i<num;i++)
{
scanf(OUT,mem[i].name,mem[i].major,mem[i].unit,mem[i].addr,mem[i].office,mem[i].home,mem[i].mobile,mem[i].Email);
}
save();
}
void changefun()
{
int i,mark;
char name1[15];
FILE *fp;
fp=fopen("mem_list","rb");
for(i=0;i<100;i++)
fread(&mem[i],sizeof(struct member),1,fp);
fclose(fp);
loop: printf("请输入你想修改的成员的姓名:\n");
scanf("%s",name1);
for(i=0;i<100;i++)
{
if(strcmp(mem[i].name,name1)==0)
{
printf("请输入成员的姓名,专业,单位,地址,办公电话,家庭电话,手机和电子邮件,用空格隔开!\n\n");
scanf(OUT,mem[i].name,mem[i].major,mem[i].unit,mem[i].addr,mem[i].office,mem[i].home,mem[i].mobile,mem[i].Email);
}
}
printf("你还想继续修改成员信息吗?\n");
printf(" 1 代表 是, 2 代表 否!\n");
scanf("%d",&mark);
if(mark==1)goto loop;
save();
}
void searchname()
{
int i;
char name1[15];
FILE *fp;
fp=fopen("mem_list","rb");
for(i=0;i<100;i++)
fread(&mem[i],sizeof(struct member),1,fp);
fclose(fp);
printf("请输入你想查询的成员姓名:\n");
scanf("%s",name1);
printf("查询结果是:\n");
printf(" 姓名 专业 单位 地址 办公电话 家庭电话 手机 E-mail\n");
for(i=0;i<100;i++)
{
if(strcmp(mem[i].name,name1)==0)
printf("%s %s %s %s %s %s %s %s\n",mem[i].name,mem[i].major,mem[i].unit,mem[i].addr,mem[i].office,mem[i].home,mem[i].mobile,mem[i].Email);
}
}
void searchmajor()
{
int i;
char major1[25];
FILE *fp;
fp=fopen("mem_list","rb");
for(i=0;i<100;i++)
fread(&mem[i],sizeof(struct member),1,fp);
fclose(fp);
printf("请输入你想查询的成员专业:");
scanf("%s",major1);
printf("查询结果是:\n");
printf(" 姓名 专业 单位 地址 办公电话 家庭电话 手机 E-mail\n");
for(i=0;i<100;i++)
{
if(strcmp(mem[i].major,major1)==0)
printf("%s %s %s %s %s %s %s %s\n",mem[i].name,mem[i].major,mem[i].unit,mem[i].addr,mem[i].office,mem[i].home,mem[i].mobile,mem[i].Email);
}
}
void printfun()
{
searchmajor();
}
main()
{
int i,mark;
label: printstar();
printf("* 欢迎使用通讯录管理系统! *\n");
printf("* *\n");
printf("* 请选择你想要进行的操作: *\n");
printf("* 1. 录入成员信息: *\n");
printf("* 2. 修改成员信息,并保存修改: *\n");
printf("* 3. 按姓名查找成员信息: *\n");
printf("* 4. 按专业查找成员信息: *\n");
printf("* 5. 输入成员专业,打印其所有信息: *\n");
printf("* 6. 退出程序 *\n");
printf("* *\n");
printf("* 本系统由 刘治宇 设计制作 *\n");
printf("* 2004年4月 *\n");
printstar();
loop: scanf("%d",&i);
switch(i)
{
case 1:inputfun();break;
case 2:changefun();break;
case 3:searchname();break;
case 4:searchmajor();break;
case 5:printfun();break;
case 6:break;
default :printf("输入代码错误!\n");goto loop;
}
printf("\n");
printf("你想继续操作本系统吗?\n");
printf(" 1 代表 是,2 代表 否!\n");
scanf("%d",&mark);
if(mark==1)goto label;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -