C++ 股票交易数据管理:用类实现股票信息存储和最大涨幅计算
C++ 股票交易数据管理:用类实现股票信息存储和最大涨幅计算
本示例使用 C++ 类来存储和管理股票交易数据,包括交易日、最高价、最低价、开盘价和收盘价。使用静态成员函数实现查找当月涨幅最大的股票功能。
- Stock类的定义:
class Stock {
private:
int day; // 交易日序号
double highestPrice; // 当日最高价
double lowestPrice; // 当日最低价
double openPrice; // 当日开盘价
double closePrice; // 当日收盘价
static double maxIncrease; // 最大涨幅
public:
Stock(int d, double h, double l, double o, double c); // 构造函数
double getIncrease(); // 计算涨幅的成员函数
static void findMaxIncrease(Stock* stocks, int size); // 找出涨幅最大的股票的静态成员函数
};
// 构造函数
Stock::Stock(int d, double h, double l, double o, double c) {
day = d;
highestPrice = h;
lowestPrice = l;
openPrice = o;
closePrice = c;
}
// 计算涨幅的成员函数
double Stock::getIncrease() {
return (closePrice - openPrice) / openPrice * 100;
}
// 找出涨幅最大的股票的静态成员函数
double Stock::maxIncrease = -9999; // 初始化为一个极小值
void Stock::findMaxIncrease(Stock* stocks, int size) {
for (int i = 0; i < size; i++) {
double increase = stocks[i].getIncrease();
if (increase > maxIncrease) {
maxIncrease = increase;
}
}
}
- 主函数中的代码:
int main() {
const int days = 30; // 本月交易天数
Stock stocks[days]; // 存储本月每天的股票信息
// 假设已经从外部读取了每天的股票信息并存储在stocks数组中
// 计算每天的涨幅并输出
for (int i = 0; i < days; i++) {
double increase = stocks[i].getIncrease();
cout << '第' << i+1 << '天的涨幅为:' << increase << '%' << endl;
}
// 找出涨幅最大的股票
Stock::findMaxIncrease(stocks, days);
cout << '本月涨幅最大的股票涨幅为:' << Stock::maxIncrease << '%' << endl;
return 0;
}
- 在主函数中调用Stock类的静态成员函数findMaxIncrease即可找出涨幅最大的股票。
说明:
- 该代码假设已经从外部读取了每天的股票信息并存储在stocks数组中。
- findMaxIncrease函数使用静态数据成员maxIncrease记录最大涨幅,并通过遍历stocks数组找到最大值。
代码解析:
- Stock类包含五个私有数据成员:day、highestPrice、lowestPrice、openPrice、closePrice,分别表示交易日序号、当日最高价、当日最低价、当日开盘价和当日收盘价。
- Stock类还包含一个静态数据成员maxIncrease,用于记录最大涨幅。
- Stock类包含三个公有成员函数:构造函数、getIncrease函数和findMaxIncrease函数。
- 构造函数用于初始化Stock对象。
- getIncrease函数用于计算股票的涨幅。
- findMaxIncrease函数用于查找涨幅最大的股票。
- 主函数首先定义一个大小为30的Stock数组,用于存储本月每天的股票信息。
- 然后,主函数遍历stocks数组,计算每天的涨幅并输出。
- 最后,主函数调用findMaxIncrease函数,找出涨幅最大的股票。
总结:
本示例展示了如何使用C++类来管理股票交易数据,并利用静态成员函数查找最大涨幅。代码清晰简洁,易于理解,可以作为学习C++类的示例。
原文地址: https://www.cveoy.top/t/topic/ne4t 著作权归作者所有。请勿转载和采集!