📄 商品库存管理系统.cpp
字号:
#include <iostream>
#include <string>
#define MaxHEAP 100
using namespace std;
class Elem
{
private:
int objectID;
int number;
string proName;
public:
Elem(int objectID=0,int number=0)
{
setID(objectID);
setNum(number);
setProN(proName);
}
int getID()
{
return objectID;
}
int getNum()
{
return number;
}
string getProN()
{
return proName;
}
void setID(int id)
{
objectID=id;
}
void setNum(int Num)
{
number=Num;
}
void setProN(string s)
{
proName=s;
}
};
class Heap
{
private:
Elem items[MaxHEAP];
int size;
public :
Heap()
{
Elem items[MaxHEAP];
setSize(0);}
void setSize(int sz)
{
size=sz;
}
int heapIsEmpty()
{
return size==0;
}
void heapInsert(Elem newItem)
{
if(size<MaxHEAP)
{
items[size]=newItem;
int place=size;
int parent=(place-1)/2;
while((parent>=0)&&(items[parent].getNum()<items[place].getNum()))
{
Elem temp=items[parent];
items[parent]=items[place];
items[place]=temp;
place=parent;
parent=(place-1/2);
}
++size;
}
heapRebuild(0);
}
Elem heapDelete(int ID)
{
Elem rootItem;
if(!heapIsEmpty())
{
for(int i=0;i<size;i++)
if(items[i].getID()==ID)
{
rootItem=items[i];
swap(items[i],items[0]);
}
items[0]=items[--size];
heapRebuild(0);
}
else
cout<<"\n错误:信息查找为空"<<endl;
return rootItem;
}
void heapInit()
{
setSize(0);
cout<<"空的信息"<<endl;
}
void heapView()
{
if(size==0)
{
cout<<"空的信息!"<<endl;
}
else
{
cout<<"共有商品种类: "<<size<<endl;
for(int ct=0;ct<size;ct++)
{
cout<<"商品ID: "<<items[ct].getID()<<endl;
cout<<"商品数量: "<<items[ct].getNum()<<endl;
cout<<"经手人名称(入库后辍为-C;出库后辍为-G): " <<items[ct].getProN()<<endl;
}
}
}
void search(int ID)
{
int N=0;
for(int i=0;i<size;i++)
if(items[i].getID()==ID)
{
N++;
cout<<"商品ID: "<<items[i].getID()<<endl;
cout<<"商品数量: "<<items[i].getNum() <<endl;
cout<<"经手人名称(入库后辍为-C;出库后辍为-G): " <<items[i].getProN()<<endl;
}
if(!N) cout<<"未找到相关的信息"<<endl;
}
void heapRebuild(int root)
{
int child=2*root+1;
if(child<size)
{
int rightChild=child+1;
if((rightChild<size)&&(items[rightChild].getNum()>=items[child].getNum()))
{child=rightChild;
}
if(items[root].getNum()<=items[child].getNum())
{
Elem temp=items[root];
items[root]=items[child];
items[child]=temp;
heapRebuild(child);
}
}
}
};
class priQueue
{
private:
Heap h;
public:
priQueue()
{
Heap();
}
int priIsEmpty()
{
return h.heapIsEmpty();
}
void priInit()
{
h.heapInit();
}
void priInsert(Elem newItem)
{
h.heapInsert(newItem);
}
Elem priDelete(int ID)
{
return h.heapDelete(ID);
}
void priView()
{
h.heapView();
}
void search(int ID)
{
h.search(ID);
}
};
void showMenu()
{
cout<<"****************************************************"<<endl;
cout<<"******************商场库存管理系统******************"<<endl;
cout<<"****************************************************"<<endl;
cout<<"* 1.重置信息 *"<<endl;
cout<<"* 2.入库出库 *"<<endl;
cout<<"* 3.删除商品 *"<<endl;
cout<<"* 4.查找商品 *"<<endl;
cout<<"* 5.显示库存 *"<<endl;
cout<<"* 0.退出系统 *"<<endl;
cout<<"****************************************************"<<endl;
}
void showTip()
{
cout<<"*******************操作完成*************************"<<endl;
cout<<"******************选择0-5继续**********************"<<endl;
}
int main()
{
string i="-1";
int ID,NUM;
string proName;
Elem in;
priQueue PQ;
PQ.priInit();
system("cls");
showMenu();
cout<<"选择菜单中的相关选项以便处理数据!"<<endl;
cin>>i;
system("cls");
while(i!="0")
{
if(i=="1")
{
system("cls");
showMenu();
cout<<"你选择了1,所有数据将全部清空:"<<endl;
PQ.priInit();
showTip();
}
else if(i=="2")
{
system("cls");
showMenu();
cout<<"你选择了2,请输入商品ID,商品数量,经手人名称(入库后辍为-C;出库后辍为-G)"<<endl;
cout<<"请输入 商品ID:"<<endl;
cin>>ID;
cout<<"请输入商品数量:"<<endl;
cin>>NUM;
cout<<"请输入经手人名称(入库后辍为-C;出库后辍为-G):"<<endl;
cin>>proName;
in.setID(ID);
in.setNum(NUM);
in.setProN(proName);
PQ.priInsert(in);
showTip();
}
else if(i=="3")
{
system("cls");
showMenu();
cout<<"你选择了3,请选择你要删除的商品ID"<<endl;
cin>>ID;
PQ.priDelete(ID);
showTip();
}
else if(i=="4")
{
system("cls");
showMenu();
cout<<"你选择了4,输入要查找的商品ID"<<endl;
cin>>ID;
PQ.search(ID);
showTip();
}
else if(i=="5")
{
system("cls");
showMenu();
cout<<"你选择了5,整个商品库存量显示如下:"<<endl;
PQ.priView();
showTip();
}
else
{
system("cls");
showMenu();
cout<<"无效的输入,请更正!"<<endl;
}
cin>>i;
system("cls");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -