1. Stock类定义:
class Stock {
private:
    int day; // 交易日序号
    double highestPrice; // 当日最高价
    double lowestPrice; // 当日最低价
    double openingPrice; // 当日开盘价
    double closingPrice; // 当日收盘价
    static double maxIncrease; // 当月最大涨幅
public:
    Stock(int d, double h, double l, double o, double c); // 构造函数
    double calculateIncrease(); // 计算涨幅
    static double getMaxIncrease(); // 获取当月最大涨幅
};

Stock::Stock(int d, double h, double l, double o, double c) {
    day = d;
    highestPrice = h;
    lowestPrice = l;
    openingPrice = o;
    closingPrice = c;
}

double Stock::calculateIncrease() {
    return (closingPrice - openingPrice) / openingPrice;
}

double Stock::maxIncrease = 0;

double Stock::getMaxIncrease() {
    return maxIncrease;
}
  1. 主函数:
int main() {
    Stock stocks[30]; // 建立一个月的股票对象
    double totalIncrease = 0; // 记录当月总涨幅
    for (int i = 0; i < 30; i++) {
        double closingPrice;
        // 输入该股票当日信息
        cout << "请输入第" << i+1 << "天的股票信息(最高价、最低价、开盘价、收盘价):";
        cin >> stocks[i].highestPrice >> stocks[i].lowestPrice >> stocks[i].openingPrice >> closingPrice;
        stocks[i] = Stock(i+1, stocks[i].highestPrice, stocks[i].lowestPrice, stocks[i].openingPrice, closingPrice);
        totalIncrease += stocks[i].calculateIncrease(); // 累加当日涨幅
        if (stocks[i].calculateIncrease() > Stock::getMaxIncrease()) {
            Stock::maxIncrease = stocks[i].calculateIncrease();
        }
    }
    double avgIncrease = totalIncrease / 30; // 计算当月平均涨幅
    cout << "当月总涨幅为:" << totalIncrease << endl;
    cout << "当月平均涨幅为:" << avgIncrease << endl;
    cout << "当月最大涨幅为:" << Stock::getMaxIncrease() << endl;
    return 0;
}
  1. 找出当月涨幅最大的股票:

在主函数中使用静态数据成员 Stock::maxIncrease 记录当月最大涨幅,每次输入股票信息时,比较当日涨幅与 Stock::maxIncrease 的大小,若当日涨幅大于 Stock::maxIncrease,则更新 Stock::maxIncrease 的值。最后输出 Stock::maxIncrease 即为当月最大涨幅。

C++ 股票交易信息记录与分析 - 使用类和静态数据成员

原文地址: https://www.cveoy.top/t/topic/ne4z 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录