Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 1

import tkinter as tk

from tkinter import messagebox


from tkinter import ttk

class GradeCalculator:
def __init__(self):
self.window = tk.Tk()
self.window.title("CMSC 437 Calculator")

self.main_frame = ttk.Frame(self.window, padding="20")


self.main_frame.pack()

title_label = ttk.Label(self.main_frame, text="CMSC 437 Calculator",


font=("Arial", 14, "bold"))
title_label.pack()

bio_frame = ttk.Frame(self.main_frame, padding="10 5")


bio_frame.pack()
bio_label = ttk.Label(bio_frame, text="Bio:")
bio_label.pack(side="left")
self.bio_entry = ttk.Entry(bio_frame)
self.bio_entry.pack(side="left")

math_frame = ttk.Frame(self.main_frame, padding="10 5")


math_frame.pack()
math_label = ttk.Label(math_frame, text="Math:")
math_label.pack(side="left")
self.math_entry = ttk.Entry(math_frame)
self.math_entry.pack(side="left")

calculate_button = ttk.Button(self.main_frame, text="Calculate",


command=self.calculate)
calculate_button.pack(side="left", padx=5)

quit_button = ttk.Button(self.main_frame, text="Quit",


command=self.window.destroy)
quit_button.pack(side="left", padx=5)

self.result_frame = ttk.Frame(self.main_frame, padding="10 5")


self.result_frame.pack()
average_label = ttk.Label(self.result_frame, text="Average:")
average_label.pack(side="left")
self.result_label = ttk.Label(self.result_frame, text="")
self.result_label.pack(side="left")

self.window.geometry("300x180")
self.window.resizable(True, True)
self.window.mainloop()

def calculate(self):
try:
bio_grade = float(self.bio_entry.get())
math_grade = float(self.math_entry.get())
average = (bio_grade + math_grade) / 2
self.result_label.config(text=str(average))
except ValueError:
messagebox.showerror("Error", "The grades are not correct!")

app = GradeCalculator()

You might also like