0
点赞
收藏
分享

微信扫一扫

头歌--C++之Switch控制语句编程实训

楚木巽 2022-04-13 阅读 482
c++

目录

第1关:根据输入数字判断是星期几

本关必读

本关要求

本关任务

测试说明

第2关:根据输入的数值和运算符做相应运算

本关必读

本关任务

测试说明

第3关:根据输入年月计算该月份的天数

本关必读

本关任务

测试说明


第1关:根据输入数字判断是星期几

本关必读

星期在中国古代称七曜。七曜在中国夏商周时期,是指日、月、及五大行星等七个主要星体,是当时天文星象的重要组织成份。后来借用作七天为一周的时间单位,故称星期。星期,又叫周或礼拜,是一个时间单位,也是现在制定工作日、休息日的依据。

星期及对应英文全称如下:

  • 星期日 Sunday
  • 星期一 Monday
  • 星期二 Tuesday
  • 星期三 Wednesday
  • 星期四 Thursday
  • 星期五 Friday
  • 星期六 Saturday

本关要求

  • 当输入0时,输出Sunday;
  • 当输入1时,输出Monday;
  • 当输入2时,输出Tuesday;
  • 当输入3时,输出Wednesday;
  • 当输入4时,输出Thursday;
  • 当输入5时,输出Friday;
  • 当输入6时,输出Saturday。

本关任务

本关任务是根据输入数字判断是星期几。要求用switch来完成。其代码位于step1/WeeklyJudge.cpp文件,定义如下:

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

测试说明

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

以下是平台对step1.WeeklyJudge的测试样例:
测试输入:0
预期输出:Sunday

测试输入:1
预期输出:Monday

测试输入:9
预期输出:Error

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

#include <iostream>
using namespace std;
int main()
{
int num;
// 从命令行读入一个int型数值
// 这个数取自测试集的输入
cin >> num;
// 请在下面添加实现代码
/**********Program**********/
switch(num)
{
//当输入0时,输出Sunday;
case 0: cout<<"Sunday"<<endl;break;
//当输入1时,输出Monday;
case 1: cout<<"Monday"<<endl;break;
//当输入2时,输出Tuesday;
case 2: cout<<"Tuesday"<<endl;break;
//当输入3时,输出Wednesday;
case 3: cout<<"Wednesday"<<endl;break;
//当输入4时,输出Thursday;
case 4: cout<<"Thursday"<<endl;break;
//当输入5时,输出Friday;
case 5: cout<<"Friday"<<endl;break;
//当输入6时,输出Saturday。
case 6: cout<<"Saturday"<<endl;break;
default:cout<<"Error"<<endl; break;
}
return 0;

/**********End**********/
}

第2关:根据输入的数值和运算符做相应运算

本关必读

C++语言作为迄今为止最受广大程序员欢迎的编程语言之一,有着丰富的语言内涵和完整的语言体系。而算术运算符作为C++语言中最重要的一种运算符,几乎遍及所有的程序代码中,由此可见算术运算符不可或缺的重要性。

本关主要考察大家基于不同算术运算符(+-*/%)的算术运算在switch上的应用。

本关任务

本关任务是根据输入的数值和运算符做相应运算,具体要求:用户输入两个int型数值和运算符(+-*/%),编程求运算的结果。若输入运算符非(+-*/%)其中之一,则输出“Error Operator!”

其代码位于step2/OperatorCal.cpp文件,定义如下:

 
  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. int x,y;
  6. char ch;
  7. // 从命令行读入两个int型数值和一个char型运算符
  8. // 这两个数和一个运算符均取自测试集的输入
  9. cin >> x >> y >> ch;
  10. // 请在下面添加实现代码
  11. /**********Program**********/
  12. /**********End**********/
  13. }

测试说明

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

以下是平台对step2.OperatorCal的测试样例:
测试输入:1 2 +
预期输出:1+2=3

测试输入:5 10 -
预期输出:5-10=-5

测试输入:100 20 ^
预期输出:Error Operator!

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

#include <iostream>
using namespace std;

int main()
{
int x,y;
char ch;

// 从命令行读入两个int型数值和一个char型运算符
// 这两个数和一个运算符均取自测试集的输入
cin >> x >> y >> ch;

// 请在下面添加实现代码
/********** Program **********/
switch(ch)
{
case '+':cout<<x<<"+"<<y<<"="<<(x+y)<<endl;break;
case '-':cout<<x<<"-"<<y<<"="<<(x-y)<<endl;break;
case '*':cout<<x<<"*"<<y<<"="<<(x*y)<<endl;break;
case '/':cout<<x<<"/"<<y<<"="<<(x/y)<<endl;break;
case '%':cout<<x<<"%"<<y<<"="<<(x%y)<<endl;break;
default:cout<<"Error Operator!"<<endl; break;
}
return 0;

/********** End **************/
}

第3关:根据输入年月计算该月份的天数

本关必读

接下来本关需要大家完成的任务是根据用户输入的年份和月份来计算该月份包含的天数。若月份非12个月中的任一个月,则返回0。

一年包含12个月,每个月份包含的天数具有一定的规律,同时二月份包含的天数又与年份息息相关。详情如下:

  • 1月、3月、5月、7月、8月、10月、12月均包含31天;
  • 4月、6月、9月、11月均包含30天;
  • 2月:闰年2月包含29天,平年2月包含28天。

本关任务

本关的编程任务是利用switch来实现step3/DayOfMonth.cpp文件中的DayOfMonth函数,代码如下:

 
  1. // 根据输入年月输出该月份的天数
  2. int DayOfMonth(int year, int month)
  3. {
  4. // 请在此提供实现代码
  5. }

测试说明

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

注意,step3/DayOfMonthTest.cpp的代码不能被修改。测试文件代码如下:

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

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

 
  1. #ifndef _ISLEAPYEAR_H_
  2. #define _ISLEAPYEAR_H_
  3. int DayOfMonth(int , int );
  4. #endif

以下是平台对step3.DayOfMonthTest的测试样例:
测试输入:1990 12
预期输出:31

测试输入:2005 3
预期输出:31

测试输入:2017 2
预期输出:28

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

// 根据输入年月输出该月份的天数
int DayOfMonth(int year, int month)
{
// 请在此提供实现代码
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:return 31; break;
case 4:
case 6:
case 9:
case 11:return 30; break;
case 2:
{
if((year%4==0&&year%100!=0)||year%400==0)
return 29;
//2月:闰年2月包含29天,平年2月包含28天。
else
return 28;
}
default:return 0;break;
}
}
举报

相关推荐

0 条评论