1、 中南大学库存管理系统c 56 2020年4月19日 文档仅供参考 中南大学库存管理系统设计(C++) v 题目六:库存管理系统设计 运用面向对象程序设计知识,利用C++语言设计和实现一个“库存管理系统设计”,主要完成对商品的销售、统计和简单管理。 超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包含商品名称、价格、库存量和品牌等信息。本系统要求具备如下主要功能: (1)商品简单管理功能 ² 添加功能:主要完成商品基本信息的添加。 ² 查询功能:可按商品类别、商品名称、生产厂家、进货日期进行查询。若存在相应信息,输出所查
2、询的信息,若不存在该记录,则提示“该记录不存在!”。 ² 修改功能:可根据查询结果对相应的记录进行修改。 ² 删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。 (2)进货功能 按要求添加相应商品的信息到库存中。添加进货日期、生产厂家、进货价等信息。 (3)出货功能 出货时,先输入商品类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入出货的数量、出货日期,计算销售额和利润。如果库存量不够,给出提示信息,结束出货。 (4)统计功能 输出当
3、前库存中所有商品的总数及详细信息;能统计每种商品一周时间内的销售额和利润;能统计每类商品的一周时间内的销售额和利润。输出统计信息时,要按从大到小进行排序。(根据个人能力,至少实现一种统计功能)
在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承和封装等核心概念,每一个类应包含数据成员和成员函数。
源代码
#include
4、Goods //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Goods类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌ { public: Goods(){} int kind; char name[20];//哇哈哈 char date[20];//进货日期 char brand[10];//品牌 char manufactor[10];//厂家 float buyprice; //进货价; float saleprice; //卖出价; int amount; //存货数量; int amount1; //售货数量; int profit; //净
5、利润; Goods * Next; void InputAll()//输入全部函数 { Inputmanufactor(); InputName(); InputKind(); Inputdate(); InputOther(); } void InputKind() { cout<<"\t\t请选择种类:";cin>>kind; } void InputName() { cout<<"\t\t请输入商品的名称:"; cin>>name; } void Inputdate() { cou
6、t<<"\t\t请输入商品的进货日期:"; cin>>date; } void InputBuyprice() { cout<<"\t\t请输入进货价:"; cin>>buyprice; } void InputSaleprice() { cout<<"\t\t请输入售出价:"; cin>>saleprice; } void InputAmount() { cout<<"\t\t请输入剩余商品数量:"; cin>>amount; } void InputProfit() { cout<<"\t\t请输入净利润:"; ci
7、n>>profit; } void Inputmanufactor() { cout << "\t\t请输入商品厂家:"; cin >> manufactor; } void Inputbrand() { cout<<"\t\t请输入生产商品牌:"; cin>>brand; } void InputOther() { cout<<"\t\t请输入进货价:"; cin>>buyprice; cout<<"\t\t请输入售出价:"; cin>>saleprice; cout<<"\t\t请输入存货数量:"; cin>>amou
8、nt;
cout<< "\t\t请输入商品的厂家:";cin>>manufactor;
cout<<"\t\t请输入生产商品牌:"; cin>>brand;
profit=0;
}
void ReadFile(istream &in)
{
in>>name>>kind>>date>>manufactor>>buyprice>>saleprice>>amount>>brand>>profit;
}
void Show()
{
cout<<"商品名: "< 9、货日期 "< 10、 Goodsmessage();
~Goodsmessage();
void showMenu(int n);
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Goods *,Goods *);
void Paixu();
void Saleprice();
//void Chack();
int ListCount();
void Display()
{
system("cls");
i=0 11、
for(Goods * p=Head->Next;p!=End;p=p->Next)
{
p->Show();
i++;
}
cout<<"共有"<InputKind();
End->InputName();
End->Inputda 12、te();
End->InputOther();
End->Next = new Goods;
End=End->Next;
cout<<"添加成功!"< 13、>Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->name,name))return p;
return NULL;
}
Goods *Findkind(int kind)
{
for(Goods * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(p->Next->kind==kind)return p;
return NULL;
}
Goods *Finddate(cha 14、r * date)
{
for(Goods * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->date,date))return p;
return NULL;
}
Goods *Findmanufactor(char * manufactor)
{
for(Goods * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->manu 15、factor,manufactor))return p;
return NULL;
}
};
Goodsmessage::Goodsmessage() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
{
Head=new Goods;
Head->Next=new Goods;
End=Head->Next;
in.open("market.txt");
if(!in)
cout<<"无商品信息。请先进货。"< 16、n.eof())
{
End->ReadFile(in);
if(End->name[0]=='\0')break;
End->Next=new Goods;
End=End->Next;
}
in.close();
cout<<"\t\t\t\t读取商品信息成功!"<<"\n"< 17、Goods * temp;Head->Next!=End;)
{
temp=Head->Next;
Head->Next=Head->Next->Next;
delete temp;
}
delete Head,End;
}
void Goodsmessage::showMenu(int n)//菜单 //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
{
switch(n)
{
case 1:
{
cout<<"********************************* 18、\n"
<<" 1. 食品 2. 化妆品 3. 日用品 4. 饮料 \n"
<<"********************************************************************************\n"< 19、"< 20、 2.显示商品 ######################"< 21、 ######################"< 22、endl;
cout<<"##################### 0.安全退出系统 ######################"< 23、 2. 修改种类 3. 修改进货日期\n"
<<"\t 4. 修改进货价 5. 修改售出价 6. 修改剩余商品量\n"
<<"\t 7. 修改净利润 8. 修改商品品牌 9. 修改生产厂家\n"
<<"\t 10. 修改全部 0. 返回主菜单\n"
<<"******************************************************************* 24、"< 25、"< 26、 2.按生产厂家查找 *****\n\t\t ***** 3.按进货日期查找 *****\n\t\t ***** 4.按商品类别查找 *****\n\t\t ***** 0.返回主菜单 *****";
cout<<"\n\t\t *********************************\n请选择:0-4"< 27、E");
cout << "\n\n\n\n\n\n\n\n\n\n\n\n\t\t感谢您使用本库存管理系统,欢迎下次使用,再见!\n" << endl;
cout<<"\t\t请按任意键退出!\n\n\n\n\n\n\n\n\n\n\n"< 28、showMenu(5);
cin>>x;
switch(x)
{
case 1:{cout<<"\t\t请输入要查找的商品的名称:";cin>>name;
if(p=Findname(name))
{
p->Next->Show();
cout<<"输入任意字符!返回主菜单";
getch();
}
else
{
cout<<"\t\t没有找到该名称的商品!"<<'\n'< 29、 }break;
case 2:
{
cout<<"\t\t请输入要查找的商品的生产厂家:";cin>>manufactor;
if(p=Findmanufactor(manufactor))
{
p->Next->Show();
cout<<"输入任意字符!返回主菜单";
getch();
}
else
{
cout<<"\t\t没有找到该生产厂家的商品!"<<'\n'< 30、 }
}break;
case 3:
{
cout<<"\t\t请输入要查找的商品的进货日期:";cin>>date;
if(p=Finddate(date))
{
p->Next->Show();
cout<<"输入任意字符!返回主菜单";
getch();
}
else
{
cout<<"\t\t没有找到该进货日期的商品!"<<'\n'< 31、 }break;
case 4:
{
cout<<"\t\t请输入要查找的商品的类型:";cin>>kind;
if(p=Findkind(kind))
{
p->Next->Show();
cout<<"输入任意字符!返回主菜单";
getch();
}
else
{
cout<<"\t\t没有找到该种类的商品!"<<'\n'< 32、 }
}
void Goodsmessage::ModifyItem() //修改商品信息
{
showMenu(3);
int x;
cin>>x;
switch(x)
{
case 1:
{
char name[20];
Goods * p=NULL;
cout<<"\t\t请输入要修改的商品的名称:";cin>>name;
if(p=Findname(name))
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 33、dl;
p->Next->InputName();
cout<<"修改成功!"< 34、t<<"\t\t请输入要修改的商品的名称:";cin>>name;
if(p=Findname(name))
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 35、 getch();
}
break;
}
case 3:
{
char name[20];
Goods * p=NULL;
cout<<"\t\t请输入要修改的商品的名称:";cin>>name;
if(p=Findname(name))
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 36、
getch();
}
else
{
cout<<"\t\t没有找到您需要的商品!"< 37、品的信息,请输入新的信息!"< 38、ods * p=NULL;
cout<<"\t\t请输入要修改的商品的名称:";cin>>name;
if(p=Findname(name))
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 39、 cout<<"输入任意字符!返回主菜单";
getch();
}
break;
}
case 6:
{
char name[20];
Goods * p=NULL;
cout<<"\t\t请输入要修改的商品的名称:";cin>>name;
if(p=Findname(name))
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 40、
cout<<"输入任意字符!返回主菜单";
getch();
}
else
{
cout<<"\t\t没有找到您需要的商品!"< 41、
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 42、
char name[20];
Goods * p=NULL;
cout<<"\t\t请输入要修改的商品的名称:";cin>>name;
if(p=Findname(name))
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 43、t没有找到您需要的商品!"< 44、
cout<<"修改成功!"< 45、e;
if(p=Findname(name))
{
cout<<"\t\t已找到商品的信息,请输入新的信息!"< 46、
}
void Goodsmessage::RemoveItem() //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除商品信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
{
system("cls");
char Id[20];
Goods * p=NULL,*temp=NULL;
cout<<"\t\t请输入要删除的商品的名称:"< 47、out<<"\t\t删除成功!"< 48、 p=NULL;
Goods * temp=NULL;
cout<<"\t\t请输入要售出的商品的名称和数量:"< 49、
cout<<"售出商品名称: "< 50、
}
}
else
{
cout<<"无此种商品,不能购买"<






