第2关:为Date类添加成员函数
任务
为Date类添加一个成员函数bool isLeapYear(),用来判断给定日期中的年份是否是闰年。 需要在头文件中添加成员函数声明,在源文件中添加成员函数定义。 不需要添加主函数和对成员函数的调用,由系统负责。 只能在程序的以下区域中添加代码。 /********** Begin **********/
/********** End **********/
格式
输入格式:2024 10 1 输出格式:Yes
样例 1
输入:2024 10 1 输出:Yes
Date.h
// 日期类定义
class Date
{
private: // 表示私有,可省略
int year;
int month;
int day;
public: // 表示公有
void set(int y, int m, int d); // 修改数据成员的值
void print(); // 访问数据成员,输出成员表示的日期
//请在以下区域中添加函数声明:bool isLeapYear(
bool isLeapYear(){
return (year%4==0&&year%100!=0)||(year%400==0);
}
/********** End **********/
};
Date.cpp
#include <iostream>
#include "Date.h"
using namespace std;
// 成员函数定义:设置日期
void Date::set(int y, int m, int d)
{
year = y;
month = m;
day = d;
}
// 成员函数定义:输出日期
void Date::print()
{
cout << year << "-" << month << "-" << day;
}
//请在以下区域中添加成员函数定义:bool isLeapYear()
/********** Begin **********/
/********** End **********/
第3关:定义Point类
任务
创建一个类Point用来表示平面上的一个点,包含数据成员x和y,表示坐标,类型为double,并包含以下成员函数: void set(double a, double b); //设置成员值 void print( ); // 输出成员值,形式为:(x, y) double xOffset( ) ; // 返回x的值 double yOffset( ); // 返回y的值 double distance( ); // 返回坐标到原点的距离
在头文件Point.h中添加类定义,在源文件Point.cpp中添加类实现。 不需要定义主函数和创建Point对象,由系统负责。
Point.h
// 类定义
#include<iostream>
#include<cmath>
using namespace std;
class Point {
//请在以下区域中添加代码
/********** Begin **********/
private:
double x;
double y;
public:
void set(double a,double b){
x=a;
y=b;
}
void print(){
cout<<"("<<x<<","<<" "<<y<<")"<<endl;
}
double xOffset(){
return x;
}
double yOffset(){
return y;
}
double distance(){
return sqrt(x*x+y*y);
}
/********** End **********/
};
第4关:返回最后一个单词的长度
任务
输入一个由大写,小写字母和空格组成的字符串,返回最后一个单词的长度。如果不存在最后一个单词,返回0。“单词”是指不包含空格符号的字符串。
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str);
/********** Begin **********/
int len = 0;
int i = str.size() - 1;
while (i >= 0 && str[i] == ' ') {
--i;
}
while (i >= 0 && str[i]!= ' ') {
++len;
--i;
}
cout << len << endl;
/********** End **********/
return 0;
}
第5关:统计单词的数量
任务
输入一个字符串,统计并输出其中单词的数量。单词被定义为由空格分隔的连续非空格字符序列。考虑边界情况,如空字符串、只有空格字符的字符串、连续多个空格作为分隔等。
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
getline(cin, str);
/********** Begin **********/
int count = 0;
bool inWord = false;
for (size_t i = 0; i < str.size(); ++i) {
if (str[i]!=' ') {
if (!inWord) {
count++;
inWord = true;
}
}
else {
inWord = false;
}
}
cout << count << endl;
/********** End **********/
return 0;
}
1544

被折叠的 条评论
为什么被折叠?



