上大学的时候,绩点令人又爱又恨。每次考完试绩点的上下起伏牵动着我们的心。。。

今天给大家介绍的是:绩点计算器

话不多说,来吧~展示~

用这个小计算器一条一条把成绩和学分放进去,就可以计算啦~

以某高校的绩点计算公式为例:

计算公式为:

我们来看一下运行效果:

绩点计算器

接下来进行代码讲解:

主程序:

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制作绩点计算器相关推荐

  1. 【安安教具】-【数学】-【有理数计算】模拟器 教你如何用python制作有理数计算模拟器 python项目小发明 eval函数

    今天教大家用python模拟有理数计算,首先展示功能页面: 啊这?怎么用这个东西呀?我们来看看~ 有理数计算模拟器 哇,功能这么强大?那实现起来一定很难吧??? 其实也没那么难...因为python早 ...

  2. 【安安教具】-【数学】-【科学计数法】模拟器 教你如何用python制作科学计数法模拟器 python项目小发明

    科学计数法是一种数字表现形式,可以有效对数值的显示进行折叠. 今天我们来做一款科学计数法模拟器 我们来看看这个功能有什么用处 科学计数法模拟器 这个功能的难点在于bug的处理 会遇到各种错误计算,我们 ...

  3. 【安安教具】-【数学】-【实数】模拟器 教你如何用python制作实数模拟器 python小项目创作

    哈喽~今天开始分享数学类模拟器,首先展示的是实数模拟器~~~ 主界面: 功能页面如下: 简单来说就是随机生成一个数,然后根据这个数字进行判断选择合适的类别,像上图就是一个无理数,而且是负无理数...因 ...

  4. 【安安教具】-【数学】-【数轴】模拟器 教你如何用python制作数轴模拟器 python 小项目创作

    数轴可以用来表示一个数字所处的大致范围,今天我们就来做一个数轴模拟器. 功能页面如下: 这样一个简单的功能在后端逻辑部分花了我好长时间,我们看一下使用效果就明白了... 数轴模拟器 可以看到,输入一个 ...

  5. 教你如何用python制作平面直角坐标系模拟器 python项目小发明 【安安教具】-【数学】-【平面直角坐标系】模拟器

    平面直角坐标系和之前的数轴模拟器有异曲同工之妙,但是作为一个二维的软件,肯定是要难一些的... [安安教具]-[数学]-[数轴]模拟器 教你如何用python制作数轴模拟器 python 小项目创作_ ...

  6. 教你如何用python制作黑板模拟器 python 项目小发明 【安安教具】-【工具】-【黑板】模拟器

    黑板模拟器是一个多线程控制尝试,需要做到通过tkinter实现对鼠标的控制和监督.鼠标在移动时会有一个线程来检测鼠标的位置,计算窗口的位置,计算出鼠标在窗口中的位置,结合canvas画布实现对黑板的涂 ...

  7. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  8. 手把手教你如何用Python制作一个电子相册?末附python教程

    这里简单介绍一下python制作电子相册的过程,主要用到tkinter和pillow这2个库,tkinter用于窗口显示照片,pillow用来处理照片,照片切换分为2种方式,一种是自动切换(每隔5秒) ...

  9. 教你如何用python制作三角形模拟器 python项目小发明 【安安教具】-【数学】-【三角形】模拟器

    三角形的三个点互相连接组成了一个平面图形,我们如何用python制作一个可以展示各种三角形的软件呢? 我们先看看效果: 这个东西要如何使用呢?我们看一下视频: 三角形模拟器 可以看到,控制三角形的三个 ...

最新文章

  1. linux 新建用户(添加ssh用户两者方式一样)
  2. 每一种创伤,都是一种成熟
  3. Tensroflow随笔-测试集
  4. mysql绕过防火墙_[转载]使用sqlmap 绕过防火墙进行注入测试
  5. 操作系统源代码_国产操作系统“之光”?Windows XP绝密源代码泄露,BT种子已在网上疯传...
  6. [数论]莫比乌斯反演1
  7. selenium, firefox, python环境搭建指南
  8. selenium定位方式
  9. java仿win7计算器布局
  10. 计算机分子模拟聚乙烯,分子动力学模拟超高分子量聚乙烯
  11. 网站无脑搭建,自己可以建个站玩一玩儿
  12. Adlik发布v0.1.0(Antelope羚羊)版本,赋能深度学习模型产业化
  13. gif图怎么压缩大小?在线压缩gif技巧
  14. 汉客儿2019支付宝加密红包设计思路
  15. H3C服务器带外默认账号和密码
  16. The accumulated size of entities is 50,000,001 that exceeded the 50,000,000 limit set by FEATUR
  17. 移动硬盘分区丢失如何找回?搜索分区技巧分享
  18. 二改广告横幅在线制作源码 美化版
  19. ElasticSearch搭建集群详解
  20. 开疆智能CANOpen转PROFINET网关连接东元JSDG2S系列+交流伺服驱动器配置案例

热门文章

  1. 熟悉的时间,坚持就是胜利!
  2. termux怎么生成木马_termux不用root将里面的文件导出,同时也可以导入!
  3. 【vcpkg】POCO库编译链接总结
  4. 【转载】eMule电驴使用从入门到精通(3)-------搜索文件
  5. 问题 1431: [蓝桥杯][2014年第五届真题]分糖果 ——思维+模拟
  6. record, packed record和变体记录
  7. SQL过滤中文(或英文)数据
  8. redis集群增加节点和删除节点、或者reshard时报 migrating 错误
  9. 防抖云台-鸡头稳定 简介篇
  10. 干货:Easy系列各视频平台云台控制功能的使用注意事项汇总