电子通讯录c语言程序,(c语言VC版)电子通讯录

/*

************************************电子通讯录****************************************

*/

//

VC版本.转载请保持作者所有权

//

/*

***********************************作者: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

"

);

fflush(stdin);

int

choise;

char

a;

do

{

system(

"

cls

"

);

printf(

"

********************************************************************************

"

);

printf(

"

欢迎使用电子通讯录

"

);

printf(

"

********************************************************************************

"

);

printf(

"

"

);

printf(

"

1:创建并保存

"

);

printf(

"

2:删除记录

"

);

printf(

"

3:插入并保存

"

);

printf(

"

4:查询

"

);

printf(

"

5:输出

"

);

printf(

"

6:修改

"

);

printf(

"

7:退出

"

);

printf(

"

输入你的选择:

"

);

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(

"

输入错误,按空格重新来过

"

);

if

((a

=

getche())

==

'

'

)

{

Zhu_d();

}

else

{

system(

"

cls

"

);

printf(

"

还是输入错误,按空格重新来过,再次输入错误程序将退出

"

);

if

((a

=

getche())

==

'

'

)

{

Zhu_d();

}

}

}

}

while

(choise

<

7

&&

choise

>

0

);

}

void

input()

{

system(

"

cls

"

);

fflush(stdin);

char

key[

4

];

int

i

=

1

;

person  numbone;

//

char name[20]="姓名",tel[20]="电话号码",Address[50]="地址";

//

printf(" 输入地址通讯薄的名字: ");

//

gets(filename);

if

((fp

=

fopen(filename,

"

w

"

))

==

NULL)

{

printf(

"

不能打开!

"

);

exit(

1

);

}

/*

*********************修改*****************************

*/

fprintf(fp,

"

%-10s%-20s%-50s

"

,

"

姓名

"

,

"

电话号码

"

,

"

地址

"

);

/*

******************************************************

*/

do

{

printf(

"

输入第%d个人的姓名:

"

,i);

fflush(stdin);

gets(numbone.name);

printf(

"

输入第%d个人的电话号码:

"

,i);

fflush(stdin);

gets(numbone.tel);

printf(

"

输入第%d个人的地址:

"

,i);

fflush(stdin);

gets(numbone.Address);

//

fprintf(fp,"%-20s%-20s%-50s ",name,tel,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

++

;

printf(

"

输入完成

"

);

}

while

(

!

strcmpi(key,

"

yes

"

));

fclose(fp);

printf(

"

按任意键返回主界面

"

);

getch();

}

void

del()

{

system(

"

cls

"

);

fflush(stdin);

char

name[

20

];

person   del;

int

flag

=

0

;

int

m;

long

offset;

if

((fp

=

fopen(filename,

"

r+

"

))

==

NULL)

{

printf(

"

文件不存在

"

);

exit(

1

);

}

printf(

"

输入要删除的姓名:

"

);

gets(name);

puts(name);

rewind(fp);

while

(

!

feof(fp))

{

offset

=

ftell(fp);

//

fgets(del.name,strlen(name)

+

1

,fp);

//

fscanf(fp,"%s%s%s",del.name,del.tel,del.Address);

if

(strcmpi(name,del.name)

==

0

)

{

flag

=

1

;

break

;

}

}

if

(flag)

{

printf(

"

已经找到,记录为:

"

);

fseek(fp,offset,SEEK_SET);

fscanf(fp,

"

%s%s%s

"

,del.name,del.tel,del.Address);

printf(

"

姓名:%s

"

,del.name);

printf(

"

电话号码:%s

"

,del.tel);

printf(

"

地址:%s

"

,del.Address);

printf(

"

确认删除请按1,不删除请按0:

"

);

scanf(

"

%d

"

,

&

m);

if

(m)

{

fseek(fp,offset,SEEK_SET);

//

fprintf(fp,"%-90s","");

fprintf(fp,

"

%-20s%-20s%-50s

"

,

""

,

""

,

""

);

}

}

else

{

printf(

"

没找到你要删除的记录!

"

);

}

printf(

"

操作完成!

"

);

fclose(fp);

getch();

}

void

append()

{

system(

"

cls

"

);

fflush(stdin);

person one;

if

((fp

=

fopen(filename,

"

a+

"

))

==

NULL)

{

printf(

"

不能打开文件!

"

);

exit(

1

);

}

printf(

"

输入姓名:

"

);

gets(one.name);

printf(

"

输入电话号码:

"

);

gets(one.tel);

printf(

"

输入地址:

"

);

gets(one.Address);

printf(

"

操作完成

"

);

fprintf(fp,

"

%-20s%-20s%-50s

"

,one.name,one.tel,one.Address);

fclose(fp);

printf(

"

按任意键返回

"

);

getch();

}

void

search()

{

system(

"

cls

"

);

fflush(stdin);

char

Search_name[

20

];

person    find;

int

flag

=

0

;

if

((fp

=

fopen(filename,

"

r+

"

))

==

NULL)

{

printf(

"

不能打开文件

"

);

exit(

1

);

}

printf(

"

输入你要查找的姓名:

"

);

gets(Search_name);

puts(Search_name);

printf(

"

输入完成

"

);

fflush(stdin);

rewind(fp);

while

(

!

feof(fp))

{

fscanf(fp,

"

%s%s%s

"

,find.name,find.tel,find.Address);

//

printf("姓名:%-20s 电话号码:%-20s 地址:%-50s ",one.name,one.tel,one.Address);

if

(strcmpi(Search_name,find.name)

==

0

)

{

flag

=

1

;

printf(

"

flag = %d

"

,flag);

break

;

}

}

if

(flag)

{

printf(

"

你要查找的记录已经知道!

"

);

printf(

"

姓名:%-20s 电话号码:%-20s 地址:%-50s

"

,find.name,find.tel,find.Address);

}

else

{

printf(

"

没有找到你要查找的!

"

);

}

fclose(fp);

printf(

"

按任意键返回

"

);

getch();

}

void

putout()

{

system(

"

cls

"

);

fflush(stdin);

char

ch;

if

((fp

=

fopen(filename,

"

r+

"

))

==

NULL)

{

printf(

"

不能打开

"

);

exit(

1

);

}

rewind(fp);

ch

=

fgetc(fp);

while

(ch

!=

EOF)

{

putchar(ch);

ch

=

fgetc(fp);

}

printf(

"

输入完成!

"

);

printf(

"

按任意键返回

"

);

fclose(fp);

getch();

}

void

quit()

{

system(

"

cls

"

);

fflush(stdin);

exit(

0

);

}

void

modify()

{

system(

"

cls

"

);

fflush(stdin);

person amend;

person Search;

int

k,flag

=

0

;

long

offset;

if

((fp

=

fopen(filename,

"

r+

"

))

==

NULL)

{

printf(

"

can not open!

"

);

exit(

1

);

}

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(

"

姓名:%s

"

,Search.name);

printf(

"

电话号码:%s

"

,Search.tel);

printf(

"

地址:%s

"

,Search.Address);

printf(

"

确认要修改请按1,不修改请按0:

"

);

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、付费专栏及课程。

余额充值