手机通讯录源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
#include
#include
#include
#define N 15 //最大容量为15
typedef struct //定义一个结构
{
char name[10];
char haoma[15];
char leibie[10];
char dizhi[20];
}ren;
//菜单
void menu() //目录
{
system("cls"); //清屏
printf(" ######### 欢迎使用手机通讯录#########\n");
printf("\n");
printf("======================================================================= =======\n");
printf(" 1.~~查询~~ \n");
printf(" 2.~~添加~~ \n");
printf(" 3.~~拨号~~ \n");
printf(" 4.~~修改~~ \n");
printf(" 5.~~删除~~ \n");
printf(" 0. ~~退出~~ \n");
printf("======================================================================= =======\n");
printf("\n");
printf(" 个人通讯录\n");
printf("\n");
printf(" ~~请选择相应的功能~~:");
}
void input() //查询
{
int help=0; //帮助指令,如果查找所找的类别中没有数据,显示
ren ry;
FILE *fp;
char leibie[10];
system("cls");
printf("\n 输入要查人员的类别: ");scanf("%s",leibie);//要查询的类别查找失败
if((fp=fopen("ren.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);} fread(&ry,sizeof(ren),1,fp);
if(!feof(fp))
{ printf(" 人员的信息如下:\n");
printf("说明:(A办公类B个人类C商务类)");
printf("\n%10s %15s %10s %20s \n","","","类别","");
while(!feof(fp))
{
if(strcmp(ry.leibie,leibie)==0) //若为该类别则输出 { help++;
printf("%10s %15s %10s %20s \n",,ry.haoma,ry.leibie,ry.dizhi);
}
fread(&ry,sizeof(ren),1,fp);
}
if(help==0){
printf(" 查找失败!!!");
}
}
// else printf(" 查找失败!!!");
fclose(fp);
getch();
}
//修改:输入人员的,查找该人员,若找到则修改该人员的信息,并显示修改前后的结果;
//添加
void search()
{
int n;
FILE *fp; //定义文件指针
ren ry,s; // 定义两个ren结构体的量 if((fp=fopen("ren.dat","ab+"))==NULL)
{printf("can't open file!\n");exit(0);}
printf("\n录入格式类别。当输入为#结束录入\n");
while(1)
{ printf("请输入:");
scanf("%s",);
if(strcmp(,"#")==0) break; //如果输入#则退出添加
printf("请输入:");
scanf("%s",ry.haoma);
printf("请输入类别(A办公类B个人类C商务类):");
scanf("%s",ry.leibie);
printf("请输入地址:");
scanf("%s",ry.dizhi);
fseek(fp,0,0); //指针定位到文件开始位置 fread(&s,sizeof(ren),1,fp);
n=0;
while(!feof(fp))
{
n++;
if(strcmp(s.haoma,ry.haoma)==0)
{printf("已经存在,不能记录.\n");break;}//遇到有相同的
if(strcmp(,)==0)
{printf("已经存在,不能记录.\n");break;}//遇到有相同的
fread(&s,sizeof(ren),1,fp);
}
// printf("%d",n);
if(n>N){
break;//存已满,不能记录.
}
if(feof(fp)) //读到自后也没有相同的
fwrite(&ry,sizeof(ren),1,fp); //将信息写入文件
}
fclose(fp); //关闭文件
getchar(); //接受一个输入
}
void modi() //拨号
{ ren ry;
FILE *fp;
char name[10];
system("cls");
printf("\n 输入要拨人员的: ");scanf("%s",name);
if((fp=fopen("ren.dat","rb"))==NULL) {printf("can't open file!\n");exit(0);}
while(!feof(fp))
{ fread(&ry,sizeof(ren),1,fp);
if(strcmp(,name)==0)
{ printf("\n\a\a\a\a\a\a %15s\a\a\a\a\a\n",ry.haoma); //输出和声音
break;
}
}