?? txl3.c
字號:
/*同學通訊錄*/
#include <stdio.h>
#include <string.h>
struct friends/*定義數據結構*/
{
char name[20];/* 聯系地址*/
char tel[12];
char e_mail[50];/*電子郵件*/
char address[40];/* 聯系地址*/
}frd[40]; /*定義結構體數組*/
int r_cnt=0;
int add_cnt=0 ;
int add();
void cha_zhao();
void list();
void modify();
int del ();
void exit_asd ();
void save();
void list();
void load();
int find(struct friends frd[],char tel[]);
main()
{
load();
clrscr();
for(;;)
{
switch(menu_book())
{
case 1 : add() ; break;
case 2 : cha_zhao() ; break;
case 3 : modify() ; break;
case 4 : del() ; break;
case 5 : exit_asd(); break;
case 6 : list () ; break;
}
}
}
int menu_book()
{
int c;
printf("*******************MENU******************\n");
printf("* *\n");
printf("* *\n");
printf("* 1.add *\n");
printf("* *\n");
printf("* 2.cha_zhao *\n");
printf("* *\n");
printf("* 3.modify *\n");
printf("* *\n");
printf("* 4.delete *\n");
printf("* *\n");
printf("* 5.exit *\n");
printf("* *\n");
printf("* 6.list *\n");
printf("* *\n");
printf("* *\n");
printf("*****************************************\n");
do
{printf("\n\n enter you choice(0-6):");
scanf("%d",&c); }
while(c<0||c>6);
return c;
}
void load()/*加載*/
{
FILE *fp;
int i=0;
r_cnt=0;
if((fp=fopen("FF.txt","rb"))!=NULL)
{
while(!feof(fp))
{
fread(&frd[i],sizeof(struct friends),1,fp);
r_cnt++;
printf("%s %s %s %s\n",frd[i].name,frd[i].tel,frd[i].e_mail,frd[i].address);
i++;
}
}
else
puts("open error!");
fclose(fp);
}
void save()/*保存*/
{
FILE *fp;
int i;
if((fp=fopen("FF.txt","a+"))==NULL)
{
puts("open file error!");
exit(0);
}
for(i=0;i<add_cnt;i++)
{
if(fwrite(&frd[i],sizeof(struct friends ),1,fp)==0)
puts("write error!");
}
fclose(fp);
}
void cha_zhao()/*查找*/
{ int i;
char zhi[20];
printf("please input tel") ;
printf("enter name or tel to find:\n");
scanf("%s",zhi);
for(i=0;i<r_cnt;i++)
{
if(strlen(frd[i].name )==0||strlen(frd[i].tel)==0)
printf("UNLL");
if(strcmp(frd[i].name,zhi )==0 ||strcmp(frd[i].tel,zhi)==0)
{
printf("%s %s %s\n", frd[i].name,frd[i].address,frd[i].tel);
作者: C語言通訊錄 2006-6-30 19:45 回復此發言
--------------------------------------------------------------------------------
2 C語言通訊錄源程序
break;
}
printf("no message");
}
getch();
}
void list()/*瀏覽*/
{
int i;
for(i=0;i<r_cnt;i++)
printf("%s %s %s %s\n",frd[i].name,frd[i].tel,frd[i].e_mail,frd[i].address);
getch();
}
int find( struct friends frd[],char tel[12])/*為刪除而定的查找*/
{
int i,p;
for(i=0;i<r_cnt;i++)
{
if(strcmp(frd[i].tel,tel)==0)
{
p=i;
break;
}
else
p=-1;
break;
}
return p;
}
void modify()/*修改*/
{
int p;
char name[20];
char e_mail[50];
char address[40];
char tel[12];
printf("please input tel:\n");
scanf("%s",tel);
p=find(frd,tel);
if(p>-1)
{
printf("tel don't modify!\n");
printf("please new :name,e_mail,address:\n");
scanf("%s%s%s",frd[p].name,frd[p].e_mail,frd[p].address);
}
getch();
}
void exit_asd()
{
int num;
save(frd);
printf("exit? ,contine__1 , exit__0\n");
scanf("%d",&num);
if(num==0)
{
exit(0);
}
getch();
}
int add()/*增加*/
{
int i=0;
char ch[20];
while(1)
{
if(strcmp(ch,"#")==0)
break;
printf("input name:\n");
scanf("%s",frd[i].name);
printf("input tel:\n");
scanf("%s",frd[i].tel);
printf("input e_mail:\n");
scanf("%s",frd[i].e_mail);
printf("inout address:\n");
scanf("%s",frd[i].address);
printf("if you want to stop,please enter '#' or enter other keys to contine:");
scanf("%s",ch);
i++;
}
clrscr();
add_cnt=i;
printf("%d\n",add_cnt);
printf("name\t\ttel\t\te_mail\t\t\taddress\n");
printf("********************************************************************\n");
for(i=0;i<add_cnt;i++)
printf("%s\t\t%s\t\t%s\t\t%s",frd[i].name,frd[i].tel,frd[i].e_mail,frd[i].address);
printf("\n\nplease press any key tothe menu:\n");
getch();
return add_cnt;
}
int del()/*刪除*/
{
char s[20];
int ch=0;
int i,j;
printf("delete tel?\n");
scanf("%s",s);
i=find(frd,s);
if(i>r_cnt-1)
printf("no found!\n");
else
{
printf("\n\n*******************delete******************************************\n");
printf("name tel e_mail address\n");
printf("------------------------------------------------\n");
printf("%s %s %s %s\n",frd[i].name,frd[i].tel,frd[i].e_mail,frd[i].address);
printf("************************************************************************\n\n");
printf("Are you sure delete it(1/0)?\n");
scanf("%d",&ch);
if(ch==1)
{
for(j=i+1;j<r_cnt;j++)
{
strcpy(frd[j-1].name,frd[j].name);
strcpy(frd[j-1].tel,frd[j].tel);
strcpy(frd[j-1].e_mail,frd[j].e_mail);
strcpy(frd[j-1].address,frd[j].address);
}
r_cnt--;
}
}
return r_cnt;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -