【Python案例】构建一个宿管系统(附代码)

2023-12-18 12:04:39

让我们一起探索一个有趣的 Python 编程实践——创建一个简易的宿舍管理系统。这个项目主要练习了列表和字典的基本操作,如初始化、增加、删除、修改和查询,同时也涉及到了函数的定义与调用。

项目需求

我们将开发一个宿舍管理系统,它能够执行以下功能:

1.展示操作菜单:系统启动时,应展示一个操作指南,列出不同功能的操作编号。

2.添加学生信息:能够录入新入住学生的信息,包括姓名、宿舍号和床位号(例如:313-3)、班级以及入住状态(在校或请假)。

3.删除学生信息:通过输入学生姓名来删除其住宿信息。如果该学生存在于系统中,删除并显示删除成功的提示;如果不存在,则显示未找到该学生的信息。

4.修改学生信息:通过输入学生姓名来修改其住宿信息。如果该学生存在于系统中,允许用户输入新的信息并显示修改成功的提示;如果不存在,则显示未找到该学生的信息。

5.查询学生信息:能够通过输入学生姓名查询其住宿信息。如果该学生存在于系统中,显示其信息;如果不存在,则显示未找到该学生的信息。

6.显示所有学生信息:列出系统中所有学生的住宿信息。

7.显示请假学生信息:列出所有请假状态的学生及其住宿信息。

8.退出系统:提供一个选项来退出系统。

实现思路

我们可以使用 Python 中的字典来存储学生信息,其中每个学生的姓名作为键,其它信息如宿舍号、班级、入住情况作为值。程序可以通过一个循环来提供操作菜单,并根据用户的输入执行相应的功能。

例如,添加学生信息的操作可以是一个函数,接受学生的姓名、宿舍号等信息作为参数,并将这些信息存储在字典中。类似地,删除、修改和查询操作也可以通过操作学生信息字典来实现。

开发这个系统的好处

通过开发这样一个系统,你不仅能够加深对 Python 基本数据结构的理解,还能学习如何根据用户输入执行不同的程序逻辑。这是一个很好的实践项目,可以帮助新手理解和运用 Python 编程的基础知识。

代码实现

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.定义一个查询某个学生的住宿信息函数

```python
# 查找某个学生的信息
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文件实现数据的读写和存储。或者使用数据库连接。

文章来源:https://blog.csdn.net/liaozp88/article/details/135056772
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。