收藏 分销(赏)

c语言通讯录源代码(打印).doc

上传人:人****来 文档编号:4316053 上传时间:2024-09-05 格式:DOC 页数:16 大小:113.50KB 下载积分:8 金币
下载 相关 举报
c语言通讯录源代码(打印).doc_第1页
第1页 / 共16页
c语言通讯录源代码(打印).doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct person { char name[15]; char sex[2]; int nianling; long int youbian; char addr[50]; char celephone[22]; char homephone[22]; char company[20]; char email[40]; long int QQ; }per[500]; int num=0;//*外部变量num为文件中的纪录数*// FILE *fp; void mainmenu();//*主菜单*// void newrecord();//新添纪录*// void xiugaimenu();//*修改菜单*// void xiugaibyname();//*按姓名修改*// void xiugaibycelephone();//*按手机号码修改*// void xiugaixiangmu(int a);//*修改项目*// void searchmenu();//*查询菜单*// void searchbyname();//*按姓名查询*// void searchbycelephone();//*按手机号码查询*// void searchbyhomephone();//*按家庭电话号码查询*// void searchbyqq();//*按QQ查询*// void deletemenu();//*删除菜单*// void deleteall();//*删除所有信 息*// void deleteone();//*删除单个*// void showall();//*输 出 全 部 信 息*// void readfromfile();//*读取文件*// void writetofile();//*写入文件*// / void deletebycelephone(); //*按手机号码删除*// void deletebyname();//*按姓名删除*/ void listbycelephone();//*按手机号码排序*// void listbyname();//*按姓名排序*// void listmenu();//*排序菜单*// void main()//*主函数*// { system("cls"); readfromfile(); while (1) { mainmenu(); } } //*主函数结束*// void mainmenu()//*主菜单函数*// { int a; system("cls"); system("color FC"); printf("\n\t 您 好! 欢 迎 使 用 通 讯 录!\n"); printf(" 1: 添 加 个 人 信 息\n"); printf(" 2: 查 询 个 人 信 息\n"); printf(" 3: 删 除 个 人 信 息\n"); printf(" 4: 修 改 个 人 信 息\n"); printf(" 5: 信 息 排 序\n"); printf(" 6: 输 出 全 部 信 息\n"); printf(" 7: 写 入 文 件\n"); printf(" 8: 读 取 文 件\n"); printf(" 9: 删除所有\n"); printf(" 0: 退 出 \n"); printf(" 请输入您的数字选择: "); loop1: scanf("%d",&a); switch (a) { case 1:newrecord();break; case 2:searchmenu();break; case 3:deletemenu();break; case 4:xiugaimenu();break; case 5:listmenu();break; case 6:showall();break; case 7:writetofile();break; case 8:readfromfile();break; case 9:deleteall();break; case 0:exit(0); default:printf("对不起!您的输入有误!请重新输入: "); goto loop1; } } void newrecord()//*添加纪录*// { int a; system("cls"); system("color 2a"); loop: printf("\n\n\n\n\t\t 请输入您要添加的联系人的信息: \n"); printf("\n请输入姓名:\n"); name: scanf("%s",&per[num].name); if(strlen(per[num].name)>15) { printf("对不起!您的输入有误!请重新输入"); goto name; } printf("\n请输入性别:\n"); sex: scanf("%s",&per[num].sex); if(strlen(per[num].sex)==0) { printf("对不起!您的输入有误!请重新输入"); goto sex; } printf("\n请输入年龄:"); nianling: scanf("%d",&per[num].nianling); if(per[num].nianling<10||per[num].nianling>110) { printf("对不起!您的输入有误!请重新输入"); goto nianling; } printf("\n请输入邮编\n"); youbian: scanf("%d",&per[num].youbian); if(per[num].youbian<10000||per[num].youbian>999999) { printf("对不起!您的输入有误!请重新输入"); goto youbian; } printf("\n请输入地址\n"); addr: scanf("%s",&per[num].addr); if(strlen(per[num].addr)>50||strlen(per[num].addr)<4) { printf("对不起!您的输入有误!请重新输入\n"); goto addr; } printf("\n请输入手机号码:\n"); celephone: scanf("%s",&per[num].celephone); if(strlen(per[num].celephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto celephone; } printf("\n请输入家庭电话号码:\n"); homephone: scanf("%s",&per[num].homephone); if(strlen(per[num].homephone)!=11) { printf("对不起!您的输入有误!请重新输入\n"); goto homephone; } printf("\n请输入公司名称:"); company: scanf("%s",&per[num].company); if(strlen(per[num].company)>20||strlen(per[num].company)<10) { printf("对不起!您的输入有误!请重新输入"); goto company; } printf("\n输入电子邮箱:"); email: scanf("%s",&per[num].email); if(strlen(per[num].email)>30||strlen(per[num].email)<4) { printf("对不起!您的输入有误!请重新输入"); goto email; } printf("\n输入QQ号码:"); QQ: scanf("%ld",&per[num].QQ); if(per[num].QQ>1600000000||per[num].QQ<10000000) { printf("对不起!您的输入有误!请重新输入"); goto QQ; } num++; printf("\n是否继续添加?\n"); printf("\n请按1和2(1代表继续;2代表不继续)\n"); printf("请输入您的选择 "); scanf("%d",&a); if(a==1) { goto loop; } else { return; } } void searchmenu()//*查询菜单*// { int a; system("cls"); system("color 2a"); printf("\n\t\t 欢 迎 使 用 查 询 菜 单"); printf("\n\t\t1-按手机号码查询"); printf("\n\t\t2-按姓名查询"); printf("\n\t\t3-按家庭电话号码查询"); printf("\n\t\t4-按QQ查询"); printf("\n\t\t5-返回主菜单"); printf("\n\t\t"); printf("请输入您的选择 "); scanf("%d",&a); switch (a) { case 1:searchbycelephone();break; case 2:searchbyname();break; case 3:searchbyhomephone();break; case 4:searchbyqq();break; case 5:mainmenu();break; } } void searchbycelephone()//*按手机号码查询*// { int mark=0; int i,j; int a=0; char celephone[11]; printf("\n 按手机号码查找 \n"); printf("\n请输入手机号码:\n"); scanf("%s",celephone); for(i=0;i<num;i++) { if (strcmp(per[i].celephone,celephone)==0) { printf("\n 以下是您查找的联系人的信息 "); printf("\n________________________________"); printf("\n名字: %s",per[i].name); printf("\n性别: %s",per[i].sex); printf("\n年龄: %d",per[i].nianling); printf("\n邮编 : %ld",per[i].youbian); printf("\n地址: %s",per[i].addr); printf("\n手机号码: %s",per[i].celephone); printf("\n家庭电话号码:%s",per[i].homephone); printf("\n公司名称:%s",per[i].company); printf("\n电子邮件:%s",per[i].email); printf("\nQQ号码:%ld",per[i].QQ); printf("\n________________________________"); printf("\n请按任意数字键返回主菜单"); mark++; scanf("%d",&j); return; } } if (mark==0) { printf("\n对不起!没有该联系人的信息!"); printf("\n请按任意数字键返回主菜单"); scanf("%d",&j); return; } } void searchbyname()//*按姓名查询*// { int mark=0; int i,j,findmark=0; int a=0; char name[15]; printf("\n 按姓名查找 "); printf("\n请输入姓名:"); scanf("%s",name); for(i=a;i<num;i++) { if (strcmp(per[i].name,name)==0) { findmark++; printf("\n\t\t 以下是您查找的联系人的信息 "); printf("\n\t\t________________________________"); printf("\n\t\t名字: %s",per[i].name); printf("\n\t\t性别: %s",per[i].sex); printf("\n\t\t年龄: %d",per[i].nianling); printf("\n\t\t邮编 : %ld",per[i].youbian); printf("\n\t\t地址: %s",per[i].addr); printf("\n\t\t手机号码: %s",per[i].celephone); printf("\n\t\t家庭电话号码:%s",per[i].homephone); printf("\n\t\t公司名称:%s",per[i].company); printf("\n\t\t电子邮件:%s",per[i].email); printf("\n\t\tQQ号码:%ld",per[i].QQ); printf("\n\t\t________________________________"); if ((i+1)<num) { printf("\n是否继续查找相同名字的联系人的信息?(1代表继续;2代表不继续)"); scanf("%d",&j); if (j==1) { a=i; mark++; continue; } else break; } else { printf("\n请按任意数字键返回主菜单"); scanf("%d",&j); return; } } } if(mark!=0) { printf("\n对不起! 没有相同名字的该联系人的信息!!"); printf("\n请按任意数字键返回主菜单"); scanf("%d",&j); return; } else if(findmark==0) { printf("\n对不起!没有该联系人的信息!"); printf("\n请按任意数字键返回主菜单"); scanf("%d",&j); return; } } void searchbyhomephone()//*按家庭电话号码查询*// { int mark=0; int i,j; int a=0; char homephone[11]; printf("\n\t\t 按家庭电话号码查找 "); printf("\n请输入家庭电话号码:"); scanf("%s",homephone); for(i=0;i<num;i++) { if (strcmp(per[i].homephone,homephone)==0) { printf("\n\t\t 以下是您要查找的联系人的信息"); printf("\n\t\t________________________________"); printf("\n\t\t名字: %s",per[i].name); printf("\n\t\t性别: %s",per[i].sex); printf("\n\t\t年龄: %d",per[i].nianling); printf("\n\t\t邮编 : %ld",per[i].youbian); printf("\n\t\t地址: %s",per[i].addr); printf("\n\t\t手机号码: %s",per[i].celephone); printf("\n\t\t家庭电话号码:%s",per[i].homephone); printf("\n\t\t公司名称:%s",per[i].company); printf("\n\t\t电子邮件:%s",per[i].email); printf("\n\t\tQQ号码:%ld",per[i].QQ); printf("\n\t\t________________________________"); printf("\n\t\t请按任意数字键返回主菜单"); mark++; scanf("%d",&j); return; } } if (mark==0) { printf("\n\t\t对不起!没有该联系人的信息!"); printf("\n\t\t请按任意数字键返回主菜单"); scanf("%d",&j); return; } } void searchbyqq()//*按QQ查询*// { int mark=0; int i,j; long int QQ; printf("\n\t\t 按QQ号码查找\n"); printf("\n请输入QQ号码:"); scanf("%ld",&QQ); for(i=0;i<num;i++) { if(per[i].QQ==QQ) { printf("\n\t\t 以下是您查找的联系人的信息"); printf("\n\t\t________________________________"); printf("\n\t\t名字: %s",per[i].name); printf("\n\t\t性别: %s",per[i].sex); printf("\n\t\t年龄: %d",per[i].nianling); printf("\n\t\t邮编 : %ld",per[i].youbian); printf("\n\t\t地址: %s",per[i].addr); printf("\n\t\t手机号码: %s",per[i].celephone); printf("\n\t\t家庭电话号码:%s",per[i].homephone); printf("\n\t\t公司名称:%s",per[i].company); printf("\n\t\t电子邮件:%s",per[i].email); printf("\n\t\tQQ号码:%ld",per[i].QQ); printf("\n\t\t________________________________"); printf("\n\t\t请按任意数字键返回主菜单"); mark++; scanf("%d",&j); return; } } if (mark==0) { printf("\n\t\t对不起!没有该联系人的信息!"); printf("\n\t\t请按任意数字键返回主菜单"); scanf("%d",&j); return; } } void deletemenu()//*删除菜单*// { int i,j; system("cls"); system("color 3b"); if(num==0) { printf("\n\t\t对不起!文件中无任何纪录!"); printf("\n\t\t请先添加个人信息!"); printf("\n\t\t请按任意数字键返回主菜单"); scanf("%d",&j); return; } else { printf("\n\t\t 删 除 菜 单 "); printf("\n\t\t 1-删除单个 "); printf("\n\t\t 2-返回主菜单 "); printf("\n\t\t "); printf("\n\t\t请输入您的数字选择: "); loop4: scanf("%d",&i); switch (i) { case 1:deleteone();break; case 2:mainmenu();break; default:printf("对不起!您的输入有误!请重新输入: ");goto loop4; } } } void deleteone()//*删除单个*// { int i; printf("\n\t\t1-按手机号码删除 2-按姓名删除"); printf("\n\t\t请输入您的选择:"); loop5:scanf("%d",&i);; switch (i) { case 1:deletebycelephone();break; case 2:deletebyname();break; default:printf("对不起!您的输入有误!请重新输入: ");goto loop5; } } void deletebyname()//姓名删除*// { int a=0; int findmark=0; int i,j,k; int deletemark=0; char name[15]; printf("\n\t\t请输入您要删除的联系人的姓名:"); scanf("%s",name); for (i=a;i<num;i++) { if (strcmp(per[i].name,name)==0) { printf("\n\t\t以下是您要删除的联系人的纪录:"); findmark++; printf("\n\t\t________________________________"); printf("\n\t\t名字: %s",per[i].name); printf("\n\t\t性别: %s",per[i].sex); printf("\n\t\t年龄: %d",per[i].nianling); printf("\n\t\t邮编 : %ld",per[i].youbian); printf("\n\t\t地址: %s",per[i].addr); printf("\n\t\t手机号码: %s",per[i].celephone); printf("\n\t\t家庭电话号码:%s",per[i].homephone); printf("\n\t\t公司名称:%s",per[i].company); printf("\n\t\t电子邮件:%s",per[i].email); printf("\n\t\tQQ号码:%ld",per[i].QQ); printf("\n\t\t________________________________"); printf("\n\t\t是否删除?(1代表删除;2代表不删除)\n"); printf("\n\t\t请输入您的数字选择: "); scanf("%d",&k); if(k==1) { for (j=i;j<num-1;j++) //*纪录移动,从per数组中删除之*// per[j]=per[j+1]; num--; deletemark++; printf("\n\t\t删除成功"); if((i+1)<num) { printf("\n\t\t是否继续删除相同姓名的联系人的信息?(1代表删除;2代表不删除)"); printf("\n\t\t请输入您的数字选择: "); scanf("%d",&k); if(k=1) { a=i; findmark++; continue; } } printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)"); printf("\n\t\t请输入您的数字选择: "); scanf("%d",&k); if(k==1) deleteone(); else break; } } else continue; } if((deletemark==0)&&(findmark==0)) { printf("\n\t\t对不起!没有该联系人的纪录!"); printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)"); printf(" 请输入您的数字选择: "); scanf("%d",&k); if(k==1) deleteone(); } else if(findmark!=0) { printf("\n\t\t对不起!没有重名信息!"); printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)"); printf(" 请输入您的数字选择: "); scanf("%d",&k); if(k==1) deleteone(); } } void deletebycelephone()//*按手机号码删除*// { int i,j,h,m; int deletemark=0; char celephone[11]; printf("\n\t\t请输入要删除的联系人的手机号码:"); scanf("%s",celephone); for(i=0;i<num;i++) { if(strcmp(per[i].celephone,celephone)==0) { deletemark++; printf("\n\t\t以下是您要删除的联系人的纪录:"); printf("\n\t\t________________________________"); printf("\n\t\t名字: %s",per[i].name); printf("\n\t\t性别: %s",per[i].sex); printf("\n\t\t年龄: %d",per[i].nianling); printf("\n\t\t邮编 : %ld",per[i].youbian); printf("\n\t\t地址: %s",per[i].addr); printf("\n\t\t手机号码: %s",per[i].celephone); printf("\n\t\t家庭电话号码:%s",per[i].homephone); printf("\n\t\t公司名称:%s",per[i].company); printf("\n\t\t电子邮件:%s",per[i].email); printf("\n\t\tQQ号码:%ld",per[i].QQ); printf("\n\t\t________________________________"); printf("\n\t\t是否删除?(1代表删除;2代表不删除)\n"); printf(" 请输入您的数字选择: "); scanf("%d",&h); if(h==1) { for (j=i;j<num-1;j++) /*纪录移动,从per数组中删除之*/ per[j]=per[j+1]; num--; printf("\n\t\t删除成功"); printf("\n是否继续删除?(1代表继续;2代表不继续)\n"); printf(" 请输入您的数字选择: "); scanf("%d",&h); if(h==1) deletebycelephone(); } } } if(deletemark==0) { printf("\n\t\t对不起!没有该联系人的纪录!"); printf("\n\t\t是否继续删除?(1代表继续;2代表不继续)\n"); printf(" 请输入您的数字选择: "); scanf("%d",&m); if(m==1) deletebycelephone(); } } void xiugaimenu()//*修改菜单*// { int i,j; system("cls"); system("color 3f"); if(num==0) { printf("\n\t\t对不起!文件中无任何纪录!"); printf("\n\t\t请按任意数字键返回主菜单"); scanf("%d",&j); return; } else { printf("\n\t\t 1-按姓名修改 2-按手机号码修改\n"); printf(" 请输入您的数字选择: "); loop6:scanf("%d",&i); switch (i) { case 1:xiugaibyname();break; case 2:xiugaibycelephone();break; default:printf("对不起!您的输入有误!请重新输入: ");goto loop6; } } } void xiugaibyname()//*按姓名修改*// { int a=0; int findmark=0; int xiugaimark=0; int i,j; char name[15]; printf("\n\t\t请输入要修改联系人的姓名:"); scanf("%s",name); for (i=a;i<num;i++) { if (strcmp(per[i].name,name)==0) { printf("\n\t\t以下是您要修改的联系人的纪录:"); findmark++; printf("\n\t\t________________________________"); printf("\n\t\t名字: %s",per[i].name); printf("\n\t\t性别: %s",per[i].sex); printf("\n\t\t年龄: %d",per[i].nianling); printf("\n\t\t邮编 : %ld",per[i].youbia
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服