Python学校教室管理系统

本文探讨了学校教室管理系统,强调了其在信息化背景下的重要性,详细描述了系统目标和关键模块tb_ser的功能,特别是3.2课程信息管理模块的添加、删除、修改和查询操作。
摘要由CSDN通过智能技术生成

1.1 课题描述

学校教室管理系统是一个用于管理学校教室资源,辅助学校课程配置的系统。就目前大多数学校的情况而言,教室信息是一组庞大复杂的数据,难以通过传统管理方法进行处理。而通过运用计算机进行管理,与之相比有运算速度快、管理效率高、成本低等诸多优势。

同时,教室管理信息化也是学校应用信息技术及其产品的过程,是信息技术应用于教师管理的过程当今世界,业务管理信息化已经成为一种趋势,就学校对于教师管理方面,建立教室管理信息系统无疑是学校发展的一种趋势,使学校管理更加方便、快捷。因此,学校信息化建设工作具有长期性,复杂性和内容的多变性;正因如此,教室信息管理系统也不是一个简单的、封闭的、静止的系统,而是一个复杂的,开放的、具有变化性和发展性的系统

综上,我认为学校教室管理系统的开发具备较为重要的意义和价值。+

1.2 系统目标

学校教室管理系统的目标包括:

1. 实现包括教室信息的存储、课程信息的存储、教师信息的存储和学生信息的存储。

2. 实现准确地根据教室、课程、教师、学生四组对象之一来查询对应信息。

3. 实现对数据的添加删除和改动,比如临时调课等。

4. 实现能够实时更新学校教师信息因增删改而发生的变动,比如临时调课等。

5. 实现用户信息管理使使用者如学生、教师等能够安全地管理用户的个人信息。

6. 实现异常情况反馈,如果系统在某一环节出现异常,则将此异常显示给管理员以便解决

3.1 tb_ser模块功能描述

tb_ser模块由四个部分组成,第一个部分用于连接数据库和建表,以及对下面写的方法在数据库中进行的处理和操作。第二个部分是用来对用到的所有字段进行定义,并定义get和set方法,用于在后面的文件中可以获取字段信息;第三个部分是用来写实现添加、删除、查找、排序功能在pycharm中实现的主要函数;第四个部分写在数据库中调用的主要函数,主要是sql语句的定义与使用。在该项目模块中使用了pymysql模块。

3.2 课程信息管理模块

3.2.1 添加课程信息

  1. 描述:

在实现添加功能的过程中,调用def manage()函数先输入需要进行的操作,再输入添加的记录条数,根据记录条数循环遍历,在分别输入时间、专业、任课老师、教学教室、选课人数、学分。然后调用def add和def addser的函数在数据库中进行插入操作,并根据在数据库中的插入条数判断插入是否正确。若插入条数大于零,则插入成功,否则,即失败。

  1. 关键代码

# 添加信息

elif n=='2':  

    while True:  

        print('--------------课程信息--------------')  

        m = 0  

        print('1.增加课程信息')  

        print('2.修改课程信息')  

        print('3.删除课程信息')  

        print('4.查询课程信息')  

        print('5.返回')  

        j = input('请选择您要查询的序号:')  

  

    # 判断用户选择的操作  

    if j == '1':  

        # 增加课程信息  

        j1 = input('请输入要增加课程的时间:')  

        j2 = input('请输入要增加课程的专业:')  

        j3 = input('请输入要增加课程的任课老师:')  

        mycursor = conn.cursor()  # 创建数据库游标  

  

        # 查询数据库中是否已有相同信息的课程  

        sql = 'select * from 课程'  # 查询所有课程信息  

        mycursor.execute(sql)  

        myresult = mycursor.fetchall()  # 获取查询结果  

        for i in myresult:  # 遍历查询结果  

            if i[0] == j1 and i[1] == j2 and i[2] == j3:  # 如果找到相同信息的课程  

                print('该课程信息已存在...')  

                m = 1  # 设置标记为已存在相同信息  

                break  # 退出循环  

  

        if m == 0:  # 如果标记为0,表示没有相同信息的课程  

            j4 = input('请输入要增加的课程选课人数:')  

            j5 = input('请输入要增加的课程教学教室:')  

            j6 = input('请输入要增加的课程学分:')  

            mycursor = conn.cursor()  # 创建数据库游标,准备插入数据  

  

            sql = 'insert into 课程 (时间,专业,任课老师,选课人数,教学教室,学分) values (%s,%s,%s,%s,%s,%s)'  # 编写插入数据的SQL语句  

            val = (j1, j2, j3, j4, j5, j6)  # 准备插入的数据值  

            mycursor.execute(sql, val)  # 执行SQL语句,插入数据到数据库中  

            conn.commit()  # 提交事务,确保数据被保存到数据库中  

            print('课程添加成功...')  # 输出提示信息,表示课程添加成功

  1. 界面设计截图

图3-1添加功能界面设计

  1. 程序流程图

图3-2添加功能程序流程图

3.2.2 删除课程信息

  1. 描述

在实现删除功能模块中,通过输入的编号进行删除数据,显示根据输入的信息在数据库中找到的信息,选择是否删除,如继续删除,则将所查找到的信息删除,如选择不删除,则返回到上一级菜单。

  1. 关键代码

# 删除信息

elif j == '3':  # 如果用户选择删除课程信息  

    j1 = input('请输入要删除的课程时间:')  # 获取用户输入的课程时间  

    j2 = input('请输入要删除的课程专业:')  # 获取用户输入的课程专业  

    j3 = input('请输入要删除的课程任课老师:')  # 获取用户输入的任课老师  

    mycursor = conn.cursor()  # 创建数据库游标  

  

    # 查询数据库中是否存在该课程信息  

    sql = 'select * from 课程'  # 查询所有课程信息  

    mycursor.execute(sql)  

    myresult = mycursor.fetchall()  # 获取查询结果  

    for i in myresult:  # 遍历查询结果  

        if i[0] == j1 and i[1] == j2 and i[2] == j3:  # 如果找到匹配的课程信息  

            mycursor = conn.cursor()  # 创建数据库游标,准备删除数据  

            # 编写SQL语句,用于删除课程信息  

            sql = 'delete from 课程 where 时间 = %s'  

            val = (j1,)  # 准备删除的数据值  

            mycursor.execute(sql, val)  # 执行SQL语句,删除数据库中的课程信息  

            conn.commit()  # 提交事务,确保数据被保存到数据库中  

            m = 1  # 设置标记为已成功删除  

            print('课程删除成功...')  # 输出提示信息,表示课程删除成功  

        if m == 0:  # 如果标记为0,表示该课程信息不存在  

            print('该课程信息不存在...')  # 输出提示信息,表示该课程信息不存在

  1. 界面设计截图

图3-3删除功能界面设计

  1. 程序流程图

图3-4删除功能程序流程图

3.2.3 修改课程信息

  1. 描述

在实现修改信息的过程中,需要先输入编号,根据编号查找到信息,输入选择,在确定需要修改的字段进行修改。该模块只使用了一个被调用函数用以完成对信息的修改,但选择一次只能修改一个字段。在修改的过程中,先后调用了两次函数,第一次调用查找函数,显示要修改的信息,第二次调用修改函数,修改需要的字段信息。

  1. 关键代码

# 更新信息

elif j == '2':  # 如果用户选择修改课程信息  

    j1 = input('请输入要修改课程时间:')  # 获取用户输入的课程时间  

    mycursor = conn.cursor()  # 创建数据库游标  

  

    # 查询数据库中是否存在该课程时间  

    sql = 'select * from 课程'  # 查询所有课程信息  

    mycursor.execute(sql)  

    myresult = mycursor.fetchall()  # 获取查询结果  

    for i in myresult:  # 遍历查询结果  

        if i[0] == j1:  # 如果找到相同课程时间的课程  

            j2 = input('请输入要修改的课程专业:')  # 获取用户输入的课程专业  

            j3 = input('请输入要修改的课程任课老师:')  # 获取用户输入的任课老师  

            j4 = input('请输入要修改的课程选课人数:')  # 获取用户输入的选课人数  

            j5 = input('请输入要修改的课程教学教室:')  # 获取用户输入的教学教室  

            j6 = input('请输入要修改的课程学分:')  # 获取用户输入的课程学分  

  

            mycursor = conn.cursor()  # 创建数据库游标,准备更新数据  

  

            # 编写SQL语句,用于更新课程信息  

            sql = 'update 课程 set 专业 = %s,任课老师 = %s,选课人数 = %s,教学教室 = %s,学分 = %s where 时间 = %s'  

            val = (j2, j3, j4, j5, j6, j1)  # 准备更新的数据值  

            mycursor.execute(sql, val)  # 执行SQL语句,更新数据库中的课程信息  

            conn.commit()  # 提交事务,确保数据被保存到数据库中  

            print('课程修改成功...')  # 输出提示信息,表示课程修改成功  

            m = 1  # 设置标记为已修改成功  

        if m == 0:  # 如果标记为0,表示该课程信息不存在  

            print('该课程信息不存在...')  # 输出提示信息,表示该课程信息不存在

  1. 界面设计截图

图3-5修改功能界面设计

  1. 程序流程图

图3-6修改功能程序流程图

3.2.4 查找课程信息

  1. 描述

在实现查找课程信息的过程中,有3种查找方式,第一种是查找全部信息,第二种是按编号查找,第三种是课程姓名查找。这几种方式中不同的一点是sql语句的不同,不同的sql语句导致查找的信息不同。

  1. 关键代码

# 通过服务查询信息

elif j == '4':  # 如果用户选择查询课程信息  

    while True:  # 无限循环,持续等待用户输入查询方式  

        a = input('请输入要查询的课程:1.时间 2.专业 3.任课老师 4.全部 5.返回')  # 获取用户输入的查询方式  

        if a == '1':  # 如果用户选择按时间查询  

            b = input('请输入要查询的时间:')  # 获取用户输入的具体时间  

            mycursor = conn.cursor()  # 创建数据库游标  

            sql = 'select * from 课程'  # 编写SQL查询语句,查询所有课程信息  

            mycursor.execute(sql)  # 执行SQL语句  

            myresult = mycursor.fetchall()  # 获取查询结果  

            c = []  # 初始化空列表,用于存放符合条件的课程信息  

            for i in myresult:  # 遍历查询结果  

                if i[0] == b:  # 如果课程时间与用户输入的时间匹配  

                    c.append(i)  # 将该课程信息添加到列表中  

            if len(c) > 0:  # 如果列表c中有数据,即找到了匹配的课程信息  

                df = pd.DataFrame(data=c, columns=['时间', '专业', '任课老师', '选课人数', '教学教室', '学分'])  # 将数据转化为DataFrame格式  

                print(df)  # 输出查询结果  

            else:  # 如果列表c中没有数据,即没有找到匹配的课程信息  

                print('输入的课程信息不存在...')  # 输出提示信息  

        elif a == '2':  # 如果用户选择按专业查询  

            b = input('请输入要查询的专业:')  # 获取用户输入的具体专业  

            mycursor = conn.cursor()  # 创建数据库游标  

            sql = 'select * from 课程'  # 编写SQL查询语句,查询所有课程信息  

            mycursor.execute(sql)  # 执行SQL语句  

            myresult = mycursor.fetchall()  # 获取查询结果  

            c = []  # 初始化空列表,用于存放符合条件的课程信息  

            for i in myresult:  # 遍历查询结果  

                if i[1] == b:  # 如果课程专业与用户输入的专业匹配  

                    c.append(i)  # 将该课程信息添加到列表中  

            if len(c) > 0:  # 如果列表c中有数据,即找到了匹配的课程信息  

                df = pd.DataFrame(data=c, columns=['时间', '专业', '任课老师', '选课人数', '教学教室', '学分'])  # 将数据转化为DataFrame格式  

                print(df)  # 输出查询结果  

            else:  # 如果列表c中没有数据,即没有找到匹配的课程信息  

                print('输入的课程信息不存在...')  # 输出提示信息  

elif a == '3':  # 如果用户选择按任课老师查询  

    b = input('请输入要查询的任课老师:')  # 获取用户输入的任课老师姓名  

    mycursor = conn.cursor()  # 创建数据库游标  

    sql = 'select * from 课程'  # 编写SQL查询语句,查询所有课程信息  

    mycursor.execute(sql)  # 执行SQL语句  

    myresult = mycursor.fetchall()  # 获取查询结果  

    c = []  # 初始化空列表,用于存放符合条件的课程信息  

    for i in myresult:  # 遍历查询结果  

        if i[2] == b:  # 如果课程任课老师与用户输入的姓名匹配  

            c.append(i)  # 将该课程信息添加到列表中  

    if len(c) > 0:  # 如果列表c中有数据,即找到了匹配的课程信息  

        df = pd.DataFrame(data=c, columns=['时间', '专业', '任课老师', '选课人数', '教学教室', '学分'])  # 将数据转化为DataFrame格式  

        print(df)  # 输出查询结果  

    else:  # 如果列表c中没有数据,即没有找到匹配的课程信息  

        print('输入的课程信息不存在...')  # 输出提示信息  

  

elif a == '4':  # 如果用户选择查询所有课程信息  

    mycursor = conn.cursor()  # 创建数据库游标  

    sql = 'select * from 课程'  # 编写SQL查询语句,查询所有课程信息  

    mycursor.execute(sql)  # 执行SQL语句  

    myresult = mycursor.fetchall()  # 获取查询结果  

    df = pd.DataFrame(data=myresult, columns=['时间', '专业', '任课老师', '选课人数', '教学教室', '学分'])  # 将数据转化为DataFrame格式  

print(df)  # 输出所有课程信息

elif a == '5':
    break
else:
    print('输入有误,请重新输入...')

  1. 界面设计截图

图3-7查找功能界面设计

  1. 程序流程图

图3-8查找功能程序流程图

3.2.5 主界面设计

  1. 描述

在主界面设计过程中,需要完成对项目信息子系统功能的需求,即需要有添加功能、删除功能、查找功能、修改功能、排序功能、退出功能。每种功能前面加入了编号,便于选择时输入。主界面作为媒介,可以跳转到各个功能的主界面,在功能中选择即可完成最后的需求。

  1. 关键代码

#主页面

print('--------------------欢迎使用学校教室管理系统------------------')   

# 无限循环,持续显示菜单选项,直到用户选择退出  

while True:  

    # 打印菜单选项  

    print('1.教室')  # 第一个选项是关于教室的管理  

    print('2.课程')  # 第二个选项是关于课程的管理  

    print('3.学生')  # 第三个选项是关于学生的管理  

    print('4.教师')  # 第四个选项是关于教师的管理  

    print('0.退出')  # 第五个选项是退出系统  

      

    # 提示用户输入要查询的序号,并将输入的值存储在变量n中  

n = input('请选择您要查询的序号:')

# 分主页面

elif n=='2':  # 如果变量n的值等于2,则执行以下代码块  

    while True:  # 无限循环,直到遇到break语句才会退出  

        print('--------------课程信息--------------')  # 打印分隔线,用于显示课程信息的标题  

        m = 0  # 初始化变量m的值为0,但这个变量在后续代码中并没有被使用  

        # 打印课程信息的菜单选项  

        print('1.增加课程信息')  # 打印第一个菜单选项  

        print('2.修改课程信息')  # 打印第二个菜单选项  

        print('3.删除课程信息')  # 打印第三个菜单选项  

        print('4.查询课程信息')  # 打印第四个菜单选项  

        print('5.返回')  # 打印第五个菜单选项  

        # 从用户处获取选择,并将输入的值存储在变量j中  

        j = input('请选择您要查询的序号:')  # 提示用户输入选择的序号

  1. 界面设计截图

图3-11主界面设计

  1. 程序流程图

图3-12主界面程序流程图

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值