嘿嘿,我用代码写了一篇游记!

2021-10-15 10:55:32 浏览数 (1)

我用代码写了一篇国庆游记

大家好,我是轩辕。

假期额度已经亮起了红灯,是时候收心准备回去继续搬砖了!

这几天各种各样的游记文章相信大家看的挺多了,我这几天又去哪里浪了呢?我用代码告诉你!顺便提前找找感觉,要好好学习技术了!

出行

这几天出行,奔波于几个城市之间,先来看下城市的定义:

代码语言:javascript复制
/**
 * 城市
 */
class City {
public:
    City(string name) {
        this->name = name;
    }
    string getName() {
        return this->name;
    }
private:
    string name;
};

出行自然离不了交通工具,咱们先来抽象一个基类,或者说定义一个接口:

代码语言:javascript复制
/**
 * 交通
 */
class Transport {
public:
    virtual void go(string from, string to) = 0;
};

这几天,动车、汽车、公交车、轮船、电动车各种都有,再来定义这些子类:

代码语言:javascript复制
/**
 * 火车/动车
 */
class Train : public Transport {
public:
    virtual void go(string from, string to) {
        cout << "坐动车,从 " << from << " 到 " << to << endl;
    }
};

/**
 * 出租车
 */
class Taxi : public Transport {
public:
    virtual void go(string from, string to) {
        cout << "坐出租车,从 " << from << " 到 " << to << endl;
    }
};

/**
 * 汽车
 */
class Bus : public Transport {
public:
    virtual void go(string from, string to) {
        cout << "坐公交车,从 " << from << " 到 " << to << endl;
    }
};

/**
 * 船
 */
class Boat : public Transport {
public:
    virtual void go(string from, string to) {
        cout << "坐船,从 " << from << " 到 " << to << endl;
    }
};

/**
 * 电动车
 */
class EBike : public Transport {
public:
    virtual void go(string from, string to) {
        cout << "骑电瓶车,从 " << from << " 到 " << to << endl;
    }
};

吃喝

出来玩,当然少不了吃吃吃!同样的,对于美食,也先抽象一个基类出来:

代码语言:javascript复制
/**
 * 美食
 */
class Food {
public:
    Food(string name) {
        this->name = name;
    }
    virtual void eat() {
        cout << "吃美食: " << this->name << endl;
    }

protected:
    string name;
};

这几天吃了海鲜、面食、米粉、甜品等等各种类型的美食,来定义这些子类:

代码语言:javascript复制
/**
 * 美食:鱼
 */
class Fish : public Food {
public:
    Fish(string name):Food(name){}
    virtual void eat() {
        cout << "吃鱼: " << this->name << endl;
    }
};

/**
 * 美食:甜品
 */
class Dessert : public Food {
public:
    Dessert(string name):Food(name){}
    virtual void eat() {
        cout << "吃甜品: " << this->name << endl;
    }
};

/**
 * 美食:芋头
 */
class Taro : public Food {
public:
    Taro(string name):Food(name){}
    virtual void eat() {
        cout << "吃芋头: " << this->name << endl;
    }
};


/**
 * 美食:海鲜
 */
class SeaFood : public Food {
public:
    SeaFood(string name):Food(name){}
    virtual void eat() {
        cout << "吃海鲜: " << this->name << endl;
    }
};

/**
 * 美食:米粉
 */
class RiceFlour : public Food {
public:
    RiceFlour(string name):Food(name){}
    virtual void eat() {
        cout << "吃粉: " << this->name << endl;
    }
};

/**
 * 美食:面条
 */
class Noodle : public Food {
public:
    Noodle(string name):Food(name){}
    virtual void eat() {
        cout << "吃面条: " << this->name << endl;
    }
};

玩乐

除了吃,旅游旅游,当然得游了!所以景点少不了:

代码语言:javascript复制
/**
 * 景点
 */
class ScenicSpots {
public:
    ScenicSpots(string name) {
        this->name = name;
    }

    void visit() {
        cout << "游玩: " << this->name << endl;
    }

private:
    string name;
};

哦,对了,抽空还看了一部电影:

代码语言:javascript复制
class Movie {
public:
    Movie(string name) {
        this->name = name;
    }
    void watch() {
        cout << "看电影: " << this->name << endl;
    }
private:
    string name;
};

每一天差不多就是上面这些内容了:交通、吃喝、游玩,来定义一个每一天假日的类,把这些操作封装一下:

代码语言:javascript复制
/**
 * 假日
 */
class Holiday {
public:
    Holiday(string day, City city) {
        this->day = day;
        cout << "---------------假日: " << day << "  " << city.getName() << " --------------" << endl;
    }
    void transport(Transport* t, string from, string to) {
        t->go(from, to);
    }

    void eat(Food* f) {
        f->eat();
    }

    void visit(ScenicSpots* s) {
        s->visit();
    }

    void watch(Movie* m) {
        m->watch();
    }
private:
    string day;
};

度假

好了,最后一步,执行假期计划吧:

代码语言:javascript复制
int main() {
    /*
     * 第一天
     */
    Holiday day1("9-30", City("桂林"));
    day1.transport(new Train(), "成都", "桂林");
    day1.eat(new Fish("剑骨鱼"));
    day1.eat(new Taro("芋泥芥菜汤"));

    /*
     * 第二天
     */
    Holiday day2("10-1", City("桂林"));
    day2.eat(new RiceFlour("桂林米粉"));
    day2.transport(new Taxi(), "桂林", "桂林磨盘山码头");
    day2.transport(new Boat(), "桂林磨盘山码头", "阳朔龙头山码头");
    day2.eat(new Dessert("绿豆马蹄清补凉"));
    day2.transport(new Bus(), "阳朔", "桂林");
    day2.eat(new Fish("啤酒鱼"));
    day2.eat(new Taro("腊味蒸芋丝"));

    /*
     * 第三天
     */
    Holiday day3("10-2", City("桂林"));
    day3.eat(new RiceFlour("肠粉"));
    day3.visit(new ScenicSpots("靖江王城"));
    day3.visit(new ScenicSpots("两江四湖"));
    day3.visit(new ScenicSpots("象山"));
    day3.eat(new Dessert("黄桃糖水"));
    day3.eat(new Food("凉皮"));


    /*
     * 第四天
     */
    Holiday day4("10-3", City("北海"));
    day4.transport(new Train(), "桂林", "北海");
    day4.eat(new SeaFood("皮皮虾"));
    day4.eat(new SeaFood("生蚝"));
    day4.eat(new SeaFood("牡蛎煎蛋"));
    day4.transport(new Boat(), "北海", "涠洲岛");
    day4.visit(new ScenicSpots("石螺口海滩"));
    day4.eat(new Dessert("芒果西露"));
    day4.eat(new Noodle("重庆小面"));


    /*
     * 第五天
     */
    Holiday day5("10-4", City("北海 涠洲岛"));
    day5.transport(new EBike(), "涠洲岛", "涠洲岛");
    day5.visit(new ScenicSpots("滴水丹屏"));
    day5.visit(new ScenicSpots("鳄鱼山"));
    day5.eat(new SeaFood("虾饼"));
    day5.eat(new RiceFlour("汤粉"));
    day5.transport(new Boat(), "涠洲岛", "北海");
    day5.visit(new ScenicSpots("侨港风情街"));
    day5.eat(new Dessert("芒果沙冰"));


    /*
     * 第六天
     */
    Holiday day6("10-5", City("北海"));
    day6.transport(new EBike(), "北海银滩", "北海老街");
    day6.eat(new RiceFlour("鸡肉汤粉"));
    day6.visit(new ScenicSpots("北海老街"));
    day6.eat(new RiceFlour("螺蛳粉"));
    day6.eat(new Dessert("银耳羹"));
    day6.watch(new Movie("长津湖"));
    day6.eat(new RiceFlour("炒粉"));
    day6.eat(new Food("萝卜烧牛腩"));

    /*
     * 第七天
     */
    Holiday day7("10-6", City("南宁"));
    day7.transport(new Train(), "北海", "南宁");

    /*
     * 第八天
     */
    Holiday day8("10-7", City("南宁 成都"));
    day8.transport(new Train(), "南宁", "成都");
    day8.eat(new Noodle("泡面"));

    return 0;
}

最后执行一下,看看结果,旅游行程出炉啦:

代码语言:javascript复制
---------------假日: 9-30  桂林 --------------
坐动车,从 成都 到 桂林
吃鱼: 剑骨鱼
吃芋头: 芋泥芥菜汤
---------------假日: 10-1  桂林 --------------
吃粉: 桂林米粉
坐出租车,从 桂林 到 桂林磨盘山码头
坐船,从 桂林磨盘山码头 到 阳朔龙头山码头
吃甜品: 绿豆马蹄清补凉
坐公交车,从 阳朔 到 桂林
吃鱼: 啤酒鱼
吃芋头: 腊味蒸芋丝
---------------假日: 10-2  桂林 --------------
吃粉: 肠粉
游玩: 靖江王城
游玩: 两江四湖
游玩: 象山
吃甜品: 黄桃糖水
吃美食: 凉皮
---------------假日: 10-3  北海 --------------
坐动车,从 桂林 到 北海
吃海鲜: 皮皮虾
吃海鲜: 生蚝
吃海鲜: 牡蛎煎蛋
坐船,从 北海 到 涠洲岛
游玩: 石螺口海滩
吃甜品: 芒果西露
吃面条: 重庆小面
---------------假日: 10-4  北海 涠洲岛 --------------
骑电瓶车,从 涠洲岛 到 涠洲岛
游玩: 滴水丹屏
游玩: 鳄鱼山
吃海鲜: 虾饼
吃粉: 汤粉
坐船,从 涠洲岛 到 北海
游玩: 侨港风情街
吃甜品: 芒果沙冰
---------------假日: 10-5  北海 --------------
骑电瓶车,从 北海银滩 到 北海老街
吃粉: 鸡肉汤粉
游玩: 北海老街
吃粉: 螺蛳粉
吃甜品: 银耳羹
看电影: 长津湖
吃粉: 炒粉
吃美食: 萝卜烧牛腩
---------------假日: 10-6  南宁 --------------
坐动车,从 北海 到 南宁
---------------假日: 10-7  南宁 成都 --------------
坐动车,从 南宁 到 成都
吃面条: 泡面

最后,PO几张涠洲岛的海景图,还有什么比大海更能让人忘记一切烦恼呢?

最后的最后:

如果你的假期要用一行代码来表示,该是什么呢?

是时候展示真正的技术了,快来秀出你的假期!

0 人点赞