某农业学校python(十)

实验5.1:简单GUI编程-学生成绩统计

题目描述:利用tkinter库完成2项GUI编程任务。

  1. 设计如图1所示GUI图形界面;

     2.计算学生四门课程的平均成绩。

                                               

图1

提示:tkinter生成窗体、标签、只读文本框、按钮,grid实现窗体布局,参考示例如下。

import tkinter as tk

# 窗口对象
window = tk.Tk()
window.title("学生成绩统计")
result = tk.StringVar()

def Calculate():
    try:
        x1 = float(ccc.get())
        x2 = float(pyy.get())
        x3 = float(jaa.get())
        x4 = float(wuu.get())
        xaver = (x1+x2+x3+x4)/4
        result.set(round(xaver, 1))
    except:
        showerror(title="提示", message="输入错误,请重新输入")



# C/C++程序设计
cc = tk.Label(window, text="C/C++程序设计")
cc.grid(row=0, column=0, padx=5, pady=5, sticky="e")
ccc = tk.Entry(window, width=15)
ccc.grid(row=0, column=1, padx=5, pady=5, sticky="w")

# Python程序设计
py = tk.Label(window, text="Python程序设计")
py.grid(row=1, column=0, padx=5, pady=5, sticky="e")
pyy = tk.Entry(window, width=15)
pyy.grid(row=1, column=1, padx=5, pady=5, sticky="w")

# Java程序设计
ja = tk.Label(window, text="Java程序设计")
ja.grid(row=2, column=0, padx=5, pady=5, sticky="e")
jaa = tk.Entry(window, width=15)
jaa.grid(row=2, column=1, padx=5, pady=5, sticky="w")

# 物联网工程
wu = tk.Label(window, text="物联网工程")
wu.grid(row=3, column=0, padx=5, pady=5, sticky="e")
wuu = tk.Entry(window, width=15)
wuu.grid(row=3, column=1, padx=5, pady=5, sticky="w")

# 计算平均成绩
caluate1 = tk.Button(window, text="计算平均成绩", command=Calculate)
caluate1.grid(row=4, column=0, columnspan=2, pady=5)

# 平均成绩
aver = tk.Label(window, text="平均成绩")
aver.grid(row=5, column=0, padx=5, pady=5, sticky="e")
averr = tk.Entry(window, width=15, state="readonly", textvariable=result)
averr.grid(row=5, column=1, padx=5, pady=5, sticky="w")

window.mainloop()

实验5.3:扩展实验1

题目描述:编写面向对象代码完成实验5.1。

提示:一个面向对象示例。

                        

import tkinter
from tkinter import *
from tkinter.messagebox import *

class Calculate:
    def __init__(self):
        w = Tk()
        w.title("学生成绩统计")

        cc = Label(w,text="C/C++程序设计")  # 创建Label标签
        cc.grid(row=0, column=0, padx=5, pady=5, sticky="e")  # 使用grid进行布局
        self.v1 = IntVar()
        ccc = Entry(w, width=15, textvariable=self.v1)  # 创建Entry对象
        ccc.grid(row=0, column=1, padx=5, pady=5, sticky="w")  # 使用grid进行布局

        py = Label(w, text="Python程序设计")
        py.grid(row=1, column=0, padx=5, pady=5, sticky="e")
        self.v2 = IntVar()
        pyy = Entry(w, width=15, textvariable=self.v2)
        pyy.grid(row=1, column=1, padx=5, pady=5, sticky="w")

        ja= Label(w, text="Java程序设计")
        ja.grid(row=2, column=0, padx=5, pady=5, sticky="e")
        self.v3 = IntVar()
        jaa = Entry(w, width=15, textvariable=self.v3)
        jaa.grid(row=2, column=1, padx=5, pady=5, sticky="w")

        calculate1 = Button(w, text="统计学生成绩", command=self.Calculate,
                            width=15,height=1)
        calculate1.grid(row=3, column=0, columnspan=2, pady=5)

        w.mainloop()

    def Calculate(self):
        try:
            x1 = int(self.v1.get())  # 获取C++成绩
            x2 = int(self.v2.get())  # 获取Python成绩
            x3 = int(self.v3.get())  # 获取Java成绩
            xaver = (x1+x2+x3)/3
            xmax = max(x1,x2,x3)
            xmin = min(x1,x2,x3)
            str1 = "平均成绩:"+str(xaver)+"\n"+\
                   "最大成绩:"+str(xmax)+"\n"+\
                   "最小成绩"+str(xmin)+"\n"
            showinfo(title="统计成绩",message=str1)
        except:
            showerror(title="提示", message="输入错误,请重新输入")

Calculate()

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值