|
|
from typing import Optional
|
|
|
from PySide6.QtCore import Qt
|
|
|
from PySide6.QtWidgets import QApplication,QMainWindow,QWidget,QTableWidgetItem,QLabel,QLineEdit,QVBoxLayout
|
|
|
from PySide6 import QtWidgets,QtCore,QtGui
|
|
|
from PySide6.QtGui import QFont
|
|
|
from Login_ui import Ui_MainWindow
|
|
|
from student_ui import Ui_Form
|
|
|
from choose_class_ui import Ui_Form2
|
|
|
from teacher_ui import Ui_Form3
|
|
|
from grade_change_ui import Ui_Form4
|
|
|
from tishi_ui import Ui_Form5
|
|
|
from tishi2_ui import Ui_Form6
|
|
|
from code_change_ui import Ui_Form7
|
|
|
import sqlite3 as sql
|
|
|
|
|
|
conn=sql.connect('code_database.db')
|
|
|
c=conn.cursor()
|
|
|
conn2=sql.connect('college.db')
|
|
|
c2=conn2.cursor()
|
|
|
input_account='0'
|
|
|
|
|
|
#登录界面
|
|
|
class Loginwindow(QMainWindow,Ui_MainWindow):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.setupUi(self)
|
|
|
self.radioButton.clicked.connect(self.student)
|
|
|
self.radioButton_2.clicked.connect(self.teacher)
|
|
|
self.pushButton.clicked.connect(self.loginFuc)
|
|
|
|
|
|
def student(self):
|
|
|
c.execute("SELECT * FROM student")
|
|
|
user=c.fetchall()
|
|
|
#拿到密码
|
|
|
global input_account
|
|
|
input_account=self.lineEdit.text()
|
|
|
#拿到账号
|
|
|
input_password=self.lineEdit_2.text()
|
|
|
user_tuple=(input_account,input_password)
|
|
|
if user_tuple in user:
|
|
|
return 1
|
|
|
else:
|
|
|
return 0
|
|
|
def teacher(self):
|
|
|
c.execute("SELECT * FROM teacher")
|
|
|
user=c.fetchall()
|
|
|
#拿到密码
|
|
|
global input_account
|
|
|
input_account=self.lineEdit.text()
|
|
|
#拿到账号
|
|
|
input_password=self.lineEdit_2.text()
|
|
|
user_tuple=(input_account,input_password)
|
|
|
if user_tuple in user:
|
|
|
return 1
|
|
|
else:
|
|
|
return 0
|
|
|
|
|
|
def loginFuc(self):
|
|
|
if self.student():
|
|
|
self.close()
|
|
|
self.mainWindow=studentWindow()
|
|
|
self.mainWindow.show()
|
|
|
return
|
|
|
elif self.teacher()!=1 and self.student==1 :
|
|
|
self.window=login_fail_Window()
|
|
|
self.window.show()
|
|
|
if self.teacher():
|
|
|
self.close()
|
|
|
self.mainWindow=teacherWindow()
|
|
|
self.mainWindow.show()
|
|
|
return
|
|
|
else:
|
|
|
self.window=login_fail_Window()
|
|
|
self.window.show()
|
|
|
|
|
|
#学生界面
|
|
|
class studentWindow(QWidget,Ui_Form):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.setupUi(self)
|
|
|
self.pushButton.clicked.connect(self.grade_find)
|
|
|
self.pushButton_3.clicked.connect(self.choose_Func)
|
|
|
self.pushButton_4.clicked.connect(self.code_change)
|
|
|
|
|
|
|
|
|
|
|
|
def Table_Data(self,i,j,data):
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setItem(i,j,item)
|
|
|
item=self.tableWidget.item(i,j)
|
|
|
item.setText(data)
|
|
|
|
|
|
|
|
|
def grade_find(self):
|
|
|
sql="SELECT student.ID,student.name,takes.course_id,course.title,takes.grade FROM student,takes,course WHERE student.ID='%s' AND takes.ID='%s' AND takes.course_id=course.course_id"%(input_account,input_account)
|
|
|
c2.execute(sql)
|
|
|
total=c2.fetchall()
|
|
|
col_result=c2.description
|
|
|
self.row=len(total)#取得记录个数,用于设置表格行数
|
|
|
print(self.row)
|
|
|
self.vol=len(total[0])#取得字段数,用于设置表格列数
|
|
|
col_result=list(col_result)
|
|
|
a=0
|
|
|
self.tableWidget.setColumnCount(self.vol)
|
|
|
self.tableWidget.setRowCount(self.row)
|
|
|
for i in col_result:#设置表头信息,将sql数据表中的表头信息拿出来,放进tablewidget中
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setHorizontalHeaderItem(a,item)
|
|
|
item=self.tableWidget.horizontalHeaderItem(a)
|
|
|
item.setText(i[0])
|
|
|
a=a+1
|
|
|
total=list(total)
|
|
|
for i in range(len(total)):
|
|
|
total[i]=list(total[i])
|
|
|
for i in range(self.row):
|
|
|
for j in range(self.vol):
|
|
|
self.Table_Data(i,j,total[i][j])
|
|
|
|
|
|
#选课系统
|
|
|
def choose_Func(self):
|
|
|
self.close()
|
|
|
self.mainWindow=choose_class_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
def code_change(self):
|
|
|
self.mainWindow=stcode_change_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
#老师界面
|
|
|
class teacherWindow(QWidget,Ui_Form3):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.setupUi(self)
|
|
|
self.comboBox.currentIndexChanged.connect(self.search)
|
|
|
self.pushButton.clicked.connect(self.grade_change)
|
|
|
self.pushButton_4.clicked.connect(self.code_change)
|
|
|
|
|
|
def Table_Data2(self,i,j,data):
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setItem(i,j,item)
|
|
|
item=self.tableWidget.item(i,j)
|
|
|
item.setText(str(data))
|
|
|
|
|
|
|
|
|
def show_table(self,sql):
|
|
|
c2.execute(sql)
|
|
|
total=c2.fetchall()
|
|
|
if total==[]:
|
|
|
self.mainWindow=search_fail_Window()
|
|
|
self.mainWindow.show()
|
|
|
return
|
|
|
col_result=c2.description
|
|
|
self.row=len(total)#取得记录个数,用于设置表格行数
|
|
|
print(self.row)
|
|
|
self.vol=len(total[0])#取得字段数,用于设置表格列数
|
|
|
col_result=list(col_result)
|
|
|
a=0
|
|
|
self.tableWidget.setColumnCount(self.vol)
|
|
|
self.tableWidget.setRowCount(self.row)
|
|
|
for i in col_result:#设置表头信息,将sql数据表中的表头信息拿出来,放进tablewidget中
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setHorizontalHeaderItem(a,item)
|
|
|
item=self.tableWidget.horizontalHeaderItem(a)
|
|
|
item.setText(i[0])
|
|
|
a=a+1
|
|
|
total=list(total)
|
|
|
for i in range(len(total)):
|
|
|
total[i]=list(total[i])
|
|
|
for i in range(self.row):
|
|
|
for j in range(self.vol):
|
|
|
self.Table_Data2(i,j,total[i][j])
|
|
|
|
|
|
def search(self,index):
|
|
|
get=self.lineEdit.text()
|
|
|
if index==1:
|
|
|
sql="SELECT student.ID,student.name,student.dept_name,course.title AS course_name,takes.grade FROM student,takes,course WHERE student.name='%s' AND takes.ID=student.ID AND takes.course_id=course.course_id"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==2:
|
|
|
sql="SELECT student.ID,student.name,student.dept_name,course.title AS course_name,takes.grade FROM student,takes,course WHERE student.ID='%s' AND takes.ID=student.ID AND takes.course_id=course.course_id"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==3:
|
|
|
sql="SELECT student.ID,student.name,student.dept_name,course.title AS course_name,takes.grade FROM student,takes,course WHERE student.dept_name='%s' AND takes.ID=student.ID AND takes.course_id=course.course_id"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==4:
|
|
|
sql="SELECT student.ID,student.name,student.dept_name,course.title AS course_name,takes.grade FROM student,takes,course WHERE course.title='%s' AND takes.ID=student.ID AND takes.course_id=course.course_id"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==5:
|
|
|
sql="SELECT student.ID,student.name,student.dept_name,course.title AS course_name,takes.grade FROM student,takes,course WHERE course.course_id='%s' AND takes.ID=student.ID AND takes.course_id=course.course_id"%(get)
|
|
|
self.show_table(sql)
|
|
|
|
|
|
def grade_change(self):
|
|
|
self.close()
|
|
|
self.mainWindow=grade_change_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
def code_change(self):
|
|
|
self.mainWindow=tecode_change_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
#选课系统界面
|
|
|
class choose_class_Window(QWidget,Ui_Form2):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.setupUi(self)
|
|
|
self.display()
|
|
|
self.pushButton.clicked.connect(self.allclass)
|
|
|
self.pushButton_4.clicked.connect(self.class_delete)
|
|
|
self.pushButton_2.clicked.connect(self.class_choose)
|
|
|
self.pushButton_5.clicked.connect(self.back)
|
|
|
self.comboBox.currentIndexChanged.connect(self.search)
|
|
|
|
|
|
|
|
|
def Table_Data(self,i,j,data):
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setItem(i,j,item)
|
|
|
item=self.tableWidget.item(i,j)
|
|
|
item.setText(str(data))
|
|
|
|
|
|
|
|
|
def Table_Data2(self,i,j,data):
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget_2.setItem(i,j,item)
|
|
|
item=self.tableWidget_2.item(i,j)
|
|
|
item.setText(str(data))
|
|
|
|
|
|
|
|
|
def display(self):
|
|
|
sql="SELECT DISTINCT course.course_id,course.title,course.credits,course.dept_name,teaches.ID AS teacher_id ,instructor.name AS teacher_name,takes.semester FROM instructor,teaches,course,takes WHERE\
|
|
|
takes.ID='%s' AND takes.course_id=course.course_id AND teaches.course_id=course.course_id AND teaches.semester=takes.semester AND instructor.ID=teaches.ID"%(input_account)
|
|
|
c2.execute(sql)
|
|
|
total=c2.fetchall()
|
|
|
col_result=c2.description
|
|
|
self.row=len(total)#取得记录个数,用于设置表格行数
|
|
|
print(self.row)
|
|
|
self.vol=len(total[0])#取得字段数,用于设置表格列数
|
|
|
col_result=list(col_result)
|
|
|
a=0
|
|
|
sum=0
|
|
|
self.tableWidget.setColumnCount(self.vol)
|
|
|
self.tableWidget.setRowCount(self.row)
|
|
|
for i in col_result:#设置表头信息,将sql数据表中的表头信息拿出来,放进tablewidget中
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setHorizontalHeaderItem(a,item)
|
|
|
item=self.tableWidget.horizontalHeaderItem(a)
|
|
|
item.setText(i[0])
|
|
|
a=a+1
|
|
|
total=list(total)
|
|
|
for i in range(len(total)):
|
|
|
total[i]=list(total[i])
|
|
|
for i in range(self.row):
|
|
|
print(i)
|
|
|
for j in range(self.vol):
|
|
|
if j==2:
|
|
|
sum+=int(total[i][j])
|
|
|
self.Table_Data(i,j,total[i][j])
|
|
|
self.label_4.setText(str(sum))
|
|
|
|
|
|
def show_table(self,sql):
|
|
|
c2.execute(sql)
|
|
|
total=c2.fetchall()
|
|
|
col_result=c2.description
|
|
|
self.row=len(total)#取得记录个数,用于设置表格行数
|
|
|
print(self.row)
|
|
|
self.vol=len(total[0])#取得字段数,用于设置表格列数
|
|
|
col_result=list(col_result)
|
|
|
a=0
|
|
|
self.tableWidget_2.setColumnCount(self.vol)
|
|
|
self.tableWidget_2.setRowCount(self.row)
|
|
|
for i in col_result:#设置表头信息,将sql数据表中的表头信息拿出来,放进tablewidget中
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget_2.setHorizontalHeaderItem(a,item)
|
|
|
item=self.tableWidget_2.horizontalHeaderItem(a)
|
|
|
item.setText(i[0])
|
|
|
a=a+1
|
|
|
total=list(total)
|
|
|
for i in range(len(total)):
|
|
|
total[i]=list(total[i])
|
|
|
for i in range(self.row):
|
|
|
for j in range(self.vol):
|
|
|
self.Table_Data2(i,j,total[i][j])
|
|
|
|
|
|
|
|
|
def allclass(self):
|
|
|
sql="SELECT course.course_id,course.title,course.credits,course.dept_name,teaches.ID AS teacher_id ,instructor.name AS teacher_name,teaches.semester FROM instructor,teaches,course\
|
|
|
WHERE course.course_id=teaches.course_id AND teaches.ID=instructor.ID"
|
|
|
self.show_table(sql)
|
|
|
|
|
|
|
|
|
|
|
|
def search(self,index):
|
|
|
get=self.lineEdit.text()
|
|
|
if index==1:
|
|
|
sql="SELECT DISTINCT course.course_id,course.title,course.credits,course.dept_name,teaches.ID AS teacher_id ,instructor.name AS teacher_name,teaches.semester FROM instructor,teaches,course\
|
|
|
WHERE course.course_id=teaches.course_id AND teaches.ID=instructor.ID AND course.title='%s'"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==2:
|
|
|
sql="SELECT DISTINCT course.course_id,course.title,course.credits,course.dept_name,teaches.ID AS teacher_id ,instructor.name AS teacher_name,teaches.semester FROM instructor,teaches,course\
|
|
|
WHERE course.course_id=teaches.course_id AND teaches.ID=instructor.ID AND teaches.semester='%s'"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==3:
|
|
|
sql="SELECT DISTINCT course.course_id,course.title,course.credits,course.dept_name,teaches.ID AS teacher_id ,instructor.name AS teacher_name,teaches.semester FROM instructor,teaches,course\
|
|
|
WHERE course.course_id=teaches.course_id AND teaches.ID=instructor.ID AND course.credits='%s'"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==4:
|
|
|
sql="SELECT DISTINCT course.course_id,course.title,course.credits,course.dept_name,teaches.ID AS teacher_id ,instructor.name AS teacher_name,teaches.semester FROM instructor,teaches,course\
|
|
|
WHERE course.course_id=teaches.course_id AND teaches.ID=instructor.ID AND course.dept_name='%s'"%(get)
|
|
|
self.show_table(sql)
|
|
|
if index==5:
|
|
|
sql="SELECT DISTINCT course.course_id,course.title,course.credits,course.dept_name,teaches.ID AS teacher_id ,instructor.name AS teacher_name,teaches.semester FROM instructor,teaches,course\
|
|
|
WHERE course.course_id=teaches.course_id AND teaches.ID=instructor.ID AND course.course_id='%s'"%(get)
|
|
|
self.show_table(sql)
|
|
|
|
|
|
def class_delete(self):
|
|
|
row_select=self.tableWidget.selectedItems()
|
|
|
if len(row_select)==0:
|
|
|
return
|
|
|
class_id=row_select[0].text()
|
|
|
sql="SELECT takes.grade FROM takes WHERE takes.ID='%s' AND takes.course_id='%s'"%(input_account,class_id)
|
|
|
c2.execute(sql)
|
|
|
grade=''
|
|
|
grade=c2.fetchall()[0][0]
|
|
|
print(grade)
|
|
|
if grade==None:
|
|
|
sql="DELETE FROM takes WHERE takes.ID='%s' AND takes.course_id='%s'"%(input_account,class_id)
|
|
|
c2.execute(sql)
|
|
|
conn2.commit()
|
|
|
self.display()
|
|
|
else:
|
|
|
self.mainWindow=delete_fail_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
|
|
|
|
|
|
def class_choose(self):
|
|
|
row_select=self.tableWidget_2.selectedItems()
|
|
|
if len(row_select)==0:
|
|
|
return
|
|
|
class_id=row_select[0].text()
|
|
|
sql="SELECT takes.course_id FROM takes WHERE takes.ID='%s'"%(input_account)
|
|
|
c2.execute(sql)
|
|
|
takes_id=c2.fetchall()
|
|
|
flag=0
|
|
|
for i in takes_id:
|
|
|
if i[0]==class_id:
|
|
|
flag=1
|
|
|
break
|
|
|
if not flag:
|
|
|
sql="SELECT teaches.sec_id,teaches.year FROM teaches WHERE teaches.course_id='%s' AND teaches.ID='%s'"%(class_id,row_select[4].text())
|
|
|
c2.execute(sql)
|
|
|
sec_year=c2.fetchall()
|
|
|
sec_id=sec_year[0][0]
|
|
|
year=str(sec_year[0][1])
|
|
|
semester=row_select[6].text()
|
|
|
sql="INSERT INTO takes VALUES('%s','%s','%s','%s','%s',NULL)"%(input_account,class_id,sec_id,semester,year)
|
|
|
c2.execute(sql)
|
|
|
conn2.commit()
|
|
|
self.display()
|
|
|
else:
|
|
|
self.mainWindow=choose_fail_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
|
|
|
def back(self):
|
|
|
self.close()
|
|
|
self.mainWindow=studentWindow()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
#成绩录入界面
|
|
|
class grade_change_Window(QWidget,Ui_Form4):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.setupUi(self)
|
|
|
self.flag=0
|
|
|
self.pushButton_5.clicked.connect(self.search)
|
|
|
self.pushButton_6.clicked.connect(self.addTableRow)
|
|
|
self.pushButton_8.clicked.connect(self.tishiWindow)
|
|
|
self.pushButton_7.clicked.connect(self.tishiWindow2)
|
|
|
self.pushButton_4.clicked.connect(self.back)
|
|
|
|
|
|
def Table_Data2(self,i,j,data):
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setItem(i,j,item)
|
|
|
item=self.tableWidget.item(i,j)
|
|
|
item.setText(str(data))
|
|
|
|
|
|
|
|
|
def show_table(self,sql):
|
|
|
c2.execute(sql)
|
|
|
total=c2.fetchall()
|
|
|
col_result=c2.description
|
|
|
self.row=len(total)#取得记录个数,用于设置表格行数
|
|
|
print(self.row)
|
|
|
self.vol=len(total[0])#取得字段数,用于设置表格列数
|
|
|
col_result=list(col_result)
|
|
|
a=0
|
|
|
self.tableWidget.setColumnCount(self.vol)
|
|
|
self.tableWidget.setRowCount(self.row)
|
|
|
for i in col_result:#设置表头信息,将sql数据表中的表头信息拿出来,放进tablewidget中
|
|
|
item=QtWidgets.QTableWidgetItem()
|
|
|
self.tableWidget.setHorizontalHeaderItem(a,item)
|
|
|
item=self.tableWidget.horizontalHeaderItem(a)
|
|
|
item.setText(i[0])
|
|
|
a=a+1
|
|
|
total=list(total)
|
|
|
for i in range(len(total)):
|
|
|
total[i]=list(total[i])
|
|
|
for i in range(self.row):
|
|
|
for j in range(self.vol):
|
|
|
self.Table_Data2(i,j,total[i][j])
|
|
|
|
|
|
def search(self):
|
|
|
get=self.lineEdit.text()
|
|
|
sql="SELECT student.name,student.dept_name,course.title AS course_name,takes.grade FROM student,takes,course WHERE student.ID='%s' AND takes.ID=student.ID AND takes.course_id=course.course_id"%(get)
|
|
|
self.show_table(sql)
|
|
|
|
|
|
def addTableRow(self):
|
|
|
row=self.tableWidget.rowCount()
|
|
|
self.tableWidget.setRowCount(row+1)
|
|
|
self.flag=1
|
|
|
|
|
|
|
|
|
def tishiWindow(self):
|
|
|
student_id=self.lineEdit.text()
|
|
|
row=self.tableWidget.rowCount()-1
|
|
|
data=[student_id,self.tableWidget.item(row,0).text(),self.tableWidget.item(row,1).text(),self.tableWidget.item(row,2).text(),self.tableWidget.item(row,3).text()]
|
|
|
sql="SELECT course.title FROM course"
|
|
|
c2.execute(sql)
|
|
|
course_name=c2.fetchall()
|
|
|
for i in course_name:
|
|
|
if i[0]==data[3]:
|
|
|
if self.flag==0:
|
|
|
for i in range(row+1):
|
|
|
course_title=self.tableWidget.item(i,2).text()
|
|
|
grade=self.tableWidget.item(i,3).text()
|
|
|
sql="SELECT course.course_id FROM course WHERE course.title='%s'"%(course_title)
|
|
|
c2.execute(sql)
|
|
|
result=c2.fetchall()[0][0]
|
|
|
sql="UPDATE takes SET grade='%s' WHERE takes.ID='%s' AND takes.course_id='%s'"%(grade,student_id,result)
|
|
|
c2.execute(sql)
|
|
|
conn2.commit()
|
|
|
self.mainWindow=change_sucess_Window()
|
|
|
self.mainWindow.show()
|
|
|
self.flag=0
|
|
|
return
|
|
|
self.mainWindow=tishi_Window()
|
|
|
self.mainWindow.set_data(data)
|
|
|
self.mainWindow.show()
|
|
|
self.flag=0
|
|
|
return
|
|
|
else:
|
|
|
self.mainWindow=add_fail_Window()
|
|
|
self.mainWindow.show()
|
|
|
self.flag=0
|
|
|
return
|
|
|
|
|
|
def tishiWindow2(self):
|
|
|
student_id=self.lineEdit.text()
|
|
|
row_select=self.tableWidget.selectedItems()
|
|
|
if len(row_select)==0:
|
|
|
return
|
|
|
data=[student_id,row_select[2].text()]
|
|
|
self.mainWindow=tishi_Window2()
|
|
|
self.mainWindow.set_data(data)
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
|
|
|
def back(self):
|
|
|
self.close()
|
|
|
self.mainWindow=teacherWindow()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
|
|
|
class tishi_Window(QWidget,Ui_Form5):
|
|
|
def __init__(self,parent=None):
|
|
|
super().__init__(parent)
|
|
|
self.setupUi(self)
|
|
|
self.Data=[]
|
|
|
self.pushButton.clicked.connect(self.Ok)
|
|
|
self.pushButton_2.clicked.connect(self.No)
|
|
|
|
|
|
def Ok(self):
|
|
|
sql="SELECT course.course_id FROM course WHERE course.title='%s'"%(self.Data[3])
|
|
|
c2.execute(sql)
|
|
|
class_id=c2.fetchall()[0][0]
|
|
|
sql="SELECT teaches.sec_id,teaches.semester FROM teaches WHERE teaches.course_id='%s'"%(class_id)
|
|
|
c2.execute(sql)
|
|
|
sec_semester=c2.fetchall()
|
|
|
sec_id=sec_semester[0][0]
|
|
|
semester=sec_semester[0][1]
|
|
|
sql="INSERT INTO takes VALUES('%s','%s','%s','%s','%s','%s')"%(self.Data[0],class_id,sec_id,semester,'2023',self.Data[4])
|
|
|
c2.execute(sql)
|
|
|
conn2.commit()
|
|
|
self.close()
|
|
|
|
|
|
|
|
|
def No(self):
|
|
|
self.close()
|
|
|
|
|
|
def set_data(self,data):
|
|
|
self.Data=data
|
|
|
|
|
|
|
|
|
|
|
|
class tishi_Window2(QWidget,Ui_Form6):
|
|
|
def __init__(self,parent=None):
|
|
|
super().__init__(parent)
|
|
|
self.setupUi(self)
|
|
|
self.Data=[]
|
|
|
self.pushButton.clicked.connect(self.Ok)
|
|
|
self.pushButton_2.clicked.connect(self.No)
|
|
|
|
|
|
def Ok(self):
|
|
|
sql="SELECT course.course_id FROM course WHERE course.title='%s'"%(self.Data[1])
|
|
|
print(self.Data)
|
|
|
c2.execute(sql)
|
|
|
class_id=c2.fetchall()[0][0]
|
|
|
sql="SELECT takes.grade FROM takes WHERE takes.ID='%s' AND takes.course_id='%s'"%(self.Data[0],class_id)
|
|
|
c2.execute(sql)
|
|
|
sql="DELETE FROM takes WHERE takes.ID='%s' AND takes.course_id='%s'"%(self.Data[0],class_id)
|
|
|
c2.execute(sql)
|
|
|
conn2.commit()
|
|
|
self.close()
|
|
|
self.mainWindow=delete_sucess_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
|
|
|
def No(self):
|
|
|
self.close()
|
|
|
|
|
|
def set_data(self,data):
|
|
|
self.Data=data
|
|
|
|
|
|
class delete_fail_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('您已参加考试,无法退课')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
|
|
|
class choose_fail_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('不能重复选课')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
|
|
|
class search_fail_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('目前还没有学生选这个课')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
class add_fail_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('为开设此课,添加失败,请检查课程名称')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
class codechange_fail_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('两次输入的密码不一样,请重新输入')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
|
|
|
class codechange_sucess_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('修改成功')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
class delete_sucess_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('删除成功,点击查询刷新')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
|
|
|
class change_sucess_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('修改成功')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
|
|
|
class login_fail_Window(QWidget):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.lb=QLabel('账户或者密码错误')
|
|
|
self.lb.setFont(QFont("微软雅黑",16))
|
|
|
self.lb.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
|
self.mainLayout=QVBoxLayout()
|
|
|
self.mainLayout.addWidget(self.lb)
|
|
|
self.setLayout(self.mainLayout)
|
|
|
|
|
|
|
|
|
class stcode_change_Window(QWidget,Ui_Form7):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.setupUi(self)
|
|
|
self.pushButton.clicked.connect(self.Ok)
|
|
|
|
|
|
|
|
|
def Ok(self):
|
|
|
new1=self.lineEdit.text()
|
|
|
new2=self.lineEdit_2.text()
|
|
|
if new1!=new2:
|
|
|
self.mainWindow=codechange_fail_Window()
|
|
|
self.mainWindow.show()
|
|
|
else:
|
|
|
sql="UPDATE student SET code='%s' WHERE ID='%s'"%(new2,input_account)
|
|
|
c.execute(sql)
|
|
|
conn.commit()
|
|
|
self.close()
|
|
|
self.mainWindow=codechange_sucess_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
class tecode_change_Window(QWidget,Ui_Form7):
|
|
|
def __init__(self):
|
|
|
super().__init__()
|
|
|
self.setupUi(self)
|
|
|
self.pushButton.clicked.connect(self.Ok)
|
|
|
|
|
|
|
|
|
def Ok(self):
|
|
|
new1=self.lineEdit.text()
|
|
|
new2=self.lineEdit_2.text()
|
|
|
if new1!=new2:
|
|
|
self.mainWindow=codechange_fail_Window()
|
|
|
self.mainWindow.show()
|
|
|
else:
|
|
|
sql="UPDATE teacher SET code='%s' WHERE ID='%s'"%(new2,input_account)
|
|
|
c.execute(sql)
|
|
|
conn.commit()
|
|
|
self.close()
|
|
|
self.mainWindow=codechange_sucess_Window()
|
|
|
self.mainWindow.show()
|
|
|
|
|
|
|
|
|
|
|
|
if __name__=='__main__':
|
|
|
app=QApplication([])
|
|
|
window=Loginwindow()
|
|
|
window.show()
|
|
|
app.exec() |