基于學(xué)生實習(xí)管理系統(tǒng)的航天實習(xí)請假功能實現(xiàn)
小明:嘿,小李,最近我們學(xué)校的‘學(xué)生實習(xí)管理系統(tǒng)’要加入一個新的功能,是關(guān)于航天實習(xí)期間的請假申請,你有什么想法嗎?
小李:嗯,我覺得可以先從數(shù)據(jù)庫設(shè)計入手。我們需要一個表來存儲請假信息,比如學(xué)生ID、實習(xí)單位、請假開始時間、結(jié)束時間以及請假原因。
小明:對,那我們可以用SQLite數(shù)據(jù)庫,它簡單易用。首先創(chuàng)建一個名為'leave_application'的表。
import sqlite3
conn = sqlite3.connect('student_internship.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE leave_application (
id INTEGER PRIMARY KEY AUTOINCREMENT,
student_id TEXT NOT NULL,
company_name TEXT NOT NULL,
start_time DATETIME NOT NULL,
end_time DATETIME NOT NULL,
reason TEXT NOT NULL
);
''')
conn.commit()
conn.close()
小李:然后,我們需要編寫一個簡單的界面讓用戶提交請假申請。我建議用Tkinter庫快速搭建一個GUI。
import tkinter as tk
from tkinter import messagebox
def submit_leave():
student_id = entry_student_id.get()
company_name = entry_company_name.get()
start_time = entry_start_time.get()
end_time = entry_end_time.get()
reason = entry_reason.get()
if not (student_id and company_name and start_time and end_time and reason):
messagebox.showerror("錯誤", "所有字段都必須填寫")
return
try:
conn = sqlite3.connect('student_internship.db')
cursor = conn.cursor()
cursor.execute('''
INSERT INTO leave_application (student_id, company_name, start_time, end_time, reason)
VALUES (?, ?, ?, ?, ?);
''', (student_id, company_name, start_time, end_time, reason))
conn.commit()
messagebox.showinfo("成功", "請假申請已提交")
except Exception as e:
messagebox.showerror("錯誤", str(e))
finally:
conn.close()
root = tk.Tk()
root.title("航天實習(xí)請假系統(tǒng)")
label_student_id = tk.Label(root, text="學(xué)生ID:")
label_student_id.grid(row=0, column=0)
entry_student_id = tk.Entry(root)
entry_student_id.grid(row=0, column=1)
label_company_name = tk.Label(root, text="實習(xí)單位:")
label_company_name.grid(row=1, column=0)
entry_company_name = tk.Entry(root)
entry_company_name.grid(row=1, column=1)
label_start_time = tk.Label(root, text="開始時間:")
label_start_time.grid(row=2, column=0)
entry_start_time = tk.Entry(root)
entry_start_time.grid(row=2, column=1)
label_end_time = tk.Label(root, text="結(jié)束時間:")
label_end_time.grid(row=3, column=0)
entry_end_time = tk.Entry(root)
entry_end_time.grid(row=3, column=1)
label_reason = tk.Label(root, text="請假原因:")
label_reason.grid(row=4, column=0)
entry_reason = tk.Entry(root)
entry_reason.grid(row=4, column=1)
btn_submit = tk.Button(root, text="提交", command=submit_leave)
btn_submit.grid(row=5, column=1)
root.mainloop()
小明:這樣用戶就可以通過這個界面提交他們的請假信息了。接下來我們需要一個管理員界面來查看這些申請。
def view_leaves():
try:
conn = sqlite3.connect('student_internship.db')
cursor = conn.cursor()
cursor.execute("SELECT * FROM leave_application;")
rows = cursor.fetchall()
for row in rows:
print(f"ID: {row[0]}, 學(xué)生ID: {row[1]}, 單位: {row[2]}, 開始時間: {row[3]}, 結(jié)束時間: {row[4]}, 原因: {row[5]}")
except Exception as e:
print(f"Error: {e}")
finally:
conn.close()
view_leaves()
小李:現(xiàn)在我們有了基本的功能,管理員可以通過命令行查看所有的請假記錄。
本站知識庫部分內(nèi)容及素材來源于互聯(lián)網(wǎng),如有侵權(quán),聯(lián)系必刪!
讀過這篇文章的讀者還喜歡:
構(gòu)建高效的學(xué)生實習(xí)管理系統(tǒng)基于學(xué)生實習(xí)管理系統(tǒng)的開發(fā)與實現(xiàn)基于Python實現(xiàn)的學(xué)生實習(xí)管理系統(tǒng)從零打造實習(xí)生管理系統(tǒng)——靈感源于淄博的小吃管理基于招投標(biāo)的漳州地區(qū)實習(xí)生管理系統(tǒng)設(shè)計與實現(xiàn)構(gòu)建高效的實習(xí)系統(tǒng)與知識庫基于‘頂崗實習(xí)管理系統(tǒng)’在鎮(zhèn)江地區(qū)的應(yīng)用與優(yōu)化基于實習(xí)生管理系統(tǒng)的職校學(xué)生實習(xí)信息數(shù)字化解決方案從湖北到綿陽:打造“實習(xí)生管理系統(tǒng)”的新故事從西寧到牡丹江——實習(xí)生管理系統(tǒng)的奇妙旅程