用python代码写一个学生管理系统,连接数据库,并实现界面化以及实现以下功能:1、显示学生的信息2、对学生的信息实现增删改等
时间: 2024-03-10 16:50:47 浏览: 22
好的,下面是一个简单的学生管理系统的Python代码,使用SQLite数据库,并使用Tkinter实现界面化:
```python
import sqlite3
from tkinter import *
# 连接数据库
conn = sqlite3.connect('students.db')
c = conn.cursor()
# 创建学生表
c.execute('''CREATE TABLE IF NOT EXISTS students
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL,
gender TEXT NOT NULL)''')
conn.commit()
# 添加学生信息
def add_student():
name = name_entry.get()
age = age_entry.get()
gender = gender_entry.get()
c.execute("INSERT INTO students (name, age, gender) VALUES (?, ?, ?)", (name, age, gender))
conn.commit()
show_students()
# 显示学生信息
def show_students():
student_list.delete(0, END)
c.execute("SELECT * FROM students")
students = c.fetchall()
for student in students:
student_list.insert(END, student)
# 删除学生信息
def delete_student():
selected_student = student_list.get(student_list.curselection())
c.execute("DELETE FROM students WHERE id=?", (selected_student[0],))
conn.commit()
show_students()
# 修改学生信息
def update_student():
selected_student = student_list.get(student_list.curselection())
name = name_entry.get()
age = age_entry.get()
gender = gender_entry.get()
c.execute("UPDATE students SET name=?, age=?, gender=? WHERE id=?", (name, age, gender, selected_student[0]))
conn.commit()
show_students()
# 创建界面
root = Tk()
root.title("学生管理系统")
name_label = Label(root, text="姓名")
name_label.grid(row=0, column=0)
age_label = Label(root, text="年龄")
age_label.grid(row=1, column=0)
gender_label = Label(root, text="性别")
gender_label.grid(row=2, column=0)
name_entry = Entry(root)
name_entry.grid(row=0, column=1)
age_entry = Entry(root)
age_entry.grid(row=1, column=1)
gender_entry = Entry(root)
gender_entry.grid(row=2, column=1)
add_button = Button(root, text="添加", command=add_student)
add_button.grid(row=0, column=2)
delete_button = Button(root, text="删除", command=delete_student)
delete_button.grid(row=1, column=2)
update_button = Button(root, text="修改", command=update_student)
update_button.grid(row=2, column=2)
student_list = Listbox(root)
student_list.grid(row=3, column=0, columnspan=3)
show_students()
root.mainloop()
# 关闭数据库连接
conn.close()
```
在运行代码之前,请确保已经安装了Tkinter和SQLite模块。运行后,程序将会创建一个名为“students.db”的SQLite数据库文件,并创建一个名为“students”的表来存储学生信息。您可以通过添加、删除和修改学生信息来测试该程序。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)