使用python和SQL server写一个学生管理系统的代码
时间: 2024-01-14 18:02:57 浏览: 154
由于学生管理系统是一个比较大的项目,代码量较大,我在这里给你提供一个基本的框架,供参考:
```python
# -*- coding:utf-8 -*-
import pyodbc
import tkinter as tk
# 连接数据库
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=学生管理系统;UID=user;PWD=password')
cursor = conn.cursor()
# 创建主窗口
root = tk.Tk()
root.title("学生管理系统")
root.geometry("400x300")
# 登录界面
def login():
# 获取用户名和密码
username = entry_username.get()
password = entry_password.get()
# 查询数据库,验证用户名和密码是否正确
cursor.execute("SELECT * FROM 用户表 WHERE 用户名='%s' AND 密码='%s'" % (username, password))
result = cursor.fetchone()
if result is not None:
# 登录成功,显示主界面
show_main_ui()
else:
# 登录失败,提示错误信息
label_error.config(text="用户名或密码错误")
# 主界面
def show_main_ui():
# 创建界面控件
label_name = tk.Label(root, text="姓名:")
entry_name = tk.Entry(root, width=20)
label_score = tk.Label(root, text="成绩:")
entry_score = tk.Entry(root, width=20)
button_query = tk.Button(root, text="查询", command=query)
button_add = tk.Button(root, text="添加", command=add)
# 设置界面布局
label_name.grid(row=0, column=0)
entry_name.grid(row=0, column=1)
label_score.grid(row=1, column=0)
entry_score.grid(row=1, column=1)
button_query.grid(row=2, column=0)
button_add.grid(row=2, column=1)
# 查询学生成绩
def query():
# 获取姓名
name = entry_name.get()
# 查询数据库
cursor.execute("SELECT 成绩 FROM 成绩表 WHERE 姓名='%s'" % name)
result = cursor.fetchone()
if result is not None:
# 显示查询结果
score = result[0]
entry_score.delete(0, tk.END)
entry_score.insert(0, score)
else:
# 查询失败,提示错误信息
tk.messagebox.showerror(title="错误", message="查询失败")
# 添加学生成绩
def add():
# 获取姓名和成绩
name = entry_name.get()
score = entry_score.get()
# 插入数据到数据库
cursor.execute("INSERT INTO 成绩表 (姓名, 成绩) VALUES ('%s', %d)" % (name, int(score)))
conn.commit()
# 添加成功,提示信息
tk.messagebox.showinfo(title="成功", message="添加成功")
# 创建登录界面控件
label_username = tk.Label(root, text="用户名:")
entry_username = tk.Entry(root, width=20)
label_password = tk.Label(root, text="密码:")
entry_password = tk.Entry(root, show="*", width=20)
button_login = tk.Button(root, text="登录", command=login)
label_error = tk.Label(root, fg="red")
# 设置登录界面布局
label_username.grid(row=0, column=0)
entry_username.grid(row=0, column=1)
label_password.grid(row=1, column=0)
entry_password.grid(row=1, column=1)
button_login.grid(row=2, column=0)
label_error.grid(row=2, column=1)
root.mainloop()
# 关闭数据库连接
cursor.close()
conn.close()
```
在这个代码中,我们使用了pyodbc模块来连接SQL Server数据库,使用tkinter模块创建GUI界面,实现了登录界面和主界面的功能,包括查询和添加学生成绩等操作。由于每个学生管理系统的具体实现可能有所不同,这里的代码仅供参考,需要根据具体情况进行调整和优化。
阅读全文