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

一、程序功能

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.运行程序,查看结果

在这里插入图片描述

七、总结

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

猜你喜欢

转载自blog.csdn.net/qq_62491692/article/details/122160178