Python:学生信息管理

一,程序功能(function)
思维导图

在这里插入图片描述
二,学生实体(entity)
在这里插入图片描述
关系模式
学生(学号,性别,年龄,班级,专业,系部,电话)
三:读取学生文件

这是一个Python写的学生信息管理系统
文件结构是由若干行若干列构成,一行一行地读取,每一行读取出来的字符串,通过空格拆分成一个列表,所有行读取出来之后就自然构成列表的列表,即二维列表。
在这里插入图片描述
输出文件
在这里插入图片描述
四,对学生二位列表进行增删查改操作

在这里插入图片描述
六:构建学生信息多级菜单管理系统
在这里插入图片描述

登录系统自定义用户名密码,左边源码,右边效果。
tips :文章末尾附源码

功能:

在这里插入图片描述
支持查询信息,前提是要有可查询的信息,这需要提前创建文本文件。
学生信息用空格隔开

在这里插入图片描述

增添学生信息

在这里插入图片描述

输入完信息后系统会自动保存写入文档中。

新增的信息已成功保存

在这里插入图片描述
在这里插入图片描述
这是一个可进退的信息管理系统,支持注销。
指导教师:Howard2005

源代码 ↓ ↓ ↓ ↓ ↓ ↓ ↓

# -*- coding: utf-8 -*-
"""
功能:学生信息管理
作者:weten
"""

def get_all_students():
    students = []
    f=open('学生.txt')
    for line in f:
        line=line.replace('\n','')
        student = line.split(' ')
        students.append(student)
    f.close()
    return students

def add_student():
    students = get_all_students()
    
    id = input('学号:')
    name = input('姓名:')
    gender = input('性别:')
    age = input('年龄:')
    clazz = input('班级:')
    major = input('专业:')
    department = input('系部:')
    telephone= input('电话:')
    
    students.append([id,name,gender,age,clazz,major,department,telephone])
    
    f = open('学生.txt','w')
    for i in range(len(students)):
        student=' '.join(students[i])+'\n'
        f.write(student)
    f.close()
    print('\n学生记录添加成功!\n')

def display_all_students():
    students = get_all_students()
    for i in range(len(students)):
        for j in range(len(students[i])):
            print(students[i][j],end=' ')
        print()
           
def display_id_student():
    students = get_all_students()
    id=input('学号:')
    
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    f.close()
    
def display_name_student():
    students = get_all_students()
    name=input('姓名:')
    
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][1] == name):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    f.close()
def query_student():
    while True:
        print('查询学生记录')
        print('==================')
        print('1.按学号查询学生记录')
        print('2.按姓名查询学生记录')
        print('3.查询全部学生记录')
        print('4.返回上级菜单')
        print('==================')
        m3=int(input('输入菜单号:'))
        if m3 == 1:
            display_id_student()
        elif m3 == 2:
            display_name_student()
        elif m3== 3:
            display_all_students()
        else:
            break


#姓名
def display_newname_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    newname=input('newname =')
    found=False
    for i in range(len(students)):
        if (students[i][0] == id):
            found = True
            students[i][1] = newname
            print('恭喜:学生信息修改成功!')
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    f.close()
    print()
#性别 
def display_newgender_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    newgender=input('newgender =')
    found=False
    for i in range(len(students)):
        if (students[i][0] == id):
            found = True
            students[i][2] = newgender
            print('学生信息修改成功!')
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    f.close()
    print()
#年龄
def display_newage_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    newage=input('newage =')
    found=False
    for i in range(len(students)):
        if (students[i][0] == id):
            found = True
            students[i][3] = newage
            print('学生信息修改成功!')
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    f.close()
    print()
#班级
def display_newclazz_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    newclazz=input('newclazz =')
    found=False
    for i in range(len(students)):
        if (students[i][0] == id):
            found = True
            students[i][4] = newclazz
            print('学生信息修改成功!')
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    f.close()
    print()
#专业
def display_newmajor_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    newmajor=input('newmajor =')
    found=False
    for i in range(len(students)):
        if (students[i][0] == id):
            found = True
            students[i][5] = newmajor
            print('恭喜:学生信息修改成功!')
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    f.close()
    print()
#系部
def display_newdepartment_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    newdepartment=input('newdepartment =')
    found=False
    for i in range(len(students)):
        if (students[i][0] == id):
            found = True
            students[i][6] = newdepartment
            print('恭喜:学生信息修改成功!')
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    f.close()
    print()
#电话
def display_newtelephone_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    newtelephone=input('newtelephone =')
    found=False
    for i in range(len(students)):
        if (students[i][0] == id):
            found = True
            students[i][7] = newtelephone
            print('恭喜:学生信息修改成功!')
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    f.close()
    print()

def modify_student():
    while True:
        print('修改学生信息')
        print('==================')
        print('1.修改姓名信息')
        print('2.修改性别信息')
        print('3.修改年龄信息')
        print('4.修改班级信息')
        print('5.修改专业信息')
        print('6.修改系部信息')
        print('7.修改电话号码')
        print('8.返回上级菜单')
        print('==================')
        m3=int(input('输入菜单号:'))
        if m3 == 1:
            display_newname_student()
        elif m3 == 2:
            display_newgender_student()
        elif m3== 3:
            display_newage_student()
        elif m3== 4:
            display_newclazz_student()
        elif m3== 5:
            display_newmajor_student()
        elif m3== 6:
            display_newdepartment_student()
        elif m3== 7:
            display_newtelephone_student()
        else:
            break
    
def display_delete_student():
    students = get_all_students()
    id=input('学号:')
    f = open('学生信息.txt','r')
    for i in range(len(students)):
        if (students[i][0] == id):
            for j in range(len(students[i])):
                print(students[i][j],end=' ')
    print()
    found=False
    for i in range(len(students)):
        if(students[i][0]==id):
            found = True
            break
    if not found:
        print('学号为{}的学生没找到!'.format(id))
    else:
        del students[i]
    print(students)
    f.close()
    print()

    
def delete_student():
    while True:
        print('删除学生记录')
        print('==================')
        print('1.删除学生信息')
        print('2.返回上级菜单')
        print('==================')
        m3=int(input('输入菜单号:'))
        if m3 == 1:
            display_delete_student()
        else:
            break
#登录系统    
def login():
    username = input('输入用户名:')
    password = input('输入密码:')
    if username == 'admin' and password == '123456':
        while True:
            print('学生信息管理')
            print('=============')
            print('1.增加学生记录')
            print('2.查询学生记录')
            print('3.修改学生记录')
            print('4.删除学生记录')
            print('5.返回上级菜单')
            print('=============')
            m2=int(input('输入菜单号:'))
            if m2 == 1:
                add_student()
            elif m2==2:
                query_student()
            elif m2==3:
                modify_student()
            elif m2==4:
                    delete_student()
            else:
                break
    else:
        print('\n用户名或密码错误,请重新登录!\n')
        
        
while True:
    print('用户登录')
    print('============')
    print('1.登录')
    print('2.退出')
    print('============')
    m1=int(input('输入菜单号:'))
    if m1==1:
        login()
    elif m1==2:
        print('\n感谢使用。')
        break
    


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值