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() {
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;
}
}
};
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;
}
}