C++题

149 阅读2分钟
#include <iostream>
using namespace std;
//类
class Array {
	int a[4][5] = {};
public:
	Array(int t[][5], int n);
	float ave(int m);//求平均值
	void exch(int m, int n);//交换列
	void fun();//功能
	void print();//打印
};
//构造函数
Array::Array(int t[][5], int n) {
	for (int i = 0; i < n; i++)
		for (int j = 0; j < 5; j++)
			a[i][j] = t[i][j];
}
//平均值
float Array::ave(int m) {
	float he = 0;
	for (int i = 0; i < 5; i++) {
		he += a[m][i];
	}
	return he / 5;
}
//交换
void Array::exch(int m, int n) {
	int b[5];
	for (int i = 0; i < 5; i++) {
		b[i] = a[m][i];
	}
	for (int i = 0; i < 5; i++) {
		a[m][i] = a[n][i];
	}
	for (int i = 0; i < 5; i++) {
		a[n][i] = b[i];
	}
}
//功能:判断两行的平均值大小,交换,循环
void Array::fun() {
	for (int i = 0; i < 4; i++)
		for (int j = i + 1; j < 5; j++)
			if (ave(i) < ave(j))
				exch(i, j);
}
void Array::print() {
	for (int i = 0; i < 4; i++)
	{
		for (int j = 0; j < 5; j++)
		{
			cout << a[i][j] << '\t';

		}cout << endl;
	}


}

void main() {
	int b[4][5] = {
		10,12,5,4,15,
		16,17,8,19,10,
		11,12,13,14,15,
		16,70,18,19,20 };
	Array arr(b, 4);
	cout << "原数组:";
	cout << endl;
	arr.print();
	arr.fun();
	cout << "排序后的数组:";
	cout << endl;
	arr.print();
}
#include <iostream>

using namespace std;
class Book
{
public:
	void setBook(const char*, double, int);
	void borrow();
	void restore();
	void display();
private:
	char bookname[40];
	double price;
	int number;
};
//在类外定义 Book 类的成员函数
void Book::setBook(const char* name, double pri, int num)
{
	strcpy_s(bookname, name);
	price = pri;
	number = num;
}
void Book::borrow()
{
	if (number == 0)
	{
		cout << "已没存书,退出!" << endl;
		abort();
	}
	number = number - 1;
	cout << "借一次,现存书量为:" << number << endl;
}
void Book::restore()
{
	number = number + 1;
	cout << "还一次,现存书量为:" << number << endl;
}
void Book::display()
{
	cout << "存书情况:" << endl
		<< "bookname:" << bookname << endl
		<< "price:" << price << endl
		<< "number:" << number << endl;
}
int main()
{
	char flag, ch;
	Book computer;
	computer.setBook("C++程序设计基础", 32, 1000);
	computer.display();
	ch = 'y';
	while (ch == 'y')
	{
		cout << "请输入借阅或归还标志(b/r):";
		cin >> flag;
		switch (flag)
		{
		case 'b': computer.borrow(); break;
		case 'r': computer.restore();
		}
		cout << "是否继续?(y/n)";
		cin >> ch;
	}
	computer.display();
}