Python实现酒店管理系统

目录

总体思路

Hotel类

Room类

HotelSystemMannerag类

附录:程序代码

Hotel类

Room类

HotelSystemMannerag类

主程序

附加思路提供和完善思路提供


总体思路

首先酒店管理系统它分为四部分来操作

1.初始化酒店房间信息

2.酒店房间信息录入,或者编写;首先明确了这点,酒店的房间数量基本是固定的,也就是说房间的类型楼层的位置是固定的,可以手动编写酒店房间列表的内容,包括价格等等。

3.我们只是实现控制台的操作,所以只需要编写与控制台交互实现各种交互的函数就可以了。

4.主程序模块,一个系统不可能只是执行一次,而是无限次执行,直到想要退出程序为止。

附:为了简单理解化,不做数据的储存操作(即在第一次运行程序操作后,关闭系统,再次运行程序所展示的数据是上一次修改后的程序结果,而是默认录入数据的结果)

Hotel类

我的本意是记录所有房间信息的,但是当时操作的时候,是把房间初始化了。其实也是大差不差的。

关于房间初始化需要什么内容。

1.房间号:room_id

2.位置:address

3.价格:price

4.房间类型:type

5.房间状态:status(即是否空闲,预定,入住的三个状态)如果只记录两个状态即可以操作status=False来进行初始化

Room类

本意是初始化房间,不过实际操作的时候是记录房间数据的类。

只需要写一个数据列表就行了,不过需要导入Hotel包去限制自己写入数据的格式,防止数据出错,方便更好的管理

HotelSystemMannerag类

这一个类需要写入一些主程序交互的方法

1.菜单显示函数

2.订房函数

3.退房函数

4.修改房间价格的函数:因为一些季节或者一些特殊情况的,个别房间的价格会发生调价需求,所以需要进行价格变更(目前的代码只提供单个房间号进行价格修改)

5.查询所有房间信息的函数

附录:程序代码

Hotel类

class Hotel:
    def __init__(self,room_id,address,price,type,status):
        self.room_id=room_id
        """
        房间号
        """
        self.address=address
        """
        楼层地址
        """
        self.price=price
        """
        价格
        """
        self.type=type
        """
        房间类型
        """
        self.status=status
        """
        房间状态
        """

Room类

import Hotel

roomTypeArr = ["单人间", "双人间", "标准间", "商务房", "豪华包"]
roomStatusArr = ["空闲", "预定", "入住"]

roomArr = [
    Hotel.Hotel(201, "二楼一号间", 150, roomTypeArr[0], roomStatusArr[0]),
    Hotel.Hotel(202, "二楼二号间", 150, roomTypeArr[0], roomStatusArr[0]),
    Hotel.Hotel(203, "二楼三号间", 150, roomTypeArr[0], roomStatusArr[0]),
    Hotel.Hotel(204, "二楼四号间", 150, roomTypeArr[0], roomStatusArr[0]),
    Hotel.Hotel(205, "二楼五号间", 250, roomTypeArr[1], roomStatusArr[0]),
    Hotel.Hotel(206, "二楼六号间", 250, roomTypeArr[1], roomStatusArr[0]),
    Hotel.Hotel(207, "二楼七号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(208, "二楼八号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(301, "三楼一号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(302, "三楼二号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(303, "三楼三号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(304, "三楼四号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(305, "三楼五号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(306, "三楼六号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(307, "三楼七号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(308, "三楼八号间", 180, roomTypeArr[2], roomStatusArr[0]),
    Hotel.Hotel(401, "四楼一号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(402, "四楼二号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(403, "四楼三号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(404, "四楼四号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(405, "四楼五号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(406, "四楼六号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(407, "四楼七号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(408, "四楼八号间", 300, roomTypeArr[3], roomStatusArr[0]),
    Hotel.Hotel(501, "五楼一号间", 400, roomTypeArr[4], roomStatusArr[0]),
    Hotel.Hotel(502, "五楼二号间", 400, roomTypeArr[4], roomStatusArr[0]),
    Hotel.Hotel(503, "五楼三号间", 400, roomTypeArr[4], roomStatusArr[0]),
    Hotel.Hotel(504, "五楼四号间", 400, roomTypeArr[4], roomStatusArr[0]),
    Hotel.Hotel(505, "五楼五号间", 400, roomTypeArr[4], roomStatusArr[0]),
    Hotel.Hotel(506, "五楼六号间", 400, roomTypeArr[4], roomStatusArr[0]),
    Hotel.Hotel(507, "五楼七号间", 400, roomTypeArr[4], roomStatusArr[0]),
    Hotel.Hotel(508, "五楼八号间", 400, roomTypeArr[4], roomStatusArr[0])
]

HotelSystemMannerag类

import Room

def menue():
    print("<<<<<欢迎使用酒店管理系统>>>>>")
    print("<<<<<[1]查看所有的房间信息")
    print("<<<<<[2]预订房间")
    print("<<<<<[3]退房")
    print("<<<<<[4]修改房间的价格信息")
    print("<<<<<[0]退出系统")

def sreachAll():
    print("-----所有房间信息查询开始-----")
    for i in Room.roomArr:
        print("房间号:{},楼层地址:{},价格:{},类型:{},状态:{}".format(i.room_id, i.address, i.price, i.type, i.status))
    print("-----所有房间信息查询完毕-----")

#单个房间查询,可写可不写
# def sreachone():
#     room_id = int(input("请输入房间编号:"))
#     print("-----房间信息查询开始-----")
#     for i in Room.roomArr:
#         if i.room_id == room_id:
#             print(i.room_id, i.address, i.price, i.type, i.status)
#             break
#     else:
#         print("没有找到该房间")
#     print("-----房间信息查询完毕-----")

# def dingfang():
def booking():
    id_input = int(input("请输入房间号:"))
    for i in Room.roomArr:
        if i.room_id == id_input:
            if i.status == "空闲":
                i.status = "已预订"
                print("预订成功")
            else:
                print(f"该房间已{i.status}")
            break
    else:
        print("没有找到该房间")



def checkout():
    id_input = int(input("请输入你要退房的房间号:"))
    for i in Room.roomArr:
        if i.room_id == id_input:
            if i.status == "空闲":
                print("该房间已经空闲")

            else:
                i.status = "空闲"
                print("退房成功")
            break
    else:
        print("没有找到该房间")


def updatePrice():
    id_input = int(input("请输入房间号:"))
    for i in Room.roomArr:
        if i.room_id == id_input:
            price_input = int(input("请输入新的价格:"))
            i.price = price_input
            print("修改成功")
            break
    else:
        print("没有找到该房间")

主程序

if __name__ == '__main__':
    while True:
        HotelSystemMannerag.menue()
        choice=input("请输入您的选择:")
        if choice=="1":
            HotelManagementSystem.sreachAll()
        elif choice=="2":
            HotelManagementSystem.booking()
        elif choice=="3":
            HotelManagementSystem.checkout()
        elif choice=="4":
            HotelManagementSystem.updatePrice()
        elif choice=="0":
            print("<<<正在退出系统>>>")
            time.sleep(2)
            print("欢迎下次再来")
            break
        else:
            print("您的输入有误,请重新输入")
        print("=========================")

附加思路提供和完善思路提供

1.能否记录程序发生操作错误时候添加日志文档

2.除了单个房间价格修改,能否依据房间的类型来进行整体的价格修改

3.能否将上次运行程序的修改后的数据储存起来,方便下次打开进行读档操作

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值