⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 通讯录.txt

📁 这是一个简单的C语言编写的通讯录代码。简单易懂
💻 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 + -