Python利用字典和列表实现学生信息管理系统

本文将利用Python中的字典和列表实现学生信息管理系统

文件的存放格式采用的是python自带的pickle模块,需要新建course.txt和student.txt供程序读写。

下面是示例代码

import pickle

# 从文件中读取学生信息并返回
def readStudent():
    with open("student.txt",'rb') as f:
        try:
            return pickle.load(f)
        #读取失败,说明读取的文件为空,返回空列表即可
        except EOFError:
            return []

# 保存学生信息student_list到文件student.txt中
def saveStudent(student_list):
    with open("student.txt",'wb') as f:
        pickle.dump(student_list, f)

# 增加学生信息
def addStudent(student_list):
    id = input("请输入要增加的学生学号:")
    name = input("请输入要增加的学生姓名:")
    sex = input("请输入要增加的学生性别:")
    specialty = input("请输入要增加的学生专业班级:")
    # 把这4个数据装入字典student中
    student = {"学号":id, "姓名":name, "性别":sex, "专业班级":specialty}
    # 把字典student添加到列表student_list中
    student_list.append(student)

# 删除学生信息
def deleteStudent(student_list):
    id = input("请输入要删除的学生学号:")
    for i in range(0, len(student_list)):
        # student_list[i]是一个字典
        if student_list[i]["学号"] == id:
            # 删除student_list中的第i个字典
            student_list.pop(i)
            print("删除成功!")
            return # 结束函数
    print("删除失败,未查询到该学生。")

# 修改学生信息
def modifyStudent(student_list):
    id = input("请输入要修改的学生学号:")
    for i in range(0, len(student_list)):
        if student_list[i]["学号"] == id:
            id = input("请输入修改后的学生学号:")
            name = input("请输入修改后的姓名:")
            sex = input("请输入修改后的性别:")
            specialty = input("请输入修改后的专业班级:")
            # 把这4个数据装入字典student中
            student = {"学号":id, "姓名":name, "性别":sex, "专业班级":specialty}
            # 用student替换student_list中的第i个字典
            student_list[i] = student
            print("修改成功!")
            return # 结束函数
    print("修改失败,未查询到该学生。")

# 显示所有学生信息
def showStudent(student_list):
    print("学号\t\t姓名\t\t性别\t\t专业班级")
    for student in student_list:
        print("%s\t\t%s\t\t%s\t\t%s" %(student["学号"], student["姓名"], student["性别"], student["专业班级"]))

# 从文件中读取学生成绩信息
def readCourse():
    with open("course.txt",'rb') as f:
        try:
            return pickle.load(f)
        #读取失败,说明读取的文件为空,返回空列表即可
        except EOFError:
            return []

# 保存学生成绩信息course_list到文件course.txt中
def saveCourse(course_list):
    with open("course.txt",'wb') as f:
        pickle.dump(course_list, f)

# 增加学生成绩信息
def addCourse(course_list):
    id = input("请输入要增加的学生学号:")
    english = int(input("请输入该学生的英语成绩:"))
    math = int(input("请输入该学生的数学成绩:"))
    computer = int(input("请输入该学生的计算机成绩:"))
    chemistry = int(input("请输入该学生的化学成绩:"))
    PE = int(input("请输入该学生的体育成绩:"))
    # 把这6个数据装入字典course中
    course = {"学号":id, "英语":english, "数学":math, "计算机":computer, "化学":chemistry, "体育":PE}
    # 把字典course添加到列表course_list中
    course_list.append(course)

# 删除学生成绩信息
def deleteCourse(course_list):
    id = input("请输入要删除的学生学号:")
    for i in range(0, len(course_list)):
        # course_list[i]是一个字典
        if course_list[i]["学号"] == id:
            # 删除列表中的第i个字典
            course_list.pop(i)
            print("删除成功!")
            return #结束函数
    print("删除失败,未查询到该学生成绩。")

# 修改学生成绩信息
def modifyCourse(course_list):
    id = input("请输入要修改的学生学号:")
    for i in range(0, len(course_list)):
        if course_list[i]["学号"] == id:
            id = input("请输入修改后的学生学号:")
            english = int(input("请输入修改后的英语成绩:"))
            math = int(input("请输入修改后的数学成绩:"))
            computer = int(input("请输入修改后的计算机成绩:"))
            chemistry = int(input("请输入修改后的化学成绩:"))
            PE = int(input("请输入修改后的体育成绩:"))
            # 把这6个数据装入字典course中
            course = {"学号":id, "英语":english, "数学":math, "计算机":computer, "化学":chemistry, "体育":PE}
            # 用dict替换旧的数据
            course_list[i] = course
            print("修改成功!")
            return #结束函数
    print("修改失败,未查询到该学生成绩。")

# 显示学生成绩信息
def showCourse(course_list):
    print("学号\t\t英语\t\t数学\t\t计算机\t\t化学\t\t体育")
    for course in course_list:
        print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d" %(course["学号"], course["英语"], course["数学"],
                    course["计算机"], course["化学"], course["体育"]))

# 通过姓名查询该生的成绩信息
def searchScoreByName(student_list, course_list):
    name = input("请输入学生姓名:")
    id = "未查询到"
    for stu in student_list:
        if stu["姓名"] == name:
            id = stu["学号"]
            break
    if id == "未查询到":
        print("未查询到该学生信息。")
        return #结束函数
    for course in course_list:
        if course["学号"] == id:
            print("查询成功!该学生信息如下:")
            print("学号\t\t英语\t\t数学\t\t计算机\t\t化学\t\t体育")
            print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d" %(course["学号"], course["英语"], course["数学"],
                course["计算机"], course["化学"], course["体育"]))
            return #结束程序
    print("未查询到该学生成绩信息。")

# 查询某门课程得分最高的学生信息
def searchStudentByHighScore(student_list, course_list):
    courseName = input("请输入课程名称:")
    # 按这门课程冒泡排序
    for i in range(0, len(course_list)-1):
        for j in range(0, len(course_list)-1-i):
            if course_list[j][courseName] < course_list[j+1][courseName]:
                course_list[j], course_list[j+1] = course_list[j+1], course_list[j]
    id = course_list[0]["学号"]
    for student in student_list:
        if student["学号"] == id:
            print("查找成功!")
            print("学号\t\t姓名\t\t性别\t\t专业班级")
            print("%s\t\t%s\t\t%s\t\t%s" %(student["学号"], student["姓名"], student["性别"], student["专业班级"]))
            return
    print("未查找到该学生信息。")

# 输出某门课的平均成绩
def outputAverageScore(course_list):
    courseName = input("请输入课程名称:")
    sum = 0
    for course in course_list:
        sum += course[courseName]
    print("%s平均成绩为%.2f" %(courseName, sum/len(course_list)))

# 主菜单
def menu():
    print("1.增加学生信息    2.增加成绩信息")
    print("3.修改学生信息    4.修改成绩信息")
    print("5.删除学生信息    6.删除成绩信息")
    print("7.显示学生信息    8.显示成绩信息")
    print("9.通过姓名查询该生的成绩信息")
    print("10.查询某门课程得分最高的学生信息")
    print("11.输出某门课的平均成绩")
    print("0.保存并退出")

# 主函数
def main():
    student_list = readStudent()
    course_list = readCourse()
    flag = True
    while flag:
        menu()
        choose = input("请输入选项:")
        while True:
            # 增加学生信息
            if choose == '1':
                addStudent(student_list)
                break
            # 增加成绩信息
            elif choose == '2':
                addCourse(course_list)
                break
            # 修改学生信息
            elif choose == '3':
                modifyStudent(student_list)
                break
            # 修改成绩信息
            elif choose == '4':
                modifyCourse(course_list)
                break
            # 删除学生信息
            elif choose == '5':
                deleteStudent(student_list)
                break
            # 删除成绩信息
            elif choose == '6':
                deleteCourse(course_list)
                break
            # 显示学生信息
            elif choose == '7':
                showStudent(student_list)
                break
            # 显示成绩信息
            elif choose == '8':
                showCourse(course_list)
                break
            # 通过姓名查询该生的成绩信息
            elif choose == '9':
                searchScoreByName(student_list, course_list)
                break
            # 查询某门课程得分最高的学生信息
            elif choose == '10':
                searchStudentByHighScore(student_list, course_list)
                break
            # 输出某门课的平均成绩
            elif choose == '11':
                outputAverageScore(course_list)
                break
            # 保存数据并退出
            elif choose == '0':
                saveStudent(student_list)
                saveCourse(course_list)
                flag = False
                break
            else:
                choose = input("输入错误, 请重新输入:")

if __name__=='__main__':
    main()

到此这篇关于Python利用字典和列表实现学生信息管理系统的文章就介绍到这了,更多相关Python学生信息管理系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python学生信息管理系统实现代码

    1.本人第一次学python做出来的,当时满满的成就感,当作纪念!!!!! 非常简单,复制即可使用 代码块 import json#把字符串类型的数据转换成Python基本数据类型或者将Python基本数据类型转换成字符串类型. def login_user(): while True: register=input('学生姓名:') try: with open(register+'.json')as file_object: user_message=json.load(file_objec

  • python实现学生信息管理系统源码

    本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 代码如下: Project.py文件内容: class Student(object): # 建立学生信息储存的列表(嵌套的方式) studentInformation = [] # 对学生对象的数据进行说明 studentShow = ["学号:", "姓名:", "年龄:"] # 录入学生 def addstudent(self): sno = inpu

  • 教你用Python实现简易版学生信息管理系统(含源码)

    一.项目分析 1.首先定义一个存放基础学生信息列表 格式:list = [{学号:姓名,年龄:num,成绩:num },{--}] student1 = [\ {1:"jam",'age':17,'socer':99}, {2:'kol','age':18,'socer':89}, {3:'avlir','age':19,'socer':100}] 2.先搭建框架(主函数main()) if __name__ == '__main__': while True: menu() key

  • python实现简单学生信息管理系统

    python简单的学生信息管理系统-文件版,供大家参考,具体内容如下 功能如下 主函数部分 增加学生信息 修改学生信息 删除学生信息 查询学生 显示所有学生的信息 将数据录入文件 读取文件数据 学习文件模块后,将之前做的学生信息管理系统添加文件模块. 功能如下 1.新增学生信息: 2.修改学生信息: 3.删除学生信息: 4.查询学生信息: 5.显示学生信息; 6.将数据录入文件: 7.读取文件数据: 8.退出系统. 主函数部分 这里定义一个列表L,用来存储学生信息. 增加学生信息 将学生信息保存

  • python实现简易的学生信息管理系统

    目录 一.系统功能 二.系统开发环境 三.实现代码 四.项目打包并生成.exe可执行文件 本文实例为大家分享了python实现简易学生信息管理系统的具体代码,供大家参考,具体内容如下 一.系统功能 1.录入学生信息 2.查找学生信息 3.修改学生信息 4.删除学生信息 5.成绩排序 6.统计学生总人数 7.显示所有学生信息 0.退出系统 二.系统开发环境 1.操作系统:win7 2.开发工具:PyCharm 3.Python内置模块:os,re 三.实现代码 import os filename

  • Python利用字典和列表实现学生信息管理系统

    本文将利用Python中的字典和列表实现学生信息管理系统 文件的存放格式采用的是python自带的pickle模块,需要新建course.txt和student.txt供程序读写. 下面是示例代码 import pickle # 从文件中读取学生信息并返回 def readStudent(): with open("student.txt",'rb') as f: try: return pickle.load(f) #读取失败,说明读取的文件为空,返回空列表即可 except EOF

  • 利用Python实现学生信息管理系统的完整实例

    项目要求: 读完题目,首先我们要确定程序思路 我们要全部通过类去实现 也就是 我们要实现管理员.学生.讲师.课程.教师五个类 管理员类 class Administration(object): def __init__(self): self.data = self.__load() self.login_data = {} def __load(self) -> list: try: Adm = open('Administration.csv', 'r') readers = csv.Di

  • python实现简易学生信息管理系统

    本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 简易学生信息管理系统主要功能有 1 录入学生信息 2 查找学生信息 3 删除学生信息 4 修改学生信息 5 排序 6 统计学生总人数 7 显示所有学生信息 0 退出系统 系统运行效果 主菜单的代码方法: # Author: dry # 开发时间:2019/9/11 # 开发工具:PyCharm import re # 导入正则表达式模块 import os # 导入操作系统模块 filename = "st

  • python学生信息管理系统(完整版)

    本文是基于上一篇(python项目:学生信息管理系统(初版) )进行了完善,并添加了新的功能. 主要包括有: 完善部分:输入错误:无数据查询等异常错误 新的功能:文件的操作:文件的读写,其中重点是对文本字符串的详细解析(关于整个解析拆解和重组详见代码,以及添加了注释) 学生信息管理系统(完整版) 学生信息管理项目,要求带操作界面,并完成每项操作: +----------------------+ | 1)添加学生信息 | | 2)显示所有学生的信息 | | 3)删除学生信息 | | 4)修改学生

  • python 实现学生信息管理系统的示例

    这个是用python实现的基本的增删改查的学生管理系统,其中主要是对输入的数据进行合法性检测的问题,这次又对函数进行了练习!掌握函数更加熟练了!二话不说先贴代码,一切问题请看注释,都很详细,非常适合python3初学者! 以下是操作流程和实现代码: """ 学生管理系统 主要特点:1.可以检测学号是否重复/有误(不为纯数字) 2.可以检测手机号是否合法(是否为纯数字) 3.可以检测性别是否为男或者女 4.能选择性修个学生的某个属性信息,比如只修改某个学生的手机号码 5.能够实

  • 使用python实现学生信息管理系统

    本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下 学生管理系统的开发步骤: 1.显示学生管理系统的功能菜单 2.接收用户输入的功能选项 3.判断用户输入的功能选项,并完成相关的操作 把功能代码抽取到函数的目的:提供功能代码的复用性,减少功能代码的冗余. # 学生列表,专门来负责管理每一个学生信息 student_list = [] # 显示学生管理系统菜单的功能函数 def show_menu(): print("=================== 学

  • 基于python制作简易版学生信息管理系统

    一.前言 本篇博客对于文件操作.字典.列表.匿名函数以及sort()等内置函数进行了系统的整理操作,以设计一个学生信息管理系统的形式展示,具体概念方法等会在代码后进行分析讲述,请读者仔细分析每一处解析,对于基础巩固将会有很大的帮助,其中还有每一块代码的设计思路图,逻辑分析会有一定的提升. 二.需求分析 本程序需要用到os模板首先导入,并命名要存储信息的文件 import os File_Object_Name = 'Student_Inforation.txt' 三.主函数 def Main()

  • python面向对象版学生信息管理系统

    本文实例为大家分享了python面向对象版的学生信息管理系统的具体代码,供大家参考,具体内容如下 功能: 1.能循环输入内容 2.展示功能 -1.新增名片 -2.显示全部 -3.查询名片 -0.退出系统 3.让用户输入希望执行的操作 例如输入1,2,3,0 4.新增列表 提示用户输入姓名, 输入电话 输入qq号 输入邮箱 提示新增名片成功. 5.显示全部 将所有的名片打印出来,格式如下: 姓名    电话       QQ               邮箱 zs       110    133

随机推荐