iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >学生信息管理系统 python实现(含全部代码)
  • 865
分享到

学生信息管理系统 python实现(含全部代码)

pythonpycharm开发语言 2023-09-09 11:09:00 865人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

学生信息管理系统笔记python 一、需求分析 应具备的功能: 添加学生信息及成绩信息将学生信息保存在文件中修改和删除学生信息查询学生信息根据学生成绩进行排序统计学生总分 二、系统设计 学生信息管理系

学生信息管理系统笔记python

一、需求分析

应具备的功能:

  1. 添加学生信息及成绩信息
  2. 将学生信息保存在文件中
  3. 修改和删除学生信息
  4. 查询学生信息
  5. 根据学生成绩进行排序
  6. 统计学生总分

二、系统设计

学生信息管理系统的7大模块

  1. 录入学生信息模块

  2. 查找学生信息

  3. 删除学生信息

  4. 修改学生信息

  5. 学生成绩排名

  6. 统计学生总人数

  7. 显示全部学生信息

在这里插入图片描述

四、系统实现

main()

menu()

search()

delete()

modify()

insert()

total()

show()

sort()

五、打包项目生存exe文件

安装第三方包

pip install PyInstaller

打开命令行,打包exe

pyinstaller -F “D:\Program Files (x86)\PyCharm\PythonProject\studentsys\stusystem.py”

图片中标红位置为exe程序存储位置。

图片中标红位置为exe程序存储位置。
在这里插入图片描述

六、代码实现

import os.pathfilename = 'students.txt'def main():    while True:        menu()        choice = int(input('请选择功能'))        if choice in [0, 1, 2, 3, 4, 5, 6, 7]:            if choice == 0:                answer = input('您确定退出系统吗?y/n')                if answer == 'y' or answer == 'Y':                    print("欢迎您的使用!!")                    break                else:                    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()        input()def menu():    print('==================学生信息管理系统==============')    print('===============功能菜单==================')    print('\t\t\t1. 录入学生信息')    print('\t\t\t2. 查找学生信息')    print('\t\t\t3. 删除学生信息')    print('\t\t\t4. 修改学生信息')    print('\t\t\t5. 对学生成绩进行排序')    print('\t\t\t6. 统计学生总人数')    print('\t\t\t7. 显示所有学生信息')    print('\t\t\t0. 退出程序')    print('======================================')def insert():    student_list = []    while True:        id = input("请输入ID:")        if not id:            break        name = input("请输入姓名:")        if not name:            break        try:            english = int(input("请输入英语成绩:"))            python = int(input("请输入python成绩:"))            java = int(input("请输入Java成绩:"))        except:            print("输入无效,请重新输入")        # 将录入的学生信息保存在字典中        student = {'id': id, 'name': name, 'english': english, 'python': python, 'java': java}        # 将学生信息添加到列表中        student_list.append(student)        answer = input("是否继续添加y/n?")        if answer == 'y':            continue        else:            break    # 调用save函数保存信息    save(student_list)    print("学生信息保存成功")def save(lst):    try:        stu_txt = open(filename, 'a', encoding='utf-8')    except:        stu_txt = open(filename, 'w', encoding='utf-8')    for item in lst:        stu_txt.write(str(item) + '\n')    stu_txt.close()def search():    student_query = []    while True:        id = ''        name = ''        if os.path.exists(filename):            mode = input("按ID查找请按1,按姓名查找请按2:")            if mode == '1':                id = input("请输入学生ID:")            elif mode == '2':                name = input("请输入学生新明:")            else:                print("输入有误,请重新输入")                search()            with open(filename, 'r', encoding='utf-8') as file:                student = file.readlines()                for item in student:                    d = dict(eval(item))                    if id != '':                        if d['id'] == id:student_query.append(d)                    elif name != '':                        if d['name'] == name:student_query.append(d)            show_query(student_query)            # 清空列表            student_query.clear()            answer = input("是否继续查询?y/n")            if answer == 'y':                continue            else:                break        else:            print("无学生信息")            returndef show_query(lst):    if len(lst) == 0:        print("无相关信息")        return    # 定义标题显示格式    fORMat_title = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}'    print(format_title.format('ID', '姓名', '英语成绩', 'python成绩', 'Java成绩', '总成绩'))    # 定义内容显示格式    format_data = '{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}'    for item in lst:        print(format_data.format(item.get('id'),     item.get('name'),     item.get('english'),     item.get('english'),     item.get('java'),     int( item.get('english')) + int( item.get('english')) + int( item.get('java'))     ))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:  # 空列表等于 False,非空列表等于True                with open(filename,'w',encoding='utf-8') as wfile:                    # 只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除                    d = {}                    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':                continue            else:                breakdef modify():    show()    if os.path.exists(filename):        with open(filename, 'r', encoding='utf-8') as file:            student_old = file.readlines()    else:        return    student_id = input("请输入修改学生的ID:")    with open(filename, 'w', encoding='utf-8') as wfile:        for item in student_old:            d = {}            d = dict(eval(item))            if d['id'] == student_id:                print("已经找到学生信息,请修改相关信息")                while True:                    try:                        d['name'] = input("请输入姓名")                        d['english'] = input("请输入英语成绩")                        d['python'] = input("请输入python成绩")                        d['java'] = input("请输入Java成绩")                    except:                        print("输入有误,请重新输入")                    else:                        break                    wfile.write(str(d) + '\n')                    print("修改成功")            else:                wfile.write(str(d)+'\n')            answer = input("是否继续修改其他学生信息?y/n")            if answer == 'y':                modify()            else:                returndef sort():    show()    if os.path.exists(filename):        with open(filename, 'r', encoding= 'utf-8') as file:            students = file.readlines()        students_new = []        for item in students:            d = dict(eval(item))            students_new.append(d)    else:        return    # 排序方式    asc_or_desc = input("请选择升序 0 还是降序 1?")    if asc_or_desc == '0':        asc_or_desc_bool = False    elif asc_or_desc == '1':        asc_or_desc_bool = True    else:        print("输入有误,请重新输入")        sort()    mode = input("请选择排序方式(1.英语 2.python 3.Java 4.总成绩):")    if mode == '1':        students_new.sort(key=lambda x : int(x['english']), reverse=asc_or_desc_bool)        # x 代表列表students_new中的项    elif mode == '2':        students_new.sort(key=lambda x: int(x['python']), reverse=asc_or_desc_bool)    elif mode == '3':        students_new.sort(key=lambda x: int(x['java']), reverse=asc_or_desc_bool)    elif mode == '4':        students_new.sort(key=lambda x: int(x['english']) + int(x['python']) + int(x['java']), reverse=asc_or_desc_bool)    else:        print("输入有误,请重新输入")    show_query(students_new)def total():    if os.path.exists(filename):        with open(filename, 'r', encoding='utf-8') as file:            students = file.readlines()            if students:                print(f"总共有{len(students)}名学生")            else:                print("无学生信息")    else:        print("无学生信息")def show():    student_query = []    if os.path.exists(filename):        with open(filename, 'r', encoding='utf-8') as file:            student = file.readlines()            for item in student:                d = dict(eval(item))                student_query.append(d)        show_query(student_query)        # 清空列表        student_query.clear()    else:        print("无学生信息")        returnif __name__ == '__main__':    main()

来源地址:https://blog.csdn.net/qq_43709785/article/details/127029957

--结束END--

本文标题: 学生信息管理系统 python实现(含全部代码)

本文链接: https://www.lsjlt.com/news/401298.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作