0
点赞
收藏
分享

微信扫一扫

头歌--C++之if-else基本应用

半夜放水 2022-04-13 阅读 324
c++

目录

第1关:将小写字母转换为大写字母

本关必读

本关任务

测试说明

第2关:根据年月日判断其是星期几

本关必读

本关任务

测试说明

第3关:根据工资收入来计算个人所得税

本关必读

本关任务

测试说明


第1关:将小写字母转换为大写字母

本关必读

ASCII码表中:大小写字母都是按顺序进行存储的,大写字母的ASCII值区间为:65~90,对应的字母为:'A'-'Z';小写字母的ASCII值区间为:97~122,对应的字母为:'a'-'z',因此,将小写字母转化为大写字母,可以直接将该变量减32即可得到对应的大写字母;相反将大写字母转化为小写字母,则直接将该变量加32即可。

本关任务

本关任务是判断键盘输入的字符是否为小写字母,若为小写字母则转换为大写字母输出,否则原样输出。即实现step1/LowercaseToUppercase.cpp中的带值函数char LowercaseToUppercase(char c)

 
  1. // 将键盘输入的小写字母转换为大写字母,其他字母原样输出
  2. char LowercaseToUppercase(char c){
  3. // 请在此提供实现代码
  4. }

测试说明

本关的测试文件是step1/LowercaseToUppercaseTest.cpp,负责对你写的实现代码进行测试。具体说明如下:

 
  1. #include<iostream>
  2. #include"LowercaseToUppercase.h"
  3. using namespace std;
  4. int main(){
  5. char ch;
  6. // 从命令行读入一个char型字符
  7. // 该字符取自测试集的输入
  8. cin>>ch;
  9. cout<< LowercaseToUppercase(ch)<<endl;
  10. }

上述main函数从命令行读入,并将处理后的结果通过命令行输出。平台将根据这个命令行输出来判断char LowercaseToUppercase(char c)是否正确实现。

注意,step1/LowercaseToUppercaseTest.cpp 的代码不能被修改。

其中:LowercaseToUppercase.h文件代码如下:

 
  1. #ifndef _ISLEAPYEAR_H_
  2. #define _ISLEAPYEAR_H_
  3. char LowercaseToUppercase(char );
  4. #endif

以下是平台对step1.LowercaseToUppercaseTest的测试样例:
测试输入:a
预期输出:A

测试输入:#
预期输出:#

测试输入:H
预期输出:H

开始你的任务吧,祝你成功!

// 将键盘输入的小写字母转换为大写字母,其他字母原样输出
char LowercaseToUppercase(char c)
{
    if(97<=c&&c<=122)
    {
    char C=c-32;
	return C; 
	}
	return c;
    // 请在此提供实现代码
}

第2关:根据年月日判断其是星期几

本关必读

基姆拉尔森计算公式(Kim Larsson Calculation Formula):
W=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7

其中:

  • d表示日期中的日数;
  • m表示月份数;
  • y表示年数;
  • W=0-6代表星期日-星期六。

注意:在公式中有个与其他公式不同的地方:把一月和二月看成是上一年的十三月和十四月,例如:2004-01-10需换算成2003-13-10来代入公式计算。

本关任务

本关任务是根据键盘输入的年月日来判断其是星期几。即其代码位于step2/CalculateWeekDay.cpp文件,定义如下:

 
  1. #include<iostream>
  2. using namespace std;
  3. int main(){
  4. int year,month,day;
  5. // 从命令行读入三个正整数
  6. // 这三个数取自测试集的输入
  7. cin>>year>>month>>day;
  8. // 请在下面添加实现代码
  9. /**********Program**********/
  10. /********** End **********/
  11. }

测试说明

本关的测试文件仍然是step2/CalculateWeekDay.cpp,负责对你写的实现代码进行测试。

以下是平台对step2.CalculateWeekDay的测试样例:
测试输入:1980 12 31
预期输出:星期三

测试输入:2000 2 29
预期输出:星期二

测试输入:2015 2 28
预期输出:星期六

测试输入:1980 1 3
预期输出:星期四

开始你的任务吧,祝你成功!

#include<iostream>
using namespace std;
int main()
{
    int y,m,d,W;
    // 从命令行读入三个正整数
    // 这三个数取自测试集的输入
    cin>>y>>m>>d;
    // 请在下面添加实现代码
    /**********Program**********/
    if(m==1||m==2)
    {
        W=(d+2*(m+12)+3*(m+13)/5+(y-1)+(y-1)/4-(y-1)/100+(y-1)/400+1)%7;	
	}
	else
	{
		W=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1)%7;	
	}
   switch(W)
   {
   	case 0:
   		cout<<"星期日"<<endl; break;
   	case 1:
   		cout<<"星期一"<<endl; break;
   	case 2:
   		cout<<"星期二"<<endl; break;
   	case 3:
   		cout<<"星期三"<<endl; break;
   	case 4:
   		cout<<"星期四"<<endl; break;
   	case 5:
   		cout<<"星期五"<<endl; break;
   	case 6:
   		cout<<"星期六"<<endl; break;
   }
    return 0; 
    
    /**********  End  **********/
}

第3关:根据工资收入来计算个人所得税

本关必读

个人所得税率是个人所得税税额与应纳税所得额之间的比例。个人所得税率是由国家相应的法律法规规定的,根据个人的收入计算。

本关任务

本关任务是根据工资收入来计算个人所得税,个人所得税率表如下:
月收入1200元起征,

  • 超过起征点1000元(含)以内,超过1200元的部分按5%征税;

  • 超过起征点3000元(含)以内,超过1200元的部分按10%征税;

  • 超过起征点5000元(含)以内,超过1200元的部分按15%征税;

  • 超过起征点10000元(含)以内,超过1200元的部分按20%征税;

  • 超过起征点10000元以上的,超过1200元的部分按30%征税。

计算个人所得税的代码位于step3/TaxCalculate.cpp文件,定义如下:

 
  1. // 根据收入计算个人所得税
  2. double TaxCalculate(double m){
  3. // 请在此提供实现代码
  4. }

测试说明

本关的测试文件是step3/TaxCalculateTest.cpp,负责对你写的实现代码进行测试。代码说明详见注释。

注意,step3/TaxCalculateTest.cpp的代码不能被修改。

本关的测试代码是step3/TaxCalculateTest.cpp

 
  1. #include<iostream>
  2. #include"TaxCalculate.h"
  3. using namespace std;
  4. int main(){
  5. double income;
  6. // 从命令行读入一个double型数值
  7. // 这个数取自测试集的输入
  8. cin>>income;
  9. cout<<TaxCalculate(income)<<endl;
  10. }

其中:TaxCalculate.h文件代码如下:

 
  1. #ifndef _ISLEAPYEAR_H_
  2. #define _ISLEAPYEAR_H_
  3. double TaxCalculate(double );
  4. #endif

以下是平台对step3.TaxCalculateTest的测试样例:
测试输入:1545
预期输出:17.25

测试输入:5406
预期输出:630.9

测试输入:3163
预期输出:196.3

开始你的任务吧,祝你成功!

// 根据收入计算个人所得税
double TaxCalculate(double m)
{

if(1200<m&&m<=2200)
{
	double A=(m-1200)*0.05;
	return A; 
}
else if(2200<m&&m<=4200)
{
	double B=(m-1200)*0.1;
	return B;
}
else if(4200<m&&m<=6200)
{
	double C=(m-1200)*0.15;
	return C;
}
else if(6200<m&&m<=11200)
{
    double D=(m-1200)*0.2;
   	return D;
}
//超过起征点10000元以上的,超过1200元的部分按30%征税。
else (11200<m);
{
	double E=(m-1200)*0.3;
	return E; 
}

}
举报

相关推荐

0 条评论