主頁 > 軟體設計 > C++上機題匯總

C++上機題匯總

2020-12-18 11:56:13 軟體設計

C++期末復習題目匯總

本人匯總了本學期上機考的題目,并借鑒和自己撰寫了這些代碼,

///題目如下

1.字母大小寫轉換

#include<iostream>
using namespace std;
void change(char x) {
	x += 32;
	cout << x << endl;
}
int main() {
	char a;
	cin >> a;
	change(a);
	return 0;
}

2.計算圓的周長和面積

#include<iostream>
using namespace std;
#define PI 3.14

class Circle
{
public:
	Circle(double radius) {
		this->C = 2 * PI * radius;
		this->S = PI * radius * radius;
		cout << this->C << " " << this->S << endl;
	}
	double S;
	double C;
};
int main() {
	double radius;
	cin >> radius;
	Circle a(radius);
	return 0;
}

3.資料逆序輸出

#include<iostream>
using namespace std;

int function(int n) 
{
	int temp = 0;
	while (n > 0) {
		n /= 10;
		temp++;
	}
	return temp;
}
int main() {
	int array[10];
	int num, x;
	cin >> num;
	x = function(num);
	for (int i = 0; i < x; i++) {
		array[i] = num % 10;
		num /= 10;
	}
	for (int i = 0; i < x; i++) {
		cout << array[i];
	}
	return 0;
}

4.判斷是否是閏年

#include<iostream>
using namespace std;
void function(int a )
{
	if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0) {
		cout << "是" << endl;
	}
	else {
		cout << "不是" << endl;
	}
}
int main() {
	int year;
	cin >> year;
	function(year);
	return 0;
}

5.打點滴實驗

#include<iostream>
using namespace std;
void calculate(int V)
{
	int num = 1, time = 2, sum = 0;
	while (V-num > 0) {
		V -= num;
		num++;
		sum += time;
		time++;
	}
	if (V > 0) {
		sum += V;
	}
	cout << sum << endl;
}
int main()
{
	int V;
	cin >> V;
	calculate(V);
	return 0;
}

6.母牛生小牛,四年生一頭

#include<iostream>
using namespace std;
int func(int N)
{
	if (N < 4)
	{
		return 1;
	}
	else
	{
		return func(N - 1) + func(N - 3);
	}
}
int main()
{
	int N;
	cin >> N;
	cout << func(N);
	return 0;
}

7.輸出1-100(每行十個),并輸出序號為素數的元素(一行十個)

代碼一:

#include<iostream>
using namespace std;
int main() {
	int arr[100];
	for (int i = 0; i < 100; i++)
	{
		arr[i] = i+1;
	}
	for (int i = 0; i <100; i+=10)
	{
		for (int j = 0; j < 9; j++)
		{
			cout << arr[i + j]<<" ";
		}
		cout << arr[i + 9] << endl;
	}

//尋找100以內素數
	int arr1[50];
	int temp = 0, count = 0;
	for (int i = 2; i <= 100; i++)
	{
		for (int j = 2; j < i; j++)
		{
			if (i % j == 0)
			{
				temp = 1;
				break;
			}
		}
		if (temp == 0)
		{
			count++;
			arr1[count-1] = i;
		}
		temp = 0;
	}
	
	cout << arr[arr1[0]] << " ";
	for (int i = 1; i<count; i++)
	{
		if (i % 10 != 9) 
		{
			cout << arr[arr1[i]] << " ";
		}
		else
		{
			cout << arr[arr1[i]] << endl;
		}
	}
	return 0;
}

代碼二:

#include<iostream>
using namespace std;
int main()
{
	int a[100];
	int n = 1;
	for (int i = 0; i < 100; i++)

	{
		a[i] = n;
		n++;
	}
	for (int i = 0; i < 100; )
	{
		for (int j = 0; j < 9; j++)
		{
			cout << a[i] << " ";
			i++;
		}
		cout << a[i++] << endl;
	}
	int m = 1;
	cout << 3 << " ";
	for (int i = 3; i < 100; i++)
	{
		int sum = 0;
		for (int j = 2; j < i / 2 + 1; j++)
		{
			int x;
			x = i % j;
			if (x == 0)
				sum++;
		}
		if (sum == 0)
		{
			m++;
			if (m < 10)
				cout << a[i] << " ";
			else if (m >= 10)
			{
				m = 0;
				cout << a[i] << endl;
			}

		}
	}
	return 0;
}

8.倉庫結算
某倉庫共有ABCDE五種貨物,每天需要補貨的數量不同,每種貨物的單價不同,如下所示,由鍵盤輸入五種貨物需要補貨的數量,請計算出當日倉庫需支付多少貨款,
貨物名稱 貨物單價
A 10
B 5
C 3
D 20
E 13

#include<iostream>
using namespace std;
int main()
{
	int m, sum = 0;
	char P;
	for (int i = 0; i < 5; i++)
	{
		cin >> P >> m;
		switch (P)
		{
		case'A':
			sum += 10 * m;
			break;
		case'B':
			sum += 5 * m;
			break;
		case'C':
			sum += 3 * m;
			break;
		case'D':
			sum += 20 * m;
			break;
		case'E':
			sum += 13 * m;
			break;
		}
	}
	cout << sum << endl;
	return 0;
}

9.撰寫一個評分統計程式,從鍵盤獲取8個評委打分的百分制成績(double型別),統計平均分時,去掉一個最高分和一個最低分其余6個分數的平均值即為最后得分,請將這個分數輸出到螢屏上,格式為:平均成績是XXX,

#include<iostream>
using namespace std;
void func(double arr[])
{
	int num = 7, num1;
	double sum = 0;
	while (num)
	{
		num1 = num;
		num = 0;
		for (int i = 0; i < num1; i++)
		{
			if (arr[i]<arr[i+1])
			{
				double temp = arr[i];
				arr[i] = arr[i + 1];
				arr[i + 1] = temp;
				num = i;
			}
		}
	}
	for (int i = 1; i < 7; i++)
	{
		sum += arr[i];
	}
	cout <<"平均成績是"<< sum / 6 << endl;
}

int main()
{
	double score[8];
	for (int i = 0; i < 8; i++) 
	{
		cin >> score[i];
	}
	func(score);
	return 0;
}

10.撰寫一個記錄5個學生的姓名、性別、年齡和學號的程式,要求使用結構陣串列示學生資訊,用for回圈獲得鍵盤輸入的學生記錄的資料,所有資料輸入完畢后,將5個學生的資訊在螢屏上輸出,格式要求:按表格行列格式輸出,每行輸出一個學生的資訊,按照姓名、性別、年齡、學號的順序,各列資訊左對齊,各資訊占10位,

#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
struct Student
{
	string name;
	string sex;
	int age;
	string number;
};
Student P[5];
int main()
{
	for (int i = 0; i < 5; i++)
	{
		cin >> P[i].name >> P[i].sex >> P[i].age >> P[i].number;
	}
	for (int i = 0; i < 5; i++)
	{
		cout << setiosflags(ios::left)
			<< setw(10) << P[i].name
			<< setw(10) << P[i].sex
			<< setw(10) << P[i].age
			<< setw(10) << P[i].number << endl;
	}
	return 0;
}

11.定義一個結構型變數(包括年、月、日),并從鍵盤上獲取該變數的值,計算該日在本年中是第幾天,輸出到螢屏上,格式為:“X年X月X日是本年中的第X天,”(提示:注意閏年問題),

代碼一:

#include<iostream>
using namespace std;
class Date
{
	friend void func(Date *p);
public:
	Date(int y, int m, int d)
	{
		this->year = y;
		this->month = m;
		this->day = d;
	}
	int year;
	int month;
	int day;
};


int judgement(int y)
{
	if (y % 400 == 0 || y % 4 == 0 && y % 100 != 0) {
		return 1;
	}
	else {
		return 0;
	}
}

void func(Date &p)
{
	int arr[12];
	int sum = 0;
	if (judgement(p.year)) 
	{
		arr[1] = 29;
	}
	else {
		arr[1] = 28;
	}
	arr[0] = arr[2] = arr[4] = arr[6] = arr[7] = arr[9] = arr[11] = 31;
	arr[3] = arr[5] = arr[8] = arr[10] = 30;
	for (int i = 0; i < p.month - 1; i++)
	{
		sum += arr[i];
	}
	sum += p.day;
	cout << p.year << "年" << p.month << "月" << p.day << "日是本年中的第" << sum << "天" << endl;
}
int main()
{
	int y, m, d;
	cin >> y >> m >> d;
	Date a(y, m, d);
	func(a);
	return 0;
}

代碼二:

#include<iostream>
using namespace std;
struct Date
{
	int year;
	int month;
	int day;
};
bool judge(int y)
{
	int sum = 0;
	if (y % 100 == 0)
	{
		if (y % 400 == 0)return true;
		else return false;
	}
	else {
		if (y % 4 == 0)return true;
		else return false;
	}
}
int main()
{
	Date d;
	cin >> d.year >> d.month >> d.day;
	int a[12];
	if (judge(d.year))
	{
		a[1] = 29;
	}
	else
	{
		a[1] = 28;
	}
	a[0] = a[2] = a[4] = a[6] = a[7] = a[9] = a[11] = 31;
	a[3] = a[5] = a[8] = a[10] = 30;
	int sum = 0;
	for (int i = 0; i < d.month - 1; i++)
	{
		sum += a[i];
	}
	sum += d.day;
	cout << d.year << "年" << d.month << "月" << d.day << "日是本年中的第" << sum << "天" << endl;

	return 0;
}

12.從鍵盤輸入一行或幾行字串,行數由鍵盤輸入,一行字串用字符陣列存盤,請統計所輸入的字串中26個字母(不區分大小寫)出現的次數,并將出現次數非零的字母統計結果輸出到螢屏上,格式參見樣例,如果沒有字母,請輸出字串中無字母,

代碼一:

#include<iostream>
using namespace std;
int main()
{
	const int N = 80;
	char buffer[N];

	int k = 0;

	const int NUM = 26;
	int counts[NUM] = { 0 };
	char letters[NUM];

	int i = 0;
	int count = 0;
	int num;
	cin >> num;
	do {
		cin.getline(buffer, N, '\n');
		k = 0;
		while (buffer[k] != '\0')
		{
			if (tolower(buffer[k]) >= 'a' && tolower(buffer[k]) <= 'z')
			{
				i = tolower(buffer[k]) - 'a';
				counts[i]++;
			}
			k++;
		}
		num--;
	} while (num >= 0);
	for (i = 0; i < NUM; i++) {
		letters[i] = char('a' + i);
		if (counts[i] > 0)
		{
			count++;
			cout << letters[i] << ":" << counts[i] << endl;
		}
	}
	if (count == 0) {
		cout << "字串中無字母," << endl;
	}
}

代碼二:

#include<iostream>
using namespace std;
int b[26] = { 0 };
void func(char a)
{
	if (a >= 'a' && a <= 'z')
	{
		b[a - 'a']++;
	}
	else if (a >= 'A' && a <= 'Z')
	{
		b[a - 'A']++;
	}
}
int main()
{
	int n;
	cin >> n;
	char a[100] = { 0 };
	for (int i = 0; i < n + 1; i++)
	{
		cin.getline(a, 100, '\n');
		int j = 0;
		while (a[j] != '\0')
		{
			func(a[j]);
			j++;
		}
	}

	int count = 0;//判斷有無字母
	for (int i = 0; i < 26; i++)
	{
		if (b[i] != 0)
		{
			cout << char(i + 'a') << ":" << b[i] << endl;
			count++;
		}
	}
	if (count == 0)
	{
		cout << "字串中無字母," << endl;
	}
	return 0;
}

13.溫度轉換

#include<iostream>
using namespace std;
int main()
{
	double F, C;
	cin >> F;
	C = (F - 32) / 1.8;
	cout << C << endl;
	return 0;
}

14.斐波那契數列

遞回版:

#include<iostream>
using namespace std;
int Fabo(int x)
{
	int sum = 0;
	if (x == 0)sum = 0;
	else if (x == 1)sum = 1;
	else sum = sum + Fabo(x - 1) + Fabo(x - 2);
	return sum;
}
int main()
{
	int x;
	cin >> x;
	cout << Fabo(x) << endl;
}

非遞回版:

#include<iostream>
using namespace std;
void func(int n)
{
	if (n == 0)
	{
		cout << 0 << endl;
	}
	else if (n == 1 || n == 2) 
	{
		cout << 1 << endl;
	}
	else
	{
		int a = 1, b = 1, temp = 0;
		for (int i = 3; i <= n; i++)
		{
			temp = a + b;
			a = b;
			b = temp;
		}
		cout << temp << endl;
	}
}
int main()
{
	int n;
	cin >> n;
	func(n);
	return 0;
}

15.有10個小朋友圍成一圈分糖果,老師順次分給每人一定數量糖果(初始值為偶數)然后按照下列規則調整,所有小朋友同時把自己的糖果分一半給右邊的人,糖果數變為奇數的人,向老師補要一塊糖果,問經過多少次調整后,大家糖果數一樣多,且每人多少塊,建立兩個函式,一個負責傳遞糖果,一個負責判斷所有人的糖果是否相等,

#include<iostream>
using namespace std;
void func(int arr[],int *arr1) {
	for (int i = 1; i < 10; i++)
	{
		arr1[i] = arr[i] / 2 + arr[i - 1] / 2;
	}
	arr1[0] = arr[0] / 2 + arr[9] / 2;
	for (int i = 0; i < 10; i++) 
	{
		if (arr1[i] % 2 != 0)
		{
			arr1[i]++;
		}
	}
	for (int i = 0; i < 10; i++)
	{
		arr[i] = arr1[i];
	}
}

int judgement(int arr[])
{
	for (int i = 0; i < 10; i++)
	{
		if (arr[i] != arr[0])
		{
			return 1;
		}
	}
	return 0;
}
int main()
{
	int count = 0;
	int arr[10] = { 0 };
	int *arr1 =new int[10];
	for (int i = 0; i < 10; i++)
	{
		cin >> arr[i];
	}
	while (judgement(arr))
	{
		func(arr,arr1);
		count++;
	}
	cout << count <<" "<<arr[0]<< endl;
	system("pause");
	return 0;
}

16.歌手大獎賽共有10位評委,為每位選手打分(double型),
預賽部分歌手的分數,為去掉1個最高分、1個最低分后其余8個分數的平均值;
決賽部分歌手的分數,為去掉2個最高分、2個最低分后其余6個分數的平均值,
通過鍵盤輸入10位評委的打分,以及當前處于哪個階段(預賽部分用1表示,決賽部分用2表示),
主函式中,只負責輸入資料、呼叫分數計算函式、輸出結果,評分計算部分撰寫獨立函式完成,

#include<iostream>
using namespace std;
void func(double* p)
{
	for (int i = 0; i < 9; i++)
	{
		for (int j = 0; j < 9 - i; j++)
		{
			double temp;
			temp = p[j];
			p[j] = p[j + 1];
			p[j + 1] = temp;
		}
	}
}
double js(double* p)
{
	double sum = 0;
	for (int i = 2; i < 8; i++)
	{
		sum += p[i];
	}
	return sum / 6.0;
}

double ys(double* p)
{
	double sum = 0;
	for (int i = 1; i < 9; i++)
	{
		sum += p[i];
	}
	return sum / 8.0;
}

int main() 
{
	double* p = new double[10];
	for (int i = 0; i < 10; i++)
	{
		cin >> p[i];
	}
	int x;
	cin >> x;
	if (x == 1) {
		cout << ys(p) << endl;
	}
	if (x == 2) {
		cout << js(p) << endl;
	}
	delete[]p;
	return 0;

}

17.撰寫一個函式get_average()獲取整型陣列元素的平均值,
要求這個函式既可以用來求一維陣列元素的平均值,
也可以求二維陣列元素的平均值,
在main()函式中通過具體的一維陣列Array_1D和二維陣列Array_2D測驗這個函式,
假定一維陣列為a[5],二維陣列為b[2][3],一維陣列和二維陣列的變數值由鍵盤分別輸入,
在螢屏上輸出一維陣列和二維陣列的平均值,平均值間用一個空格分開,

#include<iostream>
using namespace std;
int main()
{	
	double sum1 = 0, sum2 = 0;
	int a[5];
	int b[2][3];
	for (int i = 0; i < 5; i++)
	{
		cin >> a[i];
		sum1 += a[i];
	}
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 3; j++)
		{
			cin >> b[i][j];
			sum2 += b[i][j];
		}
	}
	cout << sum1 / 5 << " " << sum2 / 6 << endl;

	return 0;
}

18.編制程式,呼叫指標作為引數的函式,實作下面兩字串變數的交換, char* ap=“hello”; char* bp=“how are you”;
交換的結果為:ap 指向"how are you",bp 指向"hello", (注意:輸出陳述句中的;和.為英文符號)

#include<iostream>
using namespace std;
void swap(char* a, char* b)
{
	char* t;
	t = a;
	a = b;
	b = t;
}
int main()
{
	const char* ap = "hello.";
	const char* bp = "how are you;";
	swap(ap, bp);
	cout << "ap指向" << ap << endl;
	cout << "bp指向" << bp << endl;
	return 0;
}

19.用字符指標陣列,將給定的5個字串(可以是任意5個國家名字)進行排序并輸出,

#include <iostream>
using namespace std;
int main() {
	char* name[5];
	char arr[5][100];
	for (int i = 0; i < 5; i++)
	{
		cin >> arr[i];
	}
	for (int i = 0; i < 5; i++)
	{
		name[i] = arr[i];
	}
	for (int i = 0; i < 5; i++)
	{
		for (int j = 0; j < 4 - i; j++)
		{
			if (*name[j]>*name[j+1]) 
			{
				char* t = name[j];
				name[j] = name[j + 1];
				name[j + 1] = t;
			}
		}
	}
	for (int i = 0; i < 5; i++)
	{
		cout << name[i] << endl;
	}
	return 0;
}

20.已知有3名學生及五門課程的成績,要求根據學生的各科平均分排序(降序),并輸出學生的所有資訊和平均分(用指標陣列完成),

#include <iostream>
using namespace std;
struct student {
	char name[10];
	int score[5];
	float aver;
};student a[3];

int main() {
	for (int i = 0; i < 3; i++)
	{
		cin >> a[i].name;
		float num = 0;
		for (int j = 0; j < 5; j++) 
		{
			cin >> a[i].score[j];
			num += (float)a[i].score[j];
		}
		a[i].aver = num / 5;
	}
	student* p[3];
	for (int i = 0; i < 3; i++)
	{
		p[i] = &a[i];
	}
	for (int i = 0; i < 2; i++)
	{
		for (int j = 0; j < 2 - i; j++)
		{
			if (p[j]->aver < p[j + 1]->aver) {
				student* temp;
				temp = p[j];
				p[j] = p[j + 1];
				p[j + 1] = temp;
			}
		}
	}
	for (int i = 0; i < 3; i++) 
	{
		cout << p[i]->name << " ";
		for (int j = 0; j < 5; j++)
		{
			cout << p[i]->score[j] << " ";
		}
		cout << p[i]->aver << endl;
	}
	return 0;
}

21.請撰寫函式實作將一個數值插入到陣列中適當的位置,使新陣列按降序排列,并將插入的位置輸出到螢屏上, 說明:1)原陣列大小和數值由鍵盤輸入,動態創建陣列; 2)插入的數值由鍵盤輸入,
3)如果插入資料與原陣列中某資料相同,則插在該資料之前,

#include<iostream>
using namespace std;
int main()
{
	int num,num1;
	cin >> num;
	int* p = new int[100];
	int* x = new int[100];
	for (int i = 0; i < num; i++)
	{
		cin >> p[i];
	}
	for (int i = 0; i < num - 1; i++)
	{
		for (int j = 0; j < num - i - 1; j++)
		{
			if (p[j] < p[j + 1])
			{
				int temp = p[j];
				p[j] = p[j + 1];
				p[j + 1] = temp;
			}
		}
	}
	cin >> num1;
	x[0] = num1;
	for (int i = 0; i < num; i++)
	{
		x[i + 1] = p[i];
	}
	int count = 1;
	for (int i = 0; i < num ; i++)
	{
		if (x[i] < x[i + 1])
		{
			int temp = x[i];
			x[i] = x[i + 1];
			x[i + 1] = temp;
			count++;
		}
	}
	cout << count << endl;
	system("pause");
	return 0;
}

22.老王的密碼

#include<iostream>
using namespace std;
int main()
{
	int num = 0;
	char* p = new char[100];
	cin >> p;
	for (int i = 0; i < 100; i++)
	{
		if (p[i] == NULL) {
			num = i;
			break;
		}
	}
	for (int i = 0; i < num; i++) {
		if (p[i] >= 'a' && p[i] <= 'z') 
		{
			if (p[i] >= 'a' && p[i] <= 'c')
			{
				p[i] = '2';
			}
			else if(p[i] >= 'd' && p[i] <= 'f')
			{
				p[i] = '3';
			}
			else if (p[i] >= 'g' && p[i] <= 'i')
			{
				p[i] = '4';
			}
			else if (p[i] >= 'j' && p[i] <= 'l')
			{
				p[i] = '5';
			}
			else if (p[i] >= 'm' && p[i] <= 'o')
			{
				p[i] = '6';
			}
			else if (p[i] >= 'p' && p[i] <= 's')
			{
				p[i] = '7';
			}
			else if (p[i] >= 't' && p[i] <= 'v')
			{
				p[i] = '8';
			}
			else
			{
				p[i] = '9';
			}
		}
		else if (p[i] >= 'A' && p[i] <= 'Z') {
			p[i] = p[i] + 33;
		}
		else
		{
			p[i] = p[i];
		}
	}
	for (int i = 0; i < num; i++) {
		cout << p[i];
	}
			  
	system("pause");
	return 0;
}

23.矩形類

#include<iostream>
using namespace std;
class Rec {
public:
	Rec(double R_len,double R_wid) {
		this->R_len = R_len;
		this->R_wid = R_wid;
		this->S = this->R_len * this->R_wid;
	}
	double R_len;
	double R_wid;
	double S;

	Rec compare(Rec rec1, Rec rec2);
};

Rec Rec::compare(Rec rec1, Rec rec2) {
	if (rec1.S > rec2.S) {
		return rec1;
	}
	else {
		return rec2;
	}
}
int main() {
	double l, w;
	cin >> l >> w;
	Rec rec1(5.2,4.3);
	Rec rec2(100,20);
	Rec rec3(l, w);
	cout <<(rec1.compare(rec1.compare(rec1,rec2),rec3)).S << endl;
	system("pause");
	return 0;
}

24.三角類

#include<iostream>
using namespace std;
class Tri {
public:
	Tri(int a, int b, int c) {
		this->L1 = a;
		this->L2 = b;
		this->L3 = c;
	}
	int L1;
	int L2;
	int L3;
	void judgement(int a1, int a2, int a3);
};

void Tri::judgement(int a1,int a2,int a3) {
	if ((a1 + a2 > a3) && (a1 + a3 > a2) && (a2 + a3 > a1)) {
		if (a1 == a2 && a2== a3) {
			cout << "A equileteral triangle" << endl;
		}
		else if ((a1 == a2)  | (a1 == a3) | (a2 == a3) ) {
			cout << "A isosceles triangle" << endl;
		}
		else if ((a1 * a1 == a2 * a2 + a3 * a3) || (a2 * a2 == a1 * a1 + a3 * a3) || (a3 * a3 == a2 * a2 + a1 * a1)) {
			cout << "A right triangle" << endl;
		}
		else {
			cout << "A triangle" << endl;
		}
	}
	else {
		cout << "Not a triangle" << endl;
	}
}
int main() {
	int a, b, c;
	cin >> a >> b >> c;
	Tri S(a, b, c);
	S.judgement(S.L1, S.L2, S.L3);
	system("pause");
	return 0;
}

25.時間類

#include<iostream>
using namespace std;
class Time {
public:
	Time(int a, int b, int c);
	void func(bool d);
	int Year;
	int Month;
	int Day;
};
Time::Time(int a, int b, int c) {
	this->Year = a;
	this->Month = b;
	this->Day = c;
}
void Time::func(bool d) {
	if (d == true) {
		cout << Year << "-" << Month << "-" << Day << endl;
	}
	else {
		cout << Year << "年" << Month << "月" << Day << "日" << endl;
	}
}
int main() {
	char str[15];
	int a, b, c, i;
	bool e;
	cin >> a >> b >> c>> str;
		for (i = 0; str[i]; i++)
		{
			if (str[i] == '.')
				break;
		}

		if (str[i])
			e = false;
		else
			e = true;
	Time T(a, b, c);
	T.func(e);
	system("pause");
	return 0;
}

26.員工薪金管理類

#include<iostream>
#include<string>
using namespace std;
class employee
{
public:
	int num;
	string name;
	int money;
	int year;
	int month;
	int day;
	employee(int a, std::string b, int c, int d, int e, int f)
	{
		this->num = a;
		this->name = b;
		this->money = c;
		this->year = d;
		this->month = e;
		this->day = f;
	}
	int sum(int x, int y);
};
int employee::sum(int x, int y)
{
	int time = (x - year) * 12 + y - month;
	int sum = time * money;
	return sum;
}
int main()
{
	employee a(1, "wang", 5000, 2000, 10, 23);
	employee b(2, "liu", 4500, 2008, 1, 20);
	employee c(3, "huo", 3800, 2003, 7, 3);
	employee d(4, "ma", 5300, 2015, 4, 10);
	employee e(5, "meng", 6000, 2016, 3, 16);
	int x, y, z;
	cin >> x >> y >> z;
	switch (x) {
	case 1:
		cout << a.name << " " << a.sum(y, z) << endl;
		break;
	case 2:
		cout << b.name << " " << b.sum(y, z) << endl;
		break;
	case 3:
		cout << c.name << " " << c.sum(y, z) << endl;
		break;
	case 4:
		cout << d.name << " " << d.sum(y, z) << endl;
		break;
	case 5:
		cout << e.name << " " << e.sum(y, z) << endl;
		break;
	}
	return 0;
}


以上就是一些題目,不敢保證代碼寫的很完美,僅供參考,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/236633.html

標籤:其他

上一篇:需求工程期末知識點復習

下一篇:作業246:uniapp--考勤管理--樣式布局

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more