c语言通讯录源代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include

#include

#include

#include

struct person //每个元素都是结构体类型

{

char name[15]; //结构体数组,用于存储姓名

char celephone[22];

char QQ[20];

}per[500]; //定义一个per数组,它有500个元素

int num=0;//*外部变量num为文件中的纪录数*//

FILE *fp;

void mainmenu();//*主菜单*// **模块1**

void newrecord();//新添纪录(括写入到文件)*// **模块2**

void readfromfile();//*读取文件*// **模块2.1**

void searchmenu();//*查询菜单*// **模块3**

void searchbyname();//*按姓名查询*// **模块3.1**

void searchbycelephone();//*按手机号码查询*// **模块3.2**

void searchbyqq();//*按QQ查询*// **模块3.3**

void xiugaimenu();//*修改菜单*// **模块4**

void xiugaibyname();//*按姓名查找修改*// **模块4.1** void xiugaibycelephone();//*按手机号码查找修改*// **模块4.2** void xiugaixiangmu(int a);//*查找后要修改的项目(分名字和号码)*// **模块4.3**

void deletemenu();//*删除菜单*// **模块5**

void deleteall();//*删除所有信息*// **模块5.1**

void deleteone();//*删除单个*// **模块5.2**

void deletebycelephone(); //*按手机号码删除*// **模块5.2.1**

void deletebyname();//*按姓名删除*/ **模块5.2.2**

void showall();//*输出全部信息*// **模块6**

void main()//*主函数*//

{

while (1)

{

mainmenu();

}

} //*主函数结束*//

void mainmenu()//*主菜单函数*// **模块1**

{

int a; //以下模块是主界面

printf("**********欢迎来到【通信录】**********");

printf("\n\n");

printf(" 选择1:导入信息\n");

printf(" 选择2:新建信息\n");

printf(" 选择3:查询信息\n");

printf(" 选择4:修改信息\n");

printf(" 选择5:删除个人\n");

printf(" 选择6:删除所有\n");

//printf(" 选择7:输出信息\n");

printf(" 选择0:退出系统\n\n");

printf("***************************************\n");

printf("【请选择数字0-7,其他键暂时不起作用】\n");

loop1: scanf("%d",&a);

switch (a)

{

case 1:readfromfile();break;

case 2:newrecord();break;

case 3:searchmenu();break;

case 4:xiugaimenu();break;

case 5:deletemenu();break;

case 6:deleteall();break;

case 7:showall();break;

case 0:exit(0);

default:printf("对不起!您的输入有误!请重新输入: ");getchar();goto loop1;

}

}

void readfromfile()//*读取文件*// **模块2.1**

{

int i,j,k;

if((fp=fopen("c:\\string.txt","rb"))==NULL)

{

printf("\n\t\t****************************");

printf("\n\t\t* *");

printf("\n\t\t* *");

printf("\n\t\t* 通讯录文件不存在! *");

if ((fp=fopen("per.bin","wb"))==NULL)

{

printf("\n* 建立失败! *");

printf("\n* *");

printf("\n* *");

printf("\n****************************");

exit(0);

}

else

{

printf("\n\t\t* 通讯录文件已建立! *");

printf("\n\t\t* *");

printf("\n\t\t* *");

printf("\n\t\t****************************");

printf("\n\t\t 按任意键进入主菜单");

printf("\n\t\t 请输入您的数字选择: ");

scanf("%d",&k);

return;

}

exit(0);

}

fseek(fp,0,2); //*文件位置指针移动到文件末尾*//

if (ftell(fp)>0) //*文件不为空*//

{

rewind(fp); //*文件位置指针移动到文件开始位置*//

for (num=0;!feof(fp) && fread(&per[num],sizeof(struct person),1,fp);num++);

printf("\n\t\t****************************");

printf("\n\t\t* *");

printf("\n\t\t* *");

printf("\n\t\t* 文件导入成功! *");

printf("\n\t\t* *");

printf("\n\t\t* *");

printf("\n\t\t****************************");

printf("\n\t\t 按1显示所有信息,按2回主菜单!");

printf("\t\t 请输入您的数字选择: ");

scanf("%d",&j);

if(j==1)

showall();

}

else

{

printf("\n\t\t****************************");

printf("\n\t\t* *");

printf("\n\t\t* *");

printf("\n\t\t* 文件导入成功! *");

printf("\n\t\t* 通讯录文件中无任何纪录! *");

printf("\n\t\t* *");

printf("\n\t\t* *");

相关文档
最新文档