各位大神们。有什么补充的能够评论一下吗?

#include<iostream>

#include<string>

using namespace std;

int G=0;//定义全局变量//现有货物的总数

int S=0;//staff员工总数

double T=0;//总共的营业额

//创建第一个类(货物)

class goods

{

public:

string id;//

string name;//名字

double price;//价格

int num;//编号

}goods[10000];//定义数组

class staff//第二个类(职员)

{

public:

string id;

string name;

double sale;//营业额

}staff[1000];

class manager

{

public:

virtual void show()//虚函数

{

cout<<"管理基类的show方法"<<endl;

}

};

class salemanager:public manager//派生的一个类

{

public:

string salemenu;

salemanager()

{

salemenu="---销售管理---\n1.商品销售\n2.销售退款\n3.新建销售员信息4.销售统计\n0.返回主菜单\n请输入您的选择:";

}

void show()

{

int n,i,j;

do

{

cout<<salemenu;

cin>>n;

if(n==1)

{

int num,d=1;

string a,b;

cout<<"请输入销售的员工编号:";

cin>>b;

for(i=1;i<=S;i++)

if(b==staff[i].id)

{

d=0;

break;

}

if(d)

{

cout<<"没有该编号的员工。

"<<endl;

system("pause");

break;

}

d=1;

cout<<"请输入销售商品的编号:"<<endl;

cin>>a;

for(j=1;j<=G;j++)

if(a==goods[j].id)

{

d=0;

break;

}

if(d)

{

cout<<"没有该编号的商品。"<<endl;

system("pause");

break;

}

cout<<"请输入销售量:"<<endl;

cin>>num;

if(num>goods[i].num)

cout<<"没有那么多库存。

"<<endl;

else 

{

staff[i].sale+=num*goods[j].price;//营业额的计算

goods[j].num-=num;

T+=num*goods[j].price;

}

}

else if(n==2)

{

int num,d=1;

string a,b;

cout<<"请输入退款的员工编号:";

cin>>b;

for(i=1;i<=S;i++)

if(b==staff[i].id)

{

d=0;

break;

}

if(d)

{

cout<<"没有该编号的员工。"<<endl;

system("pause");

break;

}

d=1;

cout<<"请输入退款商品的编号:"<<endl;

cin>>a;

for(j=1;j<=G;j++)

if(a==goods[j].id)

{

d=0;

break;

}

if(d)

{

cout<<"没有该编号的商品。

"<<endl;

system("pause");

break;

}

cout<<"请输入退还量:"<<endl;

cin>>num;

staff[i].sale-=num*goods[j].price;

goods[j].num+=num;

T-=num*goods[j].price;

}

else if(n==3)

{

S++;

cout<<"请输入新员工编号:";

cin>>staff[S].id;

cout<<"请输入新员工姓名:";

cin>>staff[S].name;

cout<<"请输入新员工营业额:";

cin>>staff[S].sale;

}

else if(n==4)

{

int i;

cout<<"编号\t姓名\t销售额"<<endl;

for(i=1;i<=S;i++)

cout<<staff[i].id<<"\t"<<staff[i].name<<"\t"<<staff[i].sale<<endl;

}

}

while(n);

}

};

class savemanager:public manager

{

public:

string savemenu;

savemanager()

{

savemenu="---库存管理---\n1.查询库存\n0.返回主菜单\n请输入您的选择:";

}

void show()

{

int n,i;

do

{

cout<<savemenu;

cin>>n;

if(n==1)

{

cout<<"编号\t名称\t单位价格\t库存"<<endl;

for(i=1;i<=G;i++)

cout<<goods[i].id<<"\t"<<goods[i].name<<"\t"<<goods[i].price<<"\t"<<goods[i].num<<endl;

}

}

while(n);

}

};

class buymanager:public manager

{

public:

string buymenu;

buymanager()

{

buymenu="---採购管理---\n1.买入原有商品\n2.买入新商品\n0.返回主菜单\n请输入您的选择:";

}

void show()

{

int n,i;

do

{

cout<<buymenu;

cin>>n;

if(n==1)

{

int num,d=1;

double p;

string a;

cout<<"请输入买入的货物编号:";

cin>>a;

for(i=1;i<=G;i++)

if(a==goods[i].id)

{

d=0;

break;

}

if(d)

{

cout<<"没有该编号的货物。"<<endl;

system("pause");

break;

}

cout<<"请输入买入单位价格:";

cin>>p;

cout<<"请输入买入数量:";

cin>>num;

goods[i].num+=num;

T-=num*p;

}

else if(n==2)

{

G++;

cout<<"请输入新货物编号:";

cin>>goods[G].id;

cout<<"请输入新货物名称:";

cin>>goods[G].name;

cout<<"请输入新货物单位价格:";

cin>>goods[G].price;

cout<<"请输入新货物数量:";

cin>>goods[G].num;

T-=goods[G].num*goods[G].price;

}

}

while(n);

}

};

class moneymanager:public manager

{

public:

string moneymenu;

moneymanager()

{

moneymenu="---財务管理---\n1.查询营业额\n0.返回主菜单\n请输入您的选择:";

}

void show()

{

int n;

do

{

cout<<moneymenu;

cin>>n;

if(n==1)cout<<"营业额为:"<<T<<endl;

}

while(n);

}

};

class form

{

public:

int n;

string strword;

form(string str)

{

strword=str;

}

void input()

{

do

{

system("cls");

cout<<strword;

cin>>n;



if(n==1)

{

salemanager m;

addfun(&m);

}

else if(n==2)

{

savemanager m;

addfun(&m);

}

else if(n==3)

{

buymanager m;

addfun(&m);

}

else if(n==4)

{

moneymanager m;

addfun(&m);

}

}while(n);

}

//向菜单类对象加入功能对象

void addfun(manager *m)

{

m->show();

}

};

void main()

{

string menu,salemenu,savemenu,buymenu,moneymenu;

menu="==进销存===\n";

menu+="1.销售管理\n";

menu+="2.库存管理\n";

menu+="3.採购管理\n";

menu+="4.財务管理\n0.退出\n请输入您的选择:";

form f(menu);

f.input();

}

进销存管理系统, 刚学C++的更多相关文章

  1. Java实例学习——企业进销存管理系统(4)

    Java实例学习——企业进销存管理系统(4) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月18日——系统主窗体设计 只看了学习视频 2月19日—— 回 ...

  2. Net通用进销存管理系统 + 开发文档+ 使用说明

    通用进销存管理系统 + 开发文档+ 使用说明Net源码下载 包括下面的模块基础资料模块采购管理模块库存管理模块商务管理模块营业管理模块维修管理模块会员管理模块财务管理模块 Net通用进销存管理系统 + ...

  3. 文献综述十五:基于b/s中小型超市进销存管理系统的研究与设计

    一.基本信息 标题:基于b/s中小型超市进销存管理系统的研究与设计 时间:2015 出版源:湘西财经大学 文件分类:对超市管理系统的研究 二.研究背景 在竞争日益激烈的行业中,尽可能降低运营成本,逐步 ...

  4. Java实例学习——企业进销存管理系统(3)

    Java实例学习--企业进销存管理系统(3) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月16日-公共类(Item公共类,数据模型公共类,Dao公共类 ...

  5. Java实例学习——企业进销存管理系统(2)

    Java实例学习--企业进销存管理系统(2) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月15日-系统登录 对于昨天新建的12个Java包不能完全显示 ...

  6. Java实例学习——企业进销存管理系统(1)

    Java实例学习——企业进销存管理系统(1) (本实例为书上实例,我所记录的是我的学习过程) 开始时间:2月12日 完成时间:暂未完成 2月12日—选择企业进销存管理系统 选择企业进销存管理系统这一实 ...

  7. Access-简易进销存管理系统

    p{ font-size: 15px; } .alexrootdiv>div{ background: #eeeeee; border: 1px solid #aaa; width: 99%; ...

  8. java进销存管理系统的设计与实现-springboot源码

    开发环境: Windows操作系统 开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库   项目简介:   系统前段页面采用jsp + JavaScrip ...

  9. 不逃离WIndows,Asp.Net就只能写写进销存管理系统

    那个丹麦人把C#语言弄的再好,但是如果程序放进Windows+IIS这个容器,就有问题了. 我在I5+8G内存的机子上测试Windows2008+IIs,直接ab 2000并发压默认的HTML主页,还 ...

随机推荐

  1. java如何区分同时继承的父类和实现的接口中相同的方法

    基类代码: public class Father { public Father() { System.out.println("基类构造函数{"); show(); Syste ...

  2. HDU_1561_The more, The Better_树型dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1561 The more, The Better Time Limit: 6000/2000 MS (J ...

  3. QuickClip—界面原型设计

    1.需不需要设置用户登录/注册页? QuickClip没有提供该项功能.因为本产品为单纯的移动端视频编辑软件,是一个工具类软件.而且移动端软件本就追求的是方便快捷.简单易用,本产品不需要标识使用者的身 ...

  4. php第二十八节课

    文件上传 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  5. 洛谷——P3173 [HAOI2009]巧克力

    P3173 [HAOI2009]巧克力 题目描述 有一块n*m的矩形巧克力,准备将它切成n*m块.巧克力上共有n-1条横线和m-1条竖线,你每次可以沿着其中的一条横线或竖线将巧克力切开,无论切割的长短 ...

  6. Python&机器学习总结(一)

    ① numpy中np.c_和np.r_ np.r_是按列连接两个矩阵,就是把两矩阵上下相加,要求列数相等,类似于pandas中的concat(). np.c_是按行连接两个矩阵,就是把两矩阵左右相加, ...

  7. Cash Machine POJ - 1276

    解法 多重背包板子题 多重背包板子 如果上限的体积大于了给定的体积那么套完全背包 否则二进制优化成01背包 代码 #include <iostream> #include <cstr ...

  8. eclipse自动换行

    Eclipse是一款非常优秀的IDE,但是不能自动换行,需要安装一个插件完成这个功能. 安装办法有两种: 1.在线安装. 选择help-->install new software,点击Add, ...

  9. DemoKit编译过程错误

    1.编译出错: 2.原因(将代码注释):

  10. CodeForces 800B Volatile Kite(点与直线的距离)(Java 实现)

    CodeForces 800B Volatile Kite(点与直线的距离)(Java 实现) 传送门 如果想要一个凸多边形不退化为凹多边形,那么任意的相邻的三个点必然最多形成一条直线.因此我们可以求 ...