基于Python和SQL SERVER数据库实现的实验信息综合管理系统

基于Python和SQL SERVER数据库实现的实验信息综合管理系统 1 需求分析 1,1 需求来源 本系统是对于实验综合信息进行管理的系统

本文包含相关资料包-----> 点击直达获取<-------

基于Python和SQL SERVER数据库实现的实验信息综合管理系统

1 需求分析

1.1 需求来源

本系统是对于实验综合信息进行管理的系统。

1.1.1 功能需求

  • 学生用户: 修改系统登陆密码、查询选择的课程、查询选择课程对应的实验课表、导出查询到的课程数据、实验课表数据

  • 教师用户: 修改系统登陆密码、修改个人联系方式、查询教授的课程、查询实验安排、增加课程信息、增加实验信息、按学号查询出勤率、按班级查询出勤率、导出查询到的数据记录

  • 管理员用户: 增加学生信息、修改学生信息、增加教师信息、修改教师信息、增加课程信息、修改课程信息,增加实验信息、修改实验信息,增加实验室信息、修改实验室信息,更新实验打卡信息

1.1.2 数据需求

系统涉及的数据表为8个表,管理员信息表(ADMINB)、教师表(JSB)、教师课程表(JSKCB)、课程表(KCB)、实验打卡表(SYDKB)、实验室表(SYSB)、实验信息表(SYXXB)、学生表(XSB)。

其中管理员信息表包含的基本属性为管理员用户名、登陆密码。教师表包含的几本书新为教师姓名、联系方式、登陆密码。教师课程表包含的基本属性为教师姓名、课程代码。课程表包含的基本属性为课程代码、课程名称、开课学院。实验打卡表包含的基本属性为实验编号、学生学号、打卡状态。实验室表包含的基本属性为实验中心、实验分室、上课地点。实验信息表包含的基本属性为实验编号、课程代码、实验项目、上课老师、辅助教师、上课日期、星期几、上课地点。学生表包含的基本属性为学号、姓名、班级、登陆密码。

1.1.3 性能需求

  • 要求系统在本地访问时数据具有可靠性、运行速度快,简单快捷

  • 要求系统能在多系统(Windows、Linux)、多终端(PC、手机)

1.2 设计目的

利用服务器和大容量存储等最新的硬件设备,以及数据库和网络技术所开发出的实验信息管理系统使用户能对大量的实验综合信息进行高效的管理。通过实验信息管理系统,信息录入、查询等原先繁复枯燥的工作的效率得到了显著的提升;更重要的是数据的准确性和安全性也同时得到了保证。

1.3 设计要求

不同类型的用户能够通过本系统使用不同的功能,对实验综合信息进行管理。

1.4 开发工具及相关技术

通过采用Microsoft SQL Server等大型关系型数据库,实验的各项数据的存储更为规范和完整。数据库技术也使得实验数据的备份和恢复变得简单便捷。而在硬件方面,采取RAID5等存储解决方案组成的磁盘阵列,以极低的存储成本极大的提高了数据的安全性。通过采用python平台开发,采用了基于B/S的三层开发结构(UI、BLL、DAL)。同时运用tkinter等GUI的最新技术,提供美观实用的系统界面和顺畅的用户体验。

2 总体设计

2.1 总体结构设计

为了满足实验综合信息管理系统各方面信息的管理功能,需要明确用户的各个功能。数据库中应该有教师、学生以及管理员的基本信息,这些来自于本系统。教师、学生只能在客户端进行操作。管理员可以使用管理端操作,修改、删除、增加教师、学生的信息。此类权限不对教师、学生用户开放。除此之外,还要通过登录名和密码严格限定登陆者的身份并且控制相应的操作权限,只有管理员有权限修改账户以及密码,防止其他密码泄露造成的其他问题。

2.1.1 模块设计

系统模块设计:

2.2.2 模块功能描述

“管理员用户”子系统针对管理员用户的日常工作流程,分为“学生管理”,“教师管理”,“课程管理”,“实验管理”,“实验室管理”等子模块。其模块具体功能描述如下:

  • “学生管理”模块: 该模块对学生信息进行维护,如对增加新入学学生的信息,为转专业学生更改班级信息,为改名学生更改姓名信息,删除退学、毕业学生信息,为忘记登陆密码的学生用户重新设置用户密码等

  • “教师管理”模块: 该模块对教师信息进行维护,如对增加新入职老师的信息,删除离职老师的信息,为忘记登陆密码的教师用户重新设置登陆密码等

  • “课程管理”模块: 该模块对课程信息进行维护,如对课程名称、开课学院等信息系的修改,增加新开设课程的信息

  • “实验管理”模块: 该模块对实验信息进行维护,如对实验下属各种信息的修改调整、增加新的实验信息、更新实验打卡信息等

  • “实验室管理”模块: 该模块对实验室信息进行维护,如对实验中心、实验分室、实验教师信息的修改、增加等

“教师用户”子系统针对教师用户的日常使用流程,分为“学生管理”模块,“课程管理”模块,“实验管理”模块、“个人管理”模块。其模块具体功能描述如下:

  • “学生管理”模块: 该模块对学生信息进行查询,如对班级整体实验打卡记录的查询,对指定具体学号的学生实验打卡记录的查询,对查询到的信息进行导出等

  • “课程管理”模块: 该模块对课程信息进行查询与维护,如将新教授的课程信息录入系统,查询正在教授的课程信息等

  • “实验管理”模块: 该模块对实验信息进行查询与维护,如查询已安排为授课教师的实验信息,添加新的实验信息等

  • “个人管理”模块: 该模块对教师个人信息进行维护,如修改自己的登陆密码、修改个人的联系方式等

“学生用户”子系统针对学生用户的日常使用流程,分为“个人管理”模块,“课程管理”模块,“实验管理”模块等。其模块具体功能描述如下:

  • “个人管理”模块: 该模块对学生用户个人信息进行维护,如修改自己的登陆密码等

  • “课程管理”模块: 该模块对课程信息进行查询,如查询自己选择的课程信息等

  • “实验管理”模块: 该模块对实验信息进行查询,如查询自己选择的课程所安排的实验信息等

2.2 数据库设计

2.2.1 概念结构设计

  • 管理员信息表(ADMINB) 主要用于在系统中储存管理员信息,包含了管理员的登陆ID、密码,其中登陆ID是主键

  • 教师表(JSB) 主要用于在系统中储存教师信息,包含了教师用户的姓名、密码、联系方式,其中姓名是主键。管理员用户可对该表进行维护

  • 教师课程表(JSKCB) 主要用于在系统中储存教师授课信息,包含了教师姓名、课程代码。管理员用户、教师用户可对该表进行维护

  • 课程表(KCB) 主要用于储存课程信息,包含了课程代码、开课学院、课程名称,其中课程代码是主键。管理员用户可对该表进行维护

  • 实验打卡表(SYDKB) 主要用于储存学生打卡信息,包含了实验编号,学生学号、打卡状态。管理员用户可对该表进行维护,教师用户可对该表进行查询

  • 实验室表(SYSB) 主要用于储存实验室信息,包含了实验中心、实验分室、实验教室,其中实验教室是主键。管理员用户可对该表进行维护

  • 实验信息表(SYXXB) 主要用于储存实验信息,包含了实验编号、课程代码、实验项目、上课老师、辅助教师、上课日期、星期几、上课地点,其中实验编号是主键。管理员用户、教师用户可对该表进行维护

  • 学生表(XSB) 主要用于储存学生信息,包含了学号、姓名、班级、登陆密码,其中学号是主键。管理员用户可对该表进行维护

系统E-R图

2.2.2 逻辑结构设计

根据E-R模型转换关系结构:

  • 教师实体集(JSB)可以转换化为关系:

教师用户(姓名,联系方式,登陆密码)

  • 管理员实体集(ADMINB)可以转化为关系:

管理员用户(登陆ID,密码)

  • 课程实体集(KCB)可以转化为关系:

课程(课程代码,开课学院,课程名称)

  • 实验室实体集(SYSB)可以转化为关系:

实验室(实验分室、实验中心、实验教室)

  • 实验信息实体集(SYXXB)可以转化为关系:

实验信息(实验编号、课程代码、实验项目、上课老师、辅助教师、上课日期、星期几)

  • 学生实体集(XSB)可以转换为关系:

学生(姓名、学号、班级)

  • 教师与课程之间是n:m的联系,可以转化为一个关系:

教师课程(JSKCB)(教师姓名、课程编号)

  • 学生与实验打卡信息之间是1:m的联系,可以对学生关系进行拓展,但由于打卡信息较多,进行扩展会导致数据库冗余信息较多,故单独转化为一个关系:

学生打卡(XSDKB)(学号、实验编号、打卡信息)

  • 实验室与实验信息之间是n:m的联系,可以对实验信息进行拓展,不必单独转为一个关系:

实验信息(实验编号、课程代码、实验项目、上课老师、辅助教师、上课日期、星期几、实验教室)

2.2.3 物理结构设计

教师表(JSB)

字段名称 数据类型 字段长度 是否为空 备注
姓名 varchar 20 No 主码
联系电话 varchar 20 Yes
登陆密码 varchar 255 Yes

教师课程表(JSKCB)

字段名称 数据类型 字段长度 是否为空 备注
课程代码 varchar 20 No
上课教师 varchar 20 No

课程表(KCB)

字段名称 数据类型 字段长度 是否为空 备注
课程代码 varchar 20 No 主码
开课学院 varchar 20 No
课程名称 varchar 255 No

**实验打卡表(SYDKB)

字段名称 数据类型 字段长度 是否为空 备注
实验编号 varchar 20 No
学号 varchar 20 No
实际上课时间 varchar 255 No
状态 varchar 255 No

实验室表(SYDKB)

字段名称 数据类型 字段长度 是否为空 备注
实验中心 varchar 255 No
实验分室 varchar 255 No
实验教室 varchar 255 No 主码

实验信息表(SYXXB)

字段名称 数据类型 字段长度 是否为空 备注
实验编号 varchar 255 No 主码
课程代码 varchar 255 No
实验项目 varchar 255 No
上课老师 varchar 255 No
辅助教师 varchar 255 Yes
上课日期 varchar 255 No
星期几 varchar 255 No
实验教室 varchar 255 No

学生表(XSB)

字段名称 数据类型 字段长度 是否为空 备注
姓名 varchar 20 No
学号 char 11 No 主码
班级 varchar 255 No
登陆密码 varchar 255 Yes

管理员表(XSB)

字段名称 数据类型 字段长度 是否为空 备注
登陆ID varchar 20 No 主码
登陆密码 varchar 255 No

3 详细设计

3.1 数据库的创建

python create database SYDK

3.2 表的创建

```python import pyodbc cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=SYDK;UID=sa;PWD=test') cursor = cnxn.cursor() cursor.execute(""" Create Table XSB ( 班级 varchar(20), 学号 char(11), 姓名 varchar(20), 登陆密码 varchar(255) ) """)#学生表

cursor.execute(""" Create Table KCB ( 课程代码 varchar(20), 课程名称 varchar(255), 开课学院 varchar(20) ) """)#课程表

cursor.execute(""" Create Table JSB ( 姓名 varchar(20), 联系电话 varchar(20), 登陆密码 varchar(255) ) """)#教师表

cursor.execute(""" Create Table SYXXB ( 实验编号 varchar(20), 课程代码 varchar(20), 实验项目 varchar(20), 上课老师 varchar(20), 辅助教师 varchar(20), 上课日期 varchar(255), 星期几 varchar(20), 实验中心 varchar(255), 实验分室 varchar(255), 上课地点 varchar(255) ) """)#实验信息表

cursor.execute(""" Create Table SYDKB ( 实验编号 varchar(20), 学号 varchar(20), 实际上课时间 varchar(255), 状态 varchar(255) ) """)#实验打卡表

cursor.execute(""" Create Table SYSB ( 实验中心 varchar(255), 实验分室 varchar(255), 上课地点 varchar(255) ) """)#实验室表

cursor.execute(""" Create Table JSKCB ( 课程代码 varchar(20), 上课老师 varchar(20) ) """)#教师课程表

cursor.execute(""" Create Table ADMINB ( id varchar(20), password varchar(20) ) """)#管理员表

cursor.commit() cursor.close() ```

3.3 数据设定

本系统对接南京信息工程大学实践教学综合管理平台,通过访问平台接口,以正则表达式的方法,获取得到教师信息、学生信息、实验信息,从其内含的依赖关系衍生出实验打卡表,实验室表,课程表,教室课程表。同时,管理员用户通过本系统,也可调用该程式对数据库中信息进行维护工作。核心代码如下:

python cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=SYDK;UID=sa;PWD=test') cursor = cnxn.cursor() cursor.execute("SELECT * FROM SYXXB WHERE 实验编号="+str(i)) row = cursor.fetchall() print(i) if (len(row)!=0): cursor.close() continue url="http://sjjx.nuist.edu.cn/syjx/admin/experiment/looksyzx.aspx?type=kb&id="+str(i) try: req=urllib.request.Request(url) resp=urllib.request.urlopen(req) except: print("oppops") continue data=resp.read().decode('GBK') w1='<td width=\'610\' height=\'25\' style=\'padding-left:5px;\'>' w2='</td></tr>' pat=re.compile(w1+'(.*?)'+w2,re.S) sybz=pat.findall(data) if(len(sybz)==0): continue del(sybz[9]) w1='<td height=\'25\' style=\'padding-left:5px; width: 82px;\'>' w2='</td>' pat2=re.compile(w1+'(.*?)'+w2,re.S) syb=pat2.findall(data) del(syb[9]) for j in range(0,len(syb)): print (syb[j]+':'+sybz[j]) if(sybz[4].find("(")!=-1): tmp=sybz[4] tmp=tmp[0:tmp.find("(")] sybz[4]=tmp print(sybz[4]) print(sybz[5]) w1='<td align=\'center\'>' w2='</td>' pat3=re.compile(w1+'(.*?)'+w2,re.S) xsbz=pat3.findall(data) cursor.execute("SELECT * FROM JSB WHERE 姓名=\'"+sybz[4]+"\'") row = cursor.fetchall() if (len(row)==0): cursor.execute("insert into JSB values ("+"\'"+sybz[4]+"\'"+",\'"+sybz[5]+"\'"+",\'\')") cursor.execute("SELECT * FROM KCB WHERE 课程代码="+sybz[0]) cursor.commit(); cursor.close();

3.4 模块设定

3.4.1 登陆模块

本模块供不同类型的用户登陆使用,通过单选框的选择,可以选择登陆的用户类型,输入账号密码后,登陆本系统。系统访问数据库判断密码情况,若密码错误则无法成功登陆,访问请求被系统拒绝,若密码正确则进入对应的综合管理模块。

其核心代码如下:

python from tkinter import * from CoCenter import * import tkinter.messagebox class LoginFrame (Frame): def __init__(self,master): def ButtonClick(self): s1 = self.ent1.get() s2 = self.ent2.get() if(self.v.get() == 0): self.login(s1,s2,"XSB","学号") elif(self.v.get() == 1): self.login(s1,s2,"JSB","姓名") elif(self.v.get() == 2): self.login(s1,s2,"admin") else: showinfo(title = '错误', message = '未选择登陆方式!') def login(self,name,pwd,tbname="XSB",ab="学号"): if(tbname=="admin"): import pyodbc cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=SYDK;UID=sa;PWD=test') cursor = cnxn.cursor() cursor.execute("SELECT password FROM ADMINB WHERE id =\'" +name+"\'") row = cursor.fetchall() cursor.close() if(len(row)==0): tkinter.messagebox.showinfo(title = '错误', message = '用户名不存在') else: if(getVal(str(row[0]))==pwd): tkinter.messagebox.showinfo(title = '成功', message = '登陆成功')

3.4.2 综合管理模块

学生用户管理模块

学生用户登陆成功后,则可以进入学生用户管理模块,通过点击学生用户管理模块上的按钮,可以调用相应的信息维护模块。

其核心代码如下:

python self.button=tk.Button(frame,text = "更改登陆密码",pady=10,command = self.XSinfoUpdate) self.button.grid(row = 0,column = 0,padx=10) self.button1=tk.Button(frame,text = "查询个人选课",pady=10,command = self.XSCrouseQry) self.button1.grid(row = 0,column = 1,padx=10,pady=15) self.button2=tk.Button(frame,text = "查询实验课表",pady=10,command = self.XSCrouseQry2) self.button2.grid(row = 0,column = 2,padx=10) self.geometry('310x80')

教师用户管理模块

教师用户登陆成功后,则可以进入教师用户管理模块,通过点击教师用户管理模块上的按钮,可以调用相应的信息维护模块。

其核心代码如下:

python self.button=tk.Button(frame, text = "更改个人信息",pady=10,command = self.JSinfoUpdate) self.button.grid(row = 0,column = 0,padx=10,pady=10) self.button1=tk.Button(frame,text = "更改登陆密码",pady=10,command = self.JSPwdUpdate) self.button1.grid(row = 0,column = 1) self.button2=tk.Button(frame,text = "查询所教课程",pady=10,command = self.JSCrouseQry) self.button2.grid(row = 1,column = 0,padx=10,pady=10) self.button3=tk.Button(frame,text = "查询实验信息",pady=10,command = self.JSExpQry) self.button3.grid(row = 1,column = 1)

管理员用户管理模块

管理员用户登陆成功后,则可以进入管理员用户管理模块,通过点击管理员用户管理模块上的按钮,可以调用相应的信息维护模块。

其核心代码如下:

python self.button=tk.Button(frame,text = "添加学生信息",pady=10,command = self.AdStuAdd) self.button.grid(row = 0,column = 0,padx=10,pady=10) self.button1=tk.Button(frame,text = "修改学生信息",pady=10,command = self.AdStuUpdate) self.button1.grid(row = 0,column = 1,padx=10,pady=10) self.button2=tk.Button(frame,text = "添加教师信息",pady=10,command = self.AdJSAdd) self.button2.grid(row = 1,column = 0,padx=10,pady=10) self.button3=tk.Button(frame,text = "修改教师信息",pady=10,command = self.AdJSUpdate) self.button3.grid(row = 1,column = 1,padx=10,pady=10) self.button4=tk.Button(frame,text = "添加课程信息",pady=10,command = self.AdKCAdd) self.button4.grid(row = 2,column = 0,padx=10,pady=10) self.button5=tk.Button(frame,text = "修改课程信息",pady=10,command = self.AdKCUpdate) self.button5.grid(row = 2,column = 1,padx=10,pady=10) self.button6=tk.Button(frame,text = "添加实验信息",pady=10,command = self.AdExpAdd) self.button6.grid(row = 3,column = 0,padx=10,pady=10) self.button6=tk.Button(frame,text = "修改实验信息",pady=10,command = self.AdExpUpdate) self.button6.grid(row = 3,column = 1,padx=10,pady=10) self.button6=tk.Button(frame,text = "添加实验室信息",pady=10,command = self.AdExpPlaceAdd) self.button6.grid(row = 4,column = 0,padx=10,pady=10)

3.4.3 信息维护模块

用户信息维护模块

根据不同用户,调用不同的信息维护模块,具体描述如下:

学生用户调用本模块对登陆密码进行维护

其核心代码如下:

python Sql("EXEC XS_INFO_UPDATE \'"+self.name+"\',\'"+str(self.newp.get())+"\'",2) tk.messagebox.showinfo('提示','修改成功')

教师用户调用本模块对登陆密码、联系方式进行维护。

其核心代码如下:

python Sql("EXEC JS_PWD_UPDATE \'"+self.name+"\',\'"+str(self.newp.get())+"\'",2) tk.messagebox.showinfo('提示','修改成功')

管理员用户调用本模块对学生的所有属性、教师用户的所有属性进行维护。

其核心代码如下:

python if(self.element=="STUDENT"): if(self.flag=="ADD"): Sql("INSERT INTO XSB VALUES (\'"+str(self.clsname.get())+"\',\'"+str(self.id.get())+"\',\'"+str(self.name.get())+"\',\'"+str(self.pwd.get())+"\')",2) else: Sql("UPDATE XSB SET 班级=\'"+str(self.clsname.get())+"\',姓名=\'"+str(self.name.get())+ "\',登陆密码=\'"+str(self.pwd.get())+"\' \n WHERE 学号=\'"+str(self.id.get())+"\'",2) if(self.element=="TEACHER"): if(self.flag=="ADD"): Sql("INSERT INTO JSB VALUES (\'"+str(self.id.get())+"\',\'"+str(self.tel.get())+"\',\'"+str(self.pwd.get())+"\')",2) else: Sql("UPDATE JSB SET 联系电话=\'"+str(self.tel.get())+ "\',登陆密码=\'"+str(self.pwd.get())+"\' \n WHERE 姓名=\'"+str(self.id.get())+"\'",2)

课程信息维护模块

不同用户对于课程信息维护模块具有不同的权限,具体如下:

学生用户具有对课程信息的查询权限,对于查询到的课程信息,学生用户可以选择是否导出为excel表格形式:

其核心代码如下:

python row=Sql("EXEC XS_Course_Qry1 \'"+ self.stuid+"\'",1) table=PrettyTable(["课程代码","课程名称","开课学院"]) row1=getVal(row) for i in range(0,int(len(row1)/3)): table.add_row([row1[i*3],row1[i*3+1],row1[i*3+2]]) tk.messagebox.showinfo(title = '课程', message = table) a=tk.messagebox.askokcancel('提示', '是否导出选课表')

教师用户具有对课程信息的查询、创建权限,对于查询到的课程信息,教师用户可以选择是否导出为excel表格形式:

核心代码如下:

python row=Sql("EXEC JS_Course_Qry \'"+ self.stuid+"\'",1) table=PrettyTable(["课程代码","课程名称","开课学院"]) row1=getVal(row) for i in range(0,int(len(row1)/3)): table.add_row([row1[i*3],row1[i*3+1],row1[i*3+2]]) tk.messagebox.showinfo(title = '课程', message = table)

管理用户具有对课程信息的所有权限:

其核心代码如下:

python if(self.element=="CROUSE"): if(self.flag=="ADD"): Sql("INSERT INTO KCB VALUES (\'"+str(self.id.get())+"\',\'"+str(self.name.get())+"\',\'"+str(self.inst.get())+"\')",2) elif(self.flag=="UPDATE"): Sql("UPDATE KCB SET 开课学院=\'"+str(self.inst.get())+ "\',课程名称=\'"+str(self.name.get())+"\' \n WHERE 课程代码=\'"+str(self.id.get())+"\'",2) else: Sql("INSERT INTO KCB VALUES (\'"+str(self.id.get())+"\',\'"+str(self.name.get())+"\',\'"+str(self.inst.get())+"\')",2) tmp=str(self.flag).split("2") Sql("INSERT INTO JSKCB VALUES (\'"+str(self.id.get())+"\',\'"+str(tmp[1])+"\')",2)

实验信息维护模块

根据不同用户,调用不同的信息维护模块,具体描述如下:

学生用户对于实验信息具有查询权限,对于查询到的实验信息,可以选择是否导出为EXCEL表格

其核心代码如下:

python row =Sql("EXEC XS_Course_Qry2 \'"+ self.stuid+"\'",1) table=PrettyTable(["实验编号","课程代码","实验项目", "上课老师","辅助教师","上课日期","星期几", "实验中心","实验分室","上课地点"]) row1=getVal(row) for i in range(0,int(len(row1)/10)): table.add_row([row1[i*10],row1[i*10+1],row1[i*10+2], row1[i*10+3],row1[i*10+4],row1[i*10+5], row1[i*10+6],row1[i*10+7],row1[i*10+8],row1[i*10+9]]) tk.messagebox.showinfo(title = '课表', message = table) a=tk.messagebox.askokcancel('提示', '是否导出课表')

教师用户对于实验信息具有查询、修改权限,对于查询到的实验信息,可以导出为EXCEL表格

其核心代码如下:

python if(self.element=="EXP"): if(self.flag=="ADD"): Sql("INSERT INTO SYXXB VALUES (\'"+str(self.id.get())+"\',\'"+str(self.kcdm.get())+"\',\'"+str(self.syxm.get())+"\',\'"+str(self.skls.get())+"\',\'" +str(self.fzjs.get())+"\',\'"+str(self.skrq.get())+"\',\'"+str(self.xqj.get())+"\',\'"+str(self.syzx.get())+"\',\'"+str(self.syfs.get())+"\',\'"+str(self.skdd.get())+"\')",2) tk.messagebox.showinfo('提示','更新成功!')

同时,教师用户对于实验打卡信息具有查询权限,可以通过学生学号查询打卡信息,也可以通过所教班级查询打卡信息,并将打卡信息导出到EXCEL表格。

其核心代码如下:

python for i in range(0,len(row1)): if(len(row1[i])==11): row=Sql("EXEC JS_STU_QRY5 \'"+self.name+"\',\'"+row1[i]+"\'",1) if(len(row)==0): continue else: row=Sql(""" declare @f1 float declare @f2 float EXEC JS_STU_Qry2 \'"""+str(row1[i])+"\',\'"+self.name+"""\',@f1 output,@f2 output SELECT @f1,@f2""",1) row2=getVal(row) table.add_row([str(row1[i]),str(row2[0]),str(row2[1])]) tk.messagebox.showinfo(title = '查询结果', message =table)

管理员用户对于实验信息具有全部权限

核心代码如下:

python Sql("UPDATE SYXXB SET 课程代码=\'"+str(self.kcdm.get())+"\',实验项目=\'" +str(self.syxm.get())+"\',上课老师=\'" +str(self.skls.get())+"\',辅助教师=\'" +str(self.fzjs.get())+"\',上课日期=\'" +str(self.skrq.get())+"\',星期几=\'" +str(self.xqj.get())+"\',实验中心=\'" +str(self.syzx.get())+"\',实验分室=\'" +str(self.syfs.get())+"\',上课地点=\'" +str(self.skdd.get()) +"\' \n WHERE 实验编号=\'"+str(self.id.get())+"\'",2)

实验室信息维护模块

管理员用户对实验室信息具有全部权限

其核心代码如下:

python if(self.element=="EXPPLACE"): if(self.flag=="ADD"): Sql("INSERT INTO SYSB VALUES (\'"+str(self.syzx.get())+"\',\'"+str(self.syfs.get())+"\',\'"+str(self.skdd.get())+"\')",2) else: Sql("UPDATE SYSB SET 实验中心=\'"+str(self.syzx.get())+ "\',实验分室=\'"+str(self.syfs.get())+"\' \n WHERE 上课地点=\'"+str(self.skdd.get())+"\'",2)

4 总结

整个系统的设计过程对于我来说算是个学习、探索的过程,通过实践和对比别人开发程序的过程。在整个设计过程中,出现过很多的问题,很多繁琐的东西都需要反复的修改,主要是前期工作不彻底,对系统的需求分析的要求认识不够清楚,使得在后边的工作中不得不经常反复去修改。使我体会到设置中每一步的重要性。所以在分析一个问题时,我们需要站在一个有远见的高度。

虽然时间紧迫但我学会了很多,也感到自身知识的贫乏,希望在日后的努力中能做出更完善的系统。

参考文献

  • 基于SSH框架的实验室信息管理系统的设计与实现(西安电子科技大学·侯庭栋)
  • 基于Struct模式的实验室管理系统的设计与实现(大连理工大学·施瑛)
  • 实验课教学信息管理系统的设计与实现(吉林大学·胡洋)
  • 高校实验室教学管理系统的分析与设计(云南大学·谢金涛)
  • 虚实结合网络实验室管理系统的研究与实现(浙江大学·翁超平)
  • 实验课教学信息管理系统的设计与实现(吉林大学·胡洋)
  • 高校实验室综合信息管理系统研究与开发(大连海事大学·安生立)
  • 工程实验中心管理系统的研究与实现(河海大学·褚南峰)
  • 基于Struct模式的实验室管理系统的设计与实现(大连理工大学·施瑛)
  • 泰州学院实验室管理系统的设计与实现(电子科技大学·韩鑫)
  • 泰州学院实验室管理系统的设计与实现(电子科技大学·韩鑫)
  • 基于.NET技术的实验教学管理系统设计与实现(吉林大学·刘静)
  • 高校实验室综合信息管理系统研究与开发(大连海事大学·安生立)
  • 实验室管理信息系统的设计与实现(电子科技大学·钟仙)
  • 基于.NET技术的实验教学管理系统设计与实现(吉林大学·刘静)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码港湾 ,原文地址:https://m.bishedaima.com/yuanma/35294.html

相关推荐

  • 基于SpringBoot框架的精品在线试题库系统

    这是一套采用Java语言开发的高质量在线题库系统源代码,基于流行的SpringBoot框架构建,该项目融合了Vue技术,开发工具为Idea或Eclipse,此在线题库系统适用于毕业设计或课程实践项目
    2024年05月23日
    14 1 3
  • 基于python实现面部表情识别

    面部表情识别 练习技能: 爬虫 数据清洗 计算机视觉(图片基本处理,信息提取) 深度学习 图像识别技术文档 一
    2024年05月14日
    1 1 1
  • 基于JSP和MySQL的农产品销售管理系统

    基于JSP和MySQL的农产品销售管理系统 摘 要 本文论述了基于JAVA,Web的农产品销售管理系统开发的目的及意义,目的是为了农产品资源的合理利用和物资的充分交流
    2024年05月14日
    13 1 2
  • 基于ssm框架的会议室预约管理系统、javaweb+mysql+maven架构

    在当今信息化社会,会议室预约管理系统的需求日益显著,随着企业规模的扩大和工作方式的多样化,高效地利用会议资源成为组织管理的重要一环,本研究旨在设计并实现一个基于javaweb开发的会议室预约管理系统
    2024年05月07日
    14 1 4
  • 基于Java的图书借阅系统

    这是一个🔥🔥基于Java的图书借阅系统(swing程序+Mysql数据库)🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 Java借阅系统开发技术栈为SwingGUI项目
    2024年05月23日
    21 1 6
  • 基于JSP+Mysql的图书馆管理系统

    毕业论文绪论: 图书馆作为知识传承与文化积累的重要场所,在数字化时代扮演着更为关键的角色,基于 JSP+Mysql 的图书馆管理系统的研究与开发,旨在解决传统图书馆管理中存在的诸多问题
    2024年05月07日
    3 1 2
  • JSP+SQL服装销售系统

    JSP+SQL 服装销售系统 1 设计工具 Java 版本:1,8 数据库:MySQL 框架:Spring + Spring MVC + MyBatis 服务器:Tomcat 前端解析框架:Thymeleaf 开发工具:Idea 2017 版本管理工具:Maven 版本控制工具:GitHub 2 详细设计 数据字典 用户信息表 字段名 字段类型 是否可为空 备注 Id Int(11) 否 主键 Modify Datetime 是 修改时间 Username Varchar(50) 否 用户昵称 Phone Char(11) 否 用户手机号码 realName Varchar(20) 是 用户真实姓名 Clazz Varchar(20) 是 用户所在班级 Sno Char(12) 是 用户学号 Dormitory Varchar(20) 是 宿舍号 Gender Char(2) 是 性别 Createtime Datetime 是 创建时间 Avatar Varchar(200) 是 头像 用户密码表 字段名 字段类型 是否可为空 备注 Id Int 否 主键 Modify Datetime 是 修改时间 Password Varchar(24) 否 用户密码 Uid Int 否 用户 id 商品表 字段名 字段类型 是否可为空 备注 Id Int(11) 否 主键 Modify Datetime 是 修改时间 Name Varchar(50) 否 商品名称 Level Int 否 商品成色 Remark Varchar(255) 是 商品详细信息 Price Decimal(0
    2024年05月14日
    44 1 4
  • 基于Spring+SpringMVC+hibernate+MySQL实现的体检中心管理系统

    基于Spring+SpringMVC+hibernate+MySQL实现的体检中心管理系统 摘 要 随着人们生活水平的不断提高,人们的保健意识随之增强
    2024年05月14日
    1 1 1
  • 基于SpringBoot框架的毕业生实习与就业管理系统

    这是一份关于🌟🌟SpringBoot平台的毕业生实习与就业管理系统🌟🌟的原创源代码,采用Java编程语言,并结合了SpringBoot和Vue技术栈,开发工具为Idea或Eclipse
    2024年05月23日
    7 1 1
  • 基于javaweb的停车场管理系统源码

    随着城市化进程的加快和汽车保有量的不断增加,停车场管理系统成为城市交通管理的重要组成部分,基于JavaWeb的停车场管理系统源码的研究与开发,是针对当前停车场管理面临的诸多问题和挑战而展开的
    2024年05月07日
    5 1 1

发表回复

登录后才能评论