import tkinter as tk
from tkinter import messagebox
import pandas as pd
# 초전도체 관련 원소 데이터 생성
element_data = {
"그리스어": ["Χαλκός", "Οξυγόνο", "Υττρίο"],
"라틴어": ["Cuprum", "Oxygenium", "Yttrium"],
"Symbol": ["Cu", "O", "Y"],
"Atomic_Number": [29, 8, 39],
"Superconductor_Suitability": [True, True, True] # 초전도체 여부
}
# 데이터프레임 생성
elements_df = pd.DataFrame(element_data)
# 초전도체 조건 함수
def check_superconductor(greek_name, latin_name):
# 해당 원소 존재 확인
element_row = elements_df[
(elements_df["그리스어"] == greek_name) & (elements_df["라틴어"] == latin_name)
]
if element_row.empty:
return "입력한 원소를 찾을 수 없습니다."
# 초전도체 적합성 확인
suitability = element_row["Superconductor_Suitability"].values[0]
if suitability:
return f"{greek_name} ({latin_name})는 초전도체에 적합합니다."
else:
return f"{greek_name} ({latin_name})는 초전도체에 적합하지 않습니다."
# GUI 구성
def create_gui():
def on_submit():
greek_input = greek_entry.get()
latin_input = latin_entry.get()
if not greek_input or not latin_input:
messagebox.showwarning("입력 오류", "그리스어와 라틴어 원소 이름을 모두 입력하세요.")
return
# 결과 확인
result = check_superconductor(greek_input, latin_input)
result_label.config(text=result)
# Tkinter 기본 창 설정
root = tk.Tk()
root.title("초전도체 원소 확인 프로그램")
# 입력 필드
tk.Label(root, text="그리스어 원소 이름:").grid(row=0, column=0, padx=10, pady=5)
greek_entry = tk.Entry(root)
greek_entry.grid(row=0, column=1, padx=10, pady=5)
tk.Label(root, text="라틴어 원소 이름:").grid(row=1, column=0, padx=10, pady=5)
latin_entry = tk.Entry(root)
latin_entry.grid(row=1, column=1, padx=10, pady=5)
# 제출 버튼
submit_button = tk.Button(root, text="확인", command=on_submit)
submit_button.grid(row=2, column=0, columnspan=2, pady=10)
# 결과 출력 라벨
result_label = tk.Label(root, text="결과가 여기에 표시됩니다.", fg="blue")
result_label.grid(row=3, column=0, columnspan=2, pady=10)
# Tkinter 실행
root.mainloop()
# 프로그램 실행
if __name__ == "__main__":
create_gui()
'정보통신기술(ICT)' 카테고리의 다른 글
문자를 숫자로 변환하는 파이썬 GUI 프로그램 (1) | 2024.11.20 |
---|---|
지진 강도 측정 소프트웨어 (0) | 2024.11.19 |
물류창고 이동식 로봇 상하좌우 (0) | 2024.11.17 |
에너지 제어 시뮬레이선 파이썬 코드 (0) | 2024.11.16 |
로보틱 플라스틱 분류 알고리즘 (1) | 2024.11.15 |