用Python写一个宿舍管理系统

有粉丝说想让我更一下Python的内容,那今天我们一起学习一个新的小案例——宿舍管理系统。主要涉及列表、字典的初始化、增加、删除、修改和查询操作,以及函数的定义和调用。

一、需求:

  1. 有操作指引界面,显示操作号

  2. 能添加一个新的入住学生信息,包括学生姓名、宿舍号+床位号(如313-3)、班级、入住情况(在校or请假)

  3. 能删除一个学生的住宿信息,输入名字查询,存在则删除并提示已删除,假如不存在则提示,系统不存在该学生的信息。

  4. 能修改一个学生的住宿信息,输入名字查询,存在则让用户重新输入修改信息,并提示已修改,假如不存在则提示,系统不存在该学生的信息。

  5. 能查询一个学生的住宿信息,输入名字查询,存在则给出该学生的住宿信息,假如不存在则提示,系统不存在该学生的信息。

  6. 能显示所有学生的住宿信息

  7. 能显示所有请假学生的住宿信息

  8. 能退出系统

    图片

二、代码编写

1.定义一个全局变量列表存放所有学生信息

# 全局变量用来存储所有学生信息student_infors = []

2.定义软件提示界面函数

def Directory():    #学生宿舍管理系统 V1.0    # 1打印功能提示    print('=' * 50)    print('学生宿舍管理系统 V1.0')    print('1:添加一个新的入住学生信息')    print('2:删除一个学生的住宿信息')    print('3:修改一个学生的住宿信息')    print('4:查询一个学生的住宿信息')    print('5:显示所有的学生的住宿信息')    print('6.显示所有请假学生的信息')    print('7:退出系统')    print('=' * 50)

3.定义添加一个学生住宿信息函数

#添加学生信息函数def  Add_infor():    # 定义一个新的字典,用来存储一个新的学生信息    new_infor = {}    new_infor['student_name'] = input('请输入新入住的学生名字:')    new_infor['D_num'] = input('请输入宿舍号+床位号(如313-3):')    new_infor['Class_num'] = input('请输入班级:')    new_infor['status'] = input('请输入入住情况(在校or请假):')    # 将一个字典,添加到列表中    student_infors.append(new_infor)

4.定义删除一个学生住宿信息的函数

#删除学生信息函数def Delete_infor():    del_name = input("请输入要删除的退宿学生名字:")    find_flag = False    for line in student_infors:        if line['student_name'] == del_name:            find_flag = True            student_infors.remove(line)            break    if find_flag:        print("已删除!")    else:        print("系统不存在该学生的信息!")

5.定义一个修改一个学生的住宿信息函数

# 修改某个学生的信息def Update_one_infor():    old_name = input('请输入要修改的学生姓名:')    flag = 0    for line in student_infors:        if line['student_name'] == old_name:            line['student_name'] = input('请输入需要修改的学生名字:')            line['D_num'] = input('请输入需要修改的宿舍号+床位号(如313-3):')            line['Class_num'] = input('请输入需要修改的班级:')            line['status'] = input('请输入需要修改的入住情况(在校or请假):')            flag = True            break    if flag:        print("已修改!")    else:        print('系统不存在该学生的信息!')

6.定义一个查询某个学生的住宿信息函数

# 查找某个学生的信息def Find_one_infor():    find_nmae = input("请输入要查找的学生姓名:")    find_flag = 0  # 默认表示没有找到    for temp in student_infors:        if find_nmae == temp['student_name']:            print ('学生名字\t宿舍号+床位号\t班级\t\t入住情况')            print('%s\t\t%s\t\t%s\t\t%s' % (temp['student_name'], temp['D_num'], temp['Class_num'], temp['status']))            find_flag = 1  # 表示找到了            break    # 判断是否找到    if find_flag == 0:        print('系统不存在该学生的信息')

7.定义一个显示所有学生住宿信息函数

#查找所有入住学生信息def Find_all_infor():    print ('学生名字\t宿舍号+床位号\t班级\t\t入住情况')    for temp in student_infors:        print('%s\t\t%s\t\t%s\t\t%s' % (temp['student_name'], temp['D_num'], temp['Class_num'], temp['status']))

8.定义一个显示所有请假学生住宿信息函数

def Find_leave ():    leave_flag = 0  # 默认表示没有找到    print ('学生名字\t宿舍号+床位号\t班级\t\t入住情况')    for temp in student_infors:        if temp['status']== '请假' :            print('%s\t\t%s\t\t%s\t\t%s' % (temp['student_name'], temp['D_num'], temp['Class_num'], temp['status']))            leave_flag = 1  # 表示找到了                # 判断是否找到    if leave_flag == 0:        print('系统不存在请假学生')

9.定义一个主函数,根据软件流程要求组织调用功能函数,实现整个系统的功能。

def main():    Directory()    while True:        # 2获取用户选择        num = input('请输入操作序号:')        if num.isdigit():            num = int(num)            if num == 1:                print('1:添加一个新的入住学生信息')                Add_infor()            elif num == 2:                print('2:删除一个学生住宿信息')                Delete_infor()            elif num == 3:                print('3:修改一个学生住宿信息')                Update_one_infor()            elif num == 4:                print('4:查询一个学生住宿信息')                Find_one_infor()            elif num == 5:                print('5:显示所有的学生住宿信息')                print()                Find_all_infor()            elif num == 6:                print('6:显示所有请假学生信息')                Find_leave()            elif num == 7:                print("已退出系统!")                break            else:                print('输入有误!目前只有1-7项功能哦')                continue            print('')        else:            print("输入错误,请重新输入!1-7")

10.顶格调用主函数,启动软件

main()

拓展:大家可以尝试用tinker给软件做界面。也可以考虑使用利用pandas操作Excel文件实现数据的读写和存储。或者使用数据库连接。

-END-


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、自动化测试带你从零基础系统性的学好Python!

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

👉Python学习大礼包👈

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python书籍和视频合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

👉Python面试刷题👈

👉Python副业兼职路线👈

在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以点击链接免费领取或者保存图片到wx扫描二v码免费领取保证100%免费

👉[CSDN大礼包:《python安装工具&全套学习资料》免费分享]安全链接,放心点击

  • 20
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,宿舍管理系统可以包含以下功能: 1. 学生信息管理:包括添加学生信息、修改学生信息、查询学生信息、删除学生信息等功能; 2. 宿舍信息管理:包括添加宿舍信息、修改宿舍信息、查询宿舍信息、删除宿舍信息等功能; 3. 入住管理:包括学生入住、学生退房、查询入住信息等功能; 4. 统计管理:包括宿舍入住率统计、宿舍费用统计等功能。 下面是一个简单的宿舍管理系统的实现: 1. 学生信息管理模块: ```python class Student: def __init__(self, name, gender, department, grade, phone): self.name = name self.gender = gender self.department = department self.grade = grade self.phone = phone class StudentManager: def __init__(self): self.students = [] def add_student(self, student): self.students.append(student) def delete_student(self, name): for student in self.students: if student.name == name: self.students.remove(student) def modify_student(self, name, gender, department, grade, phone): for student in self.students: if student.name == name: student.gender = gender student.department = department student.grade = grade student.phone = phone def search_student(self, name): for student in self.students: if student.name == name: return student def show_students(self): for student in self.students: print(student.name, student.gender, student.department, student.grade, student.phone) ``` 2. 宿舍信息管理模块: ```python class Dormitory: def __init__(self, dorm_id, dorm_type, dorm_fee, dorm_status): self.dorm_id = dorm_id self.dorm_type = dorm_type self.dorm_fee = dorm_fee self.dorm_status = dorm_status class DormitoryManager: def __init__(self): self.dormitories = [] def add_dormitory(self, dormitory): self.dormitories.append(dormitory) def delete_dormitory(self, dorm_id): for dormitory in self.dormitories: if dormitory.dorm_id == dorm_id: self.dormitories.remove(dormitory) def modify_dormitory(self, dorm_id, dorm_type, dorm_fee, dorm_status): for dormitory in self.dormitories: if dormitory.dorm_id == dorm_id: dormitory.dorm_type = dorm_type dormitory.dorm_fee = dorm_fee dormitory.dorm_status = dorm_status def search_dormitory(self, dorm_id): for dormitory in self.dormitories: if dormitory.dorm_id == dorm_id: return dormitory def show_dormitories(self): for dormitory in self.dormitories: print(dormitory.dorm_id, dormitory.dorm_type, dormitory.dorm_fee, dormitory.dorm_status) ``` 3. 入住管理模块: ```python class CheckinManager: def __init__(self, student_manager, dormitory_manager): self.student_manager = student_manager self.dormitory_manager = dormitory_manager self.checkins = [] def checkin(self, name, dorm_id): student = self.student_manager.search_student(name) dormitory = self.dormitory_manager.search_dormitory(dorm_id) if student and dormitory and dormitory.dorm_status == '空闲': dormitory.dorm_status = '已入住' self.checkins.append((student, dormitory)) print('入住成功!') else: print('入住失败!') def checkout(self, name, dorm_id): student = self.student_manager.search_student(name) dormitory = self.dormitory_manager.search_dormitory(dorm_id) if student and dormitory and dormitory.dorm_status == '已入住': dormitory.dorm_status = '空闲' self.checkins.remove((student, dormitory)) print('退房成功!') else: print('退房失败!') def search_checkin(self, name): for checkin in self.checkins: if checkin[0].name == name: print(checkin[0].name, checkin[1].dorm_id) def show_checkins(self): for checkin in self.checkins: print(checkin[0].name, checkin[1].dorm_id) ``` 4. 统计管理模块: ```python class StatisticsManager: def __init__(self, dormitory_manager, checkin_manager): self.dormitory_manager = dormitory_manager self.checkin_manager = checkin_manager def dormitory_occupancy_rate(self, dorm_type): dormitories = self.dormitory_manager.dormitories count = 0 for dormitory in dormitories: if dormitory.dorm_type == dorm_type and dormitory.dorm_status == '已入住': count += 1 occupancy_rate = count / len(dormitories) print(dorm_type + '入住率为:' + str(occupancy_rate)) def dormitory_fee_statistics(self, dorm_type): dormitories = self.dormitory_manager.dormitories total_fee = 0 for dormitory in dormitories: if dormitory.dorm_type == dorm_type and dormitory.dorm_status == '已入住': total_fee += dormitory.dorm_fee print(dorm_type + '总费用为:' + str(total_fee)) ``` 以上就是一个简单的宿舍管理系统的实现。在实际开发中,还可以加入更多的功能,例如管理员登录、密码验证、异常处理等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值