Skip to content
Snippets Groups Projects
Commit 5361c24b authored by Bui2.Huan@live.uwe.ac.uk's avatar Bui2.Huan@live.uwe.ac.uk
Browse files

Upload New File

parent 4e6ed093
No related branches found
No related tags found
No related merge requests found
from tkinter import Tk, messagebox, ttk
from datetime import datetime
class Person:
def __init__(self, first_name, surname, dob, gender):
self.first_name = first_name
self.surname = surname
self.dob = dob
self.gender = gender
def get_details(self):
return f"Name: {self.first_name} {self.surname}\nGender: {self.gender}"
def get_age(self):
try:
birth_date = datetime.strptime(self.dob, "%d/%m/%Y")
today = datetime.today()
age = today.year - birth_date.year - ((today.month, today.day) < (birth_date.month, birth_date.day))
return age
except ValueError:
return "Invalid date format"
people = []
def register():
first_name = first_name_entry.get()
surname = surname_entry.get()
gender = gender_var.get()
dob = dob_entry.get()
if not first_name or not surname or not dob or gender == "Select":
messagebox.showwarning("Warning", "Please fill out all fields!")
return
person = Person(first_name, surname, dob, gender)
people.append(person)
messagebox.showinfo("Registration Successful", person.get_details())
def show_total_registrations():
messagebox.showinfo("Total Registrations", f"Total registered users: {len(people)}")
def get_age_of_user():
first_name = first_name_entry.get()
surname = surname_entry.get()
for person in people:
if person.first_name == first_name and person.surname == surname:
age = person.get_age()
messagebox.showinfo("User Age", f"{first_name} {surname} is {age} years old.")
return
messagebox.showerror("Error", "User not found.")
wndw = Tk()
wndw.title("User Registration")
wndw.geometry("400x300")
frm = ttk.Frame(wndw, padding=20)
frm.pack(expand=True)
ttk.Label(frm, text="First Name:").pack(pady=5)
first_name_entry = ttk.Entry(frm, width=30)
first_name_entry.pack(pady=5)
ttk.Label(frm, text="Surname:").pack(pady=5)
surname_entry = ttk.Entry(frm, width=30)
surname_entry.pack(pady=5)
ttk.Label(frm, text="Gender:").pack(pady=5)
gender_var = ttk.Combobox(frm, values=["Male", "Female", "Other"], width=27)
gender_var.pack(pady=5)
gender_var.set("Select")
ttk.Label(frm, text="Date of Birth (DD/MM/YYYY):").pack(pady=5)
dob_entry = ttk.Entry(frm, width=30)
dob_entry.pack(pady=5)
ttk.Button(frm, text="Register", command=register).pack(pady=5)
ttk.Button(frm, text="Total Registrations", command=show_total_registrations).pack(pady=5)
ttk.Button(frm, text="Get Age", command=get_age_of_user).pack(pady=5)
wndw.mainloop()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment