📄 通讯录.txt
字号:
#define NULL 0
#include<stdio.h>
#include<malloc.h>
#include<math.h>
#define LEN sizeof(struct WORKER)
#include<conio.h>
#include<string.h>
#include<graphics.h>
#include<dos.h>
struct person
{ char name[8];
char tel[15];
char addr[50];
};
char filename[20];
FILE *fp;
void creat1();
void output();
void search1();
void append();
void modify();
void delete();
main()
{
int m;
textcolor(6);
cprintf("*******************************************************************************");
printf("\n");
textcolor(10);
cprintf("***********************欢迎进入此通讯簿管理系统********************************");
printf("\n");
textcolor(6);
cprintf("*******************************************************************************");
printf("\n");
printf("\n");
creat1();
while(1)
{
clrscr();
textcolor(6);
cprintf("*******************************************************************************");
printf("\n");
textcolor(10);
cprintf("***********************欢迎进入此通讯簿管理系统********************************");
printf("\n");
textcolor(6);
cprintf("*******************************************************************************");
printf("\n");
printf("\n");
cprintf("\n添加,请按1");
printf("\n");
textcolor(1);
cprintf("\n查找,请按2");
printf("\n");
textcolor(2);
cprintf("\n修改,请按3");
printf("\n");
textcolor(3);
cprintf("\n删除,请按4");
printf("\n");
textcolor(4);
cprintf("\n输出,请按5");
printf("\n");
textcolor(5);
cprintf("\n退出,请按0\n");
printf("\n");
scanf(">d",&amt;m);
if(m>=0&amt;&amt;m<=5)
{
switch(m)
{
case 1: append(); break;
case 2: search1(); break;
case 3: modify(); break;
case 4: delete(); break;
case 5: output(); break;
case 0: main();
}
cprintf("\n\n操作完毕,请再次选择!");
printf("\n");
getch();
clrscr();
}
else cprintf("\n\n选择错误,请再次选择!");
printf("\n");
}
}
void creat1()
{
struct person one;
long s1;
textcolor(12);
cprintf("\n 请输入通讯簿名:");
scanf(">s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
cprintf("\n不能建立通讯簿!");
main();
}
fprintf(fp," >-10s>-20s>-50s\n","姓名","电话号码","住址");
textcolor(13);
cprintf("\n请输入姓名、电话号码及住址(以0结束)");
printf("\n");
scanf(">s",one.name);
while(strcmp(one.name,"0"))
{
scanf(">s>s",one.tel,one.addr);
fprintf(fp,">-10s>-20s>-50s\n",one.name,one.tel,one.addr);
scanf(">s",one.name);
}
fclose(fp);
}
void output()
{
struct person one;
if((fp=fopen(filename,"r"))==NULL)
{
printf("\n不能打开通讯簿!");
main();
}
clrscr();
textcolor(5);
cprintf("******************************************************************************");
printf("\n") ;
textcolor(4);
cprintf("*******************************通讯簿*****************************************");
printf("\n");
textcolor(5);
cprintf("******************************************************************************");
printf("\n") ;
while(!feof(fp))
{
fscanf(fp,">s>s>s\n",one.name,one.tel,one.addr);
cprintf(">-10s>-20s>-50s",one.name,one.tel,one.addr);
}
fclose(fp);
}
void append()
{
struct person one;
if((fp=fopen(filename,"a"))==NULL)
{
printf("\n不能打开通讯簿!");
main();
}
printf("\n请输入添加的姓名、电话号码及住址\n");
scanf(">s>s>s",one.name,one.tel,one.addr);
fprintf(fp,">-10s>-20s>-50s\n",one.name,one.tel,one.addr);
fclose(fp);
}
void search1()
{
int k=0;
char namekey[8];
struct person one;
printf("\n请输入姓名:");
scanf(">s",namekey);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("\n不能打开通讯簿!");
main();
}
while(!feof(fp))
{
fscanf(fp,">s>s>s\n",one.name,one.tel,one.addr);
if(!strcmp(namekey,one.name))
{
textcolor(6);
cprintf("\n\n已查到,记录为:");
cprintf(">10s>10s>10s\n",one.name,one.tel,one.addr);
k=1;
}
}
if(!k)cprintf("\n\n对不起,通讯簿中没有此人的记录。");
fclose(fp);
}
void modify()
{
int m,k=0;
long offset;
char namekey[8];
struct person one;
cprintf("\n请输入姓名:");
scanf(">s",namekey);
if((fp=fopen(filename,"r+"))==NULL)
{
cprintf("\n不能打开通讯簿!");
main();
}
while(!feof(fp))
{
offset=ftell(fp);
fscanf(fp,">s>s>s\n",one.name,one.tel,one.addr);
if(!strcmp(namekey,one.name))
{
k=1;
break;
}
}
if(k)
{
cprintf("\n已查到,记录为:");
cprintf("\n>-10s>-18s>-50s",one.name,one.tel,one.addr);
printf("\n");
textcolor(5);
cprintf("\n请输入新姓名、电话号码及住址:");
printf("\n");
scanf(">s>s>s",one.name,one.tel,one.addr);
fseek(fp,offset,SEEK_SET);
printf(">ld",ftell(fp));
fprintf(fp,">-10s>-20s>-50s\n",one.name,one.tel,one.addr);
}
else printf("\n对不起,通讯簿中没有此人的记录。");
fclose(fp);
}
void delete()
{
int m,k=0,flag;
long offset1,offset2;
char namekey[8], valid[4];
struct person one;
printf("\n请输入姓名:");
scanf(">s",namekey);
if((fp=fopen(filename,"r+"))==NULL)
{
printf("\n不能打开通讯簿!");
main();
}
while(!feof(fp))
{
offset1=ftell(fp);
fscanf(fp,">s>s>s\n",one.name,one.tel,one.addr);
if(!strcmp(namekey,one.name))
{
k=1;
break;
}
}
if(k)
{
cprintf("\n已查到,记录为");
cprintf("\n>-10s>-18s>-50s",one.name,one.tel,one.addr);
textcolor(1);
cprintf("\n确实要删除,按1;不删除,按0:");
scanf(">d",&amt;m);
if(m)
{
fseek(fp,offset1,SEEK_SET);
fprintf(fp,">-10s>-20s>-50s\n","","","");
}
}
else cprintf("\n对不起,通讯簿中没有此人的记录。");
fclose(fp);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -