头歌——C++实验09 类与对象

第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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柒_02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值