用c++设计一个 系统管理功能的操作角色为超市管理员,具体功能如下:(1)能按月统计所有商品的销售情况和盈利情况,能查询指定商品类型、指定商品品牌的销售情况。能根据统计的结果进行简单的分析,比如根据同类商品不同的厂家的销售量,分析用户对哪个厂家的商品更喜好,进而决定以后进货时决定不同厂家的商品的进货量。能根据以上统计信息制定进货订单,能修改和审核仓库管理员发过来的进货订单,并将审核结果发送给仓库管理员以完成订货事项。(2)能按月查询销售员的销售情况。能设置销售员的底薪,能根据销售员上月销售情况设置提成比例,生成销售员的薪资。(3)能设置商品销售折扣,能设置库存量的阈值,能根据商品库存信息和商品生产日期、保质期自动提醒管理员设置商品折扣。的简单代码

时间: 2024-02-13 08:02:54 浏览: 20
由于题目中要求是一个系统管理功能的操作角色为超市管理员,因此需要设计一个包含多个功能的软件系统。为了简单起见,以下是一个基本的系统结构设计: ```c++ #include <iostream> #include <vector> #include <string> #include <ctime> using namespace std; // 商品类 class Commodity { public: string id; // 商品编号 string name; // 商品名称 string type; // 商品类型 string brand; // 商品品牌 double price; // 商品价格 int quantity; // 商品数量 string productionDate; // 商品生产日期 int shelfLife; // 商品保质期 Commodity(string i, string n, string t, string b, double p, int q, string d, int s) { id = i; name = n; type = t; brand = b; price = p; quantity = q; productionDate = d; shelfLife = s; } void display() { cout << "ID: " << id << endl; cout << "Name: " << name << endl; cout << "Type: " << type << endl; cout << "Brand: " << brand << endl; cout << "Price: " << price << endl; cout << "Quantity: " << quantity << endl; cout << "Production Date: " << productionDate << endl; cout << "Shelf Life: " << shelfLife << endl; cout << endl; } }; // 商品管理类 class CommodityManager { private: vector<Commodity> commodities; // 商品列表 public: // 添加商品 void addCommodity(string id, string name, string type, string brand, double price, int quantity, string productionDate, int shelfLife) { Commodity commodity(id, name, type, brand, price, quantity, productionDate, shelfLife); commodities.push_back(commodity); } // 按类型和品牌查询商品 vector<Commodity> queryCommodities(string type, string brand) { vector<Commodity> result; for (int i = 0; i < commodities.size(); i++) { if (commodities[i].type == type && commodities[i].brand == brand) { result.push_back(commodities[i]); } } return result; } // 统计所有商品的销售情况和盈利情况 void statistics() { // TODO } // 制定进货订单 void createPurchaseOrder() { // TODO } }; // 销售员类 class Salesman { public: string id; // 销售员编号 string name; // 销售员姓名 double baseSalary; // 销售员底薪 double commissionRate; // 销售员提成比例 int salesVolume; // 上月销售量 Salesman(string i, string n, double b) { id = i; name = n; baseSalary = b; commissionRate = 0; salesVolume = 0; } // 设置提成比例 void setCommissionRate(double rate) { commissionRate = rate; } // 设置上月销售量 void setSalesVolume(int volume) { salesVolume = volume; } // 计算薪资 double calculateSalary() { return baseSalary + salesVolume * commissionRate; } void display() { cout << "ID: " << id << endl; cout << "Name: " << name << endl; cout << "Base Salary: " << baseSalary << endl; cout << "Commission Rate: " << commissionRate << endl; cout << "Sales Volume: " << salesVolume << endl; cout << "Salary: " << calculateSalary() << endl; cout << endl; } }; // 销售员管理类 class SalesmanManager { private: vector<Salesman> salesmen; // 销售员列表 public: // 添加销售员 void addSalesman(string id, string name, double baseSalary) { Salesman salesman(id, name, baseSalary); salesmen.push_back(salesman); } // 按月查询销售员销售情况 void querySalesVolume(int year, int month) { // TODO } // 设置销售员提成比例 void setCommissionRate(string id, double rate) { for (int i = 0; i < salesmen.size(); i++) { if (salesmen[i].id == id) { salesmen[i].setCommissionRate(rate); break; } } } // 设置销售员上月销售量 void setSalesVolume(string id, int volume) { for (int i = 0; i < salesmen.size(); i++) { if (salesmen[i].id == id) { salesmen[i].setSalesVolume(volume); break; } } } }; // 超市管理员类 class SupermarketManager { private: CommodityManager commodityManager; SalesmanManager salesmanManager; public: // 添加商品 void addCommodity(string id, string name, string type, string brand, double price, int quantity, string productionDate, int shelfLife) { commodityManager.addCommodity(id, name, type, brand, price, quantity, productionDate, shelfLife); } // 按类型和品牌查询商品 vector<Commodity> queryCommodities(string type, string brand) { return commodityManager.queryCommodities(type, brand); } // 统计所有商品的销售情况和盈利情况 void statistics() { commodityManager.statistics(); } // 制定进货订单 void createPurchaseOrder() { commodityManager.createPurchaseOrder(); } // 添加销售员 void addSalesman(string id, string name, double baseSalary) { salesmanManager.addSalesman(id, name, baseSalary); } // 按月查询销售员销售情况 void querySalesVolume(int year, int month) { salesmanManager.querySalesVolume(year, month); } // 设置销售员提成比例 void setCommissionRate(string id, double rate) { salesmanManager.setCommissionRate(id, rate); } // 设置销售员上月销售量 void setSalesVolume(string id, int volume) { salesmanManager.setSalesVolume(id, volume); } }; int main() { SupermarketManager manager; // 添加商品 manager.addCommodity("001", "Apple", "Fruit", "Red", 3.0, 100, "2021-09-01", 7); manager.addCommodity("002", "Pear", "Fruit", "Green", 2.5, 200, "2021-09-02", 5); manager.addCommodity("003", "Banana", "Fruit", "Yellow", 2.0, 300, "2021-09-03", 4); // 按类型和品牌查询商品 vector<Commodity> commodities = manager.queryCommodities("Fruit", "Red"); for (int i = 0; i < commodities.size(); i++) { commodities[i].display(); } // 添加销售员 manager.addSalesman("001", "Tom", 1000); manager.addSalesman("002", "Jerry", 1200); // 设置销售员提成比例和上月销售量 manager.setCommissionRate("001", 0.05); manager.setCommissionRate("002", 0.06); manager.setSalesVolume("001", 100); manager.setSalesVolume("002", 200); // 按月查询销售员销售情况 manager.querySalesVolume(2021, 9); return 0; } ``` 以上代码只是一个简单的示例,需要根据实际情况进行完善和优化。

最新推荐

recommend-type

C++ 学生成绩管理系统设计报告书

个人课程设计报告书(内含源码) 内含4个类,各自具有其属性和行为。 基本实现了: (1)学生基本信息、考试科目及成绩的信息录入。 (2)已有学生信息的显示。 (3)学生基本信息的读取和保存输入数据等功能 (4)学生基本...
recommend-type

操作系统课程设计:司机与售票员源代码.docx

操作系统结课的课程设计,题目为“实现司机与售票员P、V操作的同步与互斥”,此处贴上源代码,可以用codeblocks运行得到相应结果
recommend-type

C++学校人员信息管理系统课程设计.doc

一个用C++写的学校人员管理系统,适合大一大二的课程设计,里面运用到了链表、文件读写等一些C++基本语法操作
recommend-type

学籍管理系统源代码 c++.docx

为了学校更加高效,快捷,方便的管理学生信息,并实现以下功能: (1)对学生信息进行录入:先输入学生的学籍,然后输入学生姓名,年龄,性别,籍贯,系别,专业,班级等,最后输入学生状态(入学)。 (2)对已录取...
recommend-type

诊所信息管理系统C++课程设计报告.doc

模拟诊所信息管理系统就是对存储患者信息以及医生信息在个人PC上的编程实现。本系统采用了用户身份的注册、登陆、增加信息、查询信息、帐单信息以及统计所有患者的总费用等功能。并分析在现实生活中遇到的问题并得到...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。