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

#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. Tornado引入静态css、js文件

    一.静态路径 template_path=os.path.join(os.path.dirname(__file__), "templates") 这里是设置了模板的路径,放置模板 ...

  2. Vue.js——router-link阻止click事件

    router-link 只能单纯做路由跳转 https://segmentfault.com/q/1010000007896386

  3. vue2.0框架认识

    虚拟dom和声明式渲染: Vue的编译器在编译模板之后,会把这些模板编译成一个渲染函数 .而函数被调用的时候就会渲染并且返回一个 虚拟DOM的树 .这个树非常轻量,它的职责就是描述当前界面所应处的状态 ...

  4. firefox + pentadactyl 实现纯绿色高效易扩展浏览器(同时实现修改默认状态栏样式)

    这几天开始使用firefox+pentadactyl来搭建一个开源.可扩展.完全绿化的浏览器环境,以便随身带着使用,其中firefox的使用了24.0的长期支持版, 这边版本稳定, 快速, 兼容性好, ...

  5. [转]最值得拥有的免费Bootstrap后台管理模板

    在PHP开发项目中,后台管理因为面向群体相对比较固定,大部分以实现业务逻辑和功能.使用Bootstrap后台模板可以让后端开发很轻松的就展现给客户一个响应式的后台,节约前端开发的时间.下面PHP程序员 ...

  6. (转)Hibernate框架基础——多对多关联关系映射

    http://blog.csdn.net/yerenyuan_pku/article/details/52756536 多对多关联关系映射 多对多的实体关系模型也是很常见的,比如学生和课程的关系.一个 ...

  7. [转]SSD固态存储大观(一)

    From: http://blog.51cto.com/alanwu/1405874 Contents 1.概述... 1 2.FusionIO:Pcie SSD的始作俑者... 2 3.Intel ...

  8. 王垠:写给支持和反对《完全用Linux工作》的人们

    王垠:写给支持和反对<完全用Linux工作>的人们 在一阵阵唾骂和欢呼声中,<完全用linux工作>被转载到了天涯海角.很多人支持我,也有很多人唾骂我.我不知道它是怎样流传到那 ...

  9. JAVA基础——链表结构之双端链表

    双端链表:双端链表与传统链表非常相似.只是新增了一个属性-即对最后一个链结点的引用 如上图所示:由于有着对最后一个链结点的直接引用.所以双端链表比传统链表在某些方面要方便.比如在尾部插入一个链结点.双 ...

  10. Android 7.0系统代码调用安装apk时报错FileUriExposedException完美解决

    项目更新遇到问题   Android项目开发中经常遇到下载更新的需求,以前调用系统安装器执行安装操作代码如下: Intent intent = new Intent(); intent.setActi ...