首页 > 分享 > C++大作业 商品库存管理系统

C++大作业 商品库存管理系统

MAX_xihuanni 于 2022-06-16 08:03:54 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

 利用c++做的课程设计(链表),在DEV C++等编译器上可通过

运行完毕后可自动保存信息输出文件

觉得还可以的话请点赞收藏哦

#include<iostream>

#include<fstream>

#include<string>

#include<iomanip>

#include<windows.h>

using namespace std;

enum GoodsType

{

Food=1,

Cosmetic,

Commodity,

Drink

};

struct Date

{

int year;

int month;

int day;

};

struct Goods

{

string code;

string name;

string brand;

double price;

int num;

GoodsType type;

Date date;

Goods *next;

};

class GoodsManage

{

public:

GoodsManage();

~GoodsManage(){}

void DisplayMainMenu();

void AddGoodsInfo();

void DisplayGoodsInfo();

void SearchByCode();

void SearchByName();

void DeleteGoodsInfo();

void SellGoodsInfo();

void SaveGoodsInfo();

private:

int amount;

int DeleteAmount;

Goods *head;

Goods *DeleteHead;

};

GoodsManage::GoodsManage()

{

amount=0;

DeleteAmount=0;

head=new Goods;

head->next=NULL;

DeleteHead=new Goods;

DeleteHead->next=NULL;

}

void GoodsManage::DisplayMainMenu()

{

cout<<" ━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆━═☆n";

cout<<" ┋ ┋n";

cout<<" ┋ 欢迎使用商品库存管理系统 ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【商品进货】…(a) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【商品编辑】…(b) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【商品删除】…(c) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【按照编号查询】…(d) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【按照名称查询】…(e) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【商品出货】…(h) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【商品统计】…(i) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 【信息保存】…(j) ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ ┋n";

cout<<" ┋ 退出系统…(k) ┋n";

cout<<" ┋ ┋n";

cout<<" ━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆┈━═☆━═☆n";

cout<<"n 请输入你要进行的操作编号:";

}

void GoodsManage::AddGoodsInfo()

{

char c,c1;

Goods *tail=head,*p;

bool flag;

cout<<" ☆☆☆☆☆☆现在进行商品信息的添加☆☆☆☆☆☆ "<<endl;

while(tail->next!=NULL)

tail=tail->next;

do

{

flag=0;

p=new Goods;

cout<<"请选择商品类别:"<<endl;

cout<<"1.食品 2.化妆品 3.日用品 4.饮料"<<endl;

cout<<"请输入相应编号:";

do

{

cin>>c1;

if(c1>='1'&&c1<='4')

flag=1;

else

{

cout<<"您输入的编号不存在!"<<endl;

cout<<"请选择正确的商品类别:"<<endl;

}

}while(flag==0);

if(c1=='1')p->type=Food;

if(c1=='2')p->type=Cosmetic;

if(c1=='3')p->type=Commodity;

if(c1=='4')p->type=Drink;

cout<<"商品类别("<<p->type<<")"<<endl;

cout<<"请输入商品编号: ";

cin>>p->code;

do

{

Goods *q=head->next;

while(q!=NULL&&q->code!=p->code)

q=q->next;

if(q==NULL)

flag=1;

else

{

cout<<"存在该编号的货物!!!请重新输入编号:";

cin>>p->code;

}

}while(flag==0);

cout<<"请输入商品名称:";

cin>>p->name;

cout<<"请输入生产厂家:";

cin>>p->brand;

cout<<"请输入商品价格:";

cin>>p->price;

cout<<"请输入商品数量:";

cin>>p->num;

cout<<"请输入入库时间(年/月/日):";

cin>>p->date.year>>p->date.month>>p->date.day;

tail->next=p;

p->next=NULL;

tail=p;

amount++;

cout<<"数据输入成功!!!想继续添加吗(y/n):";

cin>>c;

while(c!='y'&&c!='n')

{

cout<<"指令错误!!!!!<请输入y/n>"<<endl;

cout<<"数据添加成功!!!想继续输入吗(y/n):";

cin>>c;

}

}while(c=='y');

cout<<endl;

cout<<"……信息处理完毕……"<<endl;

cout<<"……按任意键返回主菜单……"<<endl;

getchar();

getchar();

}

void GoodsManage::DisplayGoodsInfo()

{

Goods *p=head;

cout<<" ☆☆☆☆☆☆现在进行商品信息的浏览☆☆☆☆☆☆ "<<endl;

cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<

"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;

while(p->next!=NULL)

{

p=p->next;

cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;

cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;

cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;

}

cout<<endl;

cout<<"……信息统计完毕……"<<endl;

cout<<"……按任意键返回主菜单……"<<endl;

getchar();

getchar();

}

void GoodsManage::SearchByCode()

{

Goods *p;

bool flag;

string FoundCode;

cout<<" ☆☆☆☆☆☆现在进行商品信息的查找☆☆☆☆☆☆ "<<endl;

p=head;

flag=0;

cout<<"请输入您要查找的商品编号:";

cin>>FoundCode;

while(p->next!=NULL)

{

p=p->next;

if(p->code==FoundCode)

{

flag=1;

cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<

"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;

cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;

cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;

cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;

break;

}

}

if(flag==0)

{

cout<<"对不起,您查询的商品不存在!!!"<<endl;

}

cout<<endl;

cout<<"……信息查找完毕……"<<endl;

cout<<"……按任意键返回主菜单……"<<endl;

getchar();

getchar();

}

void GoodsManage::SearchByName()

{

Goods *p;

bool flag;

string FoundName;

cout<<" ☆☆☆☆☆☆现在进行商品信息的查找☆☆☆☆☆☆ "<<endl;

p=head;

flag=0;

cout<<"请输入您要查找的商品名称:";

cin>>FoundName;

while(p->next!=NULL)

{

p=p->next;

if(p->name==FoundName)

{

flag=1;

cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<

"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;

cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;

cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;

cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;

break;

}

}

if(flag==0)

{

cout<<"对不起,您查询的商品不存在!!!"<<endl;

}

cout<<endl;

cout<<"……信息查找完毕……"<<endl;

cout<<"……按任意键返回主菜单……"<<endl;

getchar();

getchar();

}

void GoodsManage::DeleteGoodsInfo()

{

Goods *q=head,*p,*tail=DeleteHead;

p=new Goods;

char c;

string Dename;

bool flag=0;

while(tail->next!=NULL)

tail=tail->next;

cout<<" ☆☆☆☆☆☆现在进行商品信息的删除☆☆☆☆☆☆ "<<endl;

do

{

cout<<"请输入您要删除的商品名称:";

cin>>Dename;

while(q->next!=NULL&&q->next->name!=Dename)

q=q->next;

if(q->next!=NULL)

{

flag=1;

cout<<"确认删除吗?<y/n>";

cin>>c;

while(c!='y'&&c!='n')

{

cout<<"指令错误!!!!<请输入y/n>:";

cin>>c;

}

if(c=='y')

{

p=q->next;

q->next=q->next->next;

tail->next=p;

tail=p;

tail->next=NULL;

DeleteAmount++;

amount--;

cout<<"删除成功!!"<<endl;

}

else cout<<"取消成功!!!"<<endl;

}

if(flag==0)

{

cout<<"对不起,您删除的商品不存在!!!"<<endl;

}

cout<<"您想要继续删除吗?(y/n):";

cin>>c;

while(c!='y'&&c!='n')

{

cout<<"指令错误!!!<请输入y/n>:"<<endl;

cout<<"您想要继续删除吗?(y/n):";

cin>>c;

}

flag=0;

q=head;

}while(c=='y');

cout<<endl;

cout<<"……信息删除完毕……"<<endl;

cout<<"……按任意键返回主菜单……"<<endl;

getchar();

getchar();

}

void GoodsManage::SellGoodsInfo()

{

int sellNum,year,month,day;

double sellPrice,sum=0.0,profit=0.0;

char c;

Goods *p;

bool flag=0;

string SellName;

cout<<" ☆☆☆☆☆☆现在进行商品的出售☆☆☆☆☆☆ "<<endl;

do

{

p=head->next;

flag=0;

cout<<"请输入您要出售的商品名称:";

cin>>SellName;

while(p->next!=NULL&&p->name!=SellName)

p=p->next;

if(p->name==SellName)

{

flag=1;

cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<

"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;

cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;

cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;

cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;

cout<<"确认出售吗?<y/n>";

cin>>c;

while(c!='y'&&c!='n')

{

cout<<"指令错误!!!!<请输入y/n>:";

cin>>c;

}

if(c=='y')

{

cout<<"请输入出售的商品数量:";

cin>>sellNum;

if(sellNum<=p->num)

{

p->num=p->num-sellNum;

cout<<"请输入出售的商品价格:";

cin>>sellPrice;

cout<<"请输入出货日期:";

cin>>year>>month>>day;

sum=sellNum*sellPrice;

profit=sellNum*(sellPrice-p->price);

cout<<"此次销售额为: "<<sum<<endl;

cout<<"此次利润为: "<<profit<<endl;

cout<<"出货日期为:"<<year<<"/"<<month<<"/"<<day<<endl;

}

else

{

cout<<"库存不足!出库失败!"<<endl;

}

}

else cout<<"取消成功!"<<endl;

}

if(flag==0)

{

cout<<"对不起,您出售的货物不存在!!"<<endl;

}

cout<<"您想要继续出售吗?(y/n):";

cin>>c;

while(c!='y'&&c!='n')

{

cout<<"指令错误!!!<请输入y/n>:"<<endl;

cout<<"您想要继续出售吗?(y/n):";

cin>>c;

}

}while(c=='y');

cout<<endl;

cout<<"……出库完毕……"<<endl;

cout<<"……按任意键返回主菜单……"<<endl;

getchar();

getchar();

}

void GoodsManage::SaveGoodsInfo()

{

Goods *p=head;

cout<<" ☆☆☆☆☆☆现在进行商品信息的保存☆☆☆☆☆☆ "<<endl;

ofstream output("货物信息.txt",ios::out);

if(!output)

{

cerr<<"打开文件<货物信息.txt>失败!!!"<<endl;

}

cout<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<

"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;

output<<"商品总量为: "<<amount<<"n";

output<<setiosflags(ios::left)<<setw(10)<<"编号"<<setw(16)<<"名称"<<setw(10)<<"生产厂家"<<setw(10)<<"价格"<<setw(10)<<

"商品类别"<<setw(10)<<"数量"<<setw(10)<<"入库时间"<<endl;

while(p->next!=NULL)

{

p=p->next;

cout<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;

cout<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;

cout<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;

output<<setiosflags(ios::left)<<setw(10)<<p->code<<setw(16)<<p->name;

output<<setw(10)<<p->brand<<setw(10)<<p->price<<setw(10)<<p->type;

output<<setw(10)<<p->num<<p->date.year<<"/"<<p->date.month<<"/"<<p->date.day<<endl;

}

cout<<endl;

cout<<"成功将货物信息保存到<货物信息.txt>"<<endl;

cout<<"……信息保存完毕……"<<endl;

cout<<"……按任意键返回主菜单……"<<endl;

getchar();

getchar();

output.close();

}

int main()

{

char c;

int i=0;

bool flag=0;

GoodsManage bm;

system("color f8");

cout<<endl<<endl<<endl<<endl<<endl<<endl<<" 欢迎使用库存管理系统......系统正在加载中";

Sleep(2000);

system("cls");

bm.DisplayMainMenu();

for(;;)

{

do

{

cin>>c;

if(c>='a'&&c<='k')

flag=1;

else

{

cout<<"您输入的编号不存在!"<<endl;

cout<<"请选择相应的数字进行操作:"<<endl;

}

}while(flag==0);

system("cls");

switch(c)

{

case'a':bm.AddGoodsInfo();

break;

case'c':bm.DeleteGoodsInfo();

break;

case'd':bm.SearchByCode();

break;

case'e':bm.SearchByName();

break;

case'h':bm.SellGoodsInfo();

break;

case'i':bm.DisplayGoodsInfo();

break;

case'j':bm.SaveGoodsInfo();

break;

case'k':exit(0);

break;

}

system("cls");

bm.DisplayMainMenu();

}

}

相关知识

童装店铺库存管理方案1篇
erp系统在哪里查看库存
{“title”:“低温乳品库存管理技巧 最新保鲜技术提升管理效率”}
盆景花卉库存管理方案
超市仓库管理怎么样
基于Java的花卉销售系统的设计与实现/管理系统/鲜花网站
springboot+vue仓库管理系统【开题+程序+论文】
鲜花库房的运作管理.pptx
超市管理系统设计方案资源
鲜花库房的运作管理(40页)

网址: C++大作业 商品库存管理系统 https://m.huajiangbk.com/newsview561851.html

所属分类:花卉
上一篇: 物流系统
下一篇: 吐鲁番花店送花实拍,吐鲁番订花看