정보통신기술(ICT)

초전도체에 필요한 원소(元素; element) 데이터 시뮬레이션

해머슴 2024. 11. 18. 11:08
 
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()