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

#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集合框架源码(一)——hashMap

    注:本人的源码基于JDK1.8.0,JDK的版本可以在命令行模式下通过java -version命令查看. 一首先我们来看一下HashMap类的定义: public class HashMap< ...

  2. Sql server 本地临时表、全局临时表的区别

    创建了本地临时表#Tmp.全局临时表##Tmp: 本地临时表: 取名以#开头.如:#Tmp(会自动加上一串后缀) 只有当前的连接可以访问 连接关闭后,本地临时表自动释放 全局临时表: 取名以##开头. ...

  3. 【译】x86程序员手册29-第8章 输入输出

    Chapter 8 Input/Output 输入/输出 This chapter presents the I/O features of the 80386 from the following ...

  4. Spring注解的步骤

    Spring框架提供DI(属性注解)和IOC(类/Bean的注解)注解. 注解:标注.注入和解析.解释;标注和解释一部分代码的作用在框架中:就是配置文件的另外一种实现方式@Type.@Taget;减少 ...

  5. Exceptions & Errors - 异常与错误

    来源于 Ry’s Objective-C Tutorial - RyPress 一个学习Objective-C基础知识的网站. 个人觉得很棒,所以决定抽时间把章节翻译一下. 本人的英语水平有限,有让大 ...

  6. 扩增子分析解读5物种注释 OTU表操作

    本节课程,需要先完成<扩增子分析解读>系列之前的操作 1质控 实验设计 双端序列合并 2提取barcode 质控及样品拆分 切除扩增引物 3格式转换 去冗余 聚类 4去嵌合体 非细菌序列 ...

  7. JAVA程序员面试笔试宝典3

    1.什么是线程?它与进程有什么区别?为什么要使用多线程 线程是指程序在执行过程中,能够执行程序代码的一个执行单元.进程是指一段正在执行的程序. 使用多线程可以减少程序的相应时间 与进程相比,线程的创建 ...

  8. java中的数学函数Math方法记录

    1,三角函数与属性Math.sin() -- 返回数字的正弦值Math.cos() -- 返回数字的余弦值Math.tan() -- 返回数字的正切值Math.asin() -- 返回数字的反正弦值M ...

  9. 部署web服务器的配置——补充mysql和tomcat

    今天想到了关于mysql的一些配置,以后关于配置mysql和tomcat相关的内容也会补充在这里. tomcat: 1. 更改内存(要设置tomcat内存,解决内存溢出的问题):安装版tomcat,打 ...

  10. 爬虫之BeautifulSoup库

    文档:https://beautifulsoup.readthedocs.io/zh_CN/latest/ 一.开始 解析库 # 安装解析库 pip3 install lxml pip3 instal ...