Python实训报告:学生信息管理系统

文章目录

  • 一、程序功能
  • 1.功能概述
  • 2.思维导图
  • 二、学生信息级组成
  • 1.信息组成
  • 2.学生信息
  • 3.建立学生信息
  • 三、读取学生文件
  • 1.用元组的列表保存多个学生信息
  • 四、格式化输出students列表
  • 1.程序
  • 2.查看结果
  • 3.注意事项
  • 五、对学生元组的列表进行增删改查操作
  • 1.增加学生记录
  • 2.查询学生记录
  • 3.修改学生记录
  • 4.删除学生记录
  • 六、构建学生信息管理多级菜单系统
  • 1.编写程序
  • 2.运行程序,查看结果
  • 七、总结
  • 一、程序功能

    1.功能概述

  • 利用Python完成一个学生信息程序的简单改动,如增加程序、删除程序、查询程序等。
  • 2.思维导图

    二、学生信息级组成

    1.信息组成

    1.学号
    2.姓名
    3.性别
    4.年龄
    5.班级
    6.专业
    7.院校
    8.电话号码

    2.学生信息

    1. 2020001 李晓红 女 19 2020级软件4班 软件技术 人工智能与大数据学院 15945465426
    2. 2020002 王晓刚 男 18 2020级软件4班 软件技术 人工智能与大数据学院 13525489644
    3. 2020003 楚梦瑶 女 18 2020级软件4班 软件技术 人工智能与大数据学院 13985465385
    4. 2020004 王航 男 20 2020级数据1班 大数据技术与应用 人工智能与大数据学院 15246922256
    5. 2020005 吴萌 女 17 2020级数据1班 大数据技术与应用 人工智能与大数据学院 13158569699
    6. 2020006 林明 男 18 2020级数据1班 大数据技术与应用 人工智能与大数据学院 13984658158

    3.建立学生信息

  • 在D盘建立一个文档
  • 在这个文档里建立一个记事本
  • 在这个记事本上建立学生信息
  • 三、读取学生文件

    1.用元组的列表保存多个学生信息

  • 编写程序
  • # -*- coding: utf-8 -*-
    '''
    功能:用二维列表保存多个学生学生信息
    作者:雾爱
    日期:2021年12月26日
    '''
    student1 = ['2020001','李晓红','女','19','2020级软件4班','软件技术','人工智能与大数据学院','15945465426']
    student2 = ['2020002','王晓刚','男','18','2020级软件4班','软件技术','人工智能与大数据学院','13525489644']
    student3 = ['2020003','楚梦瑶','女','18','2020级软件4班','软件技术','人工智能与大数据学院','13985465385']
    student4 = ['2020004','王航','男','20','2020级数据1班','大数据技术与应用','人工智能与大数据学院','15246922256']
    student5 = ['2020005','吴萌','女','17','2020级数据1班','大数据技术与应用','人工智能与大数据学院','13158569699']
    student6 = ['2020006','林明','男','18','2020级数据1班','大数据技术与应用','人工智能与大数据学院','13984658158']
    
    students = []
    students.append(student1)
    students.append(student2)
    students.append(student3)
    students.append(student4)
    students.append(student5)
    students.append(student6)
    
    for student in students:
        for i in range(8):
            print(student[i],end=' ' )
        print()
    
  • 查看结果
  • 四、格式化输出students列表

    1.程序

    # -*- coding: utf-8 -*-
    '''
    功能:读取学生文件,保存到元祖的列表里
    作者:雾爱
    日期:2021年12月26日
    '''
    # 创建空学生列表
    students = []
    
    # 以只读方式打开文件
    f = open('学生.txt')
    
    # 以行的方式遍历文件对象
    for line in f:
        # 去掉每一行的换行符
        line =line.replace('\n',' ')
        # 以空格作为分隔符拆分每一行
        student = tuple(line.split(' '))
        # 将学生元组添加到学生列表里
        students.append(student)
    # 输出学生列表
    print(students)
    print()
    for student in students:
        for i in range(len(students)):
            print(student[i],end=' ')
        print()
    
    

    2.查看结果

    3.注意事项

  • 若路径没有绝对路径则需要将创建好的文件添加到程序目录。
  • 打开文件路径
  • 添加文件到目录
  • 五、对学生元组的列表进行增删改查操作

    1.增加学生记录

  • 编写程序
  • # -*- coding: utf-8 -*-
    '''
    功能:添加学生元组到列表
    作者:雾爱
    日期:2021年12月26日
    '''
    # 创建空学生列表
    students = []
    
    # 以只读方式打开文件
    f = open('学生.txt')
    
    # 以行的方式遍历文件对象
    for line in f:
        # 去掉每一行的换行符
        line =line.replace('\n',' ')
        # 以空格作为分隔符拆分每一行
        student = tuple(line.split(' '))
        # 将学生元组添加到学生列表里
        students.append(student)
    # 添加一个学生
    new_student = ('2021004','李倩','女','18','2021级软件4班','软件技术','人工智能与大数据学院','13981457665')
    students.append(new_student)
    # 输出之后的学生元组的列表
    for student in students:
        for i in range(len(student)):
            print(student[i],end=' ')
        print()`
    
  • 查看结果
  • 2.查询学生记录

  • 按学号查询
  • # -*- coding: utf-8 -*-
    '''
    功能:按学号查询学生记录
    作者:雾爱
    日期:2021年12月26日
    '''
    # 创建空学生列表
    students = []
    
    # 以只读方式打开文件
    f = open('学生.txt')
    
    # 以行的方式遍历文件对象
    for line in f:
        # 去掉每一行的换行符
        line =line.replace('\n',' ')
        # 以空格作为分隔符拆分每一行
        student = tuple(line.split(' '))
        # 将学生元组添加到学生列表里
        students.append(student)
    # 用户从键盘输出学号
    id = input('请输入待查学生的学号:')
    found = False
    for student in students:
        if (student[0] == id):
            found = True
            for i in range(len(student)):
                print(student[i],end=' ')
            break
    if not found:
        print('学号为{[]}的学生没找到!'.format(id))
    
    
  • 第一次查询
  • 第二次查询
  • 按姓名查询
  • # -*- coding: utf-8 -*-
    '''
    功能:按姓名查询学生记录
    作者:雾爱
    日期:2021年12月26日
    '''
    # 创建空学生列表
    students = []
    
    # 以只读方式打开文件
    f = open('学生.txt')
    
    # 以行的方式遍历文件对象
    for line in f:
        # 去掉每一行的换行符
        line =line.replace('\n',' ')
        # 以空格作为分隔符拆分每一行
        student = tuple(line.split(' '))
        # 将学生元组添加到学生列表里
        students.append(student)
    # 用户从键盘输出姓名
    name = input('请输入待查学生的姓名:')
    found = False
    for student in students:
        if (student[1] == name):
            found = True
            for i in range(len(student)):
                print(student[i],end=' ')
            break
    if not found:
        print('姓名为{[]}的学生没找到!'.format(name))
      
    
  • 第一次查询

  • 第二次查询

  • 3.修改学生记录

  • 程序
  • # -*- coding: utf-8 -*-
    '''
    功能:修改学生记录
    作者:雾爱
    日期:2021年12月26日
    '''
    # 创建空学生列表
    students = []
    
    # 以只读方式打开文件
    f = open('学生.txt')
    
    # 以行的方式遍历文件对象
    for line in f:
        # 去掉每一行的换行符
        line =line.replace('\n',' ')
        # 以空格作为分隔符拆分每一行
        student = tuple(line.split(' '))
        # 将学生元组添加到学生列表里
        students.append(student)
    # 用户从键盘输出学号
    id = input('请输入待查学生的学号:')
    found = False
    for student in students:
        if (student[0] == id):
            found = True
            new_age = input('请输入新的年龄:')
            new_telephone = input('请输入新的电话号码:')
            # 修改学生的元组指定属性的之值
            student[3] = new_age
            student[7] = new_telephone
            print('恭喜!学生记录修改成功!')
            for i in range(len(student)):
                print(student[i],end=' ')
            break
    if not found:
        print('学号为{[]}的学生没找到!'.format(name))
    
    
  • 程序结果
  • 报错了!这是为什么?原来报错的原因是学生元组的元素是不能改动的。既然不能改动,那怎么办呢?很简单,既然元组的元素不能改动,那我们把元组转化成列表不就可以了!
  • 修改后的程序
  • # -*- coding: utf-8 -*-
    '''
    功能:修改学生记录
    作者:雾爱
    日期:2021年12月26日
    '''
    # 创建空学生列表
    students = []
    
    # 以只读方式打开文件
    f = open('学生.txt')
    
    # 以行的方式遍历文件对象
    for line in f:
        # 去掉每一行的换行符
        line =line.replace('\n',' ')
        # 以空格作为分隔符拆分每一行
        student = tuple(line.split(' '))
        # 将学生元组添加到学生列表里
        students.append(student)
    # 用户从键盘输出学号
    id = input('请输入待查学生的学号:')
    found = False
    for student in students:
        if (student[0] == id):
            found = True
            # 将学生元组转化成列表
            student = list(student)
            new_age = input('请输入新的年龄:')
            new_telephone = input('请输入新的电话号码:')
            # 修改学生的元组指定属性的之值
            student[3] = new_age
            student[7] = new_telephone
            # 又将列表转化成元组
            student = turtle(student)        
            print('恭喜!学生记录修改成功!')
            for i in range(len(student)):
                print(student[i],end=' ')
            break
    if not found:
        print('学号为{[]}的学生没找到!'.format(name))
    
    
  • 结果
  • 4.删除学生记录

  • 程序
  •  # -*- coding: utf-8 -*-
    '''
    功能:删除学生记录
    作者:雾爱
    日期:2021年12月26日
    '''
    # 创建空学生列表
    students = []
    
    # 以只读方式打开文件
    f = open('学生.txt')
    
    # 以行的方式遍历文件对象
    for line in f:
        # 去掉每一行的换行符
        line =line.replace('\n',' ')
        # 以空格作为分隔符拆分每一行
        student = tuple(line.split(' '))
        # 将学生元组添加到学生列表里
        students.append(student)
    # 用户从键盘输出学号
    id = input('请输入删除学生的学号:')
    found = False
    for student in students:
        if (student[0] == id):
            found = True
            # 按值删除列表元素
            students.remove(student)
            print('恭喜!学生记录删除成功!')
            for i in range(len(student)):
                print(student[i],end=' ')
            break
    if not found:
        print('学号为{[]}的学生没找到!'.format(id))
    else:
        for student in students:
            for i in range(len(student)):
                print(student[i],end=' ')`
    
  • 结果
  • 六、构建学生信息管理多级菜单系统

    1.编写程序

    # -*- coding: utf-8 -*-
    '''
    功能:学生信息管理
    作者:雾爱
    日期:2021年12月26日
    '''
    def add_student():
        print('\n添加学生记录功能模块尚待开发\n')
    def query_student():
        while True:
            print('查询学生记录')
            print('===============')
            print('1.按学号查询学生记录')
            print('2.按姓名查询学生记录')
            print('3.查询全部学生记录')
            print('4.返回上级菜单')
            print('===============')
            mc3 = int(input('输入菜单号:'))
            if mc3 == 1:
                print('\n按学号查询学生记录功能尚待开发\n')
            elif mc3 == 2:
                print('\n按姓名查询学生记录功能尚待开发\n')
            elif mc3 == 3:
                print('\n全部查询学生记录功能尚待开发\n')
            else:
                break
    def modify_student():
        print('\n修改学生记录功能尚待开发\n')
        
    def delete_student():
        print('\n删除学生记录功能尚待开发\n')
    def login():
        username = input('输入用户名:')
        password = input('输入密码:')
        if username == 'wuai' and password == '1314520':
            while True:
                print('===============')
                print('学生信息管理')
                print('1.增加学生记录')
                print('2.查询学生记录')
                print('3.修改学生记录')
                print('4.删除学生记录')
                print('5.返回上级菜单')
                print('===============')
                mc2 = int(input('输入菜单号:'))
                if mc2 == 1:
                    add_student()
                elif mc2 == 2:
                    query_student()
                elif mc2 == 3:
                    modify_student()
                elif mc2 == 4:
                    delete_student()
                else:
                    break
        else:
            print('\n用户名活密码错误,请重新登录!\n')
            
    while True:
        print('用户登录')
        print('==========')
        print('1.登录')
        print('2.退出')
        print('==========')
        mc1 = int(input('输入菜单号:'))
        if mc1 == 1:
            login()
        elif mc1 == 2:
            print('\n谢谢使用本程序!\n')
            break
    

    2.运行程序,查看结果

    七、总结

  • 花了两天 终于算是勉强完成了老师布置的作业。虽然那天上课的时候听的很认真,但是还有很多方面不熟悉,不了解,所以查漏补缺,加强学习!
  • 来源:༺雾༒爱༻

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python实训报告:学生信息管理系统

    发表评论