【安安教具】-【工具】-【绩点计算】模拟器 教你如何用python制作绩点计算器
上大学的时候,绩点令人又爱又恨。每次考完试绩点的上下起伏牵动着我们的心。。。
今天给大家介绍的是:绩点计算器
话不多说,来吧~展示~
用这个小计算器一条一条把成绩和学分放进去,就可以计算啦~
以某高校的绩点计算公式为例:
计算公式为:
我们来看一下运行效果:
绩点计算器
接下来进行代码讲解:
主程序:
list_a=[]
list_b=[]
root=tk.Tk()
root.resizable(False, False)
root.configure(bg='#B1FFF9')
root.geometry("400x250")
root.title("绩点计算器")
root.school_label = tk.Label(root, text=" 绩点计算器 ", fg='#2CBE0F',font=("Helvetic", 20, "bold"), relief="raised", height=0,width=0,cursor="heart").place(x=10,y=10)
root.score_label = tk.Label(root,text="科目成绩",font=("Helvetic", 15, "bold"),bg='#B1FFF9').place(x=10,y=50)
root.point_label = tk.Label(root,text="科目绩点",font=("Helvetic", 15, "bold"),bg='#B1FFF9').place(x=100,y=50)
root.score_entry=tk.Entry(root)
root.score_entry.place(x=15,y=80,width=80)
root.point_entry=tk.Entry(root)
root.point_entry.place(x=105,y=80,width=80)
root.submit_btn = tk.Button(root, text="提交该数据", font=("Helvetic", 20, "bold"),bg='lightgreen',command=submit)
root.submit_btn.place(x=15,y=120)
root.calculate_btn = tk.Button(root, text="开始计算~~", font=("Helvetic", 20, "bold"),bg='yellow',command=calculate_point)
root.calculate_btn.place(x=15,y=180)
root.submitted_label = tk.Label(root, text="已上交科目数据",font=("Helvetic", 15, "bold"),bg='#B1FFF9').place(x=220,y=10)
window = tk.Frame(root, bg='#C2FFAC')
window.place(x=220, y=40, width=150, height=135)
window.scrollbar=tk.Scrollbar(window)
window.scrollbar.pack(side=RIGHT,fill=Y)
window.listbox=tk.Listbox(window,yscrollcommand=window.scrollbar.set)
window.listbox.pack(side=LEFT,fill=BOTH,expand=True)
window.scrollbar.config(command=window.listbox.yview)
root.delete_btn = tk.Button(root, text="删除该数据", font=("Helvetic", 20, "bold"),bg='red',command=delete)
root.delete_btn.place(x=220,y=180)
root.mainloop()
提交数据:
def submit():if root.score_entry.get()==''or root.point_entry.get()=='':messagebox.showerror("数据错误", "请输入数据再提交")returntry:what=float(root.score_entry.get())what = float(root.point_entry.get())except:messagebox.showerror("数据错误", "请输入数字~")returnif(float(root.score_entry.get())>=0.0 and float(root.score_entry.get())<=100.0 and float(root.point_entry.get())>=0.0 and float(root.point_entry.get())<=5.0):list_a.append(float(root.score_entry.get()))list_b.append(float(root.point_entry.get()))window.listbox.insert(END,"分数:"+root.score_entry.get()+"绩点数:"+root.point_entry.get())else:messagebox.showerror("数据错误","输入格式不对,课程分数应大于等于0小于等于100,课程绩点应大于等于0小于等于5")return
删除数据:
def delete():deleteindex=window.listbox.curselection()if deleteindex==():messagebox.showerror("错误", "请选择数据")returndeleteindex=list(deleteindex)deleteindex=deleteindex[0]list_a.pop(deleteindex)list_b.pop(deleteindex)window.listbox.delete(deleteindex)
计算数据:
def calculate_point():if len(list_a)==0:messagebox.showerror("注意","请先输入数据")returnsum1=0sum2=0for x in range(len(list_a)):if float(list_a[x])>=60.0:sum1=sum1+(float(list_a[x])-50)*float(list_b[x])sum2=sum2+float(list_b[x])if sum2==0:messagebox.showerror("计算错误","科目绩点和为0")returnresult=sum1/(sum2*10)messagebox.showinfo("计算结果","您的绩点为:"+str(result))
最后展示完整代码:
from tkinter import *
from tkinter import messagebox
import tkinter as tk
def submit():if root.score_entry.get()==''or root.point_entry.get()=='':messagebox.showerror("数据错误", "请输入数据再提交")returntry:what=float(root.score_entry.get())what = float(root.point_entry.get())except:messagebox.showerror("数据错误", "请输入数字~")returnif(float(root.score_entry.get())>=0.0 and float(root.score_entry.get())<=100.0 and float(root.point_entry.get())>=0.0 and float(root.point_entry.get())<=5.0):list_a.append(float(root.score_entry.get()))list_b.append(float(root.point_entry.get()))window.listbox.insert(END,"分数:"+root.score_entry.get()+"绩点数:"+root.point_entry.get())else:messagebox.showerror("数据错误","输入格式不对,课程分数应大于等于0小于等于100,课程绩点应大于等于0小于等于5")return
def delete():deleteindex=window.listbox.curselection()if deleteindex==():messagebox.showerror("错误", "请选择数据")returndeleteindex=list(deleteindex)deleteindex=deleteindex[0]list_a.pop(deleteindex)list_b.pop(deleteindex)window.listbox.delete(deleteindex)
def calculate_point():if len(list_a)==0:messagebox.showerror("注意","请先输入数据")returnsum1=0sum2=0for x in range(len(list_a)):if float(list_a[x])>=60.0:sum1=sum1+(float(list_a[x])-50)*float(list_b[x])sum2=sum2+float(list_b[x])if sum2==0:messagebox.showerror("计算错误","科目绩点和为0")returnresult=sum1/(sum2*10)messagebox.showinfo("计算结果","您的绩点为:"+str(result))list_a=[]
list_b=[]
root=tk.Tk()
root.resizable(False, False)
root.configure(bg='#B1FFF9')
root.geometry("400x250")
root.title("绩点计算器")
root.school_label = tk.Label(root, text=" 绩点计算器 ", fg='#2CBE0F',font=("Helvetic", 20, "bold"), relief="raised", height=0,width=0,cursor="heart").place(x=10,y=10)
root.score_label = tk.Label(root,text="科目成绩",font=("Helvetic", 15, "bold"),bg='#B1FFF9').place(x=10,y=50)
root.point_label = tk.Label(root,text="科目绩点",font=("Helvetic", 15, "bold"),bg='#B1FFF9').place(x=100,y=50)
root.score_entry=tk.Entry(root)
root.score_entry.place(x=15,y=80,width=80)
root.point_entry=tk.Entry(root)
root.point_entry.place(x=105,y=80,width=80)
root.submit_btn = tk.Button(root, text="提交该数据", font=("Helvetic", 20, "bold"),bg='lightgreen',command=submit)
root.submit_btn.place(x=15,y=120)
root.calculate_btn = tk.Button(root, text="开始计算~~", font=("Helvetic", 20, "bold"),bg='yellow',command=calculate_point)
root.calculate_btn.place(x=15,y=180)
root.submitted_label = tk.Label(root, text="已上交科目数据",font=("Helvetic", 15, "bold"),bg='#B1FFF9').place(x=220,y=10)
window = tk.Frame(root, bg='#C2FFAC')
window.place(x=220, y=40, width=150, height=135)
window.scrollbar=tk.Scrollbar(window)
window.scrollbar.pack(side=RIGHT,fill=Y)
window.listbox=tk.Listbox(window,yscrollcommand=window.scrollbar.set)
window.listbox.pack(side=LEFT,fill=BOTH,expand=True)
window.scrollbar.config(command=window.listbox.yview)
root.delete_btn = tk.Button(root, text="删除该数据", font=("Helvetic", 20, "bold"),bg='red',command=delete)
root.delete_btn.place(x=220,y=180)
root.mainloop()
【安安教具】-【工具】-【绩点计算】模拟器 教你如何用python制作绩点计算器相关推荐
- 【安安教具】-【数学】-【有理数计算】模拟器 教你如何用python制作有理数计算模拟器 python项目小发明 eval函数
今天教大家用python模拟有理数计算,首先展示功能页面: 啊这?怎么用这个东西呀?我们来看看~ 有理数计算模拟器 哇,功能这么强大?那实现起来一定很难吧??? 其实也没那么难...因为python早 ...
- 【安安教具】-【数学】-【科学计数法】模拟器 教你如何用python制作科学计数法模拟器 python项目小发明
科学计数法是一种数字表现形式,可以有效对数值的显示进行折叠. 今天我们来做一款科学计数法模拟器 我们来看看这个功能有什么用处 科学计数法模拟器 这个功能的难点在于bug的处理 会遇到各种错误计算,我们 ...
- 【安安教具】-【数学】-【实数】模拟器 教你如何用python制作实数模拟器 python小项目创作
哈喽~今天开始分享数学类模拟器,首先展示的是实数模拟器~~~ 主界面: 功能页面如下: 简单来说就是随机生成一个数,然后根据这个数字进行判断选择合适的类别,像上图就是一个无理数,而且是负无理数...因 ...
- 【安安教具】-【数学】-【数轴】模拟器 教你如何用python制作数轴模拟器 python 小项目创作
数轴可以用来表示一个数字所处的大致范围,今天我们就来做一个数轴模拟器. 功能页面如下: 这样一个简单的功能在后端逻辑部分花了我好长时间,我们看一下使用效果就明白了... 数轴模拟器 可以看到,输入一个 ...
- 教你如何用python制作平面直角坐标系模拟器 python项目小发明 【安安教具】-【数学】-【平面直角坐标系】模拟器
平面直角坐标系和之前的数轴模拟器有异曲同工之妙,但是作为一个二维的软件,肯定是要难一些的... [安安教具]-[数学]-[数轴]模拟器 教你如何用python制作数轴模拟器 python 小项目创作_ ...
- 教你如何用python制作黑板模拟器 python 项目小发明 【安安教具】-【工具】-【黑板】模拟器
黑板模拟器是一个多线程控制尝试,需要做到通过tkinter实现对鼠标的控制和监督.鼠标在移动时会有一个线程来检测鼠标的位置,计算窗口的位置,计算出鼠标在窗口中的位置,结合canvas画布实现对黑板的涂 ...
- 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...
玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...
- 手把手教你如何用Python制作一个电子相册?末附python教程
这里简单介绍一下python制作电子相册的过程,主要用到tkinter和pillow这2个库,tkinter用于窗口显示照片,pillow用来处理照片,照片切换分为2种方式,一种是自动切换(每隔5秒) ...
- 教你如何用python制作三角形模拟器 python项目小发明 【安安教具】-【数学】-【三角形】模拟器
三角形的三个点互相连接组成了一个平面图形,我们如何用python制作一个可以展示各种三角形的软件呢? 我们先看看效果: 这个东西要如何使用呢?我们看一下视频: 三角形模拟器 可以看到,控制三角形的三个 ...
最新文章
- linux 新建用户(添加ssh用户两者方式一样)
- 每一种创伤,都是一种成熟
- Tensroflow随笔-测试集
- mysql绕过防火墙_[转载]使用sqlmap 绕过防火墙进行注入测试
- 操作系统源代码_国产操作系统“之光”?Windows XP绝密源代码泄露,BT种子已在网上疯传...
- [数论]莫比乌斯反演1
- selenium, firefox, python环境搭建指南
- selenium定位方式
- java仿win7计算器布局
- 计算机分子模拟聚乙烯,分子动力学模拟超高分子量聚乙烯
- 网站无脑搭建,自己可以建个站玩一玩儿
- Adlik发布v0.1.0(Antelope羚羊)版本,赋能深度学习模型产业化
- gif图怎么压缩大小?在线压缩gif技巧
- 汉客儿2019支付宝加密红包设计思路
- H3C服务器带外默认账号和密码
- The accumulated size of entities is 50,000,001 that exceeded the 50,000,000 limit set by FEATUR
- 移动硬盘分区丢失如何找回?搜索分区技巧分享
- 二改广告横幅在线制作源码 美化版
- ElasticSearch搭建集群详解
- 开疆智能CANOpen转PROFINET网关连接东元JSDG2S系列+交流伺服驱动器配置案例
热门文章
- 熟悉的时间,坚持就是胜利!
- termux怎么生成木马_termux不用root将里面的文件导出,同时也可以导入!
- 【vcpkg】POCO库编译链接总结
- 【转载】eMule电驴使用从入门到精通(3)-------搜索文件
- 问题 1431: [蓝桥杯][2014年第五届真题]分糖果 ——思维+模拟
- record, packed record和变体记录
- SQL过滤中文(或英文)数据
- redis集群增加节点和删除节点、或者reshard时报 migrating 错误
- 防抖云台-鸡头稳定 简介篇
- 干货:Easy系列各视频平台云台控制功能的使用注意事项汇总