?? 通訊錄.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 + -