猫史档案馆


【Python作品分享】程序{班级情况窗口}【作品秀】

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


【作品展示】

center_image

 

【作品介绍】

可以汇总多个人的成绩,并计算出平均分和各层次的人数,绘制扇形统计图,以直观看出班级成绩情况(程序中有很多侦测以防止程序错误,切记一定要建立文件夹并输入其位置,出错请在评论区提出,要备注错误原因,本人学生党,没有足够的时间测试,出错敬请原谅)

 

【作品源代码】

# !/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


回复

上一页1 页 / 共 1下一页
phigros云女孩phigros云女孩

欢迎使用

点赞0


评论


#逸一时误一世##逸一时误一世#

可以试试和Excel联用效果会更好~

点赞0


评论