(c语言TC版)电子通讯录

/* ***************************电子通讯录***************************************** */
                                   
/* 纯C版本,TC运行 */
/* *************************作者:CHLAWS*************************************** */
#include
< stdio.h >
#include
< stdlib.h >
#include
< conio.h >
#include
< string .h >
#define   LEN  10
typedef 
struct  {
    
char  name[ 8 ];
    
char  tel[ 17 ];
    
char  Address[ 50 ];
}person;
char  filename[ 20 ] = " telephone.dat " ;
FILE  
* fp;
void    input();
void    del();
void    append();
void    search();
void    putout();
void    Zhu_d();
void    quit();
void    modify();


void    Zhu_d()
{
    
/* system("cls"); */


    
int  choise;
    
char  a;
    
do {
        
/* system("cls");  */
        system(
" cls " );
        fflush(stdin);
        printf(
" ******************************************************************************** " );
        printf(
"                welcome use this telephone book! " );
        printf(
" ******************************************************************************** " );
        printf(
" " );
        printf(
"                        1:creat and save " );
        printf(
"                        2:delete info " );
        printf(
"                        3:insert and save " );
        printf(
"                        4:search info " );
        printf(
"                        5:putout info " );
        printf(
"                        6:amend  info " );
        printf(
"                        7:exit   system " );        
        printf(
"                   please input you choise: " );
        fflush(stdin);    
        scanf(
" %d " , & choise);
        printf(
" choise = %d " ,choise);    
        
switch (choise)
        {
        
case   1 : input();   break /* 输入并保存函数 */
        
case   2 : del();     break /* 删除函数 */
        
case   3 : append();  break /* 插入函数 */
        
case   4 : search();  break /* 查找函数 */
        
case   5 : putout();  break /* 输出函数 */             
        
case   6 : modify();  break /* 修改函数 */
        
case   7 : quit();    break /* 退出函数 */
        
default  :
            system(
" cls " );
            printf(
" input error,input blank( "   " ) to afresh do it " );
            
if ((a  =  getche())  ==   '   ' )
            {
                Zhu_d();
            }
            
else
            {
                system(
" cls " );
                printf(
" input error,you have lase chance to input blank( "   " ) to afresh do it " );
                
if ((a  =  getche())  ==   '   ' )
                {
                    Zhu_d();
                }
            }
        }        
    }
while (choise < 7   &&  choise > 0 );
}
void  input()
{

    
char  key[ 4 ];
    
int  i = 1 ;
    person  numbone;
    
if ((fp = fopen(filename, " w " ))  ==  NULL)
    {
        printf(
" can not open file! " );
        exit(
1 );
    }
    system(
" cls " );
    
/* *********************修改***************************** */
    fprintf(fp,
" %-10s%-20s%-50s " , " name " , " telephone " , " address " );
    
/* ****************************************************** */
    
do {
        printf(
" input of%d friend name: " ,i);
        fflush(stdin);
        gets(numbone.name);
        printf(
" input of%d friend telephone: " ,i);
         fflush(stdin);
        gets(numbone.tel);
        printf(
" input of%d friend address: " ,i);
        fflush(stdin);
        gets(numbone.Address);
        fprintf(fp,
" %-20s%-20s%-50s " ,numbone.name,numbone.tel,numbone.Address);
        printf(
" are you continue input data?(yes/no) " );
        fflush(stdin);
          gets(key);
        i
++ ;       
    }
while ( ! strcmpi(key, " yes " ));
    printf(
"  finish input info " );
    fclose(fp);
    printf(
" press any key to return! " );
    getch();
}
void  del()
{
    
char      name[ 20 ];
    person   del;
    
int       flag = 0 ;
    
int       m;
    
long      offset;
    
if ((fp = fopen(filename, " r+ " ))  ==  NULL)
    {
        printf(
" file can not open " );
        exit(
1 );
    }
    system(
" cls " );
    fflush(stdin);
    printf(
" input you will delete info's name: " );
    gets(name);
    
/* puts(name); */
    rewind(fp);
    
while ( ! feof(fp))
    {
        offset 
=  ftell(fp); 
        fgets(del.name,strlen(name)
+ 1 ,fp);
        
if (strcmpi(name,del.name)  ==   0 )
        {
            flag 
=   1 ;
            
break ;
        }
    }
    
if (flag)
    {
        printf(
" already find, register: " );
        fseek(fp,offset,SEEK_SET);
        fscanf(fp,
" %s%s%s " ,del.name,del.tel,del.Address);
        printf(
" name:%s " ,del.name);
        printf(
" telephone:%s " ,del.tel);
        printf(
" address:%s " ,del.Address);
        printf(
" delete press 1,no delete press 0: " );
        scanf(
" %d " , & m);    
        
if (m)
        {
            fseek(fp,offset,SEEK_SET);
            fprintf(fp,
" %-20s%-20s%-50s " , "" , "" , "" );
        }

    }
    
else
    {
            printf(
" sorry,in data was not find you will delete info! " );
    }
    printf(
" work ok! " );
    fclose(fp);
    printf(
" press any key to return " );
    getch();
}
void  append()
{

    person one;
    
if ((fp = fopen(filename, " a+ " ))  ==  NULL)
    {
        printf(
" can not open file! " );
        exit(
1 );
    }
    system(
" cls " );
    printf(
" input name: " );
    fflush(stdin);
    gets(one.name);
    printf(
" input telephone: " );
    fflush(stdin);
    gets(one.tel);
    printf(
" input address: " );
    fflush(stdin);
    gets(one.Address);
    printf(
" work ok! " );
    fprintf(fp,
" %-20s%-20s%-50s " ,one.name,one.tel,one.Address);
    fclose(fp);
    printf(
" press any key to return " );
    getch();
}
void  search()
{

    
char  Search_name[ 20 ];
    person    find;
    
int  flag  =   0 ;
    
if ((fp = fopen(filename, " r+ " ))  ==  NULL)
    {
        printf(
" can not open file " );
        exit(
1 );
    }
    system(
" cls " );
    printf(
" input you will search name: " );
    fflush(stdin);
    gets(Search_name);
    puts(Search_name);
    printf(
" input ok " );
    fflush(stdin);
    rewind(fp);
    
while ( ! feof(fp))
    {        
        fscanf(fp,
" %s%s%s " ,find.name,find.tel,find.Address);
        
if (strcmpi(Search_name,find.name)  ==   0 )
        {
            flag 
=   1 ;
            printf(
" flag = %d " ,flag);
            
break ;            
        }
    }
    
if (flag)
    {
        printf(
" alread search you input info! " );
        printf(
" name:%-20s telephone:%-20s address:%-50s " ,find.name,find.tel,find.Address);
    }
    
else
    {
        printf(
" sorry,not find you input data! " );
    }
    fclose(fp);
    printf(
" press any key to return " );
    getch();
}
void  putout()
{

    
char  ch;
    
if ((fp = fopen(filename, " r+ " ))  ==  NULL)
    {
        printf(
" can not open file " );
        exit(
1 );
    }
    system(
" cls " );
    rewind(fp);
    ch 
=  fgetc(fp);
    
while (ch  !=  EOF)
    {
        putchar(ch);
        ch 
=  fgetc(fp);
    }
    printf(
" input ok! " );
    printf(
" press any to return " );
    fclose(fp);
    getch();
}
void  quit()
{
    system(
" cls " );
    fflush(stdin);
    exit(
0 );    
}
void    modify()
{

    person amend;
    person Search;

    
int  k,flag  =   0 ;
    
long  offset;
    
if ((fp = fopen(filename, " r+ " )) == NULL)
    {
        printf(
" can not open! " );
        exit(
1 );
    }
    system(
" cls " );
    printf(
" in here you can amend data! " );
    printf(
" input will amend name,system if find it,will show! " );
    printf(
" amend name: " );
    fflush(stdin);
    gets(amend.name);
    
while ( ! feof(fp))
    {
        offset 
=  ftell(fp); 
        fgets(Search.name,strlen(amend.name)
+ 1 ,fp);
        
if (strcmpi(Search.name,amend.name)  ==   0 )
        {
            flag 
=   1 ;
            
break ;
        }
    }
    
if (flag)
    {
        printf(
" you input amend was find: " );
        fseek(fp,offset,SEEK_SET);
        fscanf(fp,
" %s%s%s " ,Search.name,Search.tel,Search.Address);
        printf(
" name:%s " ,Search.name);
        printf(
" telephone:%s " ,Search.tel);
        printf(
" address:%s " ,Search.Address);
        printf(
" delete press1,not press0: " );
        fflush(stdin);
        scanf(
" %d " , & k);
    }
    
if (k)
    {
        printf(
" input new name: " );
        fflush(stdin);
        gets(amend.name);
        printf(
" input new telephone number: " );
        fflush(stdin);
        gets(amend.tel);
        printf(
" input  new address: " );
        fflush(stdin);
        gets(amend.Address);
        fseek(fp,offset,SEEK_SET);
        fprintf(fp,
" %-20s%-20s%-50s " ,amend.name,amend.tel,amend.Address);
    }
    fclose(fp);
    printf(
" amend ok! " );
    printf(
"  press any key to return! " );
    getch();
    
return ;
    
}
void  main()
{
    Zhu_d();
    getch();    
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值