用户:
phigros云女孩查看:1 回复:2 评论:1 创建时间:2022-08-01T22:05:40
【作品展示】

【作品介绍】
可以汇总多个人的成绩,并计算出平均分和各层次的人数,绘制扇形统计图,以直观看出班级成绩情况(程序中有很多侦测以防止程序错误,切记一定要建立文件夹并输入其位置,出错请在评论区提出,要备注错误原因,本人学生党,没有足够的时间测试,出错敬请原谅)
【作品源代码】
# !/usr/bin/python
# -*- coding: utf-8 - *-
import matplotlib.pyplot as plt
import PySimpleGUI as sg
yx = 0
lh = 0
jg = 0
bjg = 0
plt.rcParams['font.sans-serif'] = ['SimHei']
print('欢迎使用本程序')
while True:
try:
m2 = sg.popup_get_text('请输入满分分数线')
m1 = int(m2)
except ValueError:
sg.Popup('请正确输入分数线')
continue
except TypeError:
break
else:
break
while True:
try:
a = m1*1
except:
break
try:
y2 = sg.popup_get_text('请输入优秀分数线')
y1 = int(y2)
except ValueError:
sg.Popup('请正确输入分数线')
continue
except TypeError:
break
else:
if y1 < m1:
break
else:
sg.Popup('请正确输入分数线')
continue
while True:
try:
a = y1*1
except:
break
try:
l2 = sg.popup_get_text('请输入良好分数线')
l1 = int(l2)
except ValueError:
sg.Popup('请正确输入分数线')
continue
except:
break
else:
if l1 < y1:
break
else:
sg.Popup('请正确输入分数线')
continue
while True:
try:
a = l1*1
except:
break
try:
j2 = sg.popup_get_text('请输入及格分数线')
j1 = int(j2)
except ValueError:
sg.Popup('请正确输入分数线')
continue
except:
break
else:
if j1 < l1 and l1 >= 0:
break
else:
sg.Popup('请正确输入分数线')
continue
file = open('E:/Desktop/成绩列表/成绩集合', 'w')
file.write('成绩合集\n')
file.close()
p = []
cb = 0
while True:
try:
a = j1*1
except:
break
layout = [
[sg.Text('请输入姓名,例如:小明'), sg.InputText()],
[sg.Text('请输入分数,例如:100'), sg.InputText()],
[sg.Button('确定'), sg.Button('关闭')],
]
window = sg.Window('平均分计算窗口', layout)
while True:
event, values = window.read()
if event == '确定':
try:
a = (str(values[0]))
e = (float(values[1]))
p.append(e)
except TypeError:
sg.Popup('请正确输入分数')
continue
except ValueError:
sg.Popup('请正确输入分数')
continue
if len(a) == 0:
sg.Popup('请正确输入名字')
continue
g = str(e)
f = a+":"+g
file = open('E:/Desktop/成绩列表/成绩集合', 'a')
file.writelines(f+'\n')
file.close()
cl = 0
cb = 1
if e <= m1 and e >= y1:
yx += 1
elif e < y1 and e >= l1:
lh += 1
elif e < l1 and e >= j1:
jg += 1
elif e < j1 and e >= 0:
bjg += 1
break
if event == '关闭':
window.close
cl = 1
break
if event == None:
window.close
cl = 1
break
window.close
window.close
if cl == 1:
break
if cb == 1:
a1 = len(p)
a2 = sum(p)
a3 = a2/a1
a4 = '%.2f' % a3
file = open('E:/Desktop/成绩列表/成绩集合', 'a')
zrs = str(yx+lh+jg+bjg)
yx = str(yx)
lh = str(lh)
jg = str(jg)
bjg = str(bjg)
file.writelines('平均分为:'+a4+'\n')
file.writelines('优秀人数为:'+yx+'\n')
file.writelines('良好人数为:'+lh+'\n')
file.writelines('及格人数为:'+jg+'\n')
file.writelines('不及格人数为:'+bjg+'\n')
file.writelines('总人数为:'+zrs)
file.close()
import numpy as np
size = [yx,lh,jg,bjg]
plt.pie(size, labels=["优秀", "良好", "及格", "不及格"],autopct='%1.1f%%', shadow=False, startangle=150)
plt.title('各层次班级占比扇形统计图')
plt.legend()
plt.savefig('各层次班级占比扇形统计图.jpg')
else:
# 自己建立一个文件夹,看他的位置,如:C:\Users\Administrator\Desktop\成绩列表(不会有人连怎么看文件位置都不会吧,右键选定的文件夹然后点属性,位置那行就是,记得加上\文件夹名称)
file = open('C:\Users\Administrator\Desktop\成绩列表', 'w')
file.writelines('你还未输入数据呢(>_<)')
file.close()
print('感谢使用本程序(^_^)')
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn