C++商品管理系统源代码+流程图
#include <iostream>
#include <string>
#define N 10 //商场类中每种货物类数组中的元素个数,如N=10,衬衣类,则只能存放10种类型的衬衣
using namespace std;
enum typeMaoZi{PingDing,JianDing};
enum typeBingXiang{TwoMen,ThreeMen};
enum typeDianShi{Color,BlackWhite};
class Product //基类
{
public :
string name; //商品名称
string chiCun; //尺寸
float danJia; //单价
string chanDi; //产地
int kuCunLiang; //库存量
string suoShuHuoGui; //所属货柜
Product() //构造函数
{
name="";
chiCun="";
danJia=0;
chanDi="";
kuCunLiang=0;
suoShuHuoGui="";
}
void jinKu(); //商品进库
void chuKu(); //商品出库
void tiaoJia(); //商品的调价
void guanLiHuoGui(); //所属货柜的管理
void luRu_P(); //录入新商品的相关信息
void computePrice(); //总价格的计算
void display_p(); //打印名称、尺寸……
};
void Product::jinKu()//商品进库
{
cout <<"请输入要进库的数量:";
int num; cin >>num;
kuCunLiang+=num;
cout <<"\n入库成功."<<endl;
}
void Product::chuKu() //商品出库
{
cout <<"请输入要出库的数量:";
int num; cin >>num;
while(num>kuCunLiang)
{
cout <<"\n大于当前库存量,请重新输入:";
cin >>num;
}
kuCunLiang-=num;
cout <<"\n出库成功."<<endl;
}
void Product::tiaoJia() //商品的调价
{
cout <<"请输入调整后的价格(元):";
float price; cin >>price;
while(price<0)
{
cout <<"输入有误,请重新输入:";
}
danJia=price;
cout <<"\n调价成功."<<endl;
}
void Product::guanLiHuoGui() //所属货柜的管理
{
cout <<"请输入新的货柜名称:";
string location; cin >>location;
suoShuHuoGui=location;
cout <<"\n货柜管理成功."<<endl;
}
void Product::luRu_P() //录入新商品的相关信息
{
cout <<"商品名称:"; cin >>name;
cout <<"尺寸: "; cin >>chiCun;
cout <<"单价(元): "; cin >>danJia;
cout <<"产地:"; cin >>chanDi;
cout <<"库存量:"; cin >>kuCunLiang;
cout <<"所属货柜:"; cin >>suoShuHuoGui;
}
void Product::computePrice() //总价格的计算
{
cout <<"总价格为:"<<danJia*kuCunLiang<<" 元."<<endl;
}
void Product::display_p() //打印名称、尺寸……
{
cout <<"名称:"<<name<<" 产地:"<<chanDi<<" 尺寸:"<<chiCun<<" 单价:"<<danJia<<" 库存量:"<<kuCunLiang<<" 所属货柜:"<<suoShuHuoGui;
}
class ChenYi: public Product //衬衣类
{
public :
string buLiao; //布料
ChenYi() //构造函数
{
Product();
buLiao="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"布料:"; cin >>buLiao;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 布料:"<<buLiao<<endl;
}
};
class XieZi: public Product //鞋子类
{
public :
string piLiao; //皮料
XieZi()
{
Product();
piLiao="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"皮料:"; cin >>piLiao;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 皮料:"<<piLiao<<endl;
}
};
class MaoZi: public Product //帽子
{
public :
string buLiao; //布料
typeMaoZi yangShi; //样式
MaoZi()
{
Product();
buLiao="";
yangShi=PingDing;
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"布料:"; cin >>buLiao;
cout <<"样式(请选择:1-平顶,2-尖顶):";
int choice;
cin >>choice;
while(choice!=1 && choice!=2)
{
cout <<"输入有误,请重新输入:";
cin >>choice;
}
if(choice==1) //平顶
yangShi=PingDing;
else //尖顶
yangShi=JianDing;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 布料:"<<buLiao;
if(yangShi==PingDing)
cout <<" 样式:平顶."<<endl;
else
cout <<" 样式:尖顶."<<endl;
}
};
class KuZi: public Product //裤子
{
public :
string buLiao; //布料
KuZi()
{
Product();
buLiao="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"布料:"; cin >>buLiao;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 布料:"<<buLiao<<endl;
}
};
class BingXiang: public Product //冰箱
{
public :
string zhiLengLeiXing; //制冷类型
typeBingXiang yangShi; //样式
string yanSe; //颜色
string zhongLiang; //重量
BingXiang()
{
Product();
zhiLengLeiXing="";
yangShi=TwoMen;
yanSe="";
zhongLiang="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"制冷类型:"; cin >>zhiLengLeiXing;
cout <<"样式(请选择:1-二门,2-三门):";
int choice;
cin >>choice;
while(choice!=1 && choice!=2)
{
cout <<"输入有误,请重新输入:";
cin >>choice;
}
if(choice==1) //二门
yangShi=TwoMen;
else //三门
yangShi=ThreeMen;
cout <<"颜色:"; cin >>yanSe;
cout <<"重量:"; cin >>zhongLiang;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 制冷类型:"<<zhiLengLeiXing;
if(yangShi==TwoMen)
cout <<" 样式:二门.";
else
cout <<" 样式:三门.";
cout <<" 颜色:"<<yanSe;
cout <<" 重量:"<<zhongLiang<<endl;
}
};
class DianShi: public Product //电视
{
public :
typeDianShi yangShi; //样式
string yanSe; //颜色
string zhongLiang; //重量
DianShi()
{
Product();
yangShi=Color;
yanSe="";
zhongLiang="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"样式(请选择:1-彩色,2-黑白):";
int choice;
cin >>choice;
while(choice!=1 && choice!=2)
{
cout <<"输入有误,请重新输入:";
cin >>choice;
}
if(choice==1) //彩色
yangShi=Color;
else //黑白
yangShi=BlackWhite;
cout <<"颜色:"; cin >>yanSe;
cout <<"重量:"; cin >>zhongLiang;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
if(yangShi==Color)
cout <<" 样式:彩色.";
else
cout <<" 样式:黑白.";
cout <<" 颜色:"<<yanSe;
cout <<" 重量:"<<zhongLiang<<endl;
}
};
class LiGui: public Product //立柜
{
public :
string muLiao; //木料
string yanSe; //颜色
LiGui()
{
Product();
muLiao="";
yanSe="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"木料:"; cin >>muLiao;
cout <<"颜色:"; cin >>yanSe;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 颜色:"<<yanSe;
cout <<" 木料:"<<muLiao<<endl;
}
};
class BiChu: public Product //壁橱
{
public :
string muLiao; //木料
string yanSe; //颜色
BiChu()
{
Product();
muLiao="";
yanSe="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"木料:"; cin >>muLiao;
cout <<"颜色:"; cin >>yanSe;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 颜色:"<<yanSe;
cout <<" 木料:"<<muLiao<<endl;
}
};
class ShaFa: public Product //沙发
{
public :
string muLiao; //木料
string piLiao; //皮料
string yanSe; //颜色
ShaFa()
{
Product();
muLiao="";
piLiao="";
yanSe="";
}
void luRu() //新商品的录入
{
luRu_P();
cout <<"木料:"; cin >>muLiao;
cout <<"皮料:"; cin >>piLiao;
cout <<"颜色:"; cin >>yanSe;
cout <<"\n录入成功."<<endl;
}
void display()
{
display_p();
cout <<" 颜色:"<<yanSe;
cout <<" 木料:"<<muLiao;
cout <<" 皮料:"<<piLiao<<endl;
}
};
class ShangChang //商场类
{ //商场类中每种货物类只能存放N种类型
//如,衬衣类为chenYi[N],则只能存放N种不同类型的衬衣,超过时提示“货架已满,操作失败”
private :
ChenYi chenYi[N];
XieZi xieZi[N];
MaoZi maoZi[N];
KuZi kuZi[N];
BingXiang bingXiang[N];
DianShi dianShi[N];
LiGui liGui[N];
BiChu biChu[N];
ShaFa shaFa[N];
void operate_ChenYi(); //衬衣的相关操作
void operate_XieZi(); //鞋子的相关操作
void operate_MaoZi(); //帽子的相关操作
void operate_KuZi(); //裤子的相关操作
void operate_BingXiang(); //冰箱的相关操作
void operate_DianShi(); //电视的相关操作
void operate_LiGui(); //立柜的相关操作
void operate_BiChu(); //壁橱的相关操作
void operate_ShaFa(); //沙发的相关操作
public :
void inter_face(); //总用户界面,调用其它函数
};
void ShangChang::operate_ChenYi() //衬衣的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(chenYi[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
chenYi[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(chenYi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
chenYi[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(chenYi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
chenYi[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(chenYi[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
chenYi[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(chenYi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
chenYi[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(chenYi[i].kuCunLiang!=0)
cout <<chenYi[i].name<<" 库存:"<<chenYi[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(chenYi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
chenYi[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==chenYi[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=chenYi[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(chenYi[i].kuCunLiang!=0)
chenYi[i].display();
break;
}
}
}
void ShangChang::operate_XieZi() //鞋子的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(xieZi[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
xieZi[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(xieZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
xieZi[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(xieZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
xieZi[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(xieZi[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
xieZi[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(xieZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
xieZi[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(xieZi[i].kuCunLiang!=0)
cout <<xieZi[i].name<<" 库存:"<<xieZi[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(xieZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
xieZi[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==xieZi[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=xieZi[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(xieZi[i].kuCunLiang!=0)
xieZi[i].display();
break;
}
}
}
void ShangChang::operate_MaoZi() //帽子的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(maoZi[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
maoZi[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(maoZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
maoZi[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(maoZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
maoZi[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(maoZi[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
maoZi[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(maoZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
maoZi[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(maoZi[i].kuCunLiang!=0)
cout <<maoZi[i].name<<" 库存:"<<maoZi[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(maoZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
maoZi[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==maoZi[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=maoZi[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(maoZi[i].kuCunLiang!=0)
maoZi[i].display();
break;
}
}
}
void ShangChang::operate_KuZi() //裤子的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(kuZi[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
kuZi[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(kuZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
kuZi[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(kuZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
kuZi[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(kuZi[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
kuZi[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(kuZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
kuZi[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(kuZi[i].kuCunLiang!=0)
cout <<kuZi[i].name<<" 库存:"<<kuZi[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(kuZi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
kuZi[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==kuZi[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=kuZi[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(kuZi[i].kuCunLiang!=0)
kuZi[i].display();
break;
}
}
}
void ShangChang::operate_BingXiang() //冰箱的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(bingXiang[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
bingXiang[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(bingXiang[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
bingXiang[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(bingXiang[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
bingXiang[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(bingXiang[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
bingXiang[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(bingXiang[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
bingXiang[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(bingXiang[i].kuCunLiang!=0)
cout <<bingXiang[i].name<<" 库存:"<<bingXiang[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(bingXiang[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
bingXiang[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==bingXiang[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=bingXiang[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(bingXiang[i].kuCunLiang!=0)
bingXiang[i].display();
break;
}
}
}
void ShangChang::operate_DianShi() //电视的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(dianShi[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
dianShi[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(dianShi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
dianShi[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(dianShi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
dianShi[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(dianShi[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
dianShi[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(dianShi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
dianShi[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(dianShi[i].kuCunLiang!=0)
cout <<dianShi[i].name<<" 库存:"<<dianShi[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(dianShi[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
dianShi[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==dianShi[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=dianShi[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(dianShi[i].kuCunLiang!=0)
dianShi[i].display();
break;
}
}
}
void ShangChang::operate_LiGui() //立柜的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(liGui[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
liGui[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(liGui[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
liGui[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(liGui[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
liGui[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(liGui[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
liGui[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(liGui[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
liGui[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(liGui[i].kuCunLiang!=0)
cout <<liGui[i].name<<" 库存:"<<liGui[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(liGui[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
liGui[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==liGui[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=liGui[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(liGui[i].kuCunLiang!=0)
liGui[i].display();
break;
}
}
}
void ShangChang::operate_BiChu() //壁橱的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(biChu[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
biChu[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(biChu[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
biChu[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(biChu[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
biChu[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(biChu[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
biChu[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(biChu[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
biChu[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(biChu[i].kuCunLiang!=0)
cout <<biChu[i].name<<" 库存:"<<biChu[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(biChu[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
biChu[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==biChu[i].chanDi)
{flag=true; break;}
count++;
}
if(flag==true) continue;
temp[count]=biChu[i].chanDi;
}
cout <<"\n有如下产地:";
for(i=0;i<N;i++)
{
if(temp[i]==" ") continue;
else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(biChu[i].kuCunLiang!=0)
biChu[i].display();
break;
}
}
}
void ShangChang::operate_ShaFa() //沙发的相关操作
{
int choice;
int i;
int count;
string s;
string temp[10]; bool flag; //统计产地时使用
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"0-返回主界面,1-录入新商品,2-进库,3-出库,4-调价,5-管理所属货柜,\n6-库存统计,7-计算总价格,8-统计产地,9-打印当前列表\n"
<<"请输入操作类型:";
cin >>choice;
while(choice<0 || choice>9)
{
cout <<"输入有误,请重新输入: ";
cin >>choice;
}
switch(choice)
{
case 0: return;
case 1: for(i=0;i<N;i++) //找有没有空位
if(shaFa[i].kuCunLiang==0) break;
if(i==N) //没有空位,即chenYi[N]的元素位都被占用
{cout <<"\n货架已满,操作失败"<<endl;break;}
shaFa[i].luRu();
break;
case 2: cout <<"请输入商品名称:"; //进库
cin >>s;
for(i=0;i<N;i++)
if(shaFa[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
shaFa[i].jinKu();
break;
case 3: cout <<"请输入商品名称:"; //出库
cin >>s;
for(i=0;i<N;i++)
if(shaFa[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
shaFa[i].chuKu();
break;
case 4: cout <<"请输入商品名称:"; //调价
cin >>s;
for(i=0;i<N;i++)
if(shaFa[i].name==s) break;
if(i==N)
{cout <<"没有此商品!"<<endl; break;}
shaFa[i].tiaoJia();
break;
case 5: cout <<"请输入商品名称:"; //管理所属货柜
cin >>s;
for(i=0;i<N;i++)
if(shaFa[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
shaFa[i].guanLiHuoGui();
break;
case 6: cout <<endl;
for(i=0;i<N;i++) //库存统计
if(shaFa[i].kuCunLiang!=0)
cout <<shaFa[i].name<<" 库存:"<<shaFa[i].kuCunLiang<<"\t";
cout <<endl;
break;
case 7: cout <<"请输入商品名称:"; //总价格的计算
cin >>s;
for(i=0;i<N;i++)
if(shaFa[i].name==s) break;
if(i==N)
{cout <<"\n没有此商品!"<<endl; break;}
shaFa[i].computePrice();
break;
case 8: for(i=0;i<N;i++) temp[i]=" "; //统计产地,temp[]中存放不同的地名
for(i=0;i<N;i++) //检测chenYi[]中的个地名在temp[]中是否出现过,若没出现过则存到temp中
{
count=0; flag=false;
while(count<N && temp[count]!=" ")
{
if(temp[count]==shaFa[i].chanDi)
{flag=true; break;}
原文请找腾讯752018766辣,文!论'文.网http://www.751com.cn else cout <<temp[i]<<" ";
}
cout <<endl;
break;
case 9: cout <<endl;
for(i=0;i<N;i++) //打印当前列表
if(shaFa[i].kuCunLiang!=0)
shaFa[i].display();
break;
}
}
}
void ShangChang::inter_face() //总用户界面,调用其它函数
{
while(true)
{
cout <<"*****************************************************************"<<endl;
cout <<"请选择相关操作:"<<endl;
cout <<"1-衬衣 2-鞋子 3-帽子 4-裤子 5-冰箱 6-电视 7-立柜 8-壁橱 9-沙发 0-退出\n";
int choice;
cin >>choice;
while(choice<0 || choice >9)
{
cout <<"输入有误,请重新输入:";
cin >>choice;
}
switch(choice)
{
case 1: operate_ChenYi(); break;
case 2: operate_XieZi(); break;
case 3: operate_MaoZi(); break;
case 4: operate_KuZi(); break;
case 5: operate_BingXiang(); break;
case 6: operate_DianShi(); break;
case 7: operate_LiGui(); break;
case 8: operate_BiChu(); break;
case 9: operate_ShaFa(); break;
case 0: return;
}
}
}
int main()
{
ShangChang sc;
cout <<"*****************************************************************"<<endl
<<" 小型商品管理系统 "<<endl
<<"*****************************************************************"<<endl;
sc.inter_face();
cout <<"\n退出系统."<<endl; return 0;}1819