某老板想要一个能快速计算订单价格的程序,请你帮他设计一个类:
1、这个类里需要原价和数量,原价从一个数组中读出即可(自行定义数组),数量需要初始化。
2、老板会不定期调整价格,调整的方式是通过调整一个价格系数,这个系数乘以原价即为最终价格,这个折扣会影响到所有产品。
Orders.h
#pragma once
#include<iostream>
using namespace std;
class Orders {
static double* m_s_OriginalCost;
int m_size;
public:
Orders();
~Orders();
static void input(int n);
static void Free();
double count(int n);
};
Orders.cpp
#include "Orders.h"
Orders::Orders() {
m_size = 0;
}
double Orders::count(int n) {
double sum = 0;
double m = 0;
cout << "请输入价格系数\n";
cin >> m;
for (int i = 1; i <= n; ++i) {
cout << "请输入产品" << i << "的数量\n";
cin >> m_size;
sum += m_size * m_s_OriginalCost[i] * m;
}
return sum;
}
void Orders::input(int n) {
if (m_s_OriginalCost == nullptr) {
m_s_OriginalCost = new double[n + 1];
}
else if (n > m_s_OriginalCost[0]) {
Free();
m_s_OriginalCost = new double[n + 1];
}
m_s_OriginalCost[0] = n;
for (int i = 1; i <= n; ++i) {
cout << "请输入产品" << i << "的原价\n";
cin >> m_s_OriginalCost[i];
}
}
void Orders::Free() {
delete m_s_OriginalCost;
}
Orders::~Orders() {
}
double* Orders::m_s_OriginalCost = nullptr;
main.cpp
#include"Orders.h"
int main() {
int n;
cout << "请输入产品类型数\n";
cin >> n;
Orders::input(n);//输入原价, 如需更改原价重新调用
Orders a;
double m = a.count(n);
cout << "订单价格为:" << m << endl;
//更改原价, 产品数, 数量
cout << "请重新输入产品类型数\n";
cin >> n;
Orders::input(n);
m = a.count(n);
cout << "订单价格为:" << m << endl;
Orders::Free();
system("pause");
return 0;
}
运行结果如下 :