课程设计桶装水管理系统,运行不了,求教!
程序代码:
#include<stdio.h> #include<stdlib.h> #define SIZE 10 #include<string.h> //#include<WinBase.h> #include<windows.h> struct user_date //用户信息类型 { char name[10];//用户名字 char tel[13]; //用户电话 char Add[10]; //用户地址 int amount; //剩余桶装水数 //float id; //用户注册账号 char secret[20]; //用户注册密码 }user[SIZE],zhuce,denglu; int yonghu; /************************主函数******************************************/ int main() { void jiemian(); jiemian(); return 0; } /***************************子函数********************************************/ void jiemian() { int a1; void jiemianxiugai();//界面修改函数 void printfmessege1(); void printfmessege2(); void printfmessege3(); void yonghudenglu();//用户登录 void yonghuzhuce();//用户注册 void guangliyuandenglu();//管理员登录 void yonghujiemian();//用户界面 a1=0; jiemianxiugai(); printfmessege1(); printfmessege2(); printfmessege1(); printfmessege3(); while(!a1) { scanf("%d",&a1);//选择功能1管理员登陆2用户登录3用户注册 system("cls");//清屏 switch(a1) { case 1:guangliyuandenglu();break; case 2:yonghudenglu();break; case 3:yonghuzhuce();break; default:printf("输入错误,请重新输入:"),a1=0; } } } void jiemianxiugai()//界面修改 { system("color F5"); //修改窗口颜色0=黑色,8=灰色,1=蓝色,9=淡蓝色,2=绿色,A=淡绿色, //3=湖蓝色,B=浅绿色,4=红色,C=红色,5=紫色,D=淡紫色,6=黄色,E=淡黄色,7=白色,F=亮白色 } void yonghudenglu()//用户登录 { void printfmessege1(); printfmessege1(); printf("\t用户登陆界面\n"); printfmessege1(); int i,ch,sh1; FILE *fp; if((fp=fopen("data.dat","rb"))==NULL) { printf("不能打开文件"); exit(0); } void yonghujiemian(); printf("账号:"); scanf("%s",denglu.tel); printf("\n密码:"); scanf("%s",denglu.secret); system("cls");//清屏 for(i=0;i<SIZE;i++) { fread(&user[i],sizeof(struct user_date),1,fp); if(strcmp(user[i].tel,denglu.tel)==0) break; else if(i==SIZE-1) { printf("没有该用户的信息!请重新输入!\n"); yonghudenglu(); } } fclose(fp); if(strcmp(user[i].secret,denglu.secret)==0) { yonghu=i; yonghujiemian(); } else { printf("密码错误,请重新输入!\n"); yonghudenglu(); } } void yonghuzhuce()//用户注册 { FILE *fp; int ch; //char Linedata[50]={0},User[20],Pass[20]; //char Linedata[70]={0},name[10], Add[10],secret[20],tel[20]; if((fp=fopen("data.dat","rb+"))==NULL)//向文件写数据 { if((fp=fopen("data.dat","wb"))==NULL)//向文件写数据 { printf("不能打开文件"); exit(0); } } fseek(fp,0,2); printf("注册信息登记:\n"); printf("请输入你的名字:\n"); fflush(stdin); gets(zhuce.name); printf("请输入你的电话号码:\n"); fflush(stdin); gets(zhuce.tel); printf("请输入你的地址:\n"); fflush(stdin); gets(zhuce.Add); printf("请输入你的密码:\n"); fflush(stdin); gets(zhuce.secret); if(fwrite(&zhuce,sizeof(struct user_date),1,fp)!=1)//将修改后的信息写入文件 printf("写入文件错误!"); fclose(fp); //关闭文件 printf("恭喜!注册成功!\n"); Sleep(1000); //界面持续时间是1S,在VC编译器常用 printf("请选择:\n1.返回主界面"); scanf("%d",&ch); system("cls"); switch(ch) { case 1:main();break; default:exit(0);break; } system("cls");//清屏 } void guangliyuandenglu()//管理员登录 { FILE *fp1; void guangliyuanjiemian(); //system("cls");//清屏 if((fp1=fopen("secret.dat","rb+"))==NULL)//打开存储密码的文件secret.dat { printf("不能打开文件"); exit(0); } char secret1[20],guanliyuanmima[20]; fread(secret1,20,1,fp1); printf("请输入管理员密码:"); scanf("%s",guanliyuanmima); system("cls"); if(strcmp(secret1,guanliyuanmima)==0) guangliyuanjiemian(); else { printf("密码错误,请重新输入!\n"); guangliyuandenglu(); } } void guangliyuanjiemian()//管理员界面 { void xiugaiguangliyuanmima();//修改管理员密码 void chazhaoyonghuziliao();//查找用户资料 void readallmessege();//查看所有用户资料 void printfmessege1(); printfmessege1(); printf("\t管理员界面\n"); printfmessege1(); int t2; printf("1.修改管理员密码\n"); printf("2.查找用户资料\n"); printf("3.查看所有用户资料\n"); printf("4.返回主界面\n"); scanf("%d",&t2); system("cls");//清屏 switch(t2) { case 1:xiugaiguangliyuanmima();break; case 2:chazhaoyonghuziliao();break; case 3:readallmessege();break; case 4:main();break; default:printf("请重新输入!"); } } void xiugaiguangliyuanmima()//修改管理员密码 { void printfmessege1(); printfmessege1(); printf("\t修改管理员密码\n"); printfmessege1(); char secret2[20]; printf("请输入更改的密码:\n"); fflush(stdin); gets(secret2); FILE *fp1; if((fp1=fopen("secret.dat","rb+"))==NULL) { printf("文件打开失败"); return; } //system("cls");//清屏 //fwrite(secret2,20,1,fp2); fwrite(secret2,20,1,fp1); fclose(fp1); //关闭文件 //system("cls"); printf("恭喜!修改成功\n"); Sleep(1000); printf("即将返回管理员界面"); Sleep(1000); system("cls"); guangliyuanjiemian();//管理员界面 } void readallmessege()//读取所有用户信息 { int i,ch; FILE*fp; if((fp=fopen("data.dat","rb"))==NULL) { printf("不能打开文件"); exit(0); } printf("用户名\t 联系电话\t 地址\t 剩余水桶数\n"); for(i=0;i<SIZE;i++) { if(fread(&user[i],sizeof(struct user_date),1,fp)!=1) break; printf("%-10s%-13s %-10s %-5d\n",user[i].name,user[i].tel,user[i].Add,user[i].amount); } fclose(fp); printf("请选择:\n1.返回上一步\n2.返回主界面"); scanf("%d",&ch); system("cls");//清屏 switch(ch) { case 1:guangliyuanjiemian();break; case 2:main();break; default:readallmessege();break; } } void chazhaoyonghuziliao()//查找用户资料 { void changemessege(int x); void shanchu();//删除用户信息 system("cls");//清屏 int i,ch,sh1; FILE*fp; if((fp=fopen("data.dat","rb"))==NULL) { printf("不能打开文件"); exit(0); } printf("请输入要查看的账号:"); scanf("%s",zhuce.tel); for(i=0;i<SIZE;i++) { fread(&user[i],sizeof(struct user_date),1,fp); if(strcmp(user[i].tel,zhuce.tel)==0) break; else if(i==SIZE-1) { printf("没有该用户的信息!\n请选择1.重新查找\n2.返回管理员界面\n3.返回主界面\n"); scanf("%d",&sh1); system("cls");//清屏 switch(sh1) { case 1:chazhaoyonghuziliao();break; case 2:guangliyuanjiemian();break; case 3:main();break; default:exit(0); } } } fseek(fp,i*sizeof(struct user_date),0); fread(&user[i],sizeof(struct user_date),1,fp); printf("用户名\t 联系电话\t 地址\t 剩余水桶数\n"); printf("%-10s%-13s %-10s %-5d\n",user[i].name,user[i].tel,user[i].Add,user[i].amount); fclose(fp); printf("请选择:\n1.修改用户资料\n2.删除该用户\n3.返回上一步\n4.返回主界面\n"); scanf("%d",&ch); system("cls");//清屏 switch(ch) { case 1:changemessege(i);break; //修改用户资料 case 2:shanchu(i);break; //删除该用户 case 3:guangliyuanjiemian();break; //返回管理员界面 case 4:main();break; //返回主界面 default:chazhaoyonghuziliao();break;//错误,重新输入 } } void changemessege(int x)//修改用户信息 { FILE*fp; int ch,sh1; if((fp=fopen("data.dat","rb+"))==NULL) { printf("文件打开失败"); return; } printf("请选择要修改的信息:\n"); printf("1.用户名\n2.用户电话\n3.用户地址\n4.剩余桶装水数\n"); scanf("%d",&ch); system("cls"); switch(ch) { case 1:printf("用户名:");scanf("%s",user[x].name);break; case 2:printf("用户电话:");scanf("%f",&user[x].tel);break; case 3:printf("用户地址:");scanf("%s",user[x].Add);break;//重新输入用户信息 case 4:printf("剩余桶装水数:");scanf("%d",&user[x].amount);break; default:printf("请重新选择!"),changemessege(x); } fseek(fp,x*sizeof(struct user_date),0);//将文件跳到特定位置 //fseek(fp,0,SEEK_END); //文件跳到未见你最后 if(fwrite(&user[x],sizeof(struct user_date),1,fp)!=1)//将修改后的信息写入文件 printf("写入文件错误!"); fclose(fp); printf("请选择:1.返回主界面"); scanf("%d",&sh1); system("cls"); if(sh1==1) main(); else exit(0); } void shanchu(int x)//删除用户信息 { FILE *fp; int i,j; printf("确定要删除该用户吗\n请选择:1.是 2.否"); scanf("%d",&i); switch(i) { case 1:;break; case 2:guangliyuanjiemian();break; default:exit(0); } for(j=x;j<SIZE-1;j++) { if(fread(&user[j],sizeof(struct user_date),1,fp)!=1) break; user[j]=user[j+1]; } if((fp=fopen("data.dat","wb+"))==NULL) { printf("cannot open file\n"); exit(0); } else { for(i=0;i<SIZE-1;i++) fwrite(&user[i],sizeof(struct user_date),1,fp);//从结构体向文件输入数据 } fclose(fp); } void yonghujiemian()//用户界面 { void printfmessege1(); printfmessege1(); printf("\t用户界面\n"); printfmessege1(); int ch; void xiugaigerenxinxi();//修改个人信息 printf("用户信息:\n"); printf("用户名\t 联系电话\t 地址\t 剩余水桶数\n"); printf("%-10s%-13s %-10s %-5d\n",user[yonghu].name,user[yonghu].tel,user[yonghu].Add,user[yonghu].amount); printf("请选择:\n"); printf("1.修改个人信息\n2.返回上一步\n"); scanf("%d",&ch); system("cls");//清屏 switch(ch) { case 1:xiugaigerenxinxi();break; case 2:jiemian();break; case 3:main(); } } void xiugaigerenxinxi()//修改个人信息 { void printfmessege1(); printfmessege1(); printf("\t用户信息修改\n"); printfmessege1(); printf("修改个人信息\n"); FILE*fp; int ch; if((fp=fopen("data.dat","rb+"))==NULL) { printf("文件打开失败"); return; } //fread(&user[y],sizeof(struct user_date),1,fp); printf("请选择要修改的信息:\n"); printf("1.用户名\n2.用户电话\n3.用户地址\n4.用户密码\n"); scanf("%d",&ch); system("cls"); switch(ch) { case 1:printf("用户名:");scanf("%s",user[yonghu].name);break; case 2:printf("用户电话:");scanf("%f",&user[yonghu].tel);break; case 3:printf("用户地址:");scanf("%s",user[yonghu].Add);break;//重新输入用户信息 case 4:printf("用户密码:");scanf("%s",user[yonghu].secret);break; default:printf("请重新选择!"),xiugaigerenxinxi(yonghu); } fseek(fp,yonghu*sizeof(struct user_date),0);//将文件跳到特定位置 if(fwrite(&user[yonghu],sizeof(struct user_date),1,fp)!=1)//将修改后的信息写入文件 printf("写入文件错误!"); fclose(fp); printf("恭喜!修改成功\n"); Sleep(1000); print ("即将返回用户界面\n"); Sleep(1000); system("cls"); yonghujiemian(yonghu); } void printfmessege1() { printf("|******************************|\n"); } void printfmessege2() { printf("欢迎登录桶装水用户管理系统\n"); } void printfmessege3() { printf("请选择:\n1.管理员登录\n2.用户登录\n3.用户注册\n"); }
提示下面的错误
--------------------Configuration: Barrelledwater - Win32 Debug--------------------
Compiling...
Barrelledwater.cpp
c:\program files (x86)\microsoft visual studio\vc98\include\windef.h(322) : warning C4091: 'typedef ' : ignored on left of 'struct tagSIZE' when no variable is declared
c:\program files (x86)\microsoft visual studio\vc98\include\windef.h(322) : error C2143: syntax error : missing ';' before 'constant'
c:\program files (x86)\microsoft visual studio\vc98\include\windef.h(322) : fatal error C1004: unexpected end of file found
执行 cl.exe 时出错.
Barrelledwater.exe - 1 error(s), 0 warning(s)