#include
#include
#include
#include
#include
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:用户登录"<>chioce;
while(chioce<0||chioce>3)
{
cout<<"输入范围错误,重新输入"<>chioce;
}
return chioce;
}
/*打印评价列表*/
void Print_Eva()
{
int i;
system("cls");
printf("%-20s%-50s%-5s","评价人","评价","评分");
cout<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<<"文件不能被打开!"<=1)
{
goods_num=i;
}
else
{
goods_num=0;
}
}
/*保存商品信息*/
void Save_Goods_File()
{
ofstream fileout("goods.txt",ios::binary);
if(!fileout)
{
cout<<"文件不能被打开!"<=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<<"文件不能被打开!"<>flag;
if('Y'==flag||'y'==flag)
{
for(i=0;i>id;
for(i=0;i>goods[goods_num].id;
for(i=0;i>goods[goods_num].name;
cout<<"请输入新商品价格"<>goods[goods_num].price;
goods_num++;
cout<<"添加商品成功!"<>id;
for(i=0;i>chioce;
while(chioce<0||chioce>7)
{
cout<<"输入范围错误,重新输入"<>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;igoods[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>temp;
if(temp=='Y'||temp=='y')
{
fflush(stdin);
cout<<"请输入新密码:"<>id;
for(i=0;i<*num;i++)
{
if(id==have_buy[i].id)
{
cout<<"已购买该商品"<>temp;
if('Y'==temp||'y'==temp)
{
have_buy[*num]=goods[i];
(*num)++;
cout<<"购买成功!"<>eva[eva_num].score;
while(eva[eva_num].score<0||eva[eva_num].score>5)
{
cout<<"评分只能在0-5,请重新输入"<>eva[eva_num].score;
}
cout<<"是否确认发布评价?Y/N"<>temp;
if('Y'==temp||'y'==temp)
{
cout<<"发布成功!"<>chioce;
while(chioce<0||chioce>9)
{
cout<<"输入范围错误,重新输入"<>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<<"密码错误"<