C++ 股票交易信息记录与分析 - 使用类和静态数据成员
- 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;
}
- 主函数:
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;
}
- 找出当月涨幅最大的股票:
在主函数中使用静态数据成员 Stock::maxIncrease 记录当月最大涨幅,每次输入股票信息时,比较当日涨幅与 Stock::maxIncrease 的大小,若当日涨幅大于 Stock::maxIncrease,则更新 Stock::maxIncrease 的值。最后输出 Stock::maxIncrease 即为当月最大涨幅。
原文地址: https://www.cveoy.top/t/topic/ne4z 著作权归作者所有。请勿转载和采集!