Bootstrap

【C++】实验二

题目:

1、编写一个程序,要求用户以度、分、秒的方式输入一个纬度,然后以度为单位显示该纬度。1度为60分,1分为60秒,以常量的方式表示这两个值。对于每个输入值,分别使用独立的变量进行存储。

思路:需要三个变量分别记录度分秒,再将三个变量统一单位进行输出。

2、给出一个百分制的成绩,要求输出成绩等级'A','B','C','D','E'。90分以上为'A',80~89分为'B',70~79分为'C',60~69分为'D',60分以下为'E'

思路:本题需要一个变量来接收成绩,并使用选择语句对成绩分级,输出正确结果。

3、企业发放的奖金来自利润提成。利润i低于或等于10万元的,可提成10%为奖

金;利润i高于10万元,低于或等于20万元(100000<i≤200000时,低于10万元的部分

按10%提成,高于10万元的部分可提成7.5%;200000<i≤400000时,低于20万的部分

仍按上述办法提成(下同),高于20万元的部分按5%提成;400000<i≤600000时,高于

40万元的部分按3%提成;600000<i≤1000000时,高于60万元的部分按1.5%提成;i>

1000000时,超过100万元的部分按1%提成。从键盘输入当月利润i,求应发奖金总数。

   *要求:(1)用if语句编程序

         (2)用switch语句编程序

思路:和上一题类似,需要先接收利润,并利用选择语句进行判断,完善每个选择分支并输出结果。

4、用户输入两个数,编写程序求出它的最大公约数与最小公倍数。

思路:使用辗转相除法,见参考代码。

5、编写一个程序,利用循环打印华氏温度与摄氏温度对照表。注意格式对齐方式。

思路:利用循环将的和适度和转换好的华氏度输出,中间使用\t分隔保证其整齐性。

参考代码:

1、

#include<iostream>
using namespace std;

int main(){
    double du,fen,miao;//度分秒
    double zong;//最终结果
    cout<<"输入一个纬度的度,分,秒:"<<endl;
    cout<<"首先,输入度:";
    cin>>du;
    cout<<"其次,输入分:";
    cin>>fen;
    cout<<"最后,输入秒:";
    cin>>miao;
    zong=du+fen/60+miao/3600;
    cout<<du<<"度,"<<fen<<"分,"<<miao<<"秒="<<zong<<"度"<<endl;
    return 0;
}

2、

#include<iostream>
using namespace std;

int main(){
    int cj;//成绩
    cout<<"请输入100以内的成绩:"<<endl;
    cin>>cj;
    char dj;//等级
    switch(cj/10){
    case 6:dj='d';break;
    case 7:dj='C';break;
    case 8:dj='B';break;
    case 9:dj='A';break;
    default:dj='E';
    }
    cout<<"您的成绩所对应的等级为"<<dj<<endl;
    return 0;
}
3(if)、

#include<iostream>
using namespace std;

int main(){
    int i;//利润
    cout<<"请输入利润"<<endl;
    cin>>i;
    double jiangjin;//奖金
    if(i<=100000)
        jiangjin=100000*0.1;
    else
        if(i<=200000)
            jiangjin=100000*0.1+0.075*(i-100000);
        else
            if(i<=400000)
                jiangjin=100000*0.1+0.075*100000+0.05*(i-200000);
            else
                if(i<=600000)
                    jiangjin=100000*0.1+0.075*100000+0.05*200000+0.03*(i-400000);
                else
                    if(i<=1000000)
                        jiangjin=100000*0.1+0.075*100000+0.05*200000+0.03*200000+0.015*(i-600000);
                    else
                        jiangjin=100000*0.1+0.075*100000+0.05*200000+0.03*200000+0.015*400000+0.01*(i-1000000);
    cout<<"应发奖金为"<<jiangjin;
    return 0;
}
3(switch)、

#include<iostream>
using namespace std;

int main(){
    int i;//利润
    cout<<"请输入利润"<<endl;
    cin>>i;
    double jiangjin;//奖金

    switch(i/100001){
    case 1:jiangjin=100000*0.1+0.075*(i-100000);break;
    case 2:
    case 3:jiangjin=100000*0.1+0.075*100000+0.05*(i-200000);break;
    case 4:
    case 5:jiangjin=100000*0.1+0.075*100000+0.05*200000+0.03*(i-400000);break;
    case 6:
    case 7:
    case 8:
    case 9:jiangjin=100000*0.1+0.075*100000+0.05*200000+0.03*200000+0.015*(i-600000);break;
    case 10:jiangjin=100000*0.1+0.075*100000+0.05*200000+0.03*200000+0.015*400000+0.01*(i-1000000);break;
    default:jiangjin=100000*0.1;
    }
    cout<<"应发奖金为"<<jiangjin;
    return 0;
}

4、

#include<iostream>
using namespace std;

int main(){
    int m,n;
    int k;    //最大公约数
    int y;//最小公倍数
    int b;
    cout<<"请输入m,n的值"<<endl;
    cin>>m>>n;
    b=m*n;
    while(m%n!=0){
    k=m%n;
    m=n;
    n=k;
  }
    cout<<"最大公约数为"<<k<<endl;
    y=b/k;
    cout<<"最小公倍数为"<<y;
 return 0;
}

5、

#include<iostream>
using namespace std;
int main() {
    int a;//摄氏度
    int b;//华氏度
    for(a=0;a<=300;a+=20){
       b=(a-32)/1.8;
       cout<< a <<"       "<<'\t'<< b <<endl;
    }
    return 0;
}    

;