c++综合练习题七

在这里插入图片描述

1.第一题

//第一题
#include<iostream>
#include<vector>
#include<map>
#include<fstream>
#include<algorithm>
#include<string>
using namespace std;
template<typename T>
class animal {
private:
	string animal_name[6] = { "兔子","乌龟","大象","狐狸","老虎","老鼠" };
	T animal_time[6];
public:
	//void mysort();
	void mysort() {
	for (int i = 0; i < 6; i++) {
		for (int j = 0; j < 6 - i - 1; j++) {
			if (animal_time[j] > animal_time[j + 1]) {
				swap(animal_time[j], animal_time[j + 1]);
				swap(animal_name[j], animal_name[j + 1]);
			}
		}
	}
}
	void time_in() {
		for (int i = 0; i < 6; i++) {
			cout << "动物名字" << animal_name[i] << " ";
			cin >> animal_time[i];
		}
		
		
	}
	void show() {
		cout << "名次\t选手\t用时" << endl;
		for (int i = 0; i < 6; i++) {
			cout << i + 1 <<" " << animal_name[i] << " "<< animal_time[i] << endl;
		}
	}
};

//template<typename T>
//void animal<T>::mysort() {
//	for (int i = 0; i < 6; i++) {
//		for (int j = 0; j < 6 - i - 1; j++) {
//			if (animal_time[j] > animal_time[j + 1]) {
//				swap(animal_time[j], animal_time[j + 1]);
//				swap(animal_name[j], animal_name[j + 1]);
//			}
//		}
//	}
//}
int main() {
	animal<int> a;
	a.time_in();
	a.mysort();
	a.show();
}

2.第二题

#include<iostream>
#include<vector>
#include<map>
#include<fstream>
#include<algorithm>
#include<string>
using namespace std;
class grade {
public:
	double chinese;
	double math;
	double English;
public:
	grade() {

	}
	grade(double chinese, double math, double English) {
		this->chinese = chinese;
		this->math = math;
		this->English = English;
	}

	void show() {
		cout << "语文成绩:" << chinese << " " << "数学成绩:" << math << " " << "英语成绩:" << English << endl;
	}

	grade operator+(grade &g) {
		grade c;
		c.chinese=this->chinese + g.chinese;
		c.math = this->math + g.math;
		c.English = this->English + g.English;
		return c;
	}
	void avg_grade() {
		cout << "语文成绩:" << chinese/2 << " " << "数学成绩:" << math/2 << " " << "英语成绩:" << English/2 << endl;
		string s[3] = { "语文","数学","英语" };
		double avg[3] = { chinese/2,math/2,English/2 };
		double max = 0;
		for (int i = 0; i < 3; i++) {
			if (a[i] > max) {
				max = a[i];
			}
		}
		cout << "max=" << max << endl;
		for (int i = 0; i < 3; i++) {
			if (avg[i] == max) {
				cout << s[i] << endl;
			}
		}
	}
};

int main() {
	grade g1 = {95,50,80};
	grade g2 = { 60,99,75 };
	g1.show();
	g2.show();
	grade g;
	g = g1 + g2;
	g.show();
	g.avg_grade();
}

3.第三题

#include<iostream>
#include<vector>
#include<map>
#include<fstream>
#include<algorithm>
#include<string>
using namespace std;
int main() {
	ifstream ifile("11.txt", ios::in);
	if (!ifile.is_open()) {
		cout << "文件打不开" << endl;
		exit(0);
	}
	int num;
	string s;
	map<int, string, less<int>> m;
	while (ifile >> s) {
		ifile >> num;
		m[num] = s;
	}
	map<int, string>::iterator mit;
	for (mit = m.begin(); mit != m.end(); mit++) {
		cout << mit->second << " " << mit->first << endl;
	}

	ofstream ofile("12.txt", ios::out);
	for (mit = m.begin(); mit != m.end(); mit++) {
		ofile << mit->second << " " << mit->first << endl;
	}
}

4.第四题

#include<iostream>
#include<vector>
#include<map>
#include<fstream>
#include<algorithm>
#include<string>
using namespace std;

class worker {
private:
	int n = 10;
	int w_age[10];
	int sal[10];
public:
	worker(int age[],int n) {
		for (int i = 0; i < n; i++) {
			w_age[i] = age[i];
			sal[i] = 1200 + 180 * w_age[i];
		}
	}
	void print() {
		for (int i = 0; i < 10; i++) {
			cout <<i+1<<" "<< w_age[i]<<" "<<sal[i] << endl;
		}
	}

};

int main() {
	int a[10] = { 16,3,7,6,22,13,7,6,14,8 };
	worker w(a,10);
	w.print();

	vector<int> vec;
	vector<int> vec1;
	vector<int>::iterator vit;
	vector<int>::iterator vit1;
	for (int i = 0; i < 10; i++) {
		vec.push_back(a[i]);
		vec1.push_back(1200 + a[i] * 180);
	}
	sort(vec.begin(), vec.end());
	vec.erase(unique(vec.begin(), vec.end()), vec.end());
	for (vit = vec.begin(); vit != vec.end(); vit++) {
		cout << *vit << endl;
	}
	for (vit1 = vec1.begin(); vit1 != vec1.end(); vit1++) {
		cout << *vit1 << endl;
	}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞龙程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值