编写一个有关股票的程序,其中有两个类:一个是深圳类shen_stock,另一个是上海类shang_stock。类中有三项私有数据成员:普通股票个数general、ST股票个数st和PT股票个数pt,每一个类分别有自己的友元函数来计算并显示深圳或上海的股票总数(三项的和)。两个类还共用一个count(),用来计算深圳和上海总共有多少股票并输出。
要求使用多文件编程。
已知测试程序如下:
int main()
{ shang_stock shanghai(1600,20,10); // 建立对象
// 表示上海有1600支普通股票,20支ST股票, 10支PT股票
shen_stock shenzhen(1500,15,8); // 建立对象
// 表示深圳有1500支普通股票,15支ST股票,8支PT股票
shang_count(shanghai); // 计算上海的股票总数
shen_count(shenzhen); // 计算深圳的股票总数
count(shanghai,shenzhen); // 计算上海和深圳的股票总数
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
#include "shang_stock.h"
#include "shen_stock.h"
using namespace std;
// ============================第8题=========================
int count(const shen_stock& S1, const shang_stock& S2)
{
return sum_shen_stock(S1) + sum_shang_stock(S2);
}
int main()
{
shang_stock shang(80, 50, 60);
shen_stock shen(20, 50, 40);
cout <<"sum_shang_stock:" << sum_shang_stock(shang) << endl;;
cout<<"sum_shen_stock:"<< sum_shen_stock(shen)<<endl;
cout<<"count" << count(shen, shang)<<endl;
}
头文件
#pragma once
class shang_stock
{
public:
shang_stock();
shang_stock(int g, int s, int p);
~shang_stock();
private:
int general;
int st;
int pt;
friend int sum_shang_stock(const shang_stock& S);
};
头文件
#pragma once
class shen_stock
{
public:
shen_stock();
~shen_stock();
shen_stock(int g, int s, int p);
private:
int general;
int st;
int pt;
friend int sum_shen_stock(const shen_stock& S);
};
源文件
#include "shang_stock.h"
shang_stock::shang_stock(int g, int s, int p)
{
general = g;
st = s;
pt = p;
}
shang_stock::~shang_stock()
{
}
int sum_shang_stock(const shang_stock& S)
{
return S.pt + S.st + S.general;
}
源文件
#include "shen_stock.h"
shen_stock::shen_stock()
{
}
shen_stock::shen_stock(int g, int s, int p)
{
general = g;
st = s;
pt = p;
}
int sum_shen_stock(const shen_stock& S)
{
return S.pt + S.st + S.general;
}
shen_stock::~shen_stock()
{
}