#include<iostream>
#include<string>
#include<fstream>
#include<stdlib.h>
#include<string.h>
using namespace std;
char ADMIN_PASSWD[20]="123"; //管理员初始密码
#define USER_MAX_SIZE 100 //控制最大值
#define GOODS_MAX_SIZE 100 //商品最大值
#define Evaluate_MAX_SIZE 100 //商品最大值
typedef struct
{
char id[20];//评价人
char str[50];//内容
float score;//评分
}Evaluate;
Evaluate eva[Evaluate_MAX_SIZE];
int eva_num=0;//记录评价数量
typedef struct
{
char id[20];//账号
char tel[20];//电话
char passwd[20];//密码
char name[20];//姓名
}User;//用户信息
User user[USER_MAX_SIZE];
int user_num=0;//记录用户数量
char now_user[20];//当前用户ID
typedef struct
{
int id;//编号
char name[30];//名称
float price;//价格
}Goods;
Goods goods[GOODS_MAX_SIZE]=
{
1,"大米饭",1.0,
2,"冷面",3.0,
3,"兰州拉面",5,
4,"刀削面",5,
5,"菜粥",0.5,
6,"南瓜粥",1,
7,"糯米粥",1,
8,"黑米粥",1,
9,"燕麦粥",1,
10,"红烧肉",3,
11,"红烧鱼",5,
12,"北京烤鸭",10,
13,"啤酒鸭",6,
14,"猪肚",8,
15,"牛肉",15,
16,"青菜",0.8,
17,"白菜",1,
18,"韭菜",1,
19,"常豆",1.5,
20,"扁豆",1.5,
21,"豌豆",1.6,
22,"丝瓜",1,
23,"黄瓜",1.5,
24,"排骨汤",5,
25,"鲫鱼汤",6,
26,"番茄蛋汤",2,
27,"糯米丸子汤",3,
28,"可乐",2,
29,"雪碧",3.5,
30,"果粒橙",3.5,
31,"农夫果园",4,
32,"农夫山泉",2,
33,"白开水",0
};
int goods_num=33;//记录商品数量
/*进入系统后 登录选项菜单*/
int Login_Menu()
{
int chioce;
system("cls");
cout<<"1:用户登录"<<endl;
cout<<"2:用户注册"<<endl;
cout<<"3:管理员登录"<<endl;
cout<<"0:退出"<<endl;
cin>>chioce;
while(chioce<0||chioce>3)
{
cout<<"输入范围错误,重新输入"<<endl;
cin>>chioce;
}
return chioce;
}
/*打印评价列表*/
void Print_Eva()
{
int i;
system("cls");
printf("%-20s%-50s%-5s","评价人","评价","评分");
cout<<endl;
for(i=0;i<eva_num;i++)
{
printf("%-20s%-50s%.1f",eva[i].id,eva[i].str,eva[i].score);
cout<<endl;
}
system("pause");
}
/*显示商品信息*/
void Print_Goods()
{
int i;
system("cls");
printf("%-10s%-20s%5s\n","编号","名称","价格");
for(i=0;i<goods_num;i++)
{
printf("%-10d%-20s%5.1f\n",goods[i].id,goods[i].name,goods[i].price);
}
system("pause");
}
/*对商品按编号进行排序*/
void Sort_Goods_Id()
{
int i,j;
Goods temp;
for(i=0;i<goods_num;i++)
{
for(j=i+1;j<goods_num;j++)
{
if(goods[i].id>goods[j].id)
{
temp=goods[i];
goods[i]=goods[j];
goods[j]=temp;
}
}
}
}
/*加载评价信息*/
void Load_Eva_File()
{
int i=0;
ifstream filein("eva.txt",ios::binary);
while(filein)
{
filein.read((char*)&eva[i],sizeof(Evaluate));
i++;
}
if(i>=1)
{
eva_num=i-1;
}
else
{
eva_num=0;
}
}
/*保存评价信息*/
void Save_Eva_File()
{
ofstream fileout("eva.txt",ios::binary);
if(!fileout)
{
cout<<"文件不能被打开!"<<endl;
return ;
}
for(int i=0;i<goods_num;i++)
{
fileout.write((char*)&eva[i],sizeof(Evaluate));
}
fileout.close();
}
/*加载商品信息*/
void Load_Goods_File()
{
int i=goods_num;
ifstream filein("goods.txt",ios::binary);
while(filein)
{
filein.read((char*)&goods[i],sizeof(Goods));
i++;
}
if(i>=1)
{
goods_num=i;
}
else
{
goods_num=0;
}
}
/*保存商品信息*/
void Save_Goods_File()
{
ofstream fileout("goods.txt",ios::binary);
if(!fileout)
{
cout<<"文件不能被打开!"<<endl;
return ;
}
for(int i=0;i<goods_num;i++)
{
fileout.write((char*)&goods[i],sizeof(Goods));
}
fileout.close();
}
/*加载用户信息*/
void Load_User_File()
{
int i=0;
ifstream filein("user.txt",ios::binary);
while(filein)
{
filein.read((char*)&user[i],sizeof(User));
i++;
}
if(i>=1)
{
user_num=i-1;
}
else
{
user_num=0;
}
}
/*加载管理员密码*/
void Load_Admin_file()
{
ifstream filein("admin.txt",ios::binary);
if(filein)
{
filein.read(ADMIN_PASSWD,sizeof(char)*20);
}
filein.close();
}
/*保存管理员密码*/
void Save_Admin_File()
{
ofstream fileout("admin.txt",ios::binary);
if(!fileout)
{
cout<<"文件不能被打开!"<<endl;
return ;
}
fileout.write(ADMIN_PASSWD,sizeof(char)*20);
fileout.close();
}
/*保存用户信息*/
void Save_User_File()
{
ofstream fileout("user.txt",ios::binary);
if(!fileout)
{
cout<<"文件不能被打开!"<<endl;
return ;
}
for(int i=0;i<user_num;i++)
{
fileout.write((char*)&user[i],sizeof(User));
}
fileout.close();
}
/*管理员登录模块*/
bool Admin_Login()
{
char temp[50];
system("cls");
cout<<"请输入管理员密码"<<endl;
fflush(stdin);
cin.getline(temp,49,'\n');
if(strcmp(temp,ADMIN_PASSWD))
{
return false;
}
return true;
}
/*用户注册模块*/
void User_Reg()
{
char flag;
int i,temp=1;
system("cls");
cout<<"请输入您的真实姓名"<<endl;
fflush(stdin);
cin.getline(user[user_num].name,19,'\n');
cout<<"请输入您的昵称"<<endl;
fflush(stdin);
cin.getline(user[user_num].id,19,'\n');
cout<<"请输入您的手机号码"<<endl;
fflush(stdin);
cin.getline(user[user_num].tel,19,'\n');
cout<<"请输入您的登录密码"<<endl;
fflush(stdin);
cin.getline(user[user_num].passwd,19,'\n');
cout<<"确认注册该账号?Y/N"<<endl;
fflush(stdin);
cin>>flag;
if('Y'==flag||'y'==flag)
{
for(i=0;i<user_num;i++)
{
if(!strcmp(user[i].id,user[user_num].id))
{
cout<<"该昵称已被注册!"<<endl;
temp=0;
break;
}
}
if(temp)
{
user_num++;
cout<<"注册成功!"<<endl;
Save_User_File();
}
}
else
{
cout<<"注册失败!"<<endl;
}
system("pause");
}
/*用户登录模块*/
bool User_Login()
{
int i;
char id[50],passwd[50];
system("cls");
cout<<"请输入用户ID"<<endl;
fflush(stdin);
cin.getline(id,49,'\n');
cout<<"请输入用户密码"<<endl;
fflush(stdin);
cin.getline(passwd,49,'\n');
for(i=0;i<user_num;i++)
{
if(!strcmp(user[i].id,id)&&!strcmp(user[i].passwd,passwd))
{
cout<<"登录成功!"<<endl;
strcpy(now_user,id);
system("pause");
return true;
}
}
cout<<"ID或密码错误!"<<endl;
cout<<"登录失败!"<<endl;
system("pause");
return false;
}
/*修改管理员密码*/
void Modify_Admin_Passwd()
{
char temp[20];
system("cls");
cout<<"当前密码为:"<<ADMIN_PASSWD<<endl;
cout<<"请输入新密码"<<endl;
fflush(stdin);
cin.getline(temp,19,'\n');
strcpy(ADMIN_PASSWD,temp);
cout<<"修改成功!"<<endl;
system("pause");
}
/*删除用户*/
void Delete_User()
{
char id[20];
int i,j,flag=1;
system("cls");
cout<<"请输入要删除的id"<<endl;
fflush(stdin);
cin>>id;
for(i=0;i<user_num;i++)
{
if(!strcmp(id,user[i].id))
{
for(j=i;j<user_num;j++)
{
user[j]=user[j+1];
}
user_num--;
flag=0;
cout<<"删除成功!"<<endl;
break;
}
}
if(flag)
{
cout<<"无该id,删除失败"<<endl;
}
system("pause");
}
/*新增商品*/
void Add_Goods()
{
int i;
system("cls");
cout<<"请输入新商品编号"<<endl;
fflush(stdin);
cin>>goods[goods_num].id;
for(i=0;i<goods_num;i++)
{
if(goods[i].id==goods[goods_num].id)
{
cout<<"已存在该商品编号"<<endl;
cout<<"添加失败"<<endl;
system("pause");
return;
}
}
cout<<"请输入新商品名称"<<endl;
fflush(stdin);
cin>>goods[goods_num].name;
cout<<"请输入新商品价格"<<endl;
fflush(stdin);
cin>>goods[goods_num].price;
goods_num++;
cout<<"添加商品成功!"<<endl;
system("pause");
}
/*下架该商品*/
void Del_Goods()
{
int i,j,id,flag=1;
system("cls");
cout<<"请输入要下架商品编号"<<endl;
fflush(stdin);
cin>>id;
for(i=0;i<goods_num;i++)
{
if(goods[i].id==id)
{
for(j=i;j<goods_num;j++)
{
goods[j]=goods[j+1];
}
cout<<"删除该商品成功!"<<endl;
flag=0;
goods_num--;
break;
}
}
if(flag)
{
cout<<"删除失败,无该商品编号!"<<endl;
}
system("pause");
}
/*打印所有用户信息*/
void Print_All_User_Info()
{
int i;
system("cls");
printf("%-20s%-20s%-20s\n","姓名","账号","密码","手机号码");
for(i=0;i<user_num;i++)
{
printf("%-20s%-20s%-20s\n",user[i].name,user[i].id,user[i].passwd,user[i].tel);
}
system("pause");
}
/*管理员菜单模块*/
void Admin_Menu()
{
int chioce;
do
{
system("cls");
cout<<"1:添加新商品"<<endl;
cout<<"2:下架已有商品"<<endl;
cout<<"3:查看所有用户信息"<<endl;
cout<<"4:删除违规用户"<<endl;
cout<<"5:修改管理员密码"<<endl;
cout<<"6:查看所有商品"<<endl;
cout<<"7:查看顾客评价"<<endl;
cout<<"0:返回登录界面"<<endl;
fflush(stdin);
cin>>chioce;
while(chioce<0||chioce>7)
{
cout<<"输入范围错误,重新输入"<<endl;
cin>>chioce;
}
switch(chioce)
{
case 1:
Add_Goods();
Save_Goods_File();
break;
case 2:
Del_Goods();
Save_Goods_File();
break;
case 3:
Print_All_User_Info();
break;
case 4:
Delete_User();
Save_User_File();
break;
case 5:
Modify_Admin_Passwd();
Save_Admin_File();
break;
case 6:
Sort_Goods_Id();
Print_Goods();
break;
case 7:
Print_Eva();
break;
}
}while(chioce);
}
/*对商品按价格升序排序*/
void Sort_Goods_Price_Low_To_High()
{
int i,j;
Goods temp;
for(i=0;i<goods_num;i++)
{
for(j=i+1;j<goods_num;j++)
{
if(goods[i].price>goods[j].price)
{
temp=goods[i];
goods[i]=goods[j];
goods[j]=temp;
}
}
}
}
/*对商品按价格降序排序*/
void Sort_Goods_Price_High_To_Low()
{
int i,j;
Goods temp;
for(i=0;i<goods_num;i++)
{
for(j=i+1;j<goods_num;j++)
{
if(goods[i].price<goods[j].price)
{
temp=goods[i];
goods[i]=goods[j];
goods[j]=temp;
}
}
}
}
/*打印个人信息*/
void Print_Own_Info()
{
int i,flag=1;
system("cls");
for(i=0;i<user_num;i++)
{
if(!strcmp(now_user,user[i].id))
{
printf("%-20s%-20s%-20s\n","姓名","账号","密码","手机号码");
printf("%-20s%-20s%-20s\n",user[i].name,user[i].id,user[i].passwd,user[i].tel);
break;
}
}
system("pause");
}
/*修改密码*/
void Modify_Passwd()
{
int i;
char temp;
system("cls");
for(i=0;i<user_num;i++)
{
if(!strcmp(now_user,user[i].id))
{
printf("%-20s%-20s%-20s\n","姓名","账号","密码","手机号码");
printf("%-20s%-20s%-20s\n",user[i].name,user[i].id,user[i].passwd,user[i].tel);
break;
}
}
cout<<"确认修改当前密码?Y/N"<<endl;
fflush(stdin);
cin>>temp;
if(temp=='Y'||temp=='y')
{
fflush(stdin);
cout<<"请输入新密码:"<<endl;
cin.getline(user[i].passwd,19,'\n');
cout<<"修改密码成功!"<<endl;
}
else
{
cout<<"您已取消修改!"<<endl;
}
system("pause");
}
/*查看已经购买的商品*/
void Printf_Have_Buy_Goods(Goods* have_buy,int* num)
{
int i;
float total=0;
system("cls");
printf("%-10s%-20s%5s\n","编号","名称","价格");
for(i=0;i<*num;i++)
{
printf("%-10d%-20s%5.1f\n",goods[i].id,goods[i].name,goods[i].price);
total+=goods[i].price;
}
cout<<"共计购买"<<(*num)<<"件商品"<<endl;
cout<<"共计"<<total<<"元"<<endl;
system("pause");
}
/*购买商品*/
void Buy_Goods(Goods* have_buy,int* num)
{
int id,i,flag=1;
char temp;
system("cls");
cout<<"请输入要购买的商品编号"<<endl;
fflush(stdin);
cin>>id;
for(i=0;i<*num;i++)
{
if(id==have_buy[i].id)
{
cout<<"已购买该商品"<<endl;
system("pause");
return ;
}
}
for(i=0;i<goods_num;i++)
{
if(goods[i].id==id)
{
printf("%-10s%-20s%5s\n","编号","名称","价格");
printf("%-10d%-20s%5.1f\n",goods[i].id,goods[i].name,goods[i].price);
flag=0;
break;
}
}
if(flag)
{
cout<<"无该商品编号"<<endl;
system("pause");
return ;
}
cout<<"确定购买该商品?Y/N"<<endl;
fflush(stdin);
cin>>temp;
if('Y'==temp||'y'==temp)
{
have_buy[*num]=goods[i];
(*num)++;
cout<<"购买成功!"<<endl;
}
else
{
cout<<"您已取消购买!"<<endl;
}
system("pause");
}
/*评价商品*/
void Eva_Goods()
{
char temp;
system("cls");
strcpy(eva[eva_num].id,now_user);
cout<<"请输入您的评价"<<endl;
fflush(stdin);
cin.getline(eva[eva_num].str,49,'\n');
cout<<"请输入您的评分(0-5)"<<endl;
fflush(stdin);
cin>>eva[eva_num].score;
while(eva[eva_num].score<0||eva[eva_num].score>5)
{
cout<<"评分只能在0-5,请重新输入"<<endl;
fflush(stdin);
cin>>eva[eva_num].score;
}
cout<<"是否确认发布评价?Y/N"<<endl;
cin>>temp;
if('Y'==temp||'y'==temp)
{
cout<<"发布成功!"<<endl;
eva_num++;
}
else
{
cout<<"您已经取消发布"<<endl;
}
system("pause");
}
/*用户菜单模块*/
void User_Menu()
{
Goods have_buy[GOODS_MAX_SIZE];
int buy_num=0;
int chioce;
do
{
system("cls");
cout<<"1:按编号查看商品"<<endl;
cout<<"2:按价格升序查看商品"<<endl;
cout<<"3:按价格降序查看商品"<<endl;
cout<<"4:订餐"<<endl;
cout<<"5:查看已购信息"<<endl;
cout<<"6:查看个人信息"<<endl;
cout<<"7:修改密码"<<endl;
cout<<"8:评价商家"<<endl;
cout<<"9:查看所有评价"<<endl;
cout<<"0:返回登录界面"<<endl;
fflush(stdin);
cin>>chioce;
while(chioce<0||chioce>9)
{
cout<<"输入范围错误,重新输入"<<endl;
cin>>chioce;
}
switch(chioce)
{
case 1:
Sort_Goods_Id();
Print_Goods();
break;
case 2:
Sort_Goods_Price_Low_To_High();
Print_Goods();
break;
case 3:
Sort_Goods_Price_High_To_Low();
Print_Goods();
break;
case 4:
Buy_Goods(have_buy,&buy_num);
break;
case 5:
Printf_Have_Buy_Goods(have_buy,&buy_num);
break;
case 6:
Print_Own_Info();
break;
case 7:
Modify_Passwd();
Save_User_File();
break;
case 8:
Eva_Goods();
Save_Eva_File();
break;
case 9:
Print_Eva();
break;
}
}while(chioce);
}
/*跳转到登录选项*/
void Goto_Login_Chioce(int chioce)
{
switch(chioce)
{
case 0:
exit(0);
break;
case 1:
if(User_Login())
{
User_Menu();
}
break;
case 2:
User_Reg();
break;
case 3:
if(Admin_Login())
{
Admin_Menu();
}
else
{
cout<<"密码错误"<<endl;
system("pause");
}
break;
}
}
/*主函数*/
int main()
{
int chioce;
Load_User_File();
Load_Admin_file();
Load_Goods_File();
Load_Eva_File();
do
{
chioce=Login_Menu();
Goto_Login_Chioce(chioce);
}while(chioce);
return 0;
}
订餐管理系统
最新推荐文章于 2024-02-09 14:08:09 发布