00:01
好了同学,那接下来咱们继续看啊,那我们把这个room这块写了之后呢,我们hotel这块呢,我们酒店也写了,酒店写了之后呢,我们还得提供一些行为动作,什么行为动作,比如说预定房间。好,我问大家订房间的时候啊,这个前台的小姐姐要不要输入房间编号。你思考过这个问题吧?订房public VO order,在酒店里边订房啊,酒店的订房order啊,需要来个房间编号吧?是不是,哎,这是定房。方法。啊,调用此方法时。调用此方法时。需要传递一个房间编号过来啊,这这个房间编号是前台小姐姐啊。
01:06
前台小姐姐,这个输入的啊,传过去了,那有了房间编号,我问大家。这个编号假如说是,假如说啊,这个房间编号是对的,假如说是对的,那么这个时候我们怎么怎么做。订房。订房。最主要的是将房间对象的。Status修改为false。就是把那个。Room的status,就room对象啊的status修改为false。啊,咱不做那么复杂啊,简单点,简单点,Room对象的standard修改为false。
02:02
房间编号,假如说房间编号是22207207啊,假设207,假设房间编号是207吧。那应该是第一层,呃,下边是什么?下边是下边是一六吧。下边是不是一六个位207房间是不是下边下边是一六啊。对不对。下标一表示什么呀?是不是那个rooms这个二维数组的一六。一是不是二层?二层啊。对吧,哎,然后六呢。六是不是第七个房间?是不是207啊哎,假设房间编号207,下边是ROOMS16啊。你根据这个规律,我问你现在房间编号有,你通过房间编号能不能推出这个值和这个值。
03:01
就有房间编号,能不能推出这个值和这个值。就你rooms嘛,这是一个rooms嘛,是不是点什么呀。不是点什么这个rooms。这个值是多少?这个值是多少?你不是要把房间对象的状态修改为false吗?这个房间对象是不是在二维数组里边?房间对象是不是在这个二维数组当中,它现在有这个房间编号对吗?有房间编号,你能不能通过房间编号来算出这个值和这个值的下标啊?数学逻辑对。Room number房间号207啊,207除以100。除以100各位啊,207除以100是二二还得再减一对吧。一会儿看看适用不适用啊来这个是什么?这是房间编号,对100,求余数减一吧。
04:05
房间编号对100,求余数对吗?再减一是不是好?各位看一看啊。看一看room number,假如说207207207除以一百十二二减一是一,所以这个值是就是一啊。好,入单数是207啊,207对100,求余数是不是七呀?七是不是减一等于六啊?能看懂吗?所以一个是对100求余数,一个是除以100减一。啊是这样的,那么这个其实就是下标下标,如果下标有的话,返回是一个什么东西啊,是不是room啊。是不是room好拿到room对象了啊,这是通过什么?通过房间编号演算出下标啊,叫演算出叫演算啊,演算出下标。通过房间表检测出下标获取房间对象,你拿到这个房间对象之后,你只要把它的状态改成什么false就行了。
05:13
是不是room对象的状态改为false啊?这是不是订房啊?好,那我问你。我们有个退房的方法是吧。退房的逻辑跟这个是不是一样?退房exit。退出。退房,那么退房的话跟这个代码实际上是一样的。退房也得提供房间编号,只不过改成什么呀?修改为空闲呀,退房不就是让房间变成空闲的吗?是不是,哎,那如果说你预定呢,就相当于把房间状态啊,把房状房间状态修改为什么呀,占用修改为false就是占用了吗?订房就是占用了。
06:10
是吧,好,这样的话,这个方法订房跟退房的方法就写完了,上面是打印房间列表。那其实这会儿呢,就相当于整个这个项目就已经结束了,各位啊,结束了无非再往下呢,可能就需要你写一些测试程序了。你写点测试程序,提供点友好的友好的界面,是不是你在hotel manage system这块,你给他提供点友好的界面,对吧,提供一些友好的界面出来。对吧,哎,提供一个友善的界面出来啊,你想呗,对吧,哎。首先啊,你这个酒店管理系统,首先啊,输出一个什么欢迎页面,对吧,叫做欢迎页面啊,欢迎页面,哎呀,欢迎欢迎页面啊,首先输出一个欢迎页面。对吧?啊,你可以输出点信息啊,比如说欢迎使用酒店管理系统,是不是输出啊,你说欢迎使用,哎呀,欢迎使用酒店管理系统,请认真阅读以下使用说明。
07:18
那我觉得这个东西呢,必须得有一个这个这个这个这个这个使用说明啊,欢迎使用酒店管理系统,请认真阅读以下使用说明,那么这个时候呢,你的使用说明就得打印出来呀。对不对啊,你输出。啊呃,请输入对应的功能编号。来选择对应的功能。请选择的对应请选请输入吧对应的功能编号啊呃一表示查看房间列表。啊,房间列表一表示查看房间列表。二呢,表示。
08:02
呃,预定房间。二表示订房吧。啊,二表示订房,三表示退房呗。是不是,哎,请输入对应功能编号来执行。你有一个欢迎界面出来,然后接下来你看欢迎使用什么呀,请输入对应的编号是吧?一表示查看房源列表,二表示订房,三呢表示什么呀?哎,表示退房呗。是不是,所以这个时候呢,哎,你就。嗯,零吧,表示退出系统啊,零假如零啊,输入零零表示退出系统啊。有有有来有回啊,有来有回,那行了,那anner是不是得出来呀,Scanner你有一个什么呀,Scanner吧,好system.in啊写上那有了之后呢,接下来在这块呢,你是不是应该去s.next对吧?哎,那么这个时候是不是会输next in这个这个有一个叫next,就这个。
09:01
这个方法。对吧,哎,是不是返回给呀。对不对,哎哎啊,那你这块呢,你就你得输出一句话呀,对吧,输入什么呀,请输入什么功能编号。就这块儿欢迎使用,请认真一下,阅读一下使用说明啊,请输入对应功能编号,选择功能。就是功能编号对应的功能吧,功能编号啊,对应的功能啊,请输入功能编号,请输入功能编号,输入之后呢,判断一下,如果I。对吧,要等于等于一的情况是怎么着。对吧,Else if,如果I要等于二的话是怎么着?如果I if,如果I,那要等于三的时候怎么着?是不是哎l if,如果I要等于等于零的时候怎么着对吧?如果L妥了,那可能就啊不行对吧,像等于等于一的这种情况,是不是就代表代表这个查看什么呀,房间列表吧,是不是那等于二呢?是不是就相当于订房啊。
10:11
这个是不是表示退房啊,对吧,这个是不是表示退出系统啊是吧,哎退出系统,那么这块呢,我们是不是就表示啊出错了对吧?哎出错了你看看。上面这个酒店假如说有的话,这个酒店对象已经有了。对吧,那么这个时候你输入一的话,哎这啊停下来等待用户输入吧,输入一的话怎么着啊,哎,那就调一下print就行了,那订房呢,订房你得调hotel的一个order订房嘛,订房这里是不是有一个房间编号是小姐姐输入的呀。是不是输入的呀,对吧,所以这个时候是不是应该在这个订房这个地方应该再次提示它,对吧?请输入这次是房间编号吧,请输入哪个编号啊。
11:09
是不是房间编号好,那么这个时候是不是调我们scanner的一个next in呀in好,拿到的是不是房间编号啊。大家想一想,请输入房间编号是不是s next in返回房间编号,这样的话,这个房间编号是不是小姐姐输进去的,放这就行了,对,这个是小姐姐输入房间编号。啊,那么房间编号输进去就定定就行了,定就行了啊。退房呢,退房跟这个一样。是吧,请输入这个叫订房。订房啊,请输入。订房编号吧,退房的话来跟这个逻辑一样。
12:03
那请输入什么呀,叫做退房吧,编号吧。是不是啊,退房编号,那退房编号输进去之后呢,这个方法无非掉的是exit呗。就退房嘛。是不是退房,你这个方法退房吗?退房退房,你你输出一句话对吧,叫做room number,退房,已退房。是不是你要订房这块的话,你就说出一句话。Room对吧,已订房。以定房行吧,给简单说出一句话啊,调这个方法,最后哎订房是吧,哎,退房行,那这样的话,我们这块是不是就你看这个逻辑啊,先打印信息输入功能编号,输入之后等于一怎么着,等于二怎么着,等于三怎么着,等于零怎么着是吧?哎,等于其他怎么着是不是?哎等于一就查看,等于二就是订房呗,输入订房房间编号啊退房就输入退房的房间编号是吧?调这个方法传进去退出系统,那就直接退出呗,是吧,哎,你说再见。
13:19
欢迎下次再来,对吧,欢迎下次再来。是不是直接return就完事了啊,出错了呢?出错你就提一句话呗,输入功能编号有误。请重新输入呗,是不是啊,请重新输入,那如果你不用循环这块可能可能可能只能用一次啊,你看你你只要用一次输进去,等于一的时候打印整个程序就结束了,对吧?哎,你看这个不用循环就是这个德行啊。他说欢迎使用酒店管理系统,请认真阅读一下使用说明,功能编号1230对吧?请输入功能编号,输入一查看房间列表,你看房间列表是不是列出来了,程序也结束了。
14:09
程序也结束了对吧?哎,你程序结束掉了,看见没有,你为了不让你的程序结束,你可以在这加一个while死循环啊。可以加个while循环true,那这样的话请输入功能编号,整个这堆代码你是不是就可以挪到这个里边啊。对吧,当你下一次这个输入功能编号之后,这个循环还会再执行,还会让你再输入功能编号。是不是这个道理啊,你就可以一直用了呀。对吧,你再想想死循环对吧,一直可以用,一直可以使用对吧,哎,循环使用嘛,死循环啊,除非你在这输入的是零,那么等于零条件成立的时候,这个程序就结束了。对吧,所以再去执行这个程序,你看看现在啊,大家看啊,请输入工作编号一好,大家看是不是就所有的房间是不是都列出来了,我现在先把302订了,请输入工作面,我要订房。
15:04
定房是哪个二吧,所以我输入二,大家看他说什么呀,请输入订房编号。订房编号的话,我就把302输进去了,302好回车,他说302已订房,订完房之后,我们再输入一看看这个列表,302这个总统套房这个空闲有没有变成占用,行吧,来我们再输入一啊一表示什么呀,查看房间列表来走。我们来看302,大家看这个房间,总统套房是不是变成占用了,现在以前是不是空闲的,你现在是不是订房了,订完房再去一的时候,大家看这是不是就占用啊。对吧?哎,那么请输入工作编号,假如说你输入的是呃几呀,输入的是这个退房。三啊,退房三。它输入什么呀,退房编号,退房编号我就把30430几啊,302退了啊,302是占用的,我把302退了,302回车,好大家看302是不是已退房。
16:03
那么接下来输入功能编号,再输入一的时候,我们是不是查看这个列表啊,来回车大家看302302,现在是不是又变成空闲了。对吧,哎,那想退出这个系统怎么办?输入零回撤。对吧,哎,再见,欢迎下次再来。是不是,那这样的话,这个小型的一个小型的一个项目啊,咱们就有了这个逻辑了啊,有了这个逻辑了,各位啊,这个程序是大家目前为止接触的最难的一个程序。你几乎是很难出来啊,因为它是面向对象的思想的一种体现啊,面向对象思想的一种体现,你没有一定的编程经验,你这个程序写不出来。这种程序写不出来,因为首先你第一个对room这个类的抽取,包括你对hotel这个酒店类的一个抽取,我觉得这个就是一个很难很难的一个问题啊,很难很难的问题啊,那么这一块呢,没事慢慢来,你下一周呢,先仿一下杜老师这个程序,好吧,先仿一下我这个代码啊。
17:03
先仿一仿,然后呢,看看能不能写出来啊,找时间去写。好了。那么我们的我们的这个这个这个程序还可以再去优化,优化的地方,你比如说。我们这个预定啊,包括退房啊是吧?哎,这些方法大家想一想是不是可以改进一下啊,可以改进一下,因为有一些bug在里边啊,嗯,听完也不会。嗯,还可以写几个房间占用了啊,然后呃,定占用的房间显示已占用。嗯,可以可以可以啊,可以。我写成静态的,没事儿没事儿,慢慢培养啊,慢慢培养啊,不着急,慢慢培养啊,慢慢去培养。啊,咱们总得有点难度啊,是不是啊。房间预定,退房全部查询,空房查询退出系统来我说一下各位,我们现在这个系统有一个很大的问题,什么问题?
18:08
是不是只要一断电,全就没了?是不是只要一断电致致命的问题啊,致命问题断电就没了吧?是不是断电就没了?所以。我们这些房间对象是不是都在一个二维数组里边存着二维数组?二维数组。是不是在内存里边各位。二维数组在内存当中吗?是不是,哎,一断电是不是全部就归零,重新再打开这个系统的时候,是不是就就。就丢失了。所以后期。我们还要学习数据库,对吧。是不是要学数据库啊,数据库会把数据存储到硬盘文件中。
19:08
断电啊。也不会。出问题明白吧,后期的话我们可能会学数据库,这个都这些数据全部存到数据库里边了,就不是在内存里边了。那在内存当中的话,我们这个可能就比较危险对吧?你看叭断电了,你下次再运行,你就发现这个房间啊,它又回到最原始的状态了,你看它还是所有都是空前空闲空闲空闲空闲空闲对吧?你预定房间,你输入二对吧,订房输入101订房走对吧?哎,已订房,那输入一,你查看一下,你看101单人间是不是已占用啊,但是你这个占用实际上是内存里边那个对象修改了。啊,内存里边那个对象修改了,各位啊,来,我们输入23输错了,你看回车他说什么,哎,输入功能编号有误,请重新输入,输入零走,你看再见,欢迎下次再来。
20:02
行了了解一下啊,有这么一个作业啊,有这么一个作业,这个作业呢,难度比较大,像咱们今天上午的话,主要是把这两个作业做了一下啊。
我来说两句