小工具知识网

当前位置: 首页 > 行业知识 > Python ------ 实现学生管理器

行业知识

Python ------ 实现学生管理器

2026-10-30 18:25:57 来源:互联网转载

欢迎各位大佬的到来,今天所要分享的文章是关于如何实现学生管理系统,有需要的朋友可以参考一下,希望可以帮到大家!

文章目录

  • 一、开始界面实现
    • 1. 定义主函数
    • 2. 运用循环,获取用户需求
    • 二、函数实现各个模块功能
      • 1. 添加学生信息
      • 2. 展示学生信息
      • 3. 查找学生信息
      • 4. 删除学生信息
      • 5. 退出程序
      • 三、 把信息存入文件中
        • 1. save() 函数
        • 2. load() 函数
        • 四、整理代码
          • 1. 代码展示
          • 2. 运行过程

            一、开始界面实现

            1. 定义主函数

            定义一个主函数main,在通过定义一个menu函数对学生管理系统的菜单进行打印。

            # 定义menu()函数def menu():    print('1. 新增学生')    print('2. 显示学生')    print('3. 查找学生')    print('4. 删除学生')    print('0. 退出程序')# 定义主函数def main():    print('--------------------------------')    print('        欢迎来到学生管理系统       ')    print('-------------------------------')    menu()main()

            2. 运用循环,获取用户需求

            1)使用 while True 循环:让菜单一直保持循环,直到用户选择退出操作时才结束循环操作。

            2)变量 choice:获取到的用户需要实现的功能进行存储。

            3)if 循环:使用多个分支循环语句,分别实现各个模块的功能。

            def menu():    print('1. 新增学生')    print('2. 显示学生')    print('3. 查找学生')    print('4. 删除学生')    print('0. 退出程序')    choice = input('请输入你的选择: ')    return choice
            # 定义主函数def main():    print('--------------------------------')    print('        欢迎来到学生管理系统       ')    print('-------------------------------')    while True:        choice = menu()        if choice == '1':            # 新增学生            pass        elif choice == '2':            # 显示学生            pass        elif choice == '3':            # 查找学生            pass        elif choice == '4':            # 删除学生            pass        elif choice == '0':            # 退出程序            pass        else:            print('您的输入有误,请重新输入!')            # 需要进入下次循环,让用户输入            continue

            效果展示:

            二、函数实现各个模块功能

            下面,就需要完成上述代码所需要实现的各个功能操作

            1. 添加学生信息

            1)studentId,name,gender,className: 分别用来存储学生的学号、姓名、性别、班级的信息。

            2)student: 定义一个字典,用来存储上述全部信息。

            3)append(): 列表添加操作,将当前的字典存入列表,作为列表的一个元素。

            4)students[ ]: 定义了一个列表用来存储所有的学生信息。该列表中的每个元素都属于一个"字典",而每个字典就分别表示一个同学!

            # 使用这个全局变量,来管理所有学生的信息.students = []def insert():    print('[新增学生] 开始!')    studentId = input('请输入学生的学号:')    name = input('请输入学生的姓名:')    gender = input('请输入学生的性别:')    if gender not in ('男', '女'):        print('性别输入的内容不符合要求,新增失败!')        return    className = input('请输入学生的班级:')    # 使用一个字典把上述的信息给聚合起来.    student = {        'studentId': studentId,        'name': name,        'gender': gender,        'className': className    }    # 将上述信息添加到全局变量students列表中    global students    students.append(student)    print('[新增学生] 完毕!')

            2. 展示学生信息

            遍历全局变量这个列表,把每个学生的信息进行打印。

            def show():    print('[显示学生] 开始!')    for s in students:        print(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}")    print(f'[显示学生] 完毕! 共显示了{len(students)}条数据!')

            3. 查找学生信息

            我们假设根据学生的姓名来进行查找。使用 count 变量完成计数功能操作。

            def find():    # 根据学生姓名,来进行查找    print('[查找学生] 开始!')    name = input('请输入要查找的同学姓名:')    count = 0    for s in students:        if name == s['name']:            print(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}")            count += 1    print(f'[查找学生] 完毕! 共找到了{count}个匹配的同学.')

            4. 删除学生信息

            假设按照学生的学号进行删除操作。通过学号来确定该学生属于哪一个“字典”,然后把这个字典从列表中进行删除即完成该操作。

            def delete():    print('[删除学生] 开始!')    # 按照学号进行删除    studentId = input('请输入要删除学生的学号:')    # 看看这个学号对应的同学是哪个字典,然后把这个字典从列表中进行删除    for s in students:        if studentId == s['studentId']:            print(f"删除 {s['name']} 同学的信息!")            students.remove(s)    print('[删除学生] 结束!')

            5. 退出程序

            使用内建函数 sys.exit (0) 退出程序即可。

                    elif choice == '0':            # 退出程序            print('GoodBye!')            sys.exit(0)

            三、 把信息存入文件中

            由于上述的插入学生信息操作和删除学生信息操作都保存在内存中,一旦我们结束程序,我们插入或删除的信息就全都不见了。为了让我们插入的信息可以一直保存下去,我们就需要定义两个函数:save() 函数和 load() 函数。

            1. save() 函数

            这个函数是用于存档学生信息的。把信息存储在和当前文件同级的目录中。存档的文件定义为文本文件。

            def save():    # 用于存档    # 此处的路径不是以d: 开头的"绝对路径",而是"相对路径"    # 这个写法的含义就是让 record.txt 和当前的文件在同一个目录里.    with open('record.txt', 'w', encoding='utf8') as f:        for s in students:            f.write(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}\n")        print(f'[存档成功] 共存储了 {len(students)} 条记录!')

            因此,每当我们修改一个数据时,就可以调用 save 函数对这个信息进行保存操作。

            2. load() 函数

            该函数是用于读取文档的操作。使用此函数,就可以实现当我们关闭程序再次运行程序时,可以读取到上次我们所保存的学生信息。

            1)os.path.exists (): 该内建函数用来判断某一个文件是否存在。

            2)line.strip (): 该功能是去掉一个字符串开头和末尾的空白符。

            空白符包括:空格,换行,回车,制表符等等。

            3)line.split (): 用于将字符串按照指定的分隔符分割成若干个字符串。

            def load():    # 用于读档    # 如果存档文件不存在,则直接跳过读档操作    if not os.path.exists('record.txt'):        return    # 读档的时候要保证先把旧的数据先清理干净!    global students    students = []    with open('record.txt', 'r', encoding='utf8') as f:        for line in f:            # 针对这一行数据,按照 \t 对其进行切分操作!            # 切分之前要去除末尾的换行            line = line.strip()            tokens = line.split('\t')            if len(tokens) != 4:                print(f'当前行格式存在问题! line = {line}')                continue            student = {                'studentId': tokens[0],                'name': tokens[1],                'gender': tokens[2],                'className': tokens[3]            }            students.append(student)    print(f'[读档成功] 共读取了 {len(students)} 条记录!')

            四、整理代码

            1. 代码展示

            import os.pathimport sys# 使用这个全局变量,来管理所有学生的信息.# 这个列表的每个元素都是一个"字典",每个字典就分别表示一个同学!students = []def save():    # 用于存档    with open('record.txt', 'w', encoding='utf8') as f:        for s in students:            f.write(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}\n")        print(f'[存档成功] 共存储了 {len(students)} 条记录!')def load():    # 用于读档    # 如果存档文件不存在,则直接跳过读档操作    if not os.path.exists('record.txt'):        return    # 读档的时候要保证先把旧的数据先清理干净!    global students    students = []    with open('record.txt', 'r', encoding='utf8') as f:        for line in f:            # 针对这一行数据,按照 \t 对其进行切分操作!            # 切分之前要去除末尾的换行            line = line.strip()            tokens = line.split('\t')            if len(tokens) != 4:                print(f'当前行格式存在问题! line = {line}')                continue            student = {                'studentId': tokens[0],                'name': tokens[1],                'gender': tokens[2],                'className': tokens[3]            }            students.append(student)    print(f'[读档成功] 共读取了 {len(students)} 条记录!')def menu():    print('1. 新增学生')    print('2. 显示学生')    print('3. 查找学生')    print('4. 删除学生')    print('0. 退出程序')    choice = input('请输入你的选择: ')    return choicedef insert():    print('[新增学生] 开始!')    studentId = input('请输入学生的学号:')    name = input('请输入学生的姓名:')    gender = input('请输入学生的性别:')    if gender not in ('男', '女'):        print('性别输入的内容不符合要求,新增失败!')        return    className = input('请输入学生的班级:')    # 使用一个字典把上述的信息给聚合起来.    student = {        'studentId': studentId,        'name': name,        'gender': gender,        'className': className    }    global students    students.append(student)    # 保存操作    save()    print('[新增学生] 完毕!')def show():    # 遍历全局变量这个列表,把每个学生的信息打印出来.    print('[显示学生] 开始!')    for s in students:        print(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}")    print(f'[显示学生] 完毕! 共显示了{len(students)}条数据!')def find():    # 根据学生姓名,来进行查找    print('[查找学生] 开始!')    name = input('请输入要查找的同学姓名:')    count = 0    for s in students:        if name == s['name']:            print(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}")            count += 1    print(f'[查找学生] 完毕! 共找到了{count}个匹配的同学.')def delete():    print('[删除学生] 开始!')    # 按照学号进行删除    studentId = input('请输入要删除学生的学号:')    # 看看这个学号对应的同学是哪个字典,然后把这个字典从列表中进行删除    for s in students:        if studentId == s['studentId']:            print(f"删除 {s['name']} 同学的信息!")            students.remove(s)    # 增加保存操作    save()    print('[删除学生] 结束!')def main():    # 通过控制台和命令进行交互    print('--------------------------------')    print('        欢迎来到学生管理系统       ')    print('-------------------------------')    load()    while True:        # 通过 menu 函数打印出菜单项        choice = menu()        if choice == '1':            # 新增学生            insert()        elif choice == '2':            # 显示学生            show()        elif choice == '3':            # 查找学生            find()        elif choice == '4':            # 删除学生            delete()        elif choice == '0':            # 退出程序            print('GoodBye!')            sys.exit(0)        else:            print('您的输入有误,请重新输入!')            # 需要进入下次循环,让用户输入            continuemain()

            2. 运行过程

上一篇:越狱模拟服务器怎么用?

下一篇:饥荒怎么看到服务器号码?