文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python编写学生成绩管理系统的逻辑结构及功能怎么实现

2023-06-30 10:21

关注

这篇“python编写学生成绩管理系统的逻辑结构及功能怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“python编写学生成绩管理系统的逻辑结构及功能怎么实现”文章吧。

学生信息系统

提示:python编写的学生成绩管理系统,包括8个功能和打包教程

一、功能界面 

def menum():    print('==================student_manger=================')    print('---------------------功能界面---------------------')    print('\t\t1.录入学生信息')    print('\t\t2.查找学生信息')    print('\t\t3.删除学生信息')    print('\t\t4.修改学生成绩')    print('\t\t5.排序')    print('\t\t6.统计学生总人数')    print('\t\t7.显示所有学生信息')    print('\t\t8.显示功能介绍按钮')    print('\t\t0.退出')    print('================================================')

二 、主函数 

def main():    menum()    while True:        try:            choice = int(input('请选择你想进行的操作: '))        except ValueError:            print('输入的数据存在错误,只能输入0到7的整数!')            try:                choice = int(input('请重新输入: '))            except ValueError:                print('重复输入错误,退出系统!')                break        if choice in [0, 1, 2, 3, 4, 5, 6, 7, 8]:            if choice == 0:                answer = input('你确定要退出系统吗?(Y/N): ')                if answer == 'Y' or answer == 'y':                    print('谢谢使用!')                    break                elif answer == 'N' or answer == 'n':                    print('即将返回上一步操作!')                    continue                else:                    input('输入错误,即将返回主界面!')                    continue            elif choice == 1:                insert()            elif choice == 2:                search()            elif choice == 3:                delete()            elif choice == 4:                modify()            elif choice == 5:                sort()            elif choice == 6:                total()            elif choice == 7:                show()            else:                menum()        else:            print('你选择的操作无效,请重新输入!:')

三 、学生信息录入功能

逻辑结构图

python编写学生成绩管理系统的逻辑结构及功能怎么实现

def insert():    student_list = []    id_list = []    while True:        id = input('请输入ID: ')        if not id:            break        name = input('请输入姓名:')        if not name:            break        try:            english = float(input('请输入英语成绩:'))            math = float(input('请输入数学成绩:'))            python = float(input('请输入Python成绩:'))        except ValueError:            print('数据输入错误!')            continue        # 将录入的学生信息存放到字典中        student = {'id': id, 'name': name, 'english': english, 'math': math, 'Python': python}        # 将每个学生的信息存放在列表中        if student['id'] in id_list:                    # student['id'] = value(id)            print('已存在相同ID:')            for i in range(len(student_list)):                if student_list[i][id] == student[id]:  # 输出重复id元素                    print(student_list[i].items())                    break            print('请重新录入!')        else:            id_list.append(str(student['id']))            student_list.append(student)        # 是否继续添加学生信息        answer = input('是否继续添加学生信息?(Y/N): ')        if answer == 'Y' or answer == 'y':            continue        elif answer == 'N' or answer == 'n':            # 存储学生信息            save(student_list, filename)            print('学生信息录入完毕!')            break        else:            print('输入错误,即将返回主界面!')            break

四 、学生信息查找功能

逻辑结构图

python编写学生成绩管理系统的逻辑结构及功能怎么实现

代码

def search():    while True:        if os.path.exists(filename):            with open(filename, 'r', encoding = 'utf-8') as s_file:                student_qurey = s_file.readlines()              # 将学生信息全部取出                id_list = []                name_list = []                for i in student_qurey:                    d = dict(eval(i))                    id_list.append(d['id'])                    # 将所有学生的id存放在id_list中                    name_list.append(d['name'])                # 将所有学生的name存放在id_list中            try:                mode = int(input('请选择查询模式: 1.按照ID查询 / 2.按照姓名查询 '))            except ValueError:                print('数据类型输入错误!请重新输入!')            else:                if mode == 1:                                  # 按照ID查询                    id = input('请输入学生id: ')                    if id in id_list:                        print('已经查找到该名学生:')                        print('ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:')                        for item in student_qurey:                            if dict(eval(item))['id'] == id:                                p = dict(eval(item))                                print('{0}\t\t{1}\t\t {2}\t\t {3}\t\t   {4}\t\t   {5}'.format(                                                 p['id'], p['name'], p['english'], p['math'], p['Python'],                                                 float(p['english'])+float(p['math'])+float(p['Python'])))                    else:                        print('查无此人!')                elif mode == 2:                               # 按照姓名查询                    name = input('请输入学生姓名: ')                    if name in name_list:                        print('已经查找到该名学生:')                        print('ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:')                        for item in student_qurey:                            if dict(eval(item))['name'] == name:                                p = dict(eval(item))                                print('{0}\t\t{1}\t\t {2}\t\t {3}\t\t   {4}\t\t   {5}'.format(                                    p['id'], p['name'], p['english'], p['math'], p['Python'],                                    float(p['english']) + float(p['math']) + float(p['Python'])))                    else:                        print('查无此人!')                else:                    print('输入错误,只能选择1/2两种模式!')                answer = input('是否继续查询? (Y/N)')                if answer == 'Y' or answer == 'y':                    continue                elif answer == 'N' or answer == 'n':                    print('正在退出查询..')                    break                else:                    print('输入错误,即将返回主界面!')                    break        else:            print('无学生信息文件!')            return

五 、删除学生信息

逻辑结构图

python编写学生成绩管理系统的逻辑结构及功能怎么实现

代码

def delete():    while True:        student_id = input('请输入想要删除的学生的ID: ')        if student_id != '':            if os.path.exists(filename):                with open(filename, 'r', encoding = 'utf-8') as file:                    student_old = file.readlines()            else:                student_old = []            flag = False                            # 标记是否删除            if student_old:                with open(filename, 'w', encoding = 'utf-8') as wfile:                    for item in student_old:                        d = dict(eval(item))        # 转化为字典类型                        if d['id'] != student_id:                            wfile.write(str(d)+'\n')                        else:                            flag = True                    if flag:                        print(f'id为{student_id}的学生信息已被删除!')                    else:                        print(f'没有找到id为{student_id}的学生信息!')            else:                print('无学生信息')                break            show()                  # 显示更新后的文件信息            answer = input('是否继续删除学生信息?(Y/N): ')            if answer == 'Y' or answer == 'y':                continue            elif answer == 'N' or answer == 'n':                break            else:                print('输入错误,即将返回主界面!')                break

六 、学生信息修改功能

逻辑结构图

python编写学生成绩管理系统的逻辑结构及功能怎么实现

代码

def modify():    show()    if os.path.exists(filename):        with open(filename, 'r', encoding = 'utf-8') as rfile:            student_old = rfile.readlines()             # 直接将文本文件的内容整行读取到列表中    else:        print('学生文件信息不存在!')    student_id = input('请输入想要修改的学生的ID: ')    with open(filename, 'w', encoding = 'utf-8') as just_file:  # 判断学生是否在该系统中        id_list = []        for i in student_old:            d = dict(eval(i))            id_list.append(d['id'])                             # 将所有学生的id存放在id_list中        if student_id in id_list:                               # 要修改的学生存在时            for item in student_old:                e = dict(eval(item))                if e['id'] == student_id:                    print('已找到该名学生!')                    while True:                        try:                            e['name'] = input('请输入姓名: ')                            e['english'] = input('请输入英语成绩: ')                            e['math'] = input('请输入数学成绩: ')                            e['Python'] = input('请输入Python成绩: ')                        except ValueError:                            print('数据类型输入错误!请重新输入!')                        else:                            break  # try...except..else: 输入为出错时,执行else语句                    just_file.write(str(e) + '\n')                    print('修改成功!')                else:                    just_file.write(str(e) + '\n')        else:            answer1 = input('查无此人!,是否执行插入操作?  (Y/N)')            if answer1 == 'Y' or answer1 == 'y':                insert()            else:                print('结束当前操作')        answer = input('是否继续修改其余学生信息?(Y/N): ')        if answer == 'Y' or answer == 'y':            modify()        elif answer == 'N' or answer == 'n':            print('结束修改,即将返回主界面..')        else:            print('输入错误,即将返回主界面!')

七 、学生成绩排序

逻辑结构图

python编写学生成绩管理系统的逻辑结构及功能怎么实现

代码

def sort():    student_new = []    if os.path.exists(filename):        with open(filename, 'r', encoding = 'utf-8') as sort_file:            student_list = sort_file.readlines()                    # 无序的学生信息列表        for item in student_list:            d = dict(eval(item))            student_new.append(d)                                   # 列表元素转化为字典        while True:            try:                sort_choice = int(input('请选择排序方式: 0:升序 / 1:降序\t'))            except ValueError:                print('输入的数据类型错误,请重新输入')            else:                if sort_choice == 0:                    Flag = False                    break                elif sort_choice == 1:                    Flag = True                    break                else:                    print('输入错误,只能在0/1中选择!')                    continue        while True:            try:                asc_choice = int(input('请选择按照哪一门成绩进行排序: 英语:0  / 数学:1  / python:2\t\t'))            except ValueError:                print('输入的数据类型错误,请重新输入')            else:                if asc_choice == 0:                    student_new.sort(key = lambda x: int(x['english']), reverse = Flag)     # 根据列表中的元素进行排序                    show()                    break                elif asc_choice == 1:                    student_new.sort(key = lambda x: int(x['math']), reverse = Flag)                    show()                    break                elif asc_choice == 2:                    student_new.sort(key = lambda x: int(x['Python']), reverse = Flag)                    show()                    break                elif asc_choice == 3:                    student_new.sort(key = lambda x: int(x['Python'])+int(x['english'])+int(x['math']), reverse = Flag)                    show()                    break                else:                    print('输入错误,只能在0/1/2中选择!')                    continue    else:        print('学生信息文件不存在!')

八 、 学生人数统计

逻辑结构图

python编写学生成绩管理系统的逻辑结构及功能怎么实现

代码

def total():    nums = 0    if os.path.exists(filename):        with open(filename, 'r', encoding = 'utf-8') as t_file:            len_list = t_file.readlines()        for i in range(len(len_list)):            if len_list[i] != '':                nums += 1        print('当前学生总人数为: ', nums)        print('请选择你想进行的下一步操作: ')    else:        print('暂无学生信息文件')

九 、显示所有学生信息

逻辑结构图

python编写学生成绩管理系统的逻辑结构及功能怎么实现

代码

def show():    if os.path.exists(filename):        with open(filename, 'r', encoding = 'utf-8') as show_file:            student_list = show_file.readlines()            if student_list:                print('----全部学生信息如下----')                print('ID\t\t\t姓名:\t\t英语成绩:\t\t数学成绩:\t\tPython成绩:\t\t总成绩:')                for item in student_list:                    p = dict(eval(item))                    print('{0}\t\t{1}\t\t {2}\t\t {3}\t\t   {4}\t\t   {5}'.format(                        p['id'], p['name'], p['english'], p['math'], p['Python'],                        float(p['english']) + float(p['math']) + float(p['Python'])))            else:                print('暂无学生信息!')    else:        print('暂无学生信息!')

程序打包

在 pycharm 终端 或者 python命令界面, 使用:

pip install PyInstaller

下载python打包程序,下载完成后, 执行以下操作:

pyinstaller —F F:\xxxx\xxx\xx\x.py

其中:

打包完成后,提示信息倒数第二行:Appending语句后面即为exe文件位置,若无特殊显示,则在当前目录父文件下

以上就是关于“python编写学生成绩管理系统的逻辑结构及功能怎么实现”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯