写代码1、要求使用Python的图形化工具+数据库系统完成学生信息管理系统。数据库建议使用Mysql数据库系统。 2、实现满足学生信息管理系统数据库表的设计。 3、实现学生信息的添加、修改、删除和查询功能,
时间: 2024-03-18 16:40:57 浏览: 63
好的,以下是一个简单的学生信息管理系统的Python代码,基于Tkinter和MySQLdb模块:
```python
import tkinter as tk
import MySQLdb
# 连接Mysql数据库
conn = MySQLdb.connect(host='localhost', user='root', passwd='password', db='test', port=3306, charset='utf8')
# 创建学生信息表
cursor = conn.cursor()
cursor.execute('CREATE TABLE IF NOT EXISTS student (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), gender VARCHAR(4), age INT, class VARCHAR(20), major VARCHAR(20))')
# 定义GUI界面
class StudentInfoGUI:
def __init__(self, master):
self.master = master
master.title('学生信息管理系统')
# 姓名
tk.Label(master, text='姓名').grid(row=0, column=0)
self.name_entry = tk.Entry(master)
self.name_entry.grid(row=0, column=1)
# 性别
tk.Label(master, text='性别').grid(row=1, column=0)
self.gender_entry = tk.Entry(master)
self.gender_entry.grid(row=1, column=1)
# 年龄
tk.Label(master, text='年龄').grid(row=2, column=0)
self.age_entry = tk.Entry(master)
self.age_entry.grid(row=2, column=1)
# 班级
tk.Label(master, text='班级').grid(row=3, column=0)
self.class_entry = tk.Entry(master)
self.class_entry.grid(row=3, column=1)
# 专业
tk.Label(master, text='专业').grid(row=4, column=0)
self.major_entry = tk.Entry(master)
self.major_entry.grid(row=4, column=1)
# 按钮
tk.Button(master, text='添加', command=self.add_student).grid(row=5, column=0)
tk.Button(master, text='修改', command=self.update_student).grid(row=5, column=1)
tk.Button(master, text='删除', command=self.delete_student).grid(row=5, column=2)
tk.Button(master, text='查询', command=self.query_student).grid(row=5, column=3)
# 添加学生信息
def add_student(self):
name = self.name_entry.get()
gender = self.gender_entry.get()
age = self.age_entry.get()
class_ = self.class_entry.get()
major = self.major_entry.get()
if not name or not gender or not age or not class_ or not major:
tk.messagebox.showerror('错误', '请填写完整学生信息!')
return
try:
age = int(age)
except:
tk.messagebox.showerror('错误', '年龄必须为整数!')
return
cursor = conn.cursor()
cursor.execute('INSERT INTO student (name, gender, age, class, major) VALUES (%s, %s, %s, %s, %s)', (name, gender, age, class_, major))
conn.commit()
tk.messagebox.showinfo('提示', '添加学生信息成功!')
# 修改学生信息
def update_student(self):
name = self.name_entry.get()
gender = self.gender_entry.get()
age = self.age_entry.get()
class_ = self.class_entry.get()
major = self.major_entry.get()
if not name or not gender or not age or not class_ or not major:
tk.messagebox.showerror('错误', '请填写完整学生信息!')
return
try:
age = int(age)
except:
tk.messagebox.showerror('错误', '年龄必须为整数!')
return
cursor = conn.cursor()
cursor.execute('UPDATE student SET gender=%s, age=%s, class=%s, major=%s WHERE name=%s', (gender, age, class_, major, name))
conn.commit()
tk.messagebox.showinfo('提示', '修改学生信息成功!')
# 删除学生信息
def delete_student(self):
name = self.name_entry.get()
if not name:
tk.messagebox.showerror('错误', '请填写学生姓名!')
return
cursor = conn.cursor()
cursor.execute('DELETE FROM student WHERE name=%s', (name,))
conn.commit()
tk.messagebox.showinfo('提示', '删除学生信息成功!')
# 查询学生信息
def query_student(self):
name = self.name_entry.get()
if not name:
tk.messagebox.showerror('错误', '请填写学生姓名!')
return
cursor = conn.cursor()
cursor.execute('SELECT * FROM student WHERE name=%s', (name,))
result = cursor.fetchone()
if not result:
tk.messagebox.showerror('错误', '未找到对应学生信息!')
return
tk.messagebox.showinfo('学生信息', '姓名:{}\n性别:{}\n年龄:{}\n班级:{}\n专业:{}'.format(result[1], result[2], result[3], result[4], result[5]))
# 运行GUI界面
root = tk.Tk()
app = StudentInfoGUI(root)
root.mainloop()
```
以上代码实现了一个简单的学生信息管理系统,包括添加、修改、删除和查询学生信息的功能。在使用前需要将代码中的数据库连接信息改为实际的信息,并在MySQL中创建相应的student表。
阅读全文