python通讯录管理系统 tk_通讯录管理系统

1.[文件]

课程设计.c ~ 9KB

下载(179)

#include

#include

#include

#include

#define MAX_SIZE 100

struct student

{

char name[15];

char num[15];

char addr[15];

}stu[MAX_SIZE];

FILE *fp;

int count;

int loadfile();//载入通讯录文件

void savefile();//保存所有联系人

void input();//添加联系人

void find();//查找联系人

void updata();//更新联系人

void deleteall();//删除所有联系人

void deletename();//按姓名删除单个联系人

void main()

{

int i;

char a;

char name[15];

loadfile();

do{

system("CLS");

printf("\n\n");

printf("\n\t\t┏━━━━━━━━━ 主菜单 ━━━━━━━━━┓");

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

printf("\n\t\t┃**************** 1-新建联系人 ****************┃");

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

printf("\n\t\t┃**************** 2-查找联系人 ****************┃");

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

printf("\n\t\t┃**************** 3-更新联系人 ****************┃");

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

printf("\n\t\t┃**************** 4-删除所有联系人 ************┃");

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

printf("\n\t\t┃**************** 5-删除单个联系人 ************┃");

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

printf("\n\t\t┃**************** 6- 退 出 ****************┃");

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

printf("\n\t\t┗━━━━━━━━━━━━━━━━━━━━━━━┛");

printf("\n\t\t 请选择:");

a=getch();

switch(a)

{

case '1':

system("CLS");

input();

break;

case '2':

system("CLS");

find();

break;

case '3':

system("CLS");

updata();

break;

case '4':

system("CLS");

deleteall();

break;

case '5':

system("CLS");

deletename();

break;

case '6':

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

exit(1);

break;

default:

printf("\n\n\t\t 错误,请重新输入\n\t\t ");

getch();

break;

}

}while(a!='6');

}

int loadfile()

{

if((fp=fopen("address_list.txt","rb"))==NULL) //判断是否已有通讯录

{

printf("\n\n\t\t\t通讯录未建立\n");

if((fp=fopen("address_list.txt","wb"))==NULL)

printf("\n\n\t\t\t通讯录建立失败\n\n");

else

{

printf("\n\t\t\t正在建立新通讯录,请稍等···");

getch();

printf("\n\n\t\t\t通讯录建立成功\n\n");

printf("\n\t\t\t按任意键继续······");

getch();

count=0;

return count;

}

}

fseek(fp,0,2);//获取通讯录成员数目

if(ftell(fp)>0)

{

rewind(fp);

for(count=0; !feof(fp)&&fread(&stu[count],sizeof(struct student),1,fp); count++);

return count;

}

else

{

count=0;

return count;

}

}

void savefile()

{

int i;

fp=fopen("address_list.txt","wb");

for(i=0;i

{

fwrite(&stu[i],sizeof(struct student),1,fp);

}

fclose(fp);

}

void input()

{

printf("\n\t\t\t输入联系人信息\n");

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

printf("\n\t\t\t姓 名:") ;

scanf("%s",stu[count].name);

printf("\n\t\t\t电话号码:");

scanf("%s",stu[count].num);

printf("\n\t\t\t家庭住址:");

scanf("%s",stu[count].addr);

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

count++;

savefile();

printf("\n\t\t\t是否继续添加联系人?(y/n)");

if(getch()=='y')

{

system("cls");

input();

}

return;

}

void find()

{

int j;

char name[15];

fp=fopen("address_list.txt","rb");

if(count==0)

{

printf("\n\n\n\t\t\t通讯录中没有任何记录,请先添加联系人");

printf("\n\n\t\t\t按任意键继续······");

getch();

return;

}

printf("\n\t\t\t输入查找的姓名:");//按姓名查找

scanf("%s",name);

for(j=0;!feof(fp);j++)

{

fread(&stu[j],sizeof(struct student),1,fp);

if(strcmp(name,stu[j].name)==0)

{

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

printf("\n\t\t\t 姓名:%s\n",stu[j].name);

printf("\n\t\t\t 电话号码:%s\n",stu[j].num);

printf("\n\t\t\t 地址:%s\n",stu[j].addr);

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

fclose(fp);

printf("\n\t\t\t按任意键继续······");

getch();

return;

}

}

printf("\n\t\t\t未找到联系人,请重新查找\n");

printf("\n\t\t\t按任意键继续······");

getch();

fclose(fp);

}

void updata()

{

int i;

char a,name[15];

fp=fopen("address_list.txt","rb");

if(count==0)

{

printf("\n\n\n\t\t\t通讯录中没有任何记录,请先添加联系人");

printf("\n\n\t\t\t按任意键继续······");

getch();

return;

}

printf("\n\t\t\t输入要更新的联系人姓名:");

scanf("%s",name);

for(i=0;!feof(fp);i++)

{

fread(&stu[i],sizeof(struct student),1,fp);

if(strcmp(name,stu[i].name)==0)

{

printf("\n\t\t\t你要更新的联系人“%s”的信息如下:",name);

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

printf("\n\t\t\t 姓名:%s\n",stu[i].name);

printf("\n\t\t\t 电话号码:%s\n",stu[i].num);

printf("\n\t\t\t 地址:%s\n",stu[i].addr);

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

printf("\n\t\t\t是否继续(y/n)");

if(getch()!='y')

return;

system("CLS");

printf("\n\t\t\t选择你要更新的选项");

printf("\n\t\t\t\t1- 姓 名 ");

printf("\n\t\t\t\t2-电话号码");

printf("\n\t\t\t\t3- 地 址 ");

printf("\n\t\t\t\t4- 返 回 ");

printf("\n\t\t\t请选择:");

a=getch();

switch(a)

{

case '1':

printf("1\n\t\t\t姓 名:");

scanf("%s",stu[i].name);

break;

case '2':

printf("2\n\t\t\t电话号码:");

scanf("%s",stu[i].num);

break;

case '3':

printf("3\n\t\t\t地址:");

scanf("%s",stu[i].addr);

break;

case '4':

return;

break;

default:

return;

break;

}

system("cls");

printf("\n\t\t\t 您的修改结果为:");

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

printf("\n\t\t\t 姓名:%s\n",stu[i].name);

printf("\n\t\t\t 电话号码:%s\n",stu[i].num);

printf("\n\t\t\t 地址:%s\n",stu[i].addr);

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

printf("\n\t\t\t 确认修改?(y/n)");

if(getch()!='y')

return;

savefile();

fclose(fp);

printf("\n\n\t\t\t联系人更新完毕,按任意键返回······");

getch();

return;

}

}

printf("\n\t\t\t未找到联系人,请重新查找\n");

printf("\n\t\t\t按任意键继续······");

getch();

fclose(fp);

}

void deleteall()

{

fp=fopen("address_list.txt","rb");

if(count==0)

{

printf("\n\n\n\t\t\t通讯录中没有任何记录,不用再删除");

printf("\n\n\t\t\t按任意键继续······");

getch();

return;

}

printf("\n\n\t\t\t联系人删除后不能恢复\n\n\t\t\t是否继续删除所有联系人(y/n): ");

if(getch()!='y')

return;

fp=fopen("address_list.txt","wb");

count=0;

savefile();

printf("\n\n\t\t\t已删除通讯录中所有联系人");

printf("\n\n\t\t\t按任意键继续······");

getch();

fclose(fp);

}

void deletename()

{

int i,j;

char name[15];

fp=fopen("address_list.txt","rb");

if(count==0)

{

printf("\n\n\n\t\t\t通讯录中没有任何记录,不用再删除");

printf("\n\n\t\t\t按任意键继续······");

getch();

return;

}

printf("\n\t\t\t输入要删除的联系人姓名:");

scanf("%s",name);

for(i=0;!feof(fp);i++)

{

fread(&stu[i],sizeof(struct student),1,fp);

if(strcmp(name,stu[i].name)==0)

{

printf("\n\t\t\t你要删除的联系人“%s”的信息如下:",name);

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

printf("\n\t\t\t 姓名:%s\n",stu[i].name);

printf("\n\t\t\t 电话号码:%s\n",stu[i].num);

printf("\n\t\t\t 地址:%s\n",stu[i].addr);

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

printf("\n\t\t\t是否删除(y/n): ");

if(getch()!='y')

return;

for(j=i;j

{

stu[j]=stu[j+1];

}

count--;

savefile();

printf("\n\n\t\t\t该联系人已经成功删除\n\n\t\t\t按任意键继续·····");

getch();

return;

}

}

printf("\n\t\t\t未找到该联系人,请返回重新输入\n");

printf("\n\t\t\t按任意键继续······");

getch();

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值