c语言通讯录源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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* *");