嘿嘿,我用代码写了一篇游记!
编程技术宇宙
共 668字,需浏览 2分钟
· 2021-10-09
我用代码写了一篇国庆游记
大家好,我是轩辕。
假期额度已经亮起了红灯,是时候收心准备回去继续搬砖了!
这几天各种各样的游记文章相信大家看的挺多了,我这几天又去哪里浪了呢?我用代码告诉你!顺便提前找找感觉,要好好学习技术了!
出行
这几天出行,奔波于几个城市之间,先来看下城市的定义:
/**
* 城市
*/
class City {
public:
City(string name) {
this->name = name;
}
string getName() {
return this->name;
}
private:
string name;
};
出行自然离不了交通工具,咱们先来抽象一个基类,或者说定义一个接口:
/**
* 交通
*/
class Transport {
public:
virtual void go(string from, string to) = 0;
};
这几天,动车、汽车、公交车、轮船、电动车各种都有,再来定义这些子类:
/**
* 火车/动车
*/
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;
}
};
吃喝
出来玩,当然少不了吃吃吃!同样的,对于美食,也先抽象一个基类出来:
/**
* 美食
*/
class Food {
public:
Food(string name) {
this->name = name;
}
virtual void eat() {
cout << "吃美食: " << this->name << endl;
}
protected:
string name;
};
这几天吃了海鲜、面食、米粉、甜品等等各种类型的美食,来定义这些子类:
/**
* 美食:鱼
*/
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;
}
};
玩乐
除了吃,旅游旅游,当然得游了!所以景点少不了:
/**
* 景点
*/
class ScenicSpots {
public:
ScenicSpots(string name) {
this->name = name;
}
void visit() {
cout << "游玩: " << this->name << endl;
}
private:
string name;
};
哦,对了,抽空还看了一部电影:
class Movie {
public:
Movie(string name) {
this->name = name;
}
void watch() {
cout << "看电影: " << this->name << endl;
}
private:
string name;
};
每一天差不多就是上面这些内容了:交通、吃喝、游玩,来定义一个每一天假日的类,把这些操作封装一下:
/**
* 假日
*/
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;
};
度假
好了,最后一步,执行假期计划吧:
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;
}
最后执行一下,看看结果,旅游行程出炉啦:
---------------假日: 9-30 桂林 --------------
坐动车,从 成都 到 桂林
吃鱼: 剑骨鱼
吃芋头: 芋泥芥菜汤
---------------假日: 10-1 桂林 --------------
吃粉: 桂林米粉
坐出租车,从 桂林 到 桂林磨盘山码头
坐船,从 桂林磨盘山码头 到 阳朔龙头山码头
吃甜品: 绿豆马蹄清补凉
坐公交车,从 阳朔 到 桂林
吃鱼: 啤酒鱼
吃芋头: 腊味蒸芋丝
---------------假日: 10-2 桂林 --------------
吃粉: 肠粉
游玩: 靖江王城
游玩: 两江四湖
游玩: 象山
吃甜品: 黄桃糖水
吃美食: 凉皮
---------------假日: 10-3 北海 --------------
坐动车,从 桂林 到 北海
吃海鲜: 皮皮虾
吃海鲜: 生蚝
吃海鲜: 牡蛎煎蛋
坐船,从 北海 到 涠洲岛
游玩: 石螺口海滩
吃甜品: 芒果西露
吃面条: 重庆小面
---------------假日: 10-4 北海 涠洲岛 --------------
骑电瓶车,从 涠洲岛 到 涠洲岛
游玩: 滴水丹屏
游玩: 鳄鱼山
吃海鲜: 虾饼
吃粉: 汤粉
坐船,从 涠洲岛 到 北海
游玩: 侨港风情街
吃甜品: 芒果沙冰
---------------假日: 10-5 北海 --------------
骑电瓶车,从 北海银滩 到 北海老街
吃粉: 鸡肉汤粉
游玩: 北海老街
吃粉: 螺蛳粉
吃甜品: 银耳羹
看电影: 长津湖
吃粉: 炒粉
吃美食: 萝卜烧牛腩
---------------假日: 10-6 南宁 --------------
坐动车,从 北海 到 南宁
---------------假日: 10-7 南宁 成都 --------------
坐动车,从 南宁 到 成都
吃面条: 泡面
最后,PO几张涠洲岛的海景图,还有什么比大海更能让人忘记一切烦恼呢?
最后的最后:
如果你的假期要用一行代码来表示,该是什么呢?
是时候展示真正的技术了,快来秀出你的假期!
评论
我看阿里的年终奖总算发了!
到4月底了,这两天看朋友圈,发现阿里的年终奖终于发了,问了问老同学,也从网上检索了不少信息,基本搞清楚了阿里今年的年终奖情况。近来来阿里一些集团对绩效等级做了较大的调整,以前的旧绩效系统中,绩效分为3.25、3.5、3.75、4和5五个等级,其中4和5是较高绩效等级,较少见。而且之前3.5绩效内部划
公子龙
0
老爸嘲讽我了,写破代码一年就挣十几万,他在工地带50个工人,一个月光人头费就3万,让我滚回去跟他干!
点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群来自:网络,侵删有个网友的父亲是做工程的,天天就嘲笑他,说他天天写着破代码有啥用,一年就拿个十多万的死工资,然后告诉他自己在工地里面带了50个工人,一个月能抽三万
程序源代码
0
我发现 Lombok的几个骚操作,哈哈好用
大家好,我是小富~前言本文不讨论对错,只讲骚操作。有的方法看看就好,知道可以这么用,但是否应用到实际开发中,那就仁者见仁,智者见智了。一万个读者就会有一万个哈姆雷特,希望这篇文章能够给您带来一些思考。耐心看完,你一定会有所收获。@onX例如 onConstructor, oMet
程序员内点事
0
大厂都在用的 Git 代码管理规范 !
👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ ,新项目正在酝酿中
小哈学Java
2
聊一聊我最常关注的9个计算机视觉、自动驾驶、AI方向高质量圈子
随着计算机视觉(2D/3D)、SLAM、自动驾驶、AI技术的快速迭代更新,可落地的技术也成为人们争先学习的重点。这使得从业者对于最前沿技术的获取能力变得至关重要。微信公众号便是一个非常有效的前沿信息分享平台。这里给大家推荐9个最常打开的计算机视觉、自动驾驶、SLAM、机器学习和AI方向的优质公众号平
机器学习初学者
0
这五款牛逼的 IDEA 插件,堪称代码质量检查利器!
来源:blog.csdn.net/a745233700?type=blog一、Alibaba Java Coding Guidelines二、CheckStyle:三、PMD四、FindBugs:五、SonarLint:总结随着业务的发展,系统会越来越庞大,原本简单稳定的功能,可能在不断迭代后复杂度
码农突围
0
我发现这款浏览器真不错
“软件分享”只分享好玩有趣的黑科技软件很多人都知道我的电脑安装了10款浏览器,每一款浏览器都有自己的分工,国内外的浏览器基本都用过,今天我又发现了一款浏览器。下载用了一下午感觉还很符合国内用户使用,这款浏览器叫CentBrowser(百分浏览器)。可以说是谷歌浏览器增强版吧。Cent Browser
一锅汤软件
2
用 Shader 实现旗帜飘扬动画效果
我觉得对于刚入门 3D 编程的朋友来说,如果能够完成代码创建模型数据->创建材质->编写Shader动画这一系列,想必会有满满的成就感。今天就用 Cocos Creator 的 utils.MeshUtils.createMesh 接口,带大家感受一下这个流程。这个流程不仅可以用于新手学
COCOS
2