
#include"stdio.h"#include"stdlib.h"#include"string.h" int num=0,num1=0,M; //计算联系人人数,账户个数 struct student { char rcord[10]; char name[10]; char phone[12]; char qq[20]; }stu[1000]; //最大可以储存1000个联系人 struct student5 { char zhanghao[10]; char mima[10]; struct student stu[1000]; }people[1000]; void zuce(); //注册 void dengru(); //登录 void baochun(); //保存联系人到文件 void student(); //主菜单 void student1(); //添加联系人 void student2(); //显示通讯录 void student3(); //查找联系人 void student3_1(); // 按姓名查找 void student3_2(); // 按学号查找 void student3_3(); // 按电话查找 void student4(); // 删除联系人 void student4_1(); //按姓名删除 void student4_2(); // 按学号删除 void student4_3(); // 按电话删除 int main() //主函数 { int a; FILE
fp1,fp2; system("color e0"); //设置背景颜色 printf("\t\t\t\t\t请选择登录(0)注册(1)\n\t\t\t\t\t"); scanf("%d",&a); getchar(); if(a==0) dengru(); else zuce(); if( fopen("c://q.txt","rb")==0) student(); else { fp1=fopen("c://q.txt","rb+"); fp2=fopen("c://x.txt","rb+"); fscanf(fp2,"%d",&num); // fscanf(fp2,"%d",&num1); for(int i=0;i<num;i++) fread(&stu[i],sizeof(struct student),1,fp1); student(); } fclose(fp1); fclose(fp2); } //////////////////////////子函数 void zuce() //注册{ system("cls"); //清屏 system("color e0"); FILE fp,fp1,fp2,fp3; char a[10],b[10],c[10],d[10]; int i; if(fopen("c://账户.txt","rb")==0) { fp=fopen("c://账户.txt","wb"); fp1=fopen("c://账户个数+联系人个数.txt","wb"); } else { fp=fopen("c://账户.txt","rb"); fp1=fopen("c://账户个数+联系人个数.txt","rb"); for(i=0;i<1000;i++) fread(people[i],sizeof(struct student5 people[i]),1,fp); fscanf(fp1,"%d%d",num1,num); } rewind(fp); fclose(fp); rewind(fp1); fclose(fp1); printf("\t\t\t\t\t请输入账号\n"); gets(d); for(i=0;i<1000;i++) { if((strcmp(d,people[i].zhanghao)==0)) { printf("\t\t\t\t\t账号名重复,重新输入\n"); i=0; gets(d); } } strcpy(people[num1].zhanghao,d); do { printf("\t\t\t\t\t请设置密码\n\t\t\t\t\t"); gets(a); printf("\t\t\t\t\t请再次确认密码\n\t\t\t\t\t"); gets(b); } while(strcmp(a,b)!=0); strcpy(people[num1].mima,a); num1++; fp2=fopen("c://账户.txt","rb"); fp3=fopen("c://账户个数+联系人个数.txt","rb"); fprintf(fp3,"%d%d",num1,num); for(i=0;i<1000;i++) { fwrite(people[i],sizeof(people[i]),1,fp2); } rewind(fp2); fclose(fp2); rewind(fp3); fclose(fp3); for(i=1;i<=3;i++) { printf("\t\t\t\t\t请输入第%d次密码,三次后锁定\n",i); gets(c); if(strcmp(a,c)==0) break; else continue; } if(i==4) { system("pause"); exit(0); } else printf("\t\t\t\t\t欢迎进入\n");} void dengru() //登录 { system("cls"); system("color e0"); int i;FILE fp1; char a[10],b[10]; fp1=fopen("c://账户.txt","rb"); for(i=0;i<1000;i++) fread(people[i],sizeof(struct student5 people[i]),1,fp1); rewind(fp1); fclose(fp1); printf("\t\t\t\t\t请输入账号\n"); do { gets(a); for(i=0;i<1000;i++) { if(strcmp(people[i].zhanghao,a)==0) { M=i;break; } } if(i==1000) printf("账号不存在\n"); }while(1); for(i=1;i<=3;i++) { printf("\t\t\t\t\t请输入第%d次密码,三次后锁定\n\t\t\t\t\t",i); gets(b); if(strcmp(b,people[M].mima)==0) break; else continue; } if(i==4) { system("pause"); exit(0); } else printf("\t\t\t\t\t欢迎进入\n"); } void baochun() //保存联系人{ int i; FILE fp1,fp2; fp1=fopen("c://账户个数+联系人个数.txt","wb"); fprintf(fp1,"%d%d",num1,num); fp2=fopen("c://账户.txt","wb"); for(i=0;i<num1;i++) { fread(people[i],sizeof(struct student5 people[i]),1,fp2); } fclose(fp1); fclose(fp2);} void student() //主菜单 { int a,k; system("cls"); //清屏 system("color f2"); printf("\n\n\n\n\n\n\n"); printf("\t\t\t\t【学生管理系统】\n"); printf("============================================\n"); printf("\t\t\t\t*\n"); printf("\t\t\t\t1.添加联系人*\n"); printf("\t\t\t\t2.显示通讯录\n"); printf("\t\t\t\t
3.查找联系人\n"); printf("\t\t\t\t
4.删除联系人\n"); printf("\t\t\t\t
0.退出程序\n"); printf("============================================\n"); scanf("%d",&a); switch(a) { case 0: exit(0); case 1: { student1(); student(); break; } case 2: { student2(); break; } case 3: { student3(); student(); break; } case 4: { student4(); student(); break; } default: { printf("输入错误,请输入正确的选项,是否选择继续(1是0否)\n"); scanf("%d",&k); if(k==1) student(); else exit(0); } } } void student1() //添加联系人 { int i,k; system("color 84"); for(i=0;i<=200;i++) { system("cls"); printf("\n\n\t输入学号\n\t"); scanf("%s",people[M].stu[num].rcord); printf("\n\n\t输入姓名\n\t"); scanf("%s",people[M].stu[num].name); printf("\n\n\t输入电话\n\t"); scanf("%s",people[M].stu[num].phone); printf("\n\n\t输入QQ\n\t"); scanf("%s",people[M].stu[num].qq); num++; printf("是否继续添加(1是0否)"); scanf("%d",&k); if(k==1) printf("=============================\n"); else { baochun(); break; } } }void student2() //显示通讯录{ system("cls"); system("color e0"); int i; char k; if(num==0) printf("\n\n\n\t\t\t你的通讯录!\n"); for(i=0;i<num;i++) { printf("\n学号:%s\n姓名:%s\n电话:%s\nQQ:%s\n",people[M].stu[i].rcord,people[M].stu[i].name,people[M].stu[i].phone,people[M].stu[i].qq ); printf("===================================\n"); } printf("请按任何键返回主菜单"); scanf("%s",&k); student();}void student3() //查找联系人{ int i; system("cls"); system("color 40"); printf("\n\n\n\n\n\n
\n"); printf("\t\t1.按姓名查找\n"); printf("\t\t2.按学号查找\n"); printf("\t\t3.按电话查找\n"); printf("请选择:(按其他数字键返回!)"); scanf("%d",&i); switch(i) { case 1: { student3_1(); break; } case 2: { student3_2(); break; } case 3: { student3_3(); break; } }}void student3_1() //按姓名查找{ int k,n; char name[20]; printf("请输入姓名:"); scanf("%s",&name ); for(k=0;k<num;k++) { if(strcmp(stu[k].name,name)==0) { printf("\n\t学号:%s\n",people[M].stu[k].rcord); printf("\n\t姓名:%s\n",people[M].stu[k].name); printf("\n\t电话:%s\n",people[M].stu[k].phone); printf("\n\tQQ:%s\n",people[M].stu[k].qq); } else printf("查无此人\n"); } printf("是否继续查找(1是0否)"); scanf("%d",&n); if(n==1) student3(); else student();}void student3_2() //按学号查找{ int k,n; char rcord[20]; printf("请输入学号:"); scanf("%s",&rcord ); for(k=0;k<num;k++) { if(strcmp(people[M].stu[k].rcord,rcord)==0) { printf("\n\t学号:%s\n",people[M].stu[k].rcord); printf("\n\t姓名:%s\n",people[M].stu[k].name); printf("\n\t电话:%s\n",people[M].stu[k].phone); printf("\n\tQQ:%s\n",people[M].stu[k].qq); } else printf("查无此人\n"); } printf("是否继续查找(1是0否)"); scanf("%d",&n); if(n==1) student3(); else student();}void student3_3() //按电话查找{ int k,n; char phone[20]; printf("请输入电话:"); scanf("%s",&phone ); for(k=0;k<num;k++) { if(strcmp(people[M].stu[k].phone,phone)==0) { printf("\n\t学号:%s\n",people[M].stu[k].rcord); printf("\n\t姓名:%s\n",people[M].stu[k].name); printf("\n\t电话:%s\n",people[M].stu[k].phone); printf("\n\tQQ:%s\n",people[M].stu[k].qq); } else printf("查无此人\n"); } printf("是否继续查找(1是0否)"); scanf("%d",&n); if(n==1) student3(); else student();}void student4() //删除联系人{ int i; system("cls"); system("color 60"); printf("\n\n\n\n\n\n\n"); printf("\t\t1.按姓名删除\n"); printf("\t\t2.按学号删除\n"); printf("\t\t3.按电话删除\n"); printf("*******************************\n"); printf("请选择:(按其他数字键返回!)"); scanf("%d",&i); switch(i) { case 1: { student4_1(); break; } case 2: { student4_2(); break; } case 3: { student4_3(); break; } }}void student4_1() //按姓名删除{ int i,k,n,a; char name[20]; printf("请输入姓名:"); scanf("%s",&name ); for(k=0;k<num;k++) { if(strcmp(people[M].stu[k].name,name)==0) { printf("\n\t学号:%s\n",people[M].stu[k].rcord); printf("\n\t姓名:%s\n",people[M].stu[k].name); printf("\n\t电话:%s\n",people[M].stu[k].phone); printf("\n\tQQ:%s\n",people[M].stu[k].qq); printf("确定要删除联系人!(1是0否)"); scanf("%d",&i); if(i==1) { for(a=k;a<num-1;a++) stu[a]=stu[a+1]; num--; baochun(); } else printf("查无此人\n"); break; }} printf("是否继续删除(1是0否)"); scanf("%d",&n); if(n==1) student4(); else student();}void student4_2() //按学号删除{ int i,k,n,a; char rcord[20]; printf("请输入学号:"); scanf("%s",&rcord ); for(k=0;k<num;k++) { if(strcmp(people[M].stu[k].rcord,rcord)==0) { printf("\n\t学号:%s\n",people[M].stu[k].rcord); printf("\n\t姓名:%s\n",people[M].stu[k].name); printf("\n\t电话:%s\n",people[M].stu[k].phone); printf("\n\tQQ:%s\n",people[M].stu[k].qq); printf("确定要删除联系人!(1是0否)"); scanf("%d",&i); if(i==1) { for(a=k;a<num-1;a++) stu[a]=stu[a+1]; num--; baochun(); } else printf("查无此人\n"); }} printf("是否继续删除(1是0否)"); scanf("%d",&n); if(n==1) student4(); else student();}void student4_3() //按电话删除{ int i,k,n,a; char phone[12]; printf("请输入电话:"); scanf("%s",&phone ); for(k=0;k<num;k++) { if(strcmp(people[M].stu[k].phone,phone)==0) { printf("\n\t学号:%s\n",people[M].stu[k].rcord); printf("\n\t姓名:%s\n",people[M].stu[k].name); printf("\n\t电话:%s\n",people[M].stu[k].phone); printf("\n\tQQ:%s\n",people[M].stu[k].qq); printf("确定要删除联系人!(1是0否)"); scanf("%d",&i); if(i==1) { for(a=k;a<num-1;a++) stu[a]=stu[a+1]; num--; baochun(); } else printf("查无此人\n"); }} printf("是否继续删除(1是0否)"); scanf("%d",&n); if(n==1) student4(); else student();}
代码贴完呐
报错是数据类型不对。贴一下报错那行的代码吧。
你得把错误的那行代码贴出来,不然没法看
void zuce();改成zuce();
下同