用c++语言,结合invoiceitem类,设计一个商品销售类,需要完成以下功能:(1)询问客户购买的商品名称和数量(2)从invoiceitem对象获得每个商品的成本价(3)在成本价的基础上加上30%的利润,得到每个商品的单价(4)将商品单价与购买的商品数量相乘,得到商品小计(5)将商品小计乘以6%,得到商品的销售税(6)将商品小计与商品销售税相加得到该商品的销售额(7)显示客户本息交易购买商品的小计,零售税和销售额
时间: 2024-03-24 11:39:06 浏览: 50
商品销售系统用c++开发
5星 · 资源好评率100%
好的,根据你的需求,我可以为你提供一个更新后的Sales类,并添加一个新的方法来实现上述功能。更新后的Sales类包括以下成员变量和方法:
成员变量:
- items: 一个包含多个InvoiceItem对象的vector,用于存储所有商品销售信息。
方法:
- add_item(name: string, quantity: int): void
功能:询问客户购买的商品名称和数量,并根据名称从InvoiceItem对象中获取成本价,然后计算出每个商品的单价,将商品名称、数量、单价、小计、销售税、销售额存储到一个新的InvoiceItem对象中,并将该对象添加到items中。
- remove_item(index: int): void
功能:从items中删除指定索引的InvoiceItem对象。
- get_subtotal(): double
功能:计算所有InvoiceItem对象的小计,并返回小计总价值。
- get_sales_tax(): double
功能:计算所有InvoiceItem对象的销售税,并返回销售税总价值。
- get_total(): double
功能:计算所有InvoiceItem对象的销售额,并返回销售额总价值。
- print_receipt(): void
功能:打印所有InvoiceItem对象的信息以及小计、销售税、销售额。
下面是一个基于上述设计方案的实现代码:
```cpp
#include <iostream>
#include <vector>
#include "invoiceitem.h"
class Sales {
public:
void add_item(std::string name, int quantity) {
double cost_price = 0.0; // 获取成本价
for (auto item : items) {
if (item.get_name() == name) {
cost_price = item.get_cost_price();
break;
}
}
double unit_price = cost_price * 1.3; // 计算单价
double subtotal = unit_price * quantity; // 计算小计
double sales_tax = subtotal * 0.06; // 计算销售税
double total = subtotal + sales_tax; // 计算销售额
InvoiceItem item(name, quantity, unit_price, subtotal, sales_tax, total);
items.push_back(item);
}
void remove_item(int index) {
items.erase(items.begin() + index);
}
double get_subtotal() {
double subtotal = 0.0;
for (auto item : items) {
subtotal += item.get_subtotal();
}
return subtotal;
}
double get_sales_tax() {
double sales_tax = 0.0;
for (auto item : items) {
sales_tax += item.get_sales_tax();
}
return sales_tax;
}
double get_total() {
double total = 0.0;
for (auto item : items) {
total += item.get_total();
}
return total;
}
void print_receipt() {
for (int i = 0; i < items.size(); ++i) {
std::cout << "Item " << i + 1 << ":" << std::endl;
items[i].print();
std::cout << std::endl;
}
std::cout << "Subtotal: $" << get_subtotal() << std::endl;
std::cout << "Sales Tax: $" << get_sales_tax() << std::endl;
std::cout << "Total: $" << get_total() << std::endl;
}
private:
std::vector<InvoiceItem> items;
};
```
这里我添加了一个新的方法add_item来实现客户购买商品的询问、计算单价、小计、销售税、销售额等功能。在add_item方法中,我首先根据商品名称从已有的InvoiceItem对象中获取成本价,然后计算出每个商品的单价、小计、销售税和销售额,将这些信息存储到一个新的InvoiceItem对象中,并将该对象添加到items中。其他方法的实现与之前的版本基本相同,只是计算小计、销售税和销售额时需要使用InvoiceItem对象中的新成员变量。最后,在print_receipt方法中,我添加了打印小计、销售税和销售额的功能。
阅读全文