大一课设
大一做了个课程设计,没用到什么高级算法或者比较难的语法,只是单纯的想发一发。(勿喷)
整个课设我分成了三个代码:一个是主程序,另外两个是生成原始数据(随机)
关于代码原创问题:
1、其中随机数生成我参考这篇文章
https://blog.csdn.net/Appppiiiiggg/article/details/134877444
2、原始数据也是找的百度百科和网上搜的网站生成,代码中这些仓库中的原始数据(即字符串数组)由我的同学整理,其余皆是我一人独立完成
// product_sport_data.txt运动仓库----2
// product_cloth_data.txt衣服仓库----3
// product_pens_data.txt文具仓库----4
// product_machine_data.txt家电仓库----5
此外,本人学艺不精,在文件生成和使用这部分有大量重复(勿喷)
第一段:主程序
#include<bits/stdc++.h>
using namespace std;
// product_food_data.txt食品仓库----1
// product_sport_data.txt运动仓库----2
// product_cloth_data.txt衣服仓库----3
// product_pens_data.txt文具仓库----4
// product_machine_data.txt家电仓库----5
const int N=999;
// ifstream infile("custom_data.txt", ios::in);//读取文件 infile先赋值给元素再输出元素
// infile >> productname[j];
// ofstream outfile("custom_data.txt", ios::app);//追加写入文件 存入记得加入分隔" "
//outfile << productname[s] << " ";
// ofstream back_outfile("custom_data.txt", ios::out);//清空后写入 只要加入这一行就会清空所有custom_data文件
int product_size[6]={0,114,53,51,50,50};//便于后续添加商品(更改代码)
struct product_infor
{
int num;//编号
string name;
int stock;//库存
int price;//单价
};
struct habit//方便用户和商品之间建立联系
{
int elemt;//1-食品
int num;//商品编号
int times;//购买次数
};
struct custom_infor
{
string name;
string password;
int shop_sum_x;//控制i的变化
int shop_sum_elem[N];//在第[i]次买了对应elem
int shop_sum_num[N];//在第[i]次买了对应num
int shop_sum_sum[N];//在第[i]次买了对应elem
int times;//购买商品的数量或次数:便于后续循环
habit product[999];//999指的是times,这边取一个比较大的数字
};
struct custom_infor custom[N];//用于存入整个用户文件信息,排序后在重新写入文件
struct product_infor product[N][N];
struct custom_infor all_custom;//全局变量,一次登录为一位消费者服务
//---------------------------------------------------------------
// int rand_int(int minn,int maxn)//网上查找https://blog.csdn.net/Appppiiiiggg/article/details/134877444
// {
// srand(time(NULL));
// int b = minn+rand()%(maxn-minn+1);
// return b;
// }
//------------------------------------------------------------
int string_to_int(string a)
{
int num=0;
int base=1;
for(int i=a.size()-1;i>=0;i--)
{
int aa=int(a[i]-'0');
num+=(aa*base);
base*=10;
}
return num;
}
void product_find(int pnum)
{
cout<<"商品编号-----商品名称-----商品单价-----商品库存"<<endl;
string a[product_size[pnum]],b[product_size[pnum]],c[product_size[pnum]],d[product_size[pnum]];
if(pnum==1)
{
ifstream infile("product_food_data.txt", ios::in);
for(int i=0;i<product_size[pnum];i++)
{
infile>>a[i];
cout<<a[i]<<"------";
infile>>b[i];
cout<<b[i]<<"------";
infile>>c[i];
cout<<c[i]<<"------";
infile>>d[i];
cout<<d[i]<<endl;
}
infile.close();
}
if(pnum==2)
{
ifstream infile("product_sport_data.txt", ios::in);
for(int i=0;i<product_size[pnum];i++)
{
infile>>a[i];
cout<<a[i]<<"------";
infile>>b[i];
cout<<b[i]<<"------";
infile>>c[i];
cout<<c[i]<<"------";
infile>>d[i];
cout<<d[i]<<endl;
}
infile.close();
}
if(pnum==3)
{
ifstream infile("product_cloth_data.txt", ios::in);
for(int i=0;i<product_size[pnum];i++)
{
infile>>a[i];
cout<<a[i]<<"------";
infile>>b[i];
cout<<b[i]<<"------";
infile>>c[i];
cout<<c[i]<<"------";
infile>>d[i];
cout<<d[i]<<endl;
}
infile.close();
}
if(pnum==4)
{
ifstream infile("product_pens_data.txt", ios::in);
for(int i=0;i<product_size[pnum];i++)
{
infile>>a[i];
cout<<a[i]<<"------";
infile>>b[i];
cout<<b[i]<<"------";
infile>>c[i];
cout<<c[i]<<"------";
infile>>d[i];
cout<<d[i]<<endl;
}
infile.close();
}
if(pnum==5)
{
ifstream infile("product_machine_data.txt", ios::in);
for(int i=0;i<product_size[pnum];i++)
{
infile>>a[i];
cout<<a[i]<<"------";
infile>>b[i];
cout<<b[i]<<"------";
infile>>c[i];
cout<<c[i]<<"------";
infile>>d[i];
cout<<d[i]<<endl;
}
infile.close();
}
//$$$$$$$$$$$$$$$$$$$$$$$ 感谢阮江宇提醒 :D
//不能放在循环内,否则一直读取前四个字符
// ifstream infile("product_food_data.txt", ios::in);//读取文件
//$$$$$$$$$$$$$$$$$$$$$$$
return ;
}
string custom_paasword_find(string name)//返回密码
{
ifstream infile("custom_data.txt", ios::in);//读取文件
while(1)
{
string a;
infile>>a;
if(a==name)
{
infile>>a;
return a;
break;
}
}
}
bool custom_name_find(string name)//判断用户名称是否存在
{
bool flag=0;
ifstream infile("custom_data.txt", ios::in);//读取文件
for(int i=0;i<999;i++)//--------------------------------限制了用户最大数量---我不会写一个判空:判断是否读到了最后的用户
{
string a;
infile>>a;
if(a==name)
{
return true;
flag=1;
break;
}
}
if(flag==0)
{
return false;
}
}
void sum_up()
{
long long sum_price=0;
for(int i=0;i<all_custom.shop_sum_x;i++)
{
int sum=0;
sum=product[all_custom.shop_sum_elem[i]][all_custom.shop_sum_num[i]].price*all_custom.shop_sum_sum[i];
sum_price+=sum;
product[all_custom.shop_sum_elem[i]][all_custom.shop_sum_num[i]].stock-=all_custom.shop_sum_sum[i];//在结算程序中改变库存,以减少后续的循环
}
cout<<"您在此次购物中共消费"<<sum_price<<"元,请选择支付......";//用户界面至此结束
return ;
}
void product_up_to_date(int pnum)
{
if(pnum==1)
{
ofstream aaoutfile("product_food_data.txt", ios::out);//清空原来仓库文件
ofstream outfile("product_food_data.txt", ios::app);//追加写入文件
for(int i=0;i<product_size[pnum];i++)
{
string name;
int num,stock,price;
name=product[pnum][i].name;
num=product[pnum][i].num;
price=product[pnum][i].price;
stock=product[pnum][i].stock;
outfile<<num<<" "<<name<<" "<<price<<" "<<stock<<" ";
}
}
if(pnum==2)
{
ofstream aaoutfile("product_sport_data.txt", ios::out);
ofstream outfile("product_sport_data.txt", ios::app);//追加写入文件
for(int i=0;i<product_size[pnum];i++)
{
string name;
int num,stock,price;
name=product[pnum][i].name;
num=product[pnum][i].num;
price=product[pnum][i].price;
stock=product[pnum][i].stock;
outfile<<num<<" "<<name<<" "<<price<<" "<<stock<<" ";
}
}
if(pnum==3)
{
ofstream aaoutfile("product_cloth_data.txt", ios::out);
ofstream outfile("product_cloth_data.txt", ios::app);//追加写入文件
for(int i=0;i<product_size[pnum];i++)
{
string name;
int num,stock,price;
name=product[pnum][i].name;
num=product[pnum][i].num;
price=product[pnum][i].price;
stock=product[pnum][i].stock;
outfile<<num<<" "<<name<<" "<<price<<" "<<stock<<" ";
}
}
if(pnum==4)
{
ofstream aaoutfile("product_pens_data.txt", ios::out);
ofstream outfile("product_pens_data.txt", ios::app);//追加写入文件
for(int i=0;i<product_size[pnum];i++)
{
string name;
int num,stock,price;
name=product[pnum][i].name;
num=product[pnum][i].num;
price=product[pnum][i].price;
stock=product[pnum][i].stock;
outfile<<num<<" "<<name<<" "<<price<<" "<<stock<<" ";
}
}
if(pnum==5)
{
ofstream aaoutfile("product_machine_data.txt", ios::out);
ofstream outfile("product_machine_data.txt", ios::app);//追加写入文件
for(int i=0;i<product_size[pnum];i++)
{
string name;
int num,stock,price;
name=product[pnum][i].name;
num=product[pnum][i].num;
price=product[pnum][i].price;
stock=product[pnum][i].stock;
outfile<<num<<" "<<name<<" "<<price<<" "<<stock<<" ";
}
}
return ;
}
void process_shop();
void custom_history_up_to_date()
{
string a="history_data.txt";
ofstream aaaoutfile(a, ios::out);//清空文件
ofstream outfile("history_data.txt", ios::app);//写入文件
//期望存储结构 用户名--购买商品类型总数--商品类型--商品编号--购买次数 history文件
//-------------------------------------商品类型--商品编号--购买次数 history文件
for(long long i=0;i<200;i++)//将文件信息存储到代码数组中
{
int temp=custom[i].times;//原来的购买次数
if(custom[i].name==all_custom.name)//更改信息---此次购物者
{
custom[i].times+=all_custom.shop_sum_x;
}
outfile<<custom[i].name<<" ";
outfile<<custom[i].times<<" ";
for(int j=0;j<temp;j++)
{
outfile<<custom[i].product[j].elemt<<" "<<custom[i].product[j].num<<" "<<custom[i].product[j].times<<" ";
}
//-------------------------------------商品类型--商品编号--购买次数 history文件
if(custom[i].name==all_custom.name)//添加此次购买的信息
{
for(int j=0;j<all_custom.shop_sum_x;j++)
{
string name;
int elem,num,sum;
name=product[all_custom.shop_sum_elem[j]][all_custom.shop_sum_num[j]].name;
elem=all_custom.shop_sum_elem[j];
num=all_custom.shop_sum_num[j];
sum=all_custom.shop_sum_sum[j];
outfile<<elem<<" "<<num<<" "<<sum<<" ";
}
}
}
return ;
}
void process_shop()
{
sum_up();
for(int i=1;i<=5;i++)
{
product_up_to_date(i);
}
custom_history_up_to_date();
return ;
}
void shop_car()
{
int choice;
cout<<endl<<"请选择想浏览的商品类型:"<<endl;
cout<<endl<<"食品仓库----1"<<endl<<"运动仓库----2"<<endl<<"衣服仓库----3"<<endl<<"文具仓库----4"<<endl<<"家电仓库----5"<<endl;
cout<<"请输入仓库代号:";
cin>>choice;
product_find(choice);
cout<<endl<<endl<<"请输入需要产品的类型、编号、数量,以@结尾";
cout<<endl<<"!!!!注意!!!!购买物品数量不得超过库存!";
cout<<endl<<"如:1 2 3 4 5 6 @ 代表1类的2号买3件;和4类的5号买6件"<<endl;
string aa,bb,cc;
while(1)
{
cin>>aa>>bb>>cc;
if(aa=="@")
{
break;
}
all_custom.shop_sum_x++;
int elem=string_to_int(aa);
int num=string_to_int(bb);
int sum=string_to_int(cc);
all_custom.shop_sum_elem[all_custom.shop_sum_x]=elem;
all_custom.shop_sum_num[all_custom.shop_sum_x]=num;
all_custom.shop_sum_sum[all_custom.shop_sum_x]=sum;
}
// cin>>all_custom.shopping_car[all_custom.shop_sum];
// cout<<"test---------------"<<all_custom.shopping_car[all_custom.shop_sum]<<endl;
cout<<"是否继续购物?"<<endl;
cout<<"1:继续购物"<<endl<<"2:结束购物"<<endl;
int b;
cin>>b;
if(b==1)
{
shop_car();
}
else{
process_shop() ;
}
return ;
}
void menu_custom()
{
all_custom.shop_sum_x=0;
cout<<"根据历史购物记录向您推荐如下商品:"<<endl;
cout<<endl<<endl<<"商品类型--------商品编号-------购买次数"<<endl<<endl;
ifstream infile("history_data.txt", ios::in);//读取文件
//期望存储结构 用户名--购买商品类型总数--商品类型--商品编号--购买次数 history文件
//-------------------------------------商品类型--商品编号--购买次数 history文件
for(long long i=0;i<200;i++)//将文件信息存储到代码数组中
{
string a;
infile>>custom[i].name;
infile>>a;custom[i].times=string_to_int(a);//购买商品类型总数
for(int j=0;j<custom[i].times;j++)
{
infile>>a; custom[i].product[j].elemt=string_to_int(a);
infile>>a; custom[i].product[j].num=string_to_int(a);
infile>>a; custom[i].product[j].times=string_to_int(a);
}
if(custom[i].name==all_custom.name)//查找用户所在位置
{
all_custom.times=custom[i].times;
for(int j=0;j<custom[i].times;j++)
{
all_custom.product[j].elemt=custom[i].product[j].elemt;
all_custom.product[j].num=custom[i].product[j].num;
all_custom.product[j].times=custom[i].product[j].times;
cout<<all_custom.product[j].elemt<<"-------"<<all_custom.product[j].num<<"-------"<<all_custom.product[j].times<<endl;
}
}
}
cout<<endl<<endl<<"是否需要将下列物品添加至购物车?"<<endl;
cout<<"若需要,请输入:“是”(不带引号);否则请输入:“否”(不带引号)"<<endl;
string bbb;
cin>>bbb;
if(bbb=="是")
{
cout<<endl<<endl<<"请输入需要产品的类型、编号、数量,以@结尾";
cout<<endl<<"!!!!注意!!!!购买物品数量不得超过库存!";
cout<<endl<<"如:1 2 3 4 5 6 @ 代表1类的2号买3件;和4类的5号买6件"<<endl;
all_custom.shop_sum_x=0;
string aa,bb,cc;
while(1)
{
cin>>aa>>bb>>cc;
if(aa=="@")
{
break;
}
int elem=string_to_int(aa);
int num=string_to_int(bb);
int sum=string_to_int(cc);
all_custom.shop_sum_elem[all_custom.shop_sum_x]=elem;
all_custom.shop_sum_num[all_custom.shop_sum_x]=num;
all_custom.shop_sum_sum[all_custom.shop_sum_x]=sum;
}
// all_custom.shop_sum_x++;
// cin>>all_custom.shopping_car[all_custom.shop_sum];
cout<<endl<<"继续购物:"<<endl;
shop_car();
}
else
{
cout<<"1:继续购物"<<endl<<"2:退出程序"<<endl;
int b;
cin>>b;
if(b==1)
{
shop_car();
}
else{
return ;
}
}
return ;
}
void product_add(int pnum)
{
product_size[pnum]++;
cout<<"请输入货品名:";
cin>>product[pnum][product_size[pnum]].name;
cout<<endl<<"请输入货品单价:";
cin>>product[pnum][product_size[pnum]].price;
cout<<endl<<"请输入货品数量:";
cin>>product[pnum][product_size[pnum]].stock;
product[pnum][product_size[pnum]].num=product_size[pnum];
if(pnum==1)
{
ofstream outfile("product_food_data.txt", ios::app);//追加写入文件
outfile<<product[pnum][product_size[pnum]].num<<" "<<product[pnum][product_size[pnum]].name<<" ";
outfile<<product[pnum][product_size[pnum]].price<<" "<<product[pnum][product_size[pnum]].stock<<" ";
}
if(pnum==2)
{
ofstream outfile("product_sport_data.txt", ios::app);//追加写入文件
outfile<<product[pnum][product_size[pnum]].num<<" "<<product[pnum][product_size[pnum]].name<<" ";
outfile<<product[pnum][product_size[pnum]].price<<" "<<product[pnum][product_size[pnum]].stock<<" ";
}
if(pnum==3)
{
ofstream outfile("product_cloth_data.txt", ios::app);//追加写入文件
outfile<<product[pnum][product_size[pnum]].num<<" "<<product[pnum][product_size[pnum]].name<<" ";
outfile<<product[pnum][product_size[pnum]].price<<" "<<product[pnum][product_size[pnum]].stock<<" ";
}
if(pnum==4)
{
ofstream outfile("product_pens_data.txt", ios::app);//追加写入文件
outfile<<product[pnum][product_size[pnum]].num<<" "<<product[pnum][product_size[pnum]].name<<" ";
outfile<<product[pnum][product_size[pnum]].price<<" "<<product[pnum][product_size[pnum]].stock<<" ";
}
if(pnum==5)
{
ofstream outfile("product_machine_data.txt", ios::app);//追加写入文件
outfile<<product[pnum][product_size[pnum]].num<<" "<<product[pnum][product_size[pnum]].name<<" ";
outfile<<product[pnum][product_size[pnum]].price<<" "<<product[pnum][product_size[pnum]].stock<<" ";
}
// admin_space();
return ;
}
void admin_space()
{
cout<<endl<<endl;
cout<<"请输入仓库代码:"<<endl;
cout<<"食品仓库----1"<<endl;
cout<<"运动仓库----2"<<endl;
cout<<"衣服仓库----3"<<endl;
cout<<"文具仓库----4"<<endl;
cout<<"家电仓库----5"<<endl;
int choice;
cin>>choice;
cout<<"请选择功能:"<<endl;
cout<<"1、添加货品信息"<<endl<<"2、查询货品信息"<<endl<<"3、输入任意键退出系统"<<endl<<endl;
int choice_1;
cin>>choice_1;
if(choice_1==1)
{
product_add(choice);
}
else if(choice_1==2)
{
product_find(choice);
}
else
{
return ;
}
admin_space();
}
void login()
{
string custom_name,custom_password;//文件中查找用户信息临时储存
string password,name;//用户输入
cout<<"-------------------请登录-------------------"<<endl;
cout<<"请输入用户名:";
cin>>name;
cout<<"请输入密码:";
cin>>password;
custom_name=name;
if(custom_name_find(name)==true)//先查找用户是否存在
{
custom_password=custom_paasword_find(name);
}
else//--------------------------不存在该用户,重新登录
{
cout<<"-----------登录失败!-----------"<<endl;
cout<<"---------不存在该用户!---------"<<endl;
return ;
}
if(password==custom_password)//判断用户密码是否正确
{
cout<<"-----------登陆成功!-----------"<<endl<<endl<<endl;
all_custom.name=name;
menu_custom();
}
else//-----------------------------密码错误,重新登录
{
cout<<"-----------登录失败!-----------"<<endl;
cout<<"-----------密码错误!-----------"<<endl;
return ;
}
}
void initi_custom_file()//注册用户文件
{
ofstream outfile("custom_data.txt", ios::app);//追加写入文件
string name,password;
cout<<"--------------请输入注册信息--------------"<<endl;
cout<<"用户名:";
cin>>name;
if(custom_name_find(name)==true)//判断是否存在同样用户名以防止出错:登错账号
{
cout<<endl<<endl<<"已存在该用户!"<<endl<<"请更换用户名"<<endl<<"若是忘记密码请联系管理员"<<endl<<endl;//没招了,不会修改文件内容啊老师,只会添加信息
cout<<endl<<"重新注册请输入:1"<<endl<<"登录请选择:2"<<endl;
int a;
cin>>a;
if(a==1)
{
initi_custom_file();
}
else{
login();
}
}
else
{
outfile<<name<<" ";
cout<<endl<<"密码:";
cin>>password;
outfile<<password<<" ";
}
outfile.close();
for(int i=0;i<99;i++)//分割区域
{
cout<<endl;
}
login();
}
void custom_space()
{
cout<<"########################欢迎使用project27智能购物系统########################"<<endl;
cout<<endl<<"初次使用请选:1"<<endl<<"老用户请选择:2"<<endl<<"输入任意键退出"<<endl<<endl ;
cout<<endl;
int choice_1;
cin>>choice_1;
if(choice_1==1)
{
initi_custom_file();
}
else if(choice_1==2)
{
ofstream outfile("custom_data.txt", ios::app);//追加写入文件
outfile<<"dsc 123456 ";//添加默认用户名:dsc 默认密码:123456
outfile.close();
login();
}
else
{
return ;
}
}
void up_to_date_product(int pnum)//把所有文件的数据读入数组,方便后续排序,更改文件等;同时更新上一次操作导致的仓库余量不同
{
int maxn=0;
if(pnum==1)
{
ifstream infile("product_food_data.txt", ios::in);//读取文件
for(int i=0;i<product_size[pnum];i++)
{
string a,b,c,d;
infile>>a;
infile>>b;
infile>>c;
infile>>d;
int num=string_to_int(a);
int price=string_to_int(c);
int stock=string_to_int(d);
product[pnum][product_size[pnum]].num=num;
product[pnum][product_size[pnum]].name=b;
product[pnum][product_size[pnum]].price=price;
product[pnum][product_size[pnum]].stock=stock;
if(maxn<num)
{
maxn=num;
}
}
}
if(pnum==2)
{
ifstream infile("product_sport_data.txt", ios::in);//读取文件
for(int i=0;i<product_size[pnum];i++)
{
string a,b,c,d;
infile>>a;
infile>>b;
infile>>c;
infile>>d;
int num=string_to_int(a);
int price=string_to_int(c);
int stock=string_to_int(d);
product[pnum][product_size[pnum]].num=num;
product[pnum][product_size[pnum]].name=b;
product[pnum][product_size[pnum]].price=price;
product[pnum][product_size[pnum]].stock=stock;
if(maxn<num)
{
maxn=num;
}
}
}
if(pnum==3)
{
ifstream infile("product_cloth_data.txt", ios::in);//读取文件
for(int i=0;i<product_size[pnum];i++)
{
string a,b,c,d;
infile>>a;
infile>>b;
infile>>c;
infile>>d;
int num=string_to_int(a);
int price=string_to_int(c);
int stock=string_to_int(d);
product[pnum][product_size[pnum]].num=num;
product[pnum][product_size[pnum]].name=b;
product[pnum][product_size[pnum]].price=price;
product[pnum][product_size[pnum]].stock=stock;
if(maxn<num)
{
maxn=num;
}
}
}
if(pnum==4)
{
ifstream infile("product_pens_data.txt", ios::in);//读取文件
for(int i=0;i<product_size[pnum];i++)
{
string a,b,c,d;
infile>>a;
infile>>b;
infile>>c;
infile>>d;
int num=string_to_int(a);
int price=string_to_int(c);
int stock=string_to_int(d);
product[pnum][product_size[pnum]].num=num;
product[pnum][product_size[pnum]].name=b;
product[pnum][product_size[pnum]].price=price;
product[pnum][product_size[pnum]].stock=stock;
if(maxn<num)
{
maxn=num;
}
}
}
if(pnum==5)
{
ifstream infile("product_machine_data.txt", ios::in);//读取文件
for(int i=0;i<product_size[pnum];i++)
{
string a,b,c,d;
infile>>a;
infile>>b;
infile>>c;
infile>>d;
int num=string_to_int(a);
int price=string_to_int(c);
int stock=string_to_int(d);
product[pnum][product_size[pnum]].num=num;
product[pnum][product_size[pnum]].name=b;
product[pnum][product_size[pnum]].price=price;
product[pnum][product_size[pnum]].stock=stock;
if(maxn<num)
{
maxn=num;
}
}
}
if(maxn>product_size[pnum])
{
product_size[pnum]=maxn;
}
}
int main()
{
up_to_date_product(1);//更新仓库货品数量
up_to_date_product(2);
up_to_date_product(3);
up_to_date_product(4);
up_to_date_product(5);
cout<<"请选择角色:";
cout<<endl<<"1、管理员"<<endl<<"2、消费者"<<endl<<"3、输入任意键退出程序"<<endl<<endl;
int choice_1;
cin>>choice_1;
if(choice_1==1)
{
admin_space();
}
else if(choice_1==2)
{
custom_space();
}
else
{
return 0;
}
main();
}
第二段:生成随机用户购物历史
#include<bits/stdc++.h>
using namespace std;
string a[200]={"钱温瑜","王智志","龚坚成","方思淼","曹冬燕","曹光熙","邱和同","姚文栋","邵建义","孟俊明","常温瑜","龙飞光","谢嘉实","宋永寿","王涵畅","侯乐正","顾元忠","蒋丰茂","汤宏畅","曹宏深","丁文耀","阎嘉悦","范承福","贾和裕","段泰和","郭英奕","田阳华","马高卓","魏志勇","秦康胜","唐经义","岳定评","孟嘉誉","叶阳炎","沈信鸿","段文林","潘乐人","邱高峯","毛阳文","顾华茂","阎乐游","吴俊喆","崔心远","于鸿达","于雨泽","林高澹","赖昊英","董翰音","邓凯捷","邱泰宁","潘俊贤","史俊远","毛天空","赵刚豪","许阳旭","吕玉泉","张高原","梁学真","孟嘉许","高永思","卢康成","钟琪睿","江建木","常睿慈","钟成双","江俊能","石斌斌","夏向明","金嘉年","崔和畅","康宏盛","林朋义","龙良工","马乐生","漕博涛","秦鸿煊","董正浩","黄成双","蒋玉书","阎泰宁","石阳飇","漕宜民","侯睿明","萧绍钧","邓英才","侯英喆","田承颜","冯立人","黄嘉誉","许嘉誉","魏弘光","卢翰林","康欣德","彭光远","曾坚白","傅和歌","郭和璧","罗承教","黄翰翮","胡阳嘉","田睿诚","夏文斌","宋康复","梁鸿运","冯飞扬","于良骏","赖建木","卢信厚","孟承颜","潘浩初","龚浩渺","阎飞章","宋正志","万嘉树","高元嘉","潘弘大","黄绍钧","程弘量","龚睿诚","贺天和","陆绍祺","汤彬炳","陈朋义","赖乐邦","秦鹏池","袁鸿云","苏欣然","孔俊风","贾宏才","邱鸿宝","朱宏大","朱和光","冯元良","常高兴","谭阳文","熊永安","田雅惠","姜元龙","杨高芬","漕锐精","韩和悦","邓阳波","王玉成","阎建华","曹星光","郝烨烁","郑祺然","武星汉","戴成仁","乔阳荣","苏文耀","金安国","金文乐","蔡乐湛","冯苑博","罗晋鹏","丁鹏运","林修然","杨飞跃","马鸿才","郝德寿","丁弘伟","王敏达","叶元青","沈志泽","汪立果","卢弘大","徐经艺","谭翰池","许奇希","汤嘉誉","白恺歌","陆鸿禧","杜蕴藉","钱经赋","漕志专","蔡阳晖","金烨霖","彭子民","谢经略","邱子实","钟阳曦","陈翰采","方雨信","尹欣怡","钟成益","韩嘉誉","傅嘉颖","邹睿诚","胡俊力","周锐达","马文滨","方志诚","田逸春","杜昊空","黎玉轩","朱阳荣","谢成双","卢彭湃","吕飞翼"};
int rand_int(int Num)//随机数生成
{
vector<int> temp;
for (int i = 0; i < Num; i++)
{
temp.push_back(i + 1);
}
random_shuffle(temp.begin(), temp.end());
return temp[3];//随手6
}
int main()
{
ofstream aaaoutfile("history_data.txt", ios::out);//清空
ofstream outfile("history_data.txt", ios::app);
int timess[7];
for(int i=0;i<7;i++)
{
timess[i]=i+1;
}
for(int i=0;i<200;i++)
{
int time=timess[rand_int(6)];//防止出现0
outfile<<a[i]<<" ";
outfile<<time<<" ";
int elemts[5];
for(int i=0;i<5;i++)
{
elemts[i]=i+1;
}
for(int i=0;i<time;i++)
{
outfile<<elemts[rand_int(10)%5]<<" ";//防止出现0
outfile<<rand_int(49)+1<<" ";
outfile<<rand_int(10)+1<<" ";
}
}
}
第三段:生成随机仓库,共五个
#include<bits/stdc++.h>
using namespace std;
string random_product1[114]={"鸡蛋","牛奶","苹果","面包","香蕉","蔬菜","橙子","猪肉","面粉","鱼肉","花生油","酱油","食醋","盐","糖","面条","大米","豆腐","鸡肉","红薯","土豆","胡萝卜","西红柿","洋葱","葱","姜","大蒜","花菜","西兰花","茄子","青椒","黄瓜","豆角","莲藕","香菇","蘑菇","银耳","黑木耳","鱼丸","肉丸","鸡精","鸡精","花椒粉","八角","桂皮","香叶","茴香","肉桂","酱料","调味酱","酸奶","奶酪","奶油","黄油","巧克力","糖果","饼干","薯片","果冻","苹果","蜂蜜","茶叶","咖啡","红茶","绿茶","花茶","果汁","矿泉水","碳酸饮料","茶饮料","功能饮料","方便面","香蕉","橙子","西瓜","葡萄","草莓","八宝粥","粥包","肉松","腊肠","火腿","熟食","蔬菜沙","拉水果沙拉","芒果","菠萝","柚子","柠檬","梨","肉类","熟食","食零食","花生","坚果","腰果","开心果","杏仁","核桃","红枣","葡萄干","酱菜","豆腐乳","豆酱","豆腐干","豆腐皮","桃","子李子","杏子","枣","丝粉","粥","钙片","米饭"};
string random_product2[53]={"跑步机","踏步机","鞍马","铅球","棒球棍","乒乓球拍","乒乓球","羽毛球","羽毛球拍","网球","网球拍","保龄球","冰球","冰球服","班迪球","台球杆","垒球","手球","排球","橄榄球","篮球","篮球鞋","足球","足球鞋","高尔夫球","高尔夫球杆","匹克球","匹克球拍","壁球","壁球拍","标枪","实心球","起跑器","发令枪","握力器","臂力器","滑雪镜","护腕护膝","防护眼镜","骑行镜","篮球眼镜","运动手套","运动帽","仰卧起坐器","杠铃","弓箭","跳板","功率自行车","拉力器","划船器","小蹦床","毽子","健步机"};
string random_product3[51]={"毛衣","衬衣","半袖","羽绒服","西服","马夹","T恤","背心","短裤","裤衩","内裤","胸罩","长裤","西裤","背带裤","牛仔裤","长袍","大衣","风衣","雨衣","披风","一步裙","圆台裙","裙裤","冲锋衣","马面裙","POLO衫","速干衣","衬衫","罩衫","开襟衫","露脐上衣","抹胸","挂脖背心","吊带","无袖衫","圆高领","喇叭裤","低腰裤","热裤","紧身裤","阔腿裤","铅笔裤","七分裤","工装裤","筒裙","斜裙","喇叭裙","百褶裙","节裙","迷你裙"};
string random_product4[50]={"笔袋","笔盒","铅笔","自动铅笔","水彩笔","白板笔","圆珠笔","中性笔","油画棒","油画棒","蜡笔","钢笔","书包","橡皮擦","削笔机","笔削","液体胶水","固体胶","尺类","圆规","美工刀","剪刀","书套","修正带","文件夹","本册","文件袋","画板","笔芯","有孔文件夹","无孔文件夹","板夹","档案盒","切纸刀","台历架","活页本","便利贴","便签纸","会议记录本","软笔","墨水笔芯","炭笔","POP笔","复写纸","财务计算器","电池","读卡器","传真机","打印机","绘图纸"};
string random_product5[50]={"家用冰箱","冷饮机","空调","电扇","换气扇","冷热风器","空气去湿器","加湿器","洗衣机","干衣机","电熨斗","吸尘器","地板打蜡机","扫地机器人","电灶","微波炉","电磁灶","电烤箱","电饭锅","洗碟机","电热水器","食物加工机","电热毯","电热被","水热毯","电热服","空间加热器","电动剃须刀","电吹风","超声波洗面器","电动按摩器","整发器","微型投影仪","电视机","收音机","录音机","录像机","摄像机","组合音响","台式电脑","笔记本电脑","平板电脑","抽油烟机","擦窗机","熨压机","电推剪","绞肉机","搅拌器","烟火报警器","电铃"};
//网上搜的随机生成网站https://namegentool.com/zh-hans#google_vignett
//string random_product[999]={"鸡蛋","牛奶","苹果","面包","香蕉","蔬菜","橙子","猪肉","面粉","鱼肉","花生油","酱油","食醋","盐","糖","面条","大米","豆腐","鸡肉","红薯","土豆","胡萝卜","西红柿","洋葱","葱","姜","大蒜","花菜","西兰花","茄子","青椒","黄瓜","豆角","莲藕","香菇","蘑菇","银耳","黑木耳","鱼丸","肉丸","鸡精","鸡精","花椒粉","八角","桂皮","香叶","茴香","肉桂","酱料","调味酱","酸奶","奶酪","奶油","黄油","巧克力","糖果","饼干","薯片","果冻","苹果","蜂蜜","茶叶","咖啡","红茶","绿茶","花茶","果汁","矿泉水","碳酸饮料","茶饮料","功能饮料","方便面","香蕉","橙子","西瓜","葡萄","草莓","八宝粥","粥包","肉松","腊肠","火腿","熟食","蔬菜沙","拉水果沙拉","芒果","菠萝","柚子","柠檬","梨","肉类","熟食","食零食","花生","坚果","腰果","开心果","杏仁","核桃","红枣","葡萄干","酱菜","豆腐乳","豆酱","豆腐干","豆腐皮","桃","子李子","杏子","枣","丝粉","粥","钙片","米饭"};
//网上搜的随机生成网站https://namegentool.com/zh-hans#google_vignette
int product_size[5]={114,53,51,50,50};//便于后续添加商品(更改代码)
struct product_infor
{
int num;//编号
string name;
int stock;//库存
int price;//单价
};
int rand_int(int Num)//随机数生成
{
vector<int> temp;
for (int i = 0; i < Num; i++)
{
temp.push_back(i + 1);
}
random_shuffle(temp.begin(), temp.end());
return temp[6];//随手6
}
void initi_product_house()//建立商品库
{
for(int i=0;i<product_size[0];i++)///1
{struct product_infor product[999];
ofstream outfile("product_food_data.txt", ios::app);//追加写入文件 存入记得加入分隔" "
product[i].num=i+1;//-------------------------------注意
outfile << product[i].num << " ";
product[i].name=random_product1[i];
outfile << product[i].name << " ";
product[i].price=rand_int(20);
outfile << product[i].price << " ";
product[i].stock=rand_int(100);
outfile << product[i].stock << " ";
}
for(int i=0;i<product_size[1];i++)///2
{struct product_infor product[999];
ofstream outfile("product_sport_data.txt", ios::app);//追加写入文件 存入记得加入分隔" "
product[i].num=i+1;//-------------------------------注意
outfile << product[i].num << " ";
product[i].name=random_product2[i];
outfile << product[i].name << " ";
product[i].price=rand_int(20);
outfile << product[i].price << " ";
product[i].stock=rand_int(100);
outfile << product[i].stock << " ";
}
for(int i=0;i<product_size[2];i++)///3
{struct product_infor product[999];
ofstream outfile("product_cloth_data.txt", ios::app);//追加写入文件 存入记得加入分隔" "
product[i].num=i+1;//-------------------------------注意
outfile << product[i].num << " ";
product[i].name=random_product3[i];
outfile << product[i].name << " ";
product[i].price=rand_int(1000);
outfile << product[i].price << " ";
product[i].stock=rand_int(100);
outfile << product[i].stock << " ";
}
for(int i=0;i<product_size[3];i++)///4
{struct product_infor product[999];
ofstream outfile("product_pens_data.txt", ios::app);//追加写入文件 存入记得加入分隔" "
product[i].num=i+1;//-------------------------------注意
outfile << product[i].num << " ";
product[i].name=random_product4[i];
outfile << product[i].name << " ";
product[i].price=rand_int(20);
outfile << product[i].price << " ";
product[i].stock=rand_int(100);
outfile << product[i].stock << " ";
}
for(int i=0;i<product_size[4];i++)///5
{struct product_infor product[999];
ofstream outfile("product_machine_data.txt", ios::app);//追加写入文件 存入记得加入分隔" "
product[i].num=i+1;//-------------------------------注意
outfile << product[i].num << " ";
product[i].name=random_product5[i];
outfile << product[i].name << " ";
product[i].price=rand_int(2000);
outfile << product[i].price << " ";
product[i].stock=rand_int(100);
outfile << product[i].stock << " ";
}
}
int main()
{
ofstream outfile("product_food_data.txt", ios::out);//在此程序中用于清空原来的“product_data.txt”文件
ofstream aoutfile("product_sport_data.txt", ios::out);
ofstream aaoutfile("product_cloth_data.txt", ios::out);
ofstream aaaoutfile("product_pens_data.txt", ios::out);
ofstream aaaaaoutfile("product_machine_data.txt", ios::out);
initi_product_house();//初始化商品仓库
}