Python : Use python to implement a student information management system

1. Student management system

Student description: student number, name, gender, grades
Student management system functions: add student information, cannot add students with duplicate student numbers, delete student information, modify student information according to student number, query student information according to student number, display all student information, Exit system

2. Code Description

  1. Put each student's information in a tuple, and add the tuple to the list
  2. Tuple key-value pair {'uid':uid,'name': name, 'sex': sex, 'yuwen': yuwen, 'shuxue': shuxue, 'yingyu': yingyu}
  3. Use the addition, deletion, modification and query of dictionaries, the addition, deletion, modification and query of lists, function calls, list traversal, loop statements, judgment statements, etc.

3. Code implementation

# 定义一个空列表,用来存放学生信息
student_list = []
def mean():
    print("  ================================================================")
    print("欢迎使用学生信息管理系统")
    print("1.添加学生信息")
    print("2.删除学生信息")
    print("3.修改学生信息")
    print("4.查询学生信息")
    print("5.学生成绩统计")
    print("6.查询所有学生信息")
    print("7.退出系统")
    print("  ===============================================================")

def addstudent():
    # 声明使用全局变量student_list
    global student_list
    print("添加学生信息")
    uid = input("请输入学生的学号:")
    name = input("请输入学生的姓名:")
    sex = input("请输入学生的性别:")
    yuwen = float(input("请输入语文成绩: "))
    shuxue = float(input("请输入数学成成绩: "))
    yingyu = float(input("请输入英语成成绩 :"))
    # 对数据进行验证,验证学号是否重复
    for i in student_list:
        # 如果重复
        if i['uid'] == uid:
            print("学号已存在")
            break
    else:
        # 将学生的信息添加到student_list列表
        student_info = {
    
    'uid':uid,'name': name, 'sex': sex, 'yuwen': yuwen, 'shuxue': shuxue, 'yingyu': yingyu}
        # 打印添加的学生信息
        print(student_info)
        # print("学号:%s" % uid, "姓名:%s" % name, "性别%s" % sex,
        #       "语文成绩:%.2f,语文成绩:%.2f,语文成绩:%.2f" % (yuwen, shuxue, yingyu))
        # student_list[uid] = student_info
        student_list.append(student_info)
        print("总成绩为:%.2f" % (yuwen+shuxue+yingyu))
        avg_student = (yuwen+shuxue+yingyu)/3
        print("平均成绩为:%.2f" % avg_student)
        print("添加成功")
def delstudent():
    print("删除学生信息")
    # 根据学号删除信息
    uid = input("请输入要删除学生的学号:")
    # 遍历列表
    for student in student_list:
        # 如果找到学生信息
        if student['uid'] == uid:
            #删除学生
            student_list.remove(student)
            print(f"已删除{uid}学生信息")
    else:
        # 否则学生信息不存在
        print(f"{uid}学生信息未保存")

def updatestudent():
    print("修改学生信息")
    #根据学号来修改
    uid = input("请输入你要修改的学生学号:")
    # 遍历列表
    for student in student_list:
        # 如果找到输入的学号
        if student['uid'] == uid:
            # 修改信息
            student['uid'] = input("请输入修改后的学生学号:")
            student['name'] = input("请输入修改后的学生姓名:")
            student['sex'] = input("请输入修改后的学生性别:")
            student['yuwen'] = float(input("请输入修改后的学生语文成绩:"))
            student['shuxue'] = float(input("请输入修改后的学生数学成绩:"))
            student['yingyu'] = float(input("请输入修改后的学生英语成绩:"))
            print("该学生的信息已更新为:学号:%s" % student['uid'], "\n姓名:%s" % student['name'], "\n性别:%s" % student['sex'],
                  "\n语文成绩:%.2f\n数学成绩:%.2f\n英语成绩:%.2f" % (student['yuwen'], student['shuxue'], student['yingyu']))
            # print("该学生信息已更新为:学号:{},姓名:{},性别:{},语文成绩:{},数学成绩:{},英语成绩:{}".format(student["uid"],student["name"], student["sex"], student["yuwen"],student["shuxue"],student["yingyu"]))
    else:
        # 否则,输入有误
        print(f"输入有误,没用找到{uid}学生信息")
def selectstudent():
    print("查询学生信息")
    # global student_list
    # 根据学号进行查找
    select = input("请输入你要查询学生的学号:")
    # 遍历列表,查找对应信息
    for student in student_list:
        #如果找到用户输入的学号
        if student['uid'] == select:
            # 输出查询的信息
            print("学号:%s" % student['uid'], "\n姓名:%s" % student['name'], "\n性别:%s" % student['sex'],
                  "\n语文成绩:%.2f\n数学成绩:%.2f\n英语成绩:%.2f" % (student['yuwen'], student['shuxue'], student['yingyu']))
            # print("学号:{}\n姓名:{}\n性别:{}\n语文成绩:{}\n数学成绩:{}\n英语成绩:{}"
            #       .format(student["uid"],student["name"], student["sex"], student["yuwen"],student["shuxue"],student["yingyu"]))
            break
    else:
        # 跳出循环表示学号不存在
        print(f"学号为{select}的学生信息未保存")
    #         print("学号:%s 姓名:%s 性别:%s 语文成绩:%s 数学成绩:%s 英语成绩:%s"
    #               %(uid, value['name'], value['sex'], value['yuwen'], value['shuxue'], value['yingyu']))
    # print("学号:%s" % uid, "姓名:%s" % name, "性别%s" % sex,"语文成绩:%.2f,语文成绩:%.2f,语文成绩:%.2f" % (yuwen, shuxue, yingyu))

def selectAllStudent():
    print("查询所有学生信息")
    # 遍历列表,查找对应信息
    for student in student_list:
        # 输出查询的信息
        print("学号:%s" % student['uid'], "\n姓名:%s" % student['name'], "\n性别:%s" % student['sex'],
              "\n语文成绩:%.2f\n数学成绩:%.2f\n英语成绩:%.2f" % (
              student['yuwen'], student['shuxue'], student['yingyu']))

def allstudent():
    print("学生成绩统计")
    # 根据学号统计
    uid = input("请输入要统计的学生学号:")
    # 遍历列表
    for student in student_list:
        # 如果输入学号存在
        if student['uid'] == uid:
            # 统计学生成绩
            print("学生成绩\n语文成绩:%.2f\n数学成绩:%.2f\n英语成绩:%.2f" % (student['yuwen'], student['shuxue'], student['yingyu']))
            print("总成绩为:%.2f" % (student['yuwen'] + student['shuxue'] + student['yingyu']))
            avg_student = (student['yuwen'] + student['shuxue'] + student['yingyu']) / 3
            print("平均成绩为:%.2f" % avg_student)
            break
    else:
        print(f"{uid}学生信息未保存")

def main():
    while True:
        mean()
        num = input("请输入:")
        if num == "1":
            addstudent()
        elif num == "2":
            delstudent()
        elif num == "3":
            updatestudent()
        elif num == "4":
            selectstudent()
        elif num == "5":
            allstudent()
        elif num == "6":
            selectAllStudent()
        elif num == "7":
            print("退出系统")
            break
        else:
            print("你的输入有错误")

main()

4. The result of running the code

1. Add student information

insert image description here

2. Show all students added

insert image description here

3. Query student information based on student ID

insert image description here

4. Modify student information

insert image description here

5. Deletion of student information

insert image description here

6. View student performance statistics according to student ID

insert image description here

7. Log out of the system

insert image description here

Experiment report + project source code

Guess you like

Origin blog.csdn.net/weixin_48622654/article/details/127477675