【一起python】使用python实现学生管理系统

请添加图片描述

文章目录

  • 📝前言
  • 🌠主函数man
  • 🌉菜单menu
  • 🌉添加学生信息
  • 🌉展示目前学生信息
  • 🌉查找学生
  • 🌉删除同学信息
  • 🌉退出程序
  • 🌠python完整代码
  • 🚩总结

  • 📝前言

    🌠主函数man

    def main():
        """
        入口函数
        """
        #通过控制台和用户进行交互
        print('---------------------------------')
        print('         欢迎来到学生管理系统       ')
        print('---------------------------------')
    
        while True:
            #通过 menu 函数调用load 即可
            choice = menu()
            if choice == '1':
                #新增学生
                insert()
            elif choice == '2':
                #显示所有学生
                show()
            elif choice == '3':
                #查找学生
                find()
            elif choice == '4':
                #删除学生
                delete()
            elif choice == '0':
                #退出程序
                result = exitprint()
    
            else:
                print('无效选择,请重试!')
    
    
    if __name__ == "__main__":
        main()
    

    在 Python 中,每个脚本文件都有一个特殊的内置变量 name。当一个 Python 文件被直接运行时,name 的值会被设置为 “main”。但是如果这个 Python 文件被当作模块导入到其他程序中,那么 name 的值就会是模块名称。

    🌉菜单menu

    def menu():
        print(' 1. 新增学生')
        print(' 2. 显示学生')
        print(' 3. 查找学生')
        print(' 4. 删除学生')
        print(' 0. 退出程序')
        choice = input(' 请输入你的选择:')
        return choice
    

    🌉添加学生信息

    def insert():
        print('[新增学生] 开始!')
        studentId = input('请输入学生的学号:')
        name = input('请输入学生的姓名:')
        gender = input('请输入学生的性别:')
        if gender not in ('man', 'girl'):
            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['student']}\t{s['name']}\t{s['gender']}\t{s['className']}')
                count += 1
            print(f'[查找学生] 结束! 共找到了{count}个匹配的同学!')
    

    🌉删除同学信息

    def delete():
        print('[删除学生] 开始!')
        studentId = input('请输入要删除的学生学号:')
        for s in students:
            if s['studentId'] == studentId:
                print(f'删除{s['name']}同学的信息!')
                students.remove(s)
        save()
        print('[删除学生] 结束!')
    

    🌉退出程序

    def exitprint():
        print('''  
        ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  
        ┃                                   ┃  
        ┃     你真的要离开学生管理系统吗?       ┃  
        ┃                                   ┃  
        ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
        ''')
        confirm = input("输入 ‘yes’ 确认退出:")
        if confirm.lower() == 'yes':
            print('''  
            ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  
            ┃                                   ┃  
            ┃     学生管理系统即将关闭,再见!        ┃  
            ┃                                   ┃  
            ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
            ''')
            sys.exit()  # 直接退出程序
        else:
            print("继续使用学生管理系统")
    

    🌠python完整代码

    # -*- coding: utf-8 -*-
    import sys
    
    #实现一个命令行版本的学生管理系统
    import os.path
    
    #使用这个全局变量,来管理所有的学生信息
    # 这个列表的每一个元素都是一个"字典",每个字典就分别表示一个同学
    students = []
    
    def save():
        """
        用于存档
        """
        #此处的路径不是以 d: 开头的“绝对路径”,而是相对路径
        # 此时这个写法的含义就是让 recode.txt 和当前 的 code66.py在同一个目录
        with open('recode.txt','w',encoding='utf8') as f:
            for s in students:
                f.write(f'{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}')
            print(f'[存档成功] 共存储了 {(len)(students)} 条记录!')
    
    
    def load():
        """
        用于读档
        """
        # 如果存档文件不存在,则直接跳过读档流程
        # 为了避免读方式打开文件的时候,文件不存在引起的异常
        if not os.path.exists('recode.txt'):
            return
    
        # 读档的时候要保证先把旧的数据清理干净!
        global students
        students = []
        with open('recode.txt','r',encoding='utf8') as f:
            for line in f:
                #针对这一行数据,按照 \t 进行切分操作
                #切分之前,要去除末尾的换行\n
                line = line.strip()#去除字符串两端的空白字符(空格、换行、制表符等)
                tokens = line.split('\t')#处理后的字符串(line)按照制表符 \t 进行切分,生成一个字符串列表
                # 1001    Alice    Female  ClassA
                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 choice
    
    def insert():
        print('[新增学生] 开始!')
        studentId = input('请输入学生的学号:')
        name = input('请输入学生的姓名:')
        gender = input('请输入学生的性别:')
        if gender not in ('man', 'girl'):
            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['student']}\t{s['name']}\t{s['gender']}\t{s['className']}')
                count += 1
            print(f'[查找学生] 结束! 共找到了{count}个匹配的同学!')
    
    def delete():
        print('[删除学生] 开始!')
        studentId = input('请输入要删除的学生学号:')
        for s in students:
            if s['studentId'] == studentId:
                print(f'删除{s['name']}同学的信息!')
                students.remove(s)
        save()
        print('[删除学生] 结束!')
    
    def exitprint():
        print('''  
        ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  
        ┃                                   ┃  
        ┃     你真的要离开学生管理系统吗?       ┃  
        ┃                                   ┃  
        ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
        ''')
        confirm = input("输入 ‘yes’ 确认退出:")
        if confirm.lower() == 'yes':
            print('''  
            ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓  
            ┃                                   ┃  
            ┃     学生管理系统即将关闭,再见!        ┃  
            ┃                                   ┃  
            ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛  
            ''')
            sys.exit()  # 直接退出程序
        else:
            print("继续使用学生管理系统")
    
    
    def main():
        """
        入口函数
        """
        #通过控制台和用户进行交互
        print('---------------------------------')
        print('         欢迎来到学生管理系统       ')
        print('---------------------------------')
    
        while True:
            #通过 menu 函数调用load 即可
            choice = menu()
            if choice == '1':
                #新增学生
                insert()
            elif choice == '2':
                #显示所有学生
                show()
            elif choice == '3':
                #查找学生
                find()
            elif choice == '4':
                #删除学生
                delete()
            elif choice == '0':
                #退出程序
                result = exitprint()
    
            else:
                print('无效选择,请重试!')
    
    
    if __name__ == "__main__":
        main()
    

    🚩总结

    请添加图片描述

    作者:阿森要自信

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【一起python】使用python实现学生管理系统

    发表回复