C++ 实验 5 中的编程思路和方法
在本实验中,我们将学习如何编程实现循环结构、十进制和八进制的转换、最大公约数和最小公倍数的计算、正弦的近似值计算、职工税收计算等方面的知识点。
一、循环结构的编程思路和方法
在实验中,我们使用了 while 循环语句来实现循环结构。while 循环语句的格式为:while (条件) {执行语句}。该语句将不断执行直到条件为 false。例如,在实验中,我们使用 while 循环来计算猴子摘的桃子的数量:
```c
int N = 1, n = 10;
while (n > 1) {
N = (N + 1) * 2;
n = n - 1;
}
cout << "猴子摘的桃子的数量:" << N << endl;
```
二、十进制和八进制的转换
在实验中,我们学习了如何将十进制数转换为八进制数或将八进制数转换为十进制数。我们使用了以下代码来实现十进制到八进制的转换:
```c
int x, r, i = 0;
double n = 0;
cout << "请输入一个十进制整数:" << endl;
cin >> x;
while (x != 0) {
r = x % 8;
n = r * pow(10.0, i) + n;
i = i + 1;
x = x / 8;
}
cout << "该数的八进制为:" << n << endl;
```
三、最大公约数和最小公倍数的计算
在实验中,我们学习了如何计算两个数的最大公约数和最小公倍数。我们使用了欧几里德算法来计算最大公约数。以下是计算最大公约数的代码:
```c
int p, q, m, n, t, r;
cout << "请输入 p,q 两个数:" << endl;
cin >> p >> q;
m = p;
n = q;
if (p < q) {
t = p;
p = q;
q = t;
}
r = p % q;
if (r == 0)
cout << "p,q 两数的最大公约数为:" << q << endl;
else {
while (r != 0) {
p = q;
q = r;
r = p % q;
}
cout << "p,q 两数的最大公约数为:" << q << endl;
}
cout << "p,q 两数的最小公倍数为:" << (m * n) / q << endl;
```
四、正弦的近似值计算
在实验中,我们学习了如何计算正弦的近似值。我们使用了泰勒级数来计算正弦的近似值。以下是计算正弦的近似值的代码:
```c
int sign = -1, n = 1;
double x, item, s = x;
cout << "请输入 x:" << endl;
cin >> x;
while (item > 0.0001) {
item = item * x * x / (n * (n + 1));
s = s + item * sign;
sign = sign * (-1);
n = n + 1;
}
cout << "sinx 的近似值为:" << s << endl;
```
五、职工税收计算
在实验中,我们学习了如何计算职工的税收。我们使用了 switch 语句来判断职工的税收情况。以下是计算职工税收的代码:
```c
int salary = 0, i = 0, realsalary;
double b = 0, tax;
do {
cout << "请输入职工的应税月工资:" << endl;
cin >> salary;
switch (salary) {
case 0:
break;
default:
if (salary < 0)
break;
if (salary <= 3500)
tax = 0;
else {
if (salary > 3500 && salary <= 5000)
tax = (salary - 3500) * 0.03;
else {
if (salary > 5000 && salary <= 8000)
tax = (salary - 3500) * 0.1;
else {
if (salary > 8000 && salary <= 12500)
tax = (salary - 3500) * 0.2;
else
cout << "不在计算范围内" << endl;
}
}
}
realsalary = salary - tax;
cout << "交税为:" << tax << endl << "输出纳税后的实际收入:" << realsalary << endl;
}
} while (salary != 0);
```
本实验涵盖了循环结构、十进制和八进制的转换、最大公约数和最小公倍数的计算、正弦的近似值计算、职工税收计算等方面的知识点。