1.1 研究背景
学生系统是一种用于管理学生成绩和学生信息的应用程序。本实验报告描述了使用Python、SQL Server、tkinter、tkinter.messagebox、PIL、pickle和pyodbc库创建的学生系统,该系统具有学生版和老师版,提供了不同的功能和权限。
1.2 研究目的
本实验的主要目的是设计、实现和测试一个学生系统,以满足学生和老师的不同需求。学生版旨在允许学生查看自己的成绩,而老师版提供了学号顺序、总排名、单科排名、成绩查询、修改成绩和录入成绩等功能。
1.3 系统特点
使用SQL Server数据库存储学生信息和成绩数据。
使用tkinter创建用户界面,提供友好的用户体验。
使用PIL库处理和显示图像。
使用pickle库进行数据的序列化和反序列化。
使用pyodbc库与SQL Server数据库进行交互。
第2章 系统设计
2.1 系统架构
系统由两个版本组成:学生版和老师版。两个版本共享相同的数据库,但提供不同的功能和权限。
2.2 数据库设计
系统使用SQL Server数据库,储存学生信息
学生信息表:包含学生的基本信息。
成绩表:包含学生的成绩信息。
2.3 用户界面设计
使用tkinter创建用户友好的图形用户界面,使用户能够轻松浏览和操作系统的各个功能。主要有登录————学生版————教师版---三个界面
import hanshu
import tkinter as tk
from tkinter import messagebox
import student_no
import studens_ma
import sys
import subprocess
# 窗口
jie = hanshu.jiemian('登录', 400, 300, r"D:\pythonxiangmu\student__ma\students_all\tu\tu1.jpg")
# 用户信息
tk.Label(jie.window, text='学号:', font=('Arial', 14)).place(x=30, y=230)
tk.Label(jie.window, text='密码:', font=('Arial', 14)).place(x=30, y=260)
# 用户登录输入框
a = hanshu.shurukuan(jie.window, 100, 230, '', "#FF00FF")
b = hanshu.shurukuan(jie.window, 100, 260, '', "#FF00FF",show='*')
# 定义用户登录功能
def usr_login():
# 这两行代码就是获取用户输入的usr_name和usr_pwd
usr_name = a.var_usr_name.get()
usr_pwd = b.var_usr_name.get()
if usr_pwd=='110' and usr_name=='root':
jie.window.destroy()
studens_ma.start()
return
m = hanshu.sql_s()
sql_cha = f"""
select 密码 from student
where id='{usr_name}'"""
mi = m.cha(sql_cha)
try:
if usr_pwd==mi[0][0]:
jie.window.destroy()
studens_no.start(usr_name)
else:
messagebox.showinfo('提示', '密码错误')
except:
messagebox.showinfo('提示', '学号错误')
# 登录按钮
btn_login = tk.Button(jie.window, text='登录', command=usr_login, width=6, height=2)
btn_login.place(x=330, y=237)
jie.zu()