C++设计一个简单的产品管理系统。

2024-11-15 16:53:44
推荐回答(2个)
回答(1):

#include
const int N=5;
struct PRODUCT
{
int code;//商品代码
char name[20];//商品名称
double price;//单价
int amount;//商品数量
int sales;//销售量
int stock;//商品的库存量
}pro[N];
void input(struct PRODUCT *p);
void sort1(int stock,int sales);//冒泡法按商品的库存量排序
void sort2(int code);//选择法按商品代码排序
void search1();//选择法按商品库存量查询
void search2(int code);//折半法按商品代码查询
void out();
void main()
{
int code;
struct PRODUCT *p;
input(p);
int ch;
do
{
cout<<"按库存量排序, 请选择: 1 "< cout<<"按商品代码排序,请选择: 2 "< cout<<"按商品代码查询,请选择: 3 "< cout<<"按库存量查询, 请选择: 4 "< cout<<"显示商品信息, 请选择: 5 "< cout<<"结束程序, 请选择: 6 "< cin>>ch;
switch (ch)
{
case 1:sort1(pro[N].stock,pro[N].sales);
break;
case 2:sort2(pro[N].code);break;
case 3:
{
cout<<"请输入商品代码";
cin>>code;
search2(code);
}break;
case 4:search1();break;
case 5:out();break;
case 6:0;break;
default:cout<<"您的输入有错"< }
}while(ch!=6);
}
void input(struct PRODUCT *P)
{
cout<<"输入英文的时候,请以?为结束标志"< for(int i=0;i {
cout<<"请输入商品信息 :";
cin>>pro[i].code;cin.getline(pro[i].name,10,'\?');cin>>pro[i].price>>pro[i].amount>>pro[i].sales;
pro[i].stock=pro[i].amount-pro[i].sales;
}

}
void sort1(int stock,int sales)//冒泡法按商品的库存量排序
{
struct PRODUCT t;
for(int i=0;i for(int j=0;j if(pro[j].stock>pro[j+1].stock)
{
t=pro[j];
pro[j]=pro[j+1];
pro[j+1]=t;
}
for(i=0;i for(int j=0;j if(pro[j].stock==pro[j+1].stock&&pro[j].sales>pro[j+1].sales)
{
t=pro[j];
pro[j]=pro[j+1];
pro[j+1]=t;
}
cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"< for(i=0;i cout<}
void sort2(int code)//选择法按商品代码排序
{
struct PRODUCT t;
for(int i=0;i for(int j=i+1;j if(pro[i].code>pro[j].code)
{
t=pro[i];
pro[i]=pro[j];
pro[j]=t;
}

cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"< for(i=0;i cout<}
void search1()//选择法按商品库存量查询
{
int stock1,stock2;
cout<<"请从小到大输入您要查找商品库存量的范围 ";
cin>>stock1>>stock2;
cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"< for(int i=stock1;i<=stock2;i++)
{
for(int j=0;j if(i==pro[j].stock)break;
if(j==N)
cout<<"";
else
cout< }
cout<<"如果没有显示则无此商品信息"<}

void search2(int code)//折半法按商品代码查询
{

struct PRODUCT t;
for(int i=0;i for(int j=0;j if(pro[j].code>pro[j+1].code)
{
t=pro[j];
pro[j]=pro[j+1];
pro[j+1]=t;
}
int top=0,bottom=N-1,middle=(top+bottom)/2;//折半法查找商品代码
while(top<=middle)
{
if(code==pro[middle].code)
break;
else if(code>pro[middle].code)
top=middle+1;
else
bottom=middle-1;
middle=(top+bottom)/2;
}
if(code==pro[middle].code)
{
cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"< cout< }
else
cout<<"没有您要找的商品"<
}
void out()
{
cout<<"code"<<'\t'<<"name"<<'\t'<<"price"<<'\t'<<"amount"<<'\t'<<"sales"<<'\t'<<"stock"< for(int i=0;i cout<
}

回答(2):

123