目录

项目总览

生活小故事引入

微风和煦,散乱在办公桌上的测验小试卷还有几分“热度”,在小学助教的小王老师刚刚批改完昨天的语文单元测评,显得有些疲惫,但脸上却是慢慢的欣慰。看来通过最近的监督学习模型的转化和实践,他们的成绩有大幅度的提升,正准备把这个学习方法分享给其他在办公室的老师,上课铃响起了。像往常一样,教室外面陆陆续续的孩子,钻进了教室,清脆的“老师好!”成了这一时刻的主题曲,虽然只有短短的几秒钟,但却让每一位老师很“享受”,感觉就是一种动力加速着每一位老师的转化率。

本想休息一下的小王老师,想了想下下节课就是他的课了,得赶紧把成绩登记了待会给大家公布一下,顺便分析一下成绩。像往常一样正要新建一个Excel表格的时候,电脑桌面突然弹出一个广告页面“学习Python升职加薪.....”,心里正嘀咕着:“现在电脑的自动拦截功能也不好使了”,正准备关掉的时候,小王老师发现前几天不是在自学Python吗,感觉掌握了基础语法用处也不大呀。可不可以用Python写一个成绩录入加分析智能的小程序,这样就不用每次还要打开Excel,点各种排序,各种函数来分析了,平日里喜欢创新的它,正在想要不要实现一下。

这时窗外突然传来几声:“加油”!他探头欲望,原来是正在上体育课的小二班在组织跑步比赛,本来有点犹豫的他现在似乎被这几声突如其来的鼓励所打动,不说了还有35分钟,不试一试怎么知道可不可以呢?于是他自信满满的打开了之前安装好的pycharm......

项目思路

经过一番构思后,他把需要实现的功能打在编辑器屏幕上,接下来就是开始搭建框架了,封装函数了,首先引入了两个库

import numpy as np

import csv

项目实现

这个时候,小王老师开始码代码了,说是迟那时快,思路来了就是无法阻挡,花了15分钟就写好了框架代码,结果试了几次感觉不够智能,因为写的记录只保存在电脑的内存里面,并没有写入磁盘,那岂不是每一次运行之后关闭就没了,他想了一下如果要是录入不完那岂不是下次又要从头再来。他想了想那不行,必须要写入文件,这样下次运行就可以直接按照上一次还没录入完毕的开始,花了几分钟改善了这个。

功能改善

测试成功之后,他发现自己可以根据自己需要来选择场景按钮,如果是想要重新录入就直接清空之前的,如果不想要清空这个就追加在文件后面,代码构造如下:

def write_record_0():

import csv

a = []

dict = records[0]

for headers in sorted(dict.keys()): # 把字典的键取出来

a.append(headers)

header = a # 把列名给提取出来,用列表形式呈现

with open('成绩数据.csv', 'w', newline='', encoding='utf-8') as f:

writer = csv.DictWriter(f, fieldnames=header) # 提前预览列名,当下面代码写入数据时,会将其一一对应。

writer.writeheader() # 写入列名

writer.writerows(records) # 写入数据

def write_record_1():

import csv

with open('成绩数据.csv', 'w', newline='', encoding='utf-8') as f:

for i in records:

data = []

data.append(i['name'])

data.append(i['score'])

wf = csv.writer(f)

wf.writerow(data) # 写入一行数据

一个是追加一个为覆盖,这里没有送到a属性,只是用自己的方法思路设计的一个,还是可以的,如果用a这个属性,测试过程中后面有一个小功能好像无法尽善尽美

但是小王老师又发现一个问题,如果自己在录入的过程中过于激动,点快了按钮它总是报错,这样岂不是就成为了bug了吗,那不行如果要推广给其他老师,到时候他们会吐槽我的,他又开始改了一些代码,发现现在可以避免bug出现了,目前优化之后好像还没发现什么bug

利用Python的异常处理和循环判断控制,达到了使用者的最大便利

代码展示

功能打印函数

def print_menu():

print("""

\t学生成绩管理系统-智能录入+分析系统

0 - 退出

1 - 打印功能菜单栏

2 - 显示所有学生信息

3 - 添加学生信息

4 - 查找学生信息

5 - 删除学生信息

6 - 排序功能

7 - 写入此次操作数据并完成更新

8 - 数据分析展示功能(最高分,最低分,平均分,及格人数,及格率,分数段详情)

""")

文件加载函数

def csv_students():

global student_infos

global records

import csv

student_infos = []

with open(r"成绩数据.csv", encoding='utf-8-sig') as file: # 将你的CSV文件和该程序文件放在一个文件夹下面

f_csv = csv.reader(file) # 读取文件里面的每一行数据,转换为列表赋值给新的变量

header = next(f_csv) # 利用迭代的方法,直接取出表头行(标题行),更新f_csv的数据,去除了标题行

for row in f_csv:

student_info = {}

for index in range(2):

if index == 0:

student_info[header[index]] = row[index]

if index == 1:

student_info[header[index]] = float(row[index])

# print(type(student_info[header[index]]))

student_infos.append(student_info)

records = student_infos

功能按钮函数

def user_choice():

try:

choice = input("请选择(0~8):")

# 确保用户的选择是在0~8

while int(choice) > 8 or int(choice) < 0:

choice = input("请重新选择(0~8):")

return choice

except:

print("你的输入有错,程序已终结!请慢一点输入哟!")

增删改查函数

def add_record():

name = input('请输入学生的名字:')

while name == '':

name = input('请输入学生的名字:')

# 确定学生信息是否已经录入

for info in records:

if info['name'] == name:

print("该学生已经存在")

break

else:

score = float(input('请输入成绩(0~100):'))

while score < 0.0 or score > 100.0:

score = float(input('请输入成绩(0~100):'))

info = {

'name': name,

'score': score

}

records.append(info)

print(records)

def display_records():

print("\t所有学生信息")

for info in records:

print("姓名:", info['name'], '\t成绩:', info['score'])

def search_record():

name = input('请输入学生的名字:')

while name == '':

name = input('请输入学生的名字:')

for info in records:

if info['name'] == name:

print("该学生成绩为:", info['score'])

break

else:

print("没有该学生")

def del_record():

name = input('请输入学生的名字:')

while name == '':

name = input('请输入学生的名字:')

for info in records:

if info['name'] == name:

records.remove(info)

print("已删除!")

break

else:

print("没有该用户")

数据分析函数

def dis_data():

pjj = []

for pj in records:

pjj.append(float((pj['score'])))

print("\t本次成绩数据的平均分是:{}".format(round(np.mean(pjj)), 3))

bjg = int(sum(i < 60 for i in pjj))

print("\t本次数据不及格的有{}人!".format(bjg))

zs = int(len(pjj))

print("\t本次数据的及格率为{}".format((zs - bjg) / zs))

print("\t大于90分的有{}人\t等级为优秀!".format(sum(i > 90 for i in pjj)))

print("\t80-90分的有{}人\t等级为良好!".format(sum(90 >= i > 80 for i in pjj)))

print("\t70-80分的有{}人\t等级为中等!".format(sum(80 >= i > 70 for i in pjj)))

print("\t60-70分的有{}人\t等级为合格!".format(sum(70 >= i > 60 for i in pjj)))

print("\t小于60分的有{}人\t等级为差!".format(bjg))

效果演示

经过敲代码完成,小王老师发现了一个道理,就是这个东西要自己去寻找漏洞,才能做的十分的实用

项目后期

刚好下课了,小王老师把本次的程序分享给办公室的其他老师,让他们也试一试这个,然后他就去上课去了,你觉得他是去激励学生还是奖励学生?

项目适用

1.平时的小测验成绩登记分析

2.边改边登记的作业

3.体育测验登记

4.单科成绩管理

5.......

时间过得真快,慢慢的小王老师发现这个代码被很多人拿去用,于是他写下博客,发现阅读量非常大,于是他又深耕于算法设计与Python代码里面

本次的项目采用的故事类的解说,希望大家喜欢,故事情节都是虚构的,我不是那个小王老师哟,哈哈哈,如果有需要代码的请私信我,送上自己的一份力,帮助大家解决更多的日常烦恼!

每文一语

自己的故事永远是讲给别人听的,只有别人故事的才能讲给自己听,己所不欲,勿施于人。

python及格率公式_用Python编写成绩管理分析系统(故事升级版)相关推荐

  1. python 成绩分析系统_用Python编写成绩管理分析系统(故事升级版)

    目录 项目总览 生活小故事引入 项目思路 项目实现 功能改善 代码展示 效果演示 项目后期 项目适用 每文一语 项目总览 生活小故事引入 微风和煦,散乱在办公桌上的测验小试卷还有几分"热度& ...

  2. 用Python编写成绩管理分析系统(故事升级版)

    目录 项目总览 生活小故事引入 项目思路 项目实现 功能改善 代码展示 效果演示 项目后期 项目适用 每文一语 项目总览 生活小故事引入 微风和煦,散乱在办公桌上的测验小试卷还有几分"热度& ...

  3. 基于PHP+MySQL的学生成绩管理分析系统

    PHP学生成绩管理分析系统是一个用PHP+MySQL开发的通用教务类管理系统,它的主要作用就是帮助学校的教务工作者和教师对学生的成绩进行管理,同时学生也可以在本系统内查看和自己相关的成绩信息,本系统在 ...

  4. 学生成绩管理分析系统的设计与实现(论文+源码)_kaic

    摘要 该系统在开发过程中,要注意使其与业务流程的运作相一致,力争使该系统全面,通用,以便该系统不仅适用于教育机构.在开发方法的选择上,选择生命周期方法和原型方法,并按照四个主要阶段的系统研究,系统分析 ...

  5. 学生成绩管理分析系统

      自己写的  不算太好 慢慢改进吧...... #include<stdio.h> #include<stdlib.h> #include<malloc.h> # ...

  6. python及格率公式_设备综合效率是由时间开动率、( )、合格率3个关键要素组成。_学小易找答案...

    [单选题]两条异面直线是指( ). [单选题]14. 是仿造舟船造型的建筑,常建于水际或池中.(1.0分) [单选题]设备综合效率是由时间开动率.( ).合格率3个关键要素组成. [单选题]Messi ...

  7. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

  8. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  9. Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)

    Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...

最新文章

  1. 一盘红烧肉告诉你,本科、硕士和博士区别太大了!
  2. Apache HBase快照介绍
  3. vue 如何生成一个dom元素_通过一个简单的示例学习如何编写Vue组件
  4. 记Bugly崩溃查找过程unity-il2cpp
  5. Linux内存管理(一)——从硬件角度看内存管理
  6. 车牌识别训练出现问题
  7. Python中非纯文本文件的读取
  8. 云服务器上安装Anaconda3 (亲测有效)
  9. lammps教程:推荐几个比较实用的lammps自带函数
  10. 物联网项目设计(一) 需求分析与概要设计
  11. 西点军校的经典法则(转载)
  12. 全局光照:光线追踪、路径追踪与GI技术进化编年史
  13. EXCEL中行列转换
  14. shopnc数据库操作
  15. iOS9获取手机序列号serialNumber(UDID)
  16. poj 1125 Stockbroker(多源最短路径)
  17. 3GPP TS 23501-g51 中英文对照 | 4.3.5 Service Exposure in Interworking Scenarios
  18. 分享毕业后在北京租房的经验
  19. 把Mitre SFR 1.4.2源码打包成MFC风格的exe
  20. Unity ForceMode

热门文章

  1. 关于上传文件格式验证
  2. 拼多多2018届毕业生校招笔试题
  3. Python 金融量化 均线系统交易策略专题(简单移动平均,加权移动平均,指数加权移动平均,异同移动平均MACD等解读与绘图)
  4. OS存储管理——FIFO,LRU,OPT命中率
  5. Android弹性反弹:Facebook Rebound
  6. rc.conf中 cpu_preq的设定
  7. 【韩顺平JAVA】房屋出租系统
  8. 哪个linux系统最安全,Linux系统是不是最安全的系统?
  9. FZU 1021 飞船赛
  10. [hive]数仓分层|用户纬度拉链表|维度建模