桶装水管理系统.docx
《桶装水管理系统.docx》由会员分享,可在线阅读,更多相关《桶装水管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
![桶装水管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/5/735f4f9c-c796-4d52-918b-28162bcffb23/735f4f9c-c796-4d52-918b-28162bcffb231.gif)
桶装水管理系统
#include〈stdio。
h〉
#include〈stdlib。
h〉
#defineSIZE10
structuser_date//用户信息类型
{
charname[10];//用户名字
chartel[13];//用户电话
charAdd[10];//用户地址
intamount;//剩余桶装水数
//floatid;//用户注册账号
charsecret[20];//用户注册密码
}user[SIZE],zhuce,denglu;
intyonghu;
/************************主函数******************************************/
intmain()
{
voidjiemian();
jiemian();
return0;
}
/***************************子函数********************************************/
voidjiemian()
{
inta1;
voidjiemianxiugai();//界面修改函数
voidprintfmessege1();
voidprintfmessege2();
voidprintfmessege3();
voidyonghudenglu();//用户登录
voidyonghuzhuce();//用户注册
voidguangliyuandenglu();//管理员登录
voidyonghujiemian();//用户界面
a1=0;
jiemianxiugai();
printfmessege1();
printfmessege2();
printfmessege1();
printfmessege3();
while(!
a1)
{
scanf("%d”,&a1);//选择功能1管理员登陆2用户登录3用户注册
system(”cls”);//清屏
switch(a1)
{
case1:
guangliyuandenglu();break;
case2:
yonghudenglu();break;
case3:
yonghuzhuce();break;
default:
printf(”输入错误,请重新输入:
"),a1=0;
}
}
}
voidjiemianxiugai()//界面修改
{
system(”colorF5”);//修改窗口颜色0=黑色,8=灰色,1=蓝色,9=淡蓝色,2=绿色,A=淡绿色,
//3=湖蓝色,B=浅绿色,4=红色,C=红色,5=紫色,D=淡紫色,6=黄色,E=淡黄色,7=白色,F=亮白色
}
voidyonghudenglu()//用户登录
{
voidprintfmessege1();
printfmessege1();
printf("\t用户登陆界面\n”);
printfmessege1();
inti,ch,sh1;
FILE*fp;
if((fp=fopen("data。
dat",”rb"))==NULL)
{
printf("不能打开文件”);
exit(0);
}
voidyonghujiemian();
printf(”账号:
”);
scanf("%s”,denglu.tel);
printf("\n密码:
");
scanf(”%s”,denglu。
secret);
system("cls”);//清屏
for(i=0;i{
fread(&user[i],sizeof(structuser_date),1,fp);
if(strcmp(user[i].tel,denglu。
tel)==0)break;
elseif(i==SIZE—1)
{
printf(”没有该用户的信息!
请重新输入!
\n”);
yonghudenglu();
}
}
fclose(fp);
if(strcmp(user[i].secret,denglu。
secret)==0)
{
yonghu=i;
yonghujiemian();
}
else
{
printf("密码错误,请重新输入!
\n");
yonghudenglu();
}
}
voidyonghuzhuce()//用户注册
{
FILE*fp;
intch;
//charLinedata[50]={0},User[20],Pass[20];
//charLinedata[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(structuser_date),1,fp)!
=1)//将修改后的信息写入文件
printf("写入文件错误!
");
fclose(fp);//关闭文件
printf(”恭喜!
注册成功!
\n");
Sleep(1000);//界面持续时间是1S,在VC编译器常用
printf(”请选择:
\n1。
返回主界面”);
scanf("%d",&ch);
system(”cls”);
switch(ch)
{
case1:
main();break;
default:
exit(0);break;
}
system("cls”);//清屏
}
voidguangliyuandenglu()//管理员登录
{
FILE*fp1;
voidguangliyuanjiemian();
//system(”cls”);//清屏
if((fp1=fopen("secret.dat”,”rb+"))==NULL)//打开存储密码的文件secret.dat
{
printf("不能打开文件");
exit(0);
}
charsecret1[20],guanliyuanmima[20];
fread(secret1,20,1,fp1);
printf(”请输入管理员密码:
”);
scanf(”%s”,guanliyuanmima);
system("cls”);
if(strcmp(secret1,guanliyuanmima)==0)guangliyuanjiemian();
else
{
printf(”密码错误,请重新输入!
\n”);
guangliyuandenglu();
}
}
voidguangliyuanjiemian()//管理员界面
{
voidxiugaiguangliyuanmima();//修改管理员密码
voidchazhaoyonghuziliao();//查找用户资料
voidreadallmessege();//查看所有用户资料
voidprintfmessege1();
printfmessege1();
printf(”\t管理员界面\n");
printfmessege1();
intt2;
printf("1.修改管理员密码\n”);
printf(”2。
查找用户资料\n”);
printf("3。
查看所有用户资料\n”);
printf(”4.返回主界面\n");
scanf(”%d”,&t2);
system("cls”);//清屏
switch(t2)
{
case1:
xiugaiguangliyuanmima();break;
case2:
chazhaoyonghuziliao();break;
case3:
readallmessege();break;
case4:
main();break;
default:
printf("请重新输入!
”);
}
}
voidxiugaiguangliyuanmima()//修改管理员密码
{
voidprintfmessege1();
printfmessege1();
printf(”\t修改管理员密码\n");
printfmessege1();
charsecret2[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();//管理员界面
}
voidreadallmessege()//读取所有用户信息
{
inti,ch;
FILE*fp;
if((fp=fopen("data.dat”,"rb"))==NULL)
{
printf("不能打开文件”);
exit(0);
}
printf(”用户名\t联系电话\t地址\t剩余水桶数\n");
for(i=0;i{
if(fread(&user[i],sizeof(structuser_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)
{
case1:
guangliyuanjiemian();break;
case2:
main();break;
default:
readallmessege();break;
}
}
voidchazhaoyonghuziliao()//查找用户资料
{
voidchangemessege(intx);
voidshanchu();//删除用户信息
system("cls”);//清屏
inti,ch,sh1;
FILE*fp;
if((fp=fopen(”data.dat”,"rb”))==NULL)
{
printf(”不能打开文件”);
exit(0);
}
printf("请输入要查看的账号:
”);
scanf(”%s”,zhuce。
tel);
for(i=0;i{
fread(&user[i],sizeof(structuser_date),1,fp);
if(strcmp(user[i]。
tel,zhuce.tel)==0)break;
elseif(i==SIZE—1)
{
printf(”没有该用户的信息!
\n请选择1。
重新查找\n2.返回管理员界面\n3.返回主界面\n");
scanf("%d”,&sh1);
system(”cls”);//清屏
switch(sh1)
{
case1:
chazhaoyonghuziliao();break;
case2:
guangliyuanjiemian();break;
case3:
main();break;
default:
exit(0);
}
}
}
fseek(fp,i*sizeof(structuser_date),0);
fread(&user[i],sizeof(structuser_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)
{
case1:
changemessege(i);break;//修改用户资料
case2:
shanchu(i);break;//删除该用户
case3:
guangliyuanjiemian();break;//返回管理员界面
case4:
main();break;//返回主界面
default:
chazhaoyonghuziliao();break;//错误,重新输入
}
}
voidchangemessege(intx)//修改用户信息
{
FILE*fp;
intch,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)
{
case1:
printf("用户名:
”);scanf(”%s",user[x]。
name);break;
case2:
printf(”用户电话:
”);scanf(”%f”,&user[x].tel);break;
case3:
printf(”用户地址:
");scanf("%s",user[x].Add);break;//重新输入用户信息
case4:
printf("剩余桶装水数:
");scanf(”%d”,&user[x].amount);break;
default:
printf(”请重新选择!
"),changemessege(x);
}
fseek(fp,x*sizeof(structuser_date),0);//将文件跳到特定位置
//fseek(fp,0,SEEK_END);//文件跳到未见你最后
if(fwrite(&user[x],sizeof(structuser_date),1,fp)!
=1)//将修改后的信息写入文件
printf(”写入文件错误!
”);
fclose(fp);
printf("请选择:
1.返回主界面");
scanf(”%d",&sh1);
system(”cls”);
if(sh1==1)main();
elseexit(0);
}
voidshanchu(intx)//删除用户信息
{
FILE*fp;
inti,j;
printf("确定要删除该用户吗\n请选择:
1。
是2。
否");
scanf(”%d",&i);
switch(i)
{
case1:
;break;
case2:
guangliyuanjiemian();break;
default:
exit(0);
}
for(j=x;j〈SIZE-1;j++)
{
if(fread(&user[j],sizeof(structuser_date),1,fp)!
=1)break;
user[j]=user[j+1];
}
if((fp=fopen(”data。
dat”,”wb+”))==NULL)
{
printf("cannotopenfile\n”);
exit(0);
}
else
{
for(i=0;ifwrite(&user[i],sizeof(structuser_date),1,fp);//从结构体向文件输入数据
}
fclose(fp);
}
voidyonghujiemian()//用户界面
{
voidprintfmessege1();
printfmessege1();
printf(”\t用户界面\n");
printfmessege1();
intch;
voidxiugaigerenxinxi();//修改个人信息
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)
{
case1:
xiugaigerenxinxi();break;
case2:
jiemian();break;
case3:
main();
}
}
voidxiugaigerenxinxi()//修改个人信息
{
voidprintfmessege1();
printfmessege1();
printf(”\t用户信息修改\n");
printfmessege1();
printf(”修改个人信息\n”);
FILE*fp;
intch;
if((fp=fopen("data。
dat","rb+"))==NULL)
{
printf("文件打开失败”);
return;
}
//fread(&user[y],sizeof(structuser_date),1,fp);
printf("请选择要修改的信息:
\n");
printf("1。
用户名\n2.用户电话\n3。
用户地址\n4。
用户密码\n”);
scanf(”%d",&ch);
system("cls");
switch(ch)
{
case1:
printf(”用户名:
");scanf("%s”,user[yonghu]。
name);break;
case2:
printf("用户电话:
”);scanf("%f",&user[yonghu]。
tel);break;
case3:
printf("用户地址:
”);scanf(”%s",user[yonghu]。
Add);break;//重新输入用户信息
case4:
printf(”用户密码:
”);scanf(”%s",user[yonghu]。
secret);break;
default:
printf("请重新选择!
”),xiugaigerenxinxi(yonghu);
}
fseek(fp,yonghu*sizeof(structuser_date),0);//将文件跳到特定位置
if(fwrite(&user[yonghu],sizeof(structuser_date),1,fp)!
=1)//将修改后的信息写入文件
printf(”写入文件错误!
");
fclose(fp);
printf(”恭喜!
修改成功\n”);
Sleep(1000);
printf(”即将返回用户界面\n”);
Sleep(1000);
system(”cls");
yonghujiemian(yonghu);
}
voidprintfmessege1()
{printf("|******************************|\n");
}
voidprintfmessege2()
{
printf(”欢迎登录桶装水用户管理系统\n");
}
voidprintfmessege3()
{
printf(”请选择:
\n1。
管理员登录\n2.用户登录\n3.用户注册\n”);
}