包括私有数据成员:产品品名称,产品价格,库存数量;完善该自定义类,根据需要增加
静态成员,和普通成员。
要求:1) 实现构造函数和析构函数。构造函数重载至少2次。
2) 在主函数中定义对象数组,定义对象
数组的同时要对数组元素初始化,且分别使用不同的构造函数重载完成对象的初始化。
3) 计算库存产品的总价值,并输出。
4)计算不同类型产品的均价,并输出种类数和均价。
提示:计算总价需要静态成员,自己设计增加。对象用不同的构成函数初始化时,如果对象使用了默认构造函数,就需要新的成员
函数完成对象值的修改。
基于Monster 组和GPT的调写:
#include <iostream>
#include <string>
using namespace std;
class Product {
private:
string name;
double price;
int stock;
static int total_stock;
static double total_value;
public:
Product() {
name = "";
price = 0;
stock = 0;
}
Product(string n, double p, int s) {
name = n;
price = p;
stock = s;
total_stock += s;
total_value += p * s;
}
Product(string n, double p) {
name = n;
price = p;
stock = 0;
}
~Product() {
total_stock -= stock;
total_value -= price * stock;
}
static int getTotalStock() {
return total_stock;
}
static double getTotalValue() {
return total_value;
}
double getValue() {
return price * stock;
}
void addStock(int s) {
stock += s;
total_stock += s;
total_value += price * s;
}
void sell(int s) {
stock -= s;
total_stock -= s;
total_value -= price * s;
}
string getName() {
return name;
}
double getPrice() {
return price;
}
int getStock() {
return stock;
}
};
int Product::total_stock = 0;
double Product::total_value = 0;
int main() {
Product products[4] = {
Product("Apple", 5.0, 50),
Product("Orange", 4.0, 30),
Product("Banana", 2.0, 100),
Product("Pineapple", 10.0)
};
products[3].addStock(20);
double total_value = Product::getTotalValue();
int total_stock = Product::getTotalStock();
cout << "Total value of stock: " << total_value << endl;
int count = 0;
double sum = 0;
for (int i = 0; i < 4; i++) {
if (products[i].getStock() > 0) {
count++;
sum += products[i].getPrice();
}
}
double average = sum / count;
cout << "Average price of stock: " << average << endl;
cout << "Number of products in stock: " << count << endl;
return 0;
}
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
int num[1001] = {0},n,number;
cin>>n; //输入数据的个数
for(int i=0;i<n;i++){
cin>>number;
num[number]++;
}
//依次遍历从1000到0的桶
for(int i=1000;i>0;i--){
for(int j=1;j<=num[i];j++){
cout<<i<<" "; //出现了几次就打印几次
}
}
return 0;
}