# stu_mgmt **Repository Path**: kanxu/stu_mgmt ## Basic Information - **Project Name**: stu_mgmt - **Description**: 学生成绩管理系统 该系统要求 python3.9+运行环境,为终端程序 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-10-18 - **Last Updated**: 2023-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 学生成绩管理系统 ## 简述 (项目必读) #### 该系统为终端程序 用下面命令启动将会看到如下菜单 ```shell ~> pip install pypinyin #安装pinyin用于姓名汉字排序 ~> cd stu_mgmt ~/stu_stu_mgmt> python main.py ``` ##### 注:为更好的编写代码体验,本程序用到python泛型,需要 python3.9+的环境支持 ------------------------------------------------------------------------- ![iShot_2023-10-18_17.39.51](./pic/iShot_2023-10-18_17.39.51.jpg) ------------------------------------------------------------------------- ### 定义模块如下: | python模块 | 内容 | 备注 | | ----------------------------- | ------------------ | ---- | | main.py | 启动模块 | | | entity.stu_entity.py | 学生实体 | | | service.stu_service.py | 菜单大部分方法模块 | | | service.stu_file_service.py | 读写文件的方法模块 | | | config.constant.py | 配置常量模块 | | | utils.menu.py | 主菜单显示模块 | | | utils.stu_controller_utils.py | 学生业务方法模块 | | | utils.stu_utils.py | 工具模块 | | | | | | ### 注意事项 ###### 运行程序需安装pinyin三方模块 用于学生姓名排序 ```shell ~> pip install pypinyin #安装pinyin用于学生姓名排序 ``` 若如不安装pinyin注释代码即可 ```python # 在utils.stu_utils.py 的to_pinyin需要将不安装pinyin模块下面的代码反注释 def to_pinyin(chinese_str: str): # 安装pinyin模块 lst = pinyin(chinese_str, style=Style.TONE3) print(lst) iterator = chain.from_iterable(lst) # 迭代器 iterator_for_print = chain.from_iterable(lst) # 迭代器 print(iterator_for_print) for item in iterator_for_print: print(item) return ''.join(iterator) # 不安装pinyin模块 # return chinese_str ``` ### 配置 可自定义配置 ```python # 在config.constant.py中150分及格分 PASSING_SCORE = 90 ``` # 介绍 ### 功能 程序启动时,先加载 student.txt 中的学生数据,再显示菜单,后等待用户输入项。 程序共有八个功能,分别是: - 0 - 显示学生信息 - 1 - 添加学生信息 - 2 - 查找学生信息 - 3 - 修改学生信息 - 4 - 删除学生信息 - 5 - 排序学生信息 - 6 - 统计学生情况 - 7 - 保存学生信息 其中 在菜单界面输入 键「Q、q」退出程序,在进入各功能后,输入 键「Q、q」可退回到菜单界面 ##### 0 - 显示学生信息 ​ 1. 输入 0 进入此功能可查看所有学生信息 ```shell 学号 姓名 年龄 语文 数学 英语 平均分 总成绩 名次 1003 张三 17 110.0 120.0 110.0 113.333 340.0 3 1004 李四 14 114.0 114.0 84.0 104.00 312.0 6 1005 王五 19 107.0 112.0 118.0 112.333 337.0 4 1006 赵六 18 120.0 120.0 120.0 120.00 360.0 1 1007 孙七 19 112.0 120.0 119.0 117.00 351.0 2 1008 周八 20 89.0 115.0 114.0 106.00 318.0 5 ``` ##### 1 - 添加学生信息 1. 输入 1 进入此功能添加信息 2. 输入项学生学号可输入正常学号,也可直接回车,回车后程序取已有数据中最大学号+1的值 3. 其余各输入项都有非空校验 ##### 2 - 查找学生信息 1. 输入 2 进入此功能查找信息 2. 根据提示,选择学生属性(直接回车默认选择学号),输入属性值进行查找 ##### 3 - 修改学生信息 1. 输入 3 进入此功能修改信息 2. 根据提示,选择学生属性(直接回车默认选择学号),输入属性值进行修改 3. 若输入项对应属性不修改,可直接回车;若输入值则修改 4. 修改完成后显示修改之后的学生信息 ##### 4 - 删除学生信息 1. 输入 4 进入此功能删除信息 2. 根据提示,选择学生属性(直接回车默认选择学号),输入属性值进行删除 3. 当确有此学生信息时,给出确认删除输入项,按键「Y、y」删除,其他键不删除 4. 当选择删除后,显示删除成功和剩余学生信息 ##### 5 - 排序学生信息 1. 输入 5 进入此功能排序信息 2. 根据提示,选择排序项(直接回车默认学号正序) 3. 若选择排序模式,则会有相应学生属性可选择 4. 选择模式后,还要选择排序顺序 5. 当两项选择处理后,显示排序后的学生信息 ##### 6 - 统计学生情况 1. 输入 6 进入此功能统计信息 2. 直接显示各科最高分和平均分,总分最高分,还有不及格学生信息 ##### 7 - 保存学生信息 1. 输入 7 进入此功能保存信息 2. 保存学生信息,并给出相应提示 ## 亮点 1. 在启动程序,程序就立刻加载历史文件数据,保证了系统中其他校验的准确性 2. 在新增学生信息,学生学号是不能重复的,保证了学号的唯一性避免重复录入 3. 在任何一步骤,都允许输入「Q、q」回退到上一步,避免因手误输入导致录入脏信息,也避免浪费用户时间,提高了用户的体验感 4. 统计信息显示按名次正序排序,这样是为了更快的了解学生们的成绩情况