您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页C语言大作业——通讯录

C语言大作业——通讯录

来源:意榕旅游网
# include \"stdio.h\" # include\"stdlib.h\" # include\"string.h\" # define N 20 typedef struct { char kind[20]; int score; char name[10]; char num[15]; char email[20]; char age[8]; char adds[20]; }Person;

Person pe[80]; int menu_select() { char c; do{ system(\"cls\"); printf(\"\\ *****通讯录***** \\n\"); printf(\"\\┌───────┐\\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(\"\\└───────┘\\n\"); printf(\"\\请您选择(0-9):\"); c=getchar(); }while(c<'0'||c>'9'); return(c-'0'); }

void CHS() {

Person per[3]={ {\"A\ {\"B\ {\"c\ }; FILE *fp; fp=fopen(\"shuju.dat\ fwrite(per,sizeof(Person),3,fp); fclose(fp); }

void zhuce( ) { FILE *fp; if((fp=fopen(\"mima.dat\ { printf(\"cannot open file!\\n\"); exit(0); } int sign=1; int k=1; int j,i=1; int m=1; int len=0; char code1[N],code2[N],user[N]; printf(\"用户名仅限于字母\"); while(m!=0) { printf(\"\\n输入用户名\\n\"); getchar(); gets(user); len=strlen(user); for(j=0;j='a'&&user[j]<='z')||(user[j]>='A'&&user[j]<='Z'))) { m=1; } else m=0; } }

printf(\"密码权限仅限数字或字母\"); while(k!=0) { printf(\"输入密码\\n\"); gets(code1); len=strlen(code1); for(j=0;j='a'&&code1[j]<='z')||(code1[j]>='A'&&code1[j]<='Z')||(code1[j]>='0'&&code1[j]<='9'))) { k=1; } else k=0; } } while(sign!=0) { printf(\"再输入一次密码\\n\"); gets(code2); if(!strcmp(code1,code2)) { printf(\"注册成功\\n\"); sign=0; } else { sign=1; printf(\"密码出错,与第一次不符\"); i++; } if(i>3) { printf(\"\\n你已经超过2次输错密码,已无法输入,再见\"); break; } } fputs(user,fp); fputs(code1,fp);

fclose(fp); }

void denglu( ) { int i=0; char user[N]; FILE *fp; if((fp=fopen(\"mima.dat\ { printf(\"cannot open file!\\n\"); exit(0); } while(!feof(fp)) {

fgets(user,20,fp); } char s1[N],s2[N]; printf(\"输入用户名\\n\"); getchar(); gets(s1); printf(\"输入密码\\n\"); gets(s2); strcat(s1,s2); if(strcmp(s1,user)==0) printf(\"登陆成功\\n\"); else printf(\"登陆失败\\n\"); fclose(fp); }

int Input(Person per[],int n) { int i=0; char sign=1; while(sign!=0) {

printf(\"\请在以下类别选择: p.个人类 b.商务类 w.办公类\"); scanf(\"%s\ printf(\"\编号:\"); scanf(\"%d\ printf(\"\姓名:\"); scanf(\"%s\ printf(\"\年龄:\");

scanf(\"%s\ printf(\"\电话号码:\"); scanf(\"%s\ printf(\"\通讯住址:\"); scanf(\"%s\ printf(\"\电子邮箱:\"); scanf(\"%s\ getchar(); printf(\"\\n\是否继续添加?(0,1)); scanf(\"%c\ i++; } return(n+i); }

void Display(Person per[],int n) { int i; printf(\"----------------------------------------------------------------------\\n\"); printf(\"分类 编号 姓名 年龄 电话号码 通讯地址 电子邮箱\\n\"); printf(\"----------------------------------------------------------------------\\n\"); for(i=1;i1&&i%10==0) { printf(\"\-----------------------------------\\n\"); printf(\"\\"); system(\"pause\"); printf(\"\-----------------------------------\\n\"); } } printf(\"----------------------------------------------------------------------\\n\"); system(\"pause\"); }

void Query_a_record(Person per[],int n) { int m; system(\"cls\"); printf(\"\\\n请选择查询方式:\\n\"); printf(\"\┌──────——┐\\n\"); printf(\"\│1------准确姓名 │\\n\"); printf(\"\│2------准确电话 │\\n\"); printf(\"\│3------模糊查询 │\\n\"); printf(\"\│4------分类查询 │\\n\"); printf(\"\│5------返回 │\\n\"); printf(\"\└──────——┘\\n\"); printf(\"请选择:\"); scanf(\"%d\

while(m!=1&&m!=2&&m!=3&&m!=4&&m!=5) { printf(\"输入错误,请重新选择:\"); scanf(\"%d\ } if(m==1) { char s[20]; int i=0; printf(\"\请输入想查询的姓名:\"); scanf(\"%s\ while(strcmp(per[i].name,s)!=0&&iint i=0; printf(\"\请输入想查询的电话:\"); scanf(\"%s\ while(strcmp(per[i].num,s)!=0&&iprintf(\"\所属类别:%s\\n\ printf(\"\此人编号: %d\\n\ printf(\"\此人姓名: %s\\n\ printf(\"\此人年龄: %s\\n\ printf(\"\通讯地址: %s\\n\ printf(\"\电子邮箱: %s\\n\ } ; if(m==3) { int i=0,z; system(\"cls\"); printf(\"\请选择模糊查询方式:\\n\"); printf(\"\┌──────———┐\\n\"); printf(\"\│1------姓名首字 │\\n\"); printf(\"\│2------号码首位 │\\n\"); printf(\"\└─────——─—┘\\n\"); printf(\"请选择:\"); scanf(\"%d\ while(z!=1&&z!=2) { printf(\"输入错误,请重新选择:\"); scanf(\"%d\ } if(z==1) { int i,j,k; int flag=0; char s[20];

printf(\"\请输入想查询的姓名首字:\"); scanf(\"%s\ for(i=0;i{ if(per[i].name[k]==s[j]) { k++; j++; } else { k++; j=0; } if(s[j]=='\\0') { printf(\"find person match:%s\%d\%s\%s\%s\%s\%s\\n\er[i].adds,per[i].email); flag++; } if(!flag) printf(\"not found!\\n\"); } } } if(z==2) { int i,j,k; int flag=0; char s[20];

printf(\"\请输入想查询的号码首位:\"); scanf(\"%s\ for(i=0;iif(s[j]=='\\0') { printf(\"find person match:%s\%d\%s\%s\%s\%s\%s\\n\er[i].adds,per[i].email); flag++; } if(!flag) printf(\"not found!\\n\"); } } } }; if(m==4) { int i,j; char searchkind[20]; printf(\"\\n\请输入要查询记录的相关类别: p.个人类 b.商务类 w.办公类\"); scanf(\"%s\ getchar(); for(i=0;ivoid Change(Person per[],int n) { char s[20]; int i=0; printf(\"\请输入想修改的记录中的名字:\");

scanf(\"%s\ while(strcmp(per[i].name,s)!=0&&iprintf(\"\类别:\");

scanf(\"%s\ printf(\"\此人编号:\"); scanf(\"%d\ printf(\"\姓名:\"); scanf(\"%s\ printf(\"\年龄:\"); scanf(\"%s\ printf(\"\电话号码:\"); scanf(\"%s\ printf(\"\通讯住址:\"); scanf(\"%s\ printf(\"\电子邮箱:\"); scanf(\"%s\ printf(\"\修改成功!\"); }

void bohao(Person per[],int n) { char s[20]; int i=0; system(\"cls\"); printf(\"请输入要拨号的联系人姓名:\\n\"); scanf(\"%s\

while(strcmp(per[i].name,s)!=0&&ielse { if(strcmp(s,per[i].name)==0) printf(\"\\n拨号成功\\n\\n\"); else printf(\"\\n拨号失败\\n\\n\"); } }

int Delete(Person per[],int n) { char s[20]; int i=0,j; printf(\"\请输入想删除记录中的名字:\"); scanf(\"%s\ while(strcmp(per[i].name,s)!=0&&ivoid save(Person pe[],int n) { int i=0; FILE *fp; fp=fopen(\"shuju.dat\ for(i=0;ifwrite(&pe[i],sizeof(Person),1,fp);

/* fprintf(fp,\"******************************************通讯录******************************************\\n\"); fprintf(fp,\" 类别 编号 姓名 年龄 电话号码 通讯地址 电子邮箱 \\n\"); fprintf(fp,\"------------------------------------------------------------------------------------------\\n\"); while(ivoid main() { int n=0; int i; FILE * fp; if((fp=fopen(\"shuju.dat\ { CHS(); n=3; } else { for(i=0;!feof(fp);i++) fread(&pe[i],sizeof(Person),1,fp); n=i-1; fclose(fp); } for(;;) { switch(menu_select()) { case 1: zhuce(); system(\"pause\");

break; case 2: denglu();

system(\"pause\"); break; case 3: printf(\"\\n\添加记录到通讯录\\n\"); n=Input(pe,n); break; case 4: printf(\"\\n\显示通讯录记录表\\n\"); Display(pe,n); break; case 5: printf(\"\\n\在通讯录中查找记录\\n\"); Query_a_record(pe,n); printf(\"\\"); system(\"pause\"); break; case 6: printf(\"\\n\修改通讯录中的记录\\n\"); Change(pe,n); printf(\"\\"); system(\"pause\"); break; case 7: printf(\"\\n\从通讯录中删除记录\\n\"); n=Delete(pe,n); printf(\"\\"); system(\"pause\"); break;

case 8: printf(\"\\n\拨号功能\\n\"); bohao(pe,n); printf(\"\\"); system(\"pause\"); break;

} }

case 9:

printf(\"\\n\保存功能\\n\"); save(pe,n); printf(\"\\");

system(\"pause\"); break;

case 0:

printf(\"\\n\\谢谢使用,再见!\\n\"); printf(\"\\n\\\"); system(\"pause\"); exit(0); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务