python开发一套学生成绩管理系统

欢迎来到今天的讨论,我们将深入,python编写一个简单的学生成绩管理程序 python开发一套学生成绩管理系统的过程,让我们一窥未来世界的面貌!

大家好,本文将围绕python编写一个简单的学生成绩管理程序展开说明,python设计学生成绩管理系统详细步骤是一个很多人都想弄明白的事情,想搞清楚python做一个学生成绩管理系统怎么做需要先了解以下几个事情python是干什么用的

Source code download: 本文相关源码

1.功能需求分析

根据项目要求,学生系统成绩管理系统应该具备以下几个功能:

(1)系统的登录与注册:

(2)学生成绩添加:

(3)学生成绩修改:

(4)学生成绩删除:

(5)学生成绩查询:

(6)学生成绩排序及显示:

(7)系统退出:

2. 系统设计

2.1 系统功能结构

系统主要功能分为三大模块,分别为:系统的登录与注册模块、学生成绩管理模块和学生成绩排序及显示模块。其中学生成绩管理模块功能包括学生学绩的录入、删除、修改和查询;学生成绩排序显示模块功能包括按学号排序、按总分排序、按各科目成绩排序显示python中turtle怎么画。

3. 详细设计

3.1 登录与注册功能模块
3.1.1系统的登录 

1.功能描述

实现用户的登录,系统的登录功能是通过函数login()的运行实现。

2.具体实现代码

# 登入功能实现

def login():

    user = input("登录用户:")

    passwd = input("登录密码:")

    users = load_user()

    (user, "0")

    k = (user, "0")

    if k == passwd:

        mash_menu()

    else:

        if k == "0":

            print("用户不存在!", end=",")

        else:

            print("密码错误!", end=",")

        input("按任意键继续!")

3.实现效果图

3.1.2系统的注册

1.功能描述

实现用户的注册,系统的登录功能是通过函数regist()的运行实现。

2.具体实现代码

# 注册功能实现

def regist():

    user = input("注册用户:")

    pswd = input("注册密码:")

    users = load_user()

    if (user, 0) == 0:

        user_write(user, pswd)

        print("注册成功!", end=",")

    else:

        print("用户已存在!", end=",")

    input("按任意键继续")

3.实现效果图

3.2 成绩管理功能模块
3.2.1主函数功能设计实现

1.功能描述

系统的操作主界面是通过主函数main()的运行实现,在主函数中,通过循环调用函数menu()生成功能菜单,以及使用if控制各功能子函数的调用,从而实现系统各功能模块。

2.实现代码

# 主菜单     

def main_menu():

    ctrl = True

    while ctrl:

        a = os.system("cls")

        print('''

                  ┌───学生成绩管理系统───┐

                           ====主功能菜单===

                              1.注册

                              2.登录

                              3.退出

                           =================

                        说明:使用数字选择功能

                  └──────────────┘

              ''')

        op = eval(input("请输入数字[1-3]:"))

        if op == 1:

            regist()

        elif op == 2:

            login()

        elif op == 3:

            print("系统退出!")

            ctrl = False

        else:

            print("输入错误", end=",")

            input("按任意键继续!")

3. 实现效果

进入主函数即可进入系统主界面如图所示。

3.2.2 添加学生信息设计实现

1.功能描述

添加学生信息,添加学生信息的功能是通过函数add()的运行实现。

2.具体实现代码

# 添加学生信息

def add():

    a = os.system("cls")

    ctrl = True

    student_list = load_student()  # 读入本地学生信息

    while ctrl:

        id = input("请输入学生学号:")

        name = input("请输入学生姓名:")

        english = input("请输入英语成绩:")

        math = input("请输入数学成绩:")

        python = input("请输入Python成绩:")

        try:

            total = str(int(english) + int(math) + int(python))

        except:

            print("输入成绩有误,请重新数入!")

            continue

        student = [id, name, english, math, python, total]

        student_list.append(student)

        answer = input("是否继续添加信息!?:'y/n'")

        if answer == 'y':

            continue

        else:

            break

    save_stud(student_list)  # 存入学生信息到本地

    print("学生信息录入成功!")

# 保存学生信息

def save_stud(lst):

    stu = open(filename, 'w')

    for i in lst:

        stu.write(','.join(i) + '\n')

stu.close()

3.实现效果图

3.2.3 删除学生信息设计实现

1.功能描述

 删除学生信息,删除学生信息的功能是通过函数delet()的运行实现。

2.具体实现代码

# 删除学生信息

def delet():

    os.system('cls')

    stud = load_student()

    ctrl = True

    while ctrl:

        ID = input('请输入待删除学生学号:')

        flag = 0

        for i in stud:

            if i[0] == ID:

                flag = 1

                stud.remove(i)

        if flag:

            print("删除成功!")

        else:

            print('学生信息不存在!')

        op = input('是否继续删除:(y/n)')

        if op == 'y':

            ctrl = True

        else:

            ctrl = False

    save_stud(stud)

    print('信息存入成功!')

    input('请按任意键继续')

3.实现效果图

3.2.4 修改学生信息设计实现

1.功能描述

修改学生信息,修改学生信息的功能是通过函数update()的运行实现。

2.具体实现代码

# 修改学生信息

def update():

    os.system('cls')

    ctrl = True

    flag = False

    stud = load_student()

    while ctrl:

        ID = input("请输入待修改学生的学号:")

        for i in stud:

            if i[0] == ID:

                flag = True

                op = int(

                    input('''修改学生姓名请输入1,修改英语成绩请输入2,修改数学成绩请输入3,修改Python成绩请输入4:'''))

                if op >= 2:

                    i[op] = input('请输入修改后的信息:')

                    i[-1] = str(int(i[2]) + int(i[3]) + int(i[4]))

                else:

                    i[op] = input('请输入修改后的信息:')

                break

        if flag:

            print('修改成功!')

        else:

            print('未查询到学生信息!')

        op = input('是否继续修改(y/n)?')

        if op == 'y':

            ctrl = True

        else:

            ctrl = False

    save_stud(stud)

3.实现效果图

3.2.5 查询学生信息设计实现

1.功能描述

查询学生信息,查询学生信息的功能是通过函数search()的运行实现。

2.具体实现代码

# 查询学生信息

def search():

    os.system('cls')

    stud = load_student()

    op = input('输入1按学号搜索,输入2按姓名搜索')

    op = int(op) - 1

    flag = False

    if op == 0:

        chrt = input('输入待搜索学生的学号:')

    else:

        chrt = input('输入待搜索学生的姓名:')

    for i in stud:

        if i[op] == chrt:

            flag = True

            print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))

            print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))

            break

    if flag:

        print('搜索成功!')

    else:

        print('搜索失败!')

    input('请输入任意键继续')

3.实现效果图

3.3 排序及显示功能模块

1.功能描述

实现排序及显示功能,学生排序及显示的功能是通过函数show_menu()的运行实现。

 2.具体实现代码

# 显示功能菜单

def show_menu():

    ctrl = True

    while ctrl:

        a = os.system("cls")

        print('''

                  ┌───学生成绩管理系统───┐

                        ====排序与显示功能菜单===

                              1.按学号排序显示

                              2.按总分排序显示

                              3.按科目排序显示                            

                              4.返回上一级

                        ======================

                         说明:使用数字选择功能

                  └──────────────┘

              ''')

        op = eval(input("请输入数字[1-4]:"))

        if op == 1:

            show_id()

        elif op == 2:

            show_total()

        elif op == 3:

            show_score()

        elif op == 4:

            ctrl = False

        else:

            print("输入错误", end=",")

            input("按任意键继续!")

3.实现效果图

3.3.1按学号排序显示

1.功能描述

按学号排序,按学号排序的功能是通过函数show_id()的运行实现。

2.具体实现代码

# 按学号从小到大显示学生信息

def show_id():

    os.system('cls')

    stud = load_student()[1:]

    (key=lambda x:int(x[0]), reverse=False)

    print('-------------记录信息{}条---------'.format(len(stud)))

    print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))

    for i in stud:

        print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))

    input('按任意键以继续')

3.实现效果图

3.3.2 按总分排序显示

1.功能描述

按总分排序,按总分排序的功能是通过函数show_total()的运行实现。

2.具体实现代码

# 按总分从大到小显示学生信息

def show_total():

    os.system('cls')

    stud = load_student()[1:]

    (key=lambda x: int(x[-1]), reverse=True)

    print('-------------记录信息{}条---------'.format(len(stud)))

    print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))

    for i in stud:

        print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))

    input('按任意键以继续')

3.实现效果图

3.3.3按各科目成绩排序显示

1.功能描述

按各科目成绩排序,按各科成绩排序的功能是通过函数show_score()的运行实现。

2.具体实现代码

# 按单科分数从大到小显示学生信息

def show_score():

    os.system('cls')

    stud = load_student()[1:]

    op = input("输入1按英语成绩排序,输入2按数学成绩排序,输入3按Python成绩排序")

    op = int(op) + 1

    (key=lambda x: int(x[op]), reverse=True)

    print('-------------记录信息{}条---------'.format(len(stud)))

    print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))

    for i in stud:

        print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))

    input('按任意键以继续')

3.实现效果图

4. 总代码如下:

import os

username = "" filename = ''

# 读取本地用户账号信息 def load_user():     with open(username, 'r') as f:         dic = {}         for item in f.readlines():             item = item.replace("\n", "")             li = item.split(",")             dic[li[0]] = li[1]         f.close()

    return dic

# 读取本地学生的信息 def load_student():     with open(filename, 'r') as f:         stud = []         for item in f.readlines():             item = item.replace("\n", "")             li = item.split(",")             stud.append(li)         f.close()     return stud

# 保存用户信息到本地 def user_write(user, pswd):     f = open(username, "a")     f.write(user + "," + pswd + '\n')     f.close()

# 注册功能实现 def regist():     user = input("注册用户:")     pswd = input("注册密码:")     users = load_user()     if (user, 0) == 0:         user_write(user, pswd)         print("注册成功!", end=",")     else:         print("用户已存在!", end=",")     input("按任意键继续")

# 登入功能实现 def login():     user = input("登录用户:")     passwd = input("登录密码:")     users = load_user()     (user, "0")     k = (user, "0")     if k == passwd:         mash_menu()     else:         if k == "0":             print("用户不存在!", end=",")         else:             print("密码错误!", end=",")         input("按任意键继续!")

# 添加学生信息 def add():     a = os.system("cls")     ctrl = True     student_list = load_student()  # 读入本地学生信息     while ctrl:         id = input("请输入学生学号:")         name = input("请输入学生姓名:")         english = input("请输入英语成绩:")         math = input("请输入数学成绩:")         python = input("请输入Python成绩:")         try:             total = str(int(english) + int(math) + int(python))         except:             print("输入成绩有误,请重新数入!")             continue         student = [id, name, english, math, python, total]         student_list.append(student)

        answer = input("是否继续添加信息!?:'y/n'")         if answer == 'y':             continue         else:             break

    save_stud(student_list)  # 存入学生信息到本地     print("学生信息录入成功!")

# 保存学生信息 def save_stud(lst):     stu = open(filename, 'w')     for i in lst:         stu.write(','.join(i) + '\n')     stu.close()

# 删除学生信息 def delet():     os.system('cls')     stud = load_student()     ctrl = True     while ctrl:         ID = input('请输入待删除学生学号:')         flag = 0         for i in stud:             if i[0] == ID:                 flag = 1                 stud.remove(i)         if flag:             print("删除成功!")         else:             print('学生信息不存在!')         op = input('是否继续删除:(y/n)')         if op == 'y':             ctrl = True         else:             ctrl = False     save_stud(stud)     print('信息存入成功!')     input('请按任意键继续')

# 查询学生信息 def search():     os.system('cls')     stud = load_student()     op = input('输入1按学号搜索,输入2按姓名搜索')     op = int(op) - 1     flag = False     if op == 0:         chrt = input('输入待搜索学生的学号:')     else:         chrt = input('输入待搜索学生的姓名:')     for i in stud:         if i[op] == chrt:             flag = True             print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))             print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))             break     if flag:         print('搜索成功!')     else:         print('搜索失败!')     input('请输入任意键继续')

# 修改学生信息 def update():     os.system('cls')     ctrl = True     flag = False     stud = load_student()     while ctrl:         ID = input("请输入待修改学生的学号:")         for i in stud:             if i[0] == ID:                 flag = True                 op = int(                     input('''修改学生姓名请输入1,修改英语成绩请输入2,修改数学成绩请输入3,修改Python成绩请输入4:'''))                 if op >= 2:                     i[op] = input('请输入修改后的信息:')                     i[-1] = str(int(i[2]) + int(i[3]) + int(i[4]))                 else:                     i[op] = input('请输入修改后的信息:')                 break         if flag:             print('修改成功!')         else:             print('未查询到学生信息!')         op = input('是否继续修改(y/n)?')         if op == 'y':             ctrl = True         else:             ctrl = False     save_stud(stud)

# 按学号从小到大显示学生信息 def show_id():     os.system('cls')     stud = load_student()[1:]     (key=lambda x:int(x[0]), reverse=False)     print('-------------记录信息{}条---------'.format(len(stud)))     print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))     for i in stud:         print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))     input('按任意键以继续')

# 按总分从大到小显示学生信息 def show_total():     os.system('cls')     stud = load_student()[1:]     (key=lambda x: int(x[-1]), reverse=True)     print('-------------记录信息{}条---------'.format(len(stud)))     print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))     for i in stud:         print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))     input('按任意键以继续')

# 按单科分数从大到小显示学生信息 def show_score():     os.system('cls')     stud = load_student()[1:]     op = input("输入1按英语成绩排序,输入2按数学成绩排序,输入3按Python成绩排序")     op = int(op) + 1     (key=lambda x: int(x[op]), reverse=True)     print('-------------记录信息{}条---------'.format(len(stud)))     print('{:10}{:10}{:10}{:10}{:10}{:10}'.format('学号', '姓名', '英语', '数学', 'Python', '总分'))     for i in stud:         print('{:12}{:12}{:12}{:12}{:12}{:12}'.format(i[0], i[1], i[2], i[3], i[4], i[-1]))     input('按任意键以继续')

# 显示功能菜单 def show_menu():     ctrl = True     while ctrl:         a = os.system("cls")         print('''                   ┌───学生成绩管理系统───┐                         ====排序与显示功能菜单===                               1.按学号排序显示                               2.按总分排序显示                               3.按科目排序显示                                                            4.返回上一级                         ======================

                         说明:使用数字选择功能

                  └──────────────┘               ''')         op = eval(input("请输入数字[1-4]:"))         if op == 1:             show_id()         elif op == 2:             show_total()         elif op == 3:             show_score()         elif op == 4:             ctrl = False         else:             print("输入错误", end=",")             input("按任意键继续!")

# 学生信息管理系统菜单 def manage_menu():     ctrl = True     while ctrl:         a = os.system("cls")         print('''                   ┌───学生成绩管理系统───┐                         ====成绩管理功能菜单===                               1.学生成绩添加                               2.学生成绩修改                               3.学生成绩删除                               4.学生成绩查询                               5.返回上一级                        ======================

                        说明:使用数字选择功能

                  └──────────────┘               ''')         op = eval(input("请输入数字[1-5]:"))         if op == 1:             add()         elif op == 2:             update()         elif op == 3:             delet()         elif op == 4:             search()         elif op == 5:             ctrl = False         else:             print("输入错误", end=",")             input("按任意键继续!")

# 功能菜单 def mash_menu():     ctrl = True     while ctrl:         a = os.system("cls")         print('''                   ┌───学生成绩管理系统───┐                            ====功能菜单===                               1.学生成绩管理                               2.排序及显示                               3.返回上一级                            =================

                        说明:使用数字选择功能

                  └──────────────┘               ''')         op = eval(input("请输入数字[1-3]:"))         if op == 1:             manage_menu()         elif op == 2:             show_menu()         elif op == 3:             ctrl = False         else:             print("输入错误", end=",")             input("按任意键继续!")

        # 主菜单      

def main_menu():     ctrl = True     while ctrl:         a = os.system("cls")         print('''                   ┌───学生成绩管理系统───┐                            ====主功能菜单===                               1.注册                               2.登录                               3.退出                            =================

                        说明:使用数字选择功能

                  └──────────────┘               ''')         op = eval(input("请输入数字[1-3]:"))         if op == 1:             regist()         elif op == 2:             login()         elif op == 3:             print("系统退出!")             ctrl = False         else:             print("输入错误", end=",")             input("按任意键继续!")

main_menu()


原文地址1:https://blog.csdn.net/pingf123/article/details/136726759
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值