通讯录.docx
- 文档编号:8641782
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:16
- 大小:18.45KB
通讯录.docx
《通讯录.docx》由会员分享,可在线阅读,更多相关《通讯录.docx(16页珍藏版)》请在冰豆网上搜索。
通讯录
#include
#include
#include
#include
#definePprintf
#defineMIMA"225"
/*密码预设*/
#defineBT"%-12s%-15s%-12s%-10s%-20s%-3s\n"
/*标题输出格式*/
#definePBTP(BT,"姓名","电话","出生年月日","性别","住址","删")
/*记录标题输出*/
#defineJL"%-12s%-15s%-6d%-3d%-5d%-10s%-20s%-3c\n"
/*记录输出格式*/
#definePJLP(JL,p->xm,p->dh,p->cs.nian,p->cs.yue,p->cs.ri,p->xb,p->zz,p->sc)
/*记录输出*/
#defineN100
/*最多记录*/
typedefstruct
{intnian;
intyue;
intri;
}RIQI;
typedefstruct
{
charxm[15];/*姓名*/
chardh[15];/*电话*/
RIQIcs;/*出生日期*/
charxb[3];/*性别*/
charzz[20];/*住址*/
charsc;/*删除逻辑标记,*为删除*/
}JILU;/*结构体类型定义*/
intShuRu(JILU[],int);/*输入,包含添加功能*/
voidmenu();/*显示菜单并选择服务*/
voidChaXun(JILU[],int);/*查询*/
voidCha_JiLuHao(JILU[],int);/*按记录号查询*/
voidCha_Dianhua(JILU[],int);/*按电话号查询*/
voidCha_XingMing(JILU[],int);/*按姓名查询*/
voidCha_QuanBu(JILU[],int);/*查询全部*/
intShanChu(JILU[],int);/*删除*/
voidShan_JiLuHao(JILU[],int);/*按记录号删除*/
voidShan_Dianhua(JILU[],int);/*按电话号删除*/
voidShan_XingMing(JILU[],int);/*按姓名删除*/
voidShan_QuanBu(JILU[],int);/*删除全部记录*/
voidShan_HuiShouZhan(JILU[],int);/*回收站察看*/
voidShan_CheXiao(JILU[],int);/*撤销删除*/
intShan_WuLi(JILU[],int);/*清空回收站*/
voidmima(void);/*密码检验*/
voidstop(void);/*暂停*/
voidCunPan(JILUBiao1[],intk_Biao1,charfile[]);/*存盘*/
intDaoRu(JILUBiao1[],charfile[]);/*导入:
从文件file到表Biao1*/
voidJiaoHuan(JILUBiao1[],int,int);/*交换:
表Biao1内两个下标的元素*/
voidPaiXu(JILUBiao1[],intk_Biao1);/*排序:
表Biao1内k_Biao1个记录*/
voidTongJi(JILUBiao1[],intk_Biao1);/*统计:
表Biao1内k_Biao1个记录*/
voidxiugai(JILUBiao1[],intk_Biao1);/*修改模块*/
voidstop(void)
{P("\n\n按任一键继续...");getch();}
voidmima(void)/*****密码检验*****/
{
intj,n;
chara[80];
for(n=1;n<=3;n++)
{
system("CLS");
switch(n)
{case1:
P("\n\n\n\n\t\t\t密码(以Enter结束)=?
");
break;
case2:
P("\n\n\n\n\t密码错误,请重新输入密码(以Enter结束)=?
");
break;
case3:
P("\n\n\n\n\t密码错误,请最后一次输入密码(以Enter结束)=?
");
}
for(j=0;;j++)
{a[j]=getch();
if(a[j]==13){a[j]='\0';break;}
elseputchar('*');
}
if(strcmp(a,MIMA)==0)return;
}
if(n>3)exit
(1);
}
voidmain(void)/*********主函数*********/
{
mima();
menu();
}
voidmenu()//显示菜单模块//
{
charc;
JILUBiao1[N];/*表1,最多纪录N*/
intk_Biao1=0;/*表1实际记录数*/
charfile[20];/*数据库文件名,*/
P("\n\n\t\t\t数据文件名=?
");gets(file);
k_Biao1=DaoRu(Biao1,file);/*自动导入*/
for(;;)
{system("CLS");
P("\n\n\n\n\n\n");
P("\t\t\t★★★★通讯录管理系统★★★★\n");
P("\t\t\t§(225制)§\n");
P("\t\t\t§主菜单§\n");
P("\t\t\t§§\n");
P("\t\t\t§1.新建联系人§\n");
P("\t\t\t§2.添加联系人§\n");
P("\t\t\t§3.查找联系人§\n");
P("\t\t\t§4.删除§\n");
P("\t\t\t§5.存盘§\n");
P("\t\t\t§6.导入§\n");
P("\t\t\t§7.排序§\n");
P("\t\t\t§8.统计§\n");
P("\t\t\t§9.修改§\n");
P("\t\t\t§Esc.退出§\n");
P("\t\t\t§§\n");
P("\t\t\t★★★★★★★★★★★★★★★\n\n");
P("\t\t\t请选择服务种类(1-9):
\b\b");
c=getch();
if(c==0)c=getch();
if(c==27)break;/*ESC*/
switch(c)
{case'1':
k_Biao1=ShuRu(Biao1,k_Biao1);break;/*1*/
case'2':
k_Biao1=ShuRu(Biao1,k_Biao1);break;/*2*/
case'3':
ChaXun(Biao1,k_Biao1);break;/*3*/
case'4':
k_Biao1=ShanChu(Biao1,k_Biao1);break;/*4*/
case'5':
CunPan(Biao1,k_Biao1,file);break;/*5*/
case'6':
k_Biao1=DaoRu(Biao1,file);break;/*6*/
case'7':
PaiXu(Biao1,k_Biao1);break;/*7*/
case'8':
TongJi(Biao1,k_Biao1);break;/*8*/
case'9':
xiugai(Biao1,k_Biao1);break;/*9*/
}
}
puts("\n\n\t\t保存数据?
(N--不保存!
否则保存)");
c=getch();
if(c!
='n'&&c!
='N')CunPan(Biao1,k_Biao1,file);
}
intShuRu(JILUBiao1[],intk_Biao1)/*****输入模块*****/
{
JILU*p;
system("CLS");
for(p=&Biao1[k_Biao1];;k_Biao1++,p++)
{
P("姓名=?
(输入一个“#”则结束输入)");
scanf("%s",p->xm);
if(strcmp(p->xm,"#")==0)break;
P("电话=?
");
scanf("%s",p->dh);
P("出生日期(如198024)=?
");
scanf("%d%d%d",&p->cs.nian,&p->cs.yue,&p->cs.ri);
P("性别=?
");
scanf("%s",p->xb);
P("住址=?
");
scanf("%s",p->zz);
p->sc='';
}
returnk_Biao1;
}
voidChaXun(JILUBiao1[],intk_Biao1)/*****查询主控模块*****/
{charc;
for(;;)
{system("CLS");
P("\n\n\n\n\n\n");
P("\t\t\t*1.按记录号查询*\n");
P("\t\t\t*2.按电话号查询*\n");
P("\t\t\t*3.按姓名查询*\n");
P("\t\t\t*****\n");
P("\t\t\t*9.查询全部*\n");
P("\t\t\t***\n");
P("\t\t\t*Esc.返回*\n\n");
P("\n\t\t\t选择?
");
c=getch();
if(c==27)break;
switch(c)
{case'1':
Cha_JiLuHao(Biao1,k_Biao1);break;
case'2':
Cha_Dianhua(Biao1,k_Biao1);break;
case'3':
Cha_XingMing(Biao1,k_Biao1);break;
case'9':
Cha_QuanBu(Biao1,k_Biao1);break;
}
}
}
voidCha_JiLuHao(JILUBiao1[],intk_Biao1)/*按记录号查询*/
{
inti,n1,n2;
JILU*p;
system("CLS");
P("\n\n\n\n\t\t请输入起始记录流水号(首记录流水号为1):
");scanf("%d",&n1);
P("\n\n\t\t请输入结束记录流水号:
");scanf("%d",&n2);
if(n1<1)n1=0;
if(n1>=k_Biao1)return;
if(n2<1)return;
if(n2>=k_Biao1)n2=k_Biao1;
system("CLS");
PBT;
P("\n");
for(p=&Biao1[n1-1],i=n1;i<=n2;i++,p++)if(p->sc!
='*')PJL;
stop();
}
voidCha_Dianhua(JILUBiao1[],intk_Biao1)/*按电话号查询*/
{
charx[20];
JILU*p;
inti;
system("CLS");
P("\n\n\n\n\t\t请输入电话号:
");scanf("%s",x);
system("CLS");
PBT;
P("\n");
for(i=0,p=Biao1;i
='*')PJL;
stop();
}
voidCha_XingMing(JILUBiao1[],intk_Biao1)/*按姓名查询*/
{
charx[20];
JILU*p;
inti;
system("CLS");
P("\n\n\n\n\t\t请输入姓名:
");scanf("%s",x);
PBT;
P("\n");
for(i=0,p=Biao1;i
='*')PJL;
stop();
}
voidCha_QuanBu(JILUBiao1[],intk_Biao1)/*****查询全部*****/
{
inti;
JILU*p;
system("CLS");
PBT;
P("\n");
for(p=Biao1,i=0;i stop(); } intShanChu(JILUBiao1[],intk_Biao1)/*****删除主控模块*****/ { charc; for(;;) {system("CLS"); P("\n\n\n\n\n\n"); P("\t\t\t*1.按记录号删除*\n"); P("\t\t\t*2.按电话删除*\n"); P("\t\t\t*3.按姓名删除*\n"); P("\t\t\t***\n"); P("\t\t\t*4.删除全部记录*\n"); P("\t\t\t***\n"); P("\t\t\t*5.回收站察看*\n"); P("\t\t\t*6.撤销删除*\n"); P("\t\t\t*9.清空回收站*\n"); P("\t\t\t*(不可恢复! )*\n"); P("\t\t\t*Esc.返回*\n\n"); P("\n\t\t\t选择? "); c=getch(); if(c==27)break; switch(c) {case'1': Shan_JiLuHao(Biao1,k_Biao1);break; case'2': Shan_Dianhua(Biao1,k_Biao1);break; case'3': Shan_XingMing(Biao1,k_Biao1);break; case'4': Shan_QuanBu(Biao1,k_Biao1);break; case'5': Shan_HuiShouZhan(Biao1,k_Biao1);break; case'6': Shan_CheXiao(Biao1,k_Biao1);break; case'9': k_Biao1=Shan_WuLi(Biao1,k_Biao1);break; } } returnk_Biao1; } voidShan_JiLuHao(JILUBiao1[],intk_Biao1)/*按记录号逻辑删除*/ { inti,n1,n2; JILU*p; system("CLS"); P("\n\n\n\n\t\t请输入起始记录流水号: ");scanf("%d",&n1); P("\n\n\t\t请输入结束记录流水号: ");scanf("%d",&n2); if(n1<0)n1=0;if(n1>=k_Biao1)return; if(n2<0)return;if(n2>=k_Biao1)n2=k_Biao1; if(n2 system("CLS"); for(p=&Biao1[n1],i=n1;i<=n2;i++,p++)p->sc='*'; stop(); } voidShan_Dianhua(JILUBiao1[],intk_Biao1)/*按电话号逻辑删除*/ { charx[20]; JILU*p; inti; system("CLS"); P("\n\n\n\n\t\t请输入电话号: ");scanf("%s",x); system("CLS"); for(i=0,p=Biao1;i stop(); } voidShan_XingMing(JILUBiao1[],intk_Biao1) { charx[10]; JILU*p; inti; system("CLS"); P("\n\n\n\n\t\t请输入姓名: "); scanf("%s",x); system("CLS"); for(i=0,p=Biao1;i if(strcmp(p->xm,x)==0)p->sc='*'; stop(); } voidShan_QuanBu(JILUBiao1[],intk_Biao1)/*全部删除*/ { JILU*p,*q;charc; p=Biao1; q=Biao1+k_Biao1; puts("是否全部删除? (Y/N)"); c=getch(); if(c=='Y'||c=='y') { for(;p { if(p->sc='') p->sc='*'; } printf("\n\n"); printf("已成功删除了%d条记录",q-Biao1); } stop(); } voidShan_HuiShouZhan(JILUBiao1[],intk_Biao1)/*回收站察看*/ { inti; JILU*p; system("CLS"); PBT; for(p=Biao1,i=0;i stop(); } voidShan_CheXiao(JILUBiao1[],intk_Biao1)/*撤销删除*/ { JILU*p,*q; charc; system("CLS"); PBT; for(p=Biao1,q=Biao1+k_Biao1;p { if(p->sc=='')continue; PJL; puts("撤销删除? (Y/N)"); c=getch(); if(c=='Y'||c=='y')p->sc=''; } stop(); } intShan_WuLi(JILUBiao1[],intk_Biao1)/*物理删除(清空回收站)*/ { JILU*p1,*p2,*q; p1=p2=Biao1; q=Biao1+k_Biao1; for(;p1 { if(p1->sc=='*')continue; if(p1==p2){p2++;continue;} strcpy(p2->xb,p1->xb); strcpy(p2->xm,p1->xm); p2->cs.nian=p1->cs.nian; p2->cs.yue=p1->cs.yue; p2->cs.ri=p1->cs.ri; strcpy(p2->dh,p1->dh); strcpy(p2->zz,p1->zz); p2->sc=p1->sc; p2++; } printf("\n\n\t\t回收站已成功清空了%d条记录\n",p1-p2); k_Biao1-=p1-p2; stop(); returnk_Biao1; } voidCunPan(JILUBiao1[],intk_Biao1,charfile[])/*存盘*/ { FILE*fp; JILU*p,*q; if((fp=fopen(file,"wb"))==NULL) {puts("\n\n\t\t文件打开错误! ");stop();return;} for(p=Biao1,q=Biao1+k_Biao1;p fwrite(p,sizeof(JILU),1,fp); fclose(fp); printf("\n\n\t\t已成功保存%d条记录\n",k_Biao1); stop(); } intDaoRu(JILUBiao1[],charfile[])/*导入*/ { FILE*fp; JILU*p; intk_Biao1; if((fp=fopen(file,"rb"))==NULL) {puts("\n\n\t\t\t文件打开错误! ");stop();return0;} for(p=Biao1;! feof(fp);p++) fread(p,sizeof(JILU),1,fp); fclose(fp); k_Biao1=p-Biao1-1; printf("\n\n\t\t已成功导入%d条记录\n",k_Biao1); stop(); returnk_Biao1; } //交换模块// voidJiaoHuan(JILUBiao1[],intj,intk)/*交换公共数组Biao1内元素j与元素k*/ { JILUx; strcpy(x.xb,Biao1[j].xb); strcpy(Biao1[j].xb,Biao1[k].xb); strcpy(Biao1[k].xb,x.xb); strcpy(x.xm,Biao1[j].xm); strcpy(Biao1[j].xm,Biao1[k].xm); strcpy(Biao1[k].xm,x.xm); x.cs.nian=Biao1[j].cs.nian; Biao1[j].cs.nian=Biao1[k].cs.nian; Biao1[k].cs.nian=x.cs.nian; x.cs.yue=Biao1[j].cs.yue; Biao1[j].cs.yue=Biao1[k].cs.yue; Biao1[k].cs.yue=x.cs.yue; x.cs.ri=Bi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录
![提示](https://static.bdocx.com/images/bang_tan.gif)