基于python设计的宾馆管理系统 课程论文

广告也精彩 广告也精彩

目录

一、概述 2

二、需求分析 3

三、设计 4

3.1总体框架 4

3.2初始化模块 4

3.3开房模块 5

3.4查找模块 6

3.5删除模块 7

3.6修改模块 7

3.7排序模块 8

3.8统计模块 9

3.9展示模块 9

四、开发 9

4.1主函数模块 9

4.2初始化模块 11

4.3录入模块&删除模块&修改模块 12

4.4查找模块 16

4.5排序模块 21

4.6统计模块 25

4.7展示所有信息模块 28

五、测试 29

六、心得体会 35

二、需求分析

本系统设计实现的目标是对宾馆管理信息,客户的信息进行管理,既要满足客户选购不同类型房间的需求,又需要方便管理员查询入住情况,同时满足管理员对顾客姓名,身份证号,入住天数,以及预计住房费用等信息的录入,查找,删除,既登记顾客信息,查找顾客信息,修改顾客信息,对不同数据进行排序,退房并清除顾客信息等功能,考虑到宾馆的特殊性,需留存一份开退房记录以配合公安局等部门的检查,要求顾客开放退房修改信息的记录都有留存,不会被程序内部删除掉。

功能清单:

一、开房功能

1.能够通过选择不同房间号的房间,以及不同类型的房间

2.当输入的房间已经有人入住时,要返回提示

3.当输入的房间号有误时,要返回提示

4.系统能够录入顾客身份证号,姓名,入住天数

5.顾客身份证号应在五位数以上(假设),一个身份证可开多个房间

6.入住天数需在一天以上,否则返回提示信息,重新录入

7.系统可以根据顾客入住天数以及入住的房间类型自动计算房费

8.开房记录需保存留档

二、查找功能

1.系统能够通过房间号,身份证号,和姓名三种方式查询

2.当输入以上三种信息输入有误,不符合规范时,需返回提示

3.当输入以上三种信息符合规范,但系统中未找到时,需返回提示

三、退房功能

1.系统仅能支持通过房间号退房

2.退房成功与否都需要返回提示

3.若所退房间为空房间需返回提示信息

4.退房记录需保存留档,不能因退房而被系统删除

四、修改信息功能

1.修改功能仅能对已经入住的房间中顾客信息修改,否则返回提示

2.修改功能中对身份证号,入住天数等数据规范要求与开房功能中要求一致

3.修改记录也需要保存留档,该记录永久保存,不能被修改,删除

五、排序功能

1.支持通过对房间号,入住天数,以及房费三种数据进行排序

2.排序展示要求能清晰看到排序后结果,最好可以对比排序前后结果

六、统计功能

1,统计功能需统计空房间,已入住房间,以及豪华房,双人房,标间三种类型房间入住情况

2,统计功能需要展示出空房间的房间号

# 开发工具:PyCharm
import re  # 导入正则表达式模块
import os  # 导入操作系统模块
import time
localtime = time.localtime(time.time())
filename = "binguan.txt"
filename2 = "dates.txt"
#三种类型房间房价
biao_money=100
shuang_money=150
hhf_money=200
def main():
    if not os.path.exists(filename):
        chushihua()  #初始化房间信息
    ctrl = True  # 标记是否退出系统
    while (ctrl):
        menu()  # 显示菜单
        option = input("请选择:")  # 选择菜单项
        option_str = re.sub("D", "", option)  # 提取数字
        if option_str in ['8', '1', '2', '3', '4', '5', '6', '7']:
            option_int = int(option_str)
            if option_int == 8:  # 退出系统
                print('您已退出宾馆管理系统!')
                ctrl = False
            elif option_int == 1:  # 录入顾客信息
                insert()
            elif option_int == 2:  # 查找顾客信息
                search()
            elif option_int == 3:  # 删除顾客信息
                delete()
            elif option_int == 4:  # 修改顾客信息
                modify()
            elif option_int == 5:  # 排序
                sort()
            elif option_int == 6:  # 统计空余房间
                total()
            elif option_int == 7:  # 显示所有顾客信息
                show()
def menu():
    # 输出菜单
    print('''
    ████████宾馆信息管理系统████████
    █                                          █
    █               ★功能菜单★               █
    █                                          █
    █           ❶ 录入顾客信息(开房)           █
    █           ❷ 查找顾客信息(查房)           █
    █           ❸ 删除顾客信息(退房)           █
    █           ❹ 修改顾客信息                 █
    █           ❺ 排序                         █
    █           ❻ 统计顾客总人数               █
    █           ❼ 显示所有顾客信息             █
    █           ❽ 退出系统                     █
    █                                          █
    ████████████████████████
    ''')
def chushihua():
    binguanList = []
    for i in range(10):
        binguan = {"id": 2010-i, "name": "null", "IdCard":0,"days": 0, "hometype": "标间","yu_money": 0}  # 将输入的顾客信息保存到字典
        binguanList.append(binguan)  # 将顾客字典添加到列表中
    for i in range(5):
        binguan = {"id": 1010-i, "name": "null", "IdCard":0,"days": 0, "hometype": "双人房","yu_money": 0}  # 将输入的顾客信息保存到字典
        binguanList.append(binguan)  # 将顾客字典添加到列表中
    for i in range(5):
        binguan = {"id": 1005-i, "name": "null", "IdCard":0,"days": 0, "hometype": "豪华房","yu_money": 0}  # 将输入的顾客信息保存到字典
        binguanList.append(binguan)  # 将顾客字典添加到列表中
    save(binguanList)  # 将顾客信息保存到文件
    print("顾客信息录入完毕!!!")
'''1 录入顾客信息'''
def insert():
    show()
    if os.path.exists(filename) :  # 判断文件是否存在
        with open(filename, 'r') as rfile:   # 打开文件
            binguan_old = rfile.readlines()  # 读取全部内容
    else:
        return
    while True:
        #防止输入的房间号为非数字类型数据而导致程序报错
        try:
            print("您好,提醒您:1001-1005为豪华房,1006-1010为双人房,2001-2010为标间")
            binguanid = int(input("请输入要入住的房间号ID:"))
            if binguanid 2010 or  1010<binguanid<2001:
                print("您输入的房间号有误请核对后再输入")
                continue
        except:
            print("您输入的房间号不规范,请核对")
        else:
            break
    with open(filename,"w") as wfile:# 以写模式打开文件
        for binguan in binguan_old:
            d = dict(eval(binguan))  # 字符串转字典
            if d["id"] == binguanid:
                if d["name"] =="null":
                    while True:
                        try:
                            d["name"] = input("请输入姓名:")
                            d["IdCard"] = int(input("请输入身份证号:"))
                            if d["IdCard"]<10000 :
                                print("请输入正确的身份证号")
                                continue
                            d["days"] = int(input("请输入入住天数:"))
                            if d["days"]<1 :
                                print("请输入规范的天数")
                                continue
                            if d["hometype"]=="标间":
                                d["yu_money"]=d["days"]*biao_money
                            elif d["hometype"]=="双人房":
                                d["yu_money"]=d["days"]*shuang_money
                            elif d["hometype"]=="豪华房":
                                d["yu_money"]=d["days"]*hhf_money

基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文 基于python设计的宾馆管理系统 课程论文
广告也精彩 广告也精彩
版权声明:admin 发表于 2023-10-31 11:06:22。
转载请注明:基于python设计的宾馆管理系统 课程论文 | 嘿全导航
广告也精彩 广告也精彩

暂无评论

暂无评论...