通讯录.docx

上传人:b****5 文档编号:8641782 上传时间:2023-02-01 格式:DOCX 页数:16 大小:18.45KB
下载 相关 举报
通讯录.docx_第1页
第1页 / 共16页
通讯录.docx_第2页
第2页 / 共16页
通讯录.docx_第3页
第3页 / 共16页
通讯录.docx_第4页
第4页 / 共16页
通讯录.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

通讯录.docx

《通讯录.docx》由会员分享,可在线阅读,更多相关《通讯录.docx(16页珍藏版)》请在冰豆网上搜索。

通讯录.docx

通讯录

#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;idh,x)==0&&p->sc!

='*')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;ixm,x)==0&&p->sc!

='*')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;idh,x)==0)p->sc='*';

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;isc=='*')PJL;

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1