基于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://bishedaima.com/yuanma/35294.html

相关推荐

  • jsp日记本系统、javaweb+mysql

    这是一个🔥🔥jsp日记本系统,javaweb+mysql🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 日记本系统开发技术栈为JSP项目,可以作为毕业设计课程设计作业基于jsp+servlet技术实现一个javaweb日记本系统
    2024年05月23日
    2 1 2
  • 基于springboot的自适应博客系统实现

    自适应博客系统在当今互联网时代具有重要意义,随着网络技术的发展,个人博客已成为人们分享知识,表达观点的重要平台,然而,现有的博客系统在适应不同设备和用户需求方面存在一定局限性
    2024年05月07日
    7 1 2
  • 基于jsp和mysql实现的个人博客系统

    基于jsp和mysql实现的个人博客系统 1,项目简介 1,1 项目概述 这是一个简单的个人博客系统,个人练手,完成会部署到云服务器作为记录自己生活学习的点点滴滴的一个工具
    2024年05月14日
    32 1 4
  • 基于Python的局域网五子棋

    基于Python的局域网五子棋 一, 概述 目的:本次课程设计是计算机网络原理课程之后的实践加强环节,通过本设计的训练使学生加深对网络协议的理解
    2024年05月14日
    4 1 2
  • 基于python socket 实现的聊天室

    基于python socket 实现的聊天室 聊天室 聊天室用 python socket 实现,socket 分为客户端和服务端 服务端使用 server_socket 监听请求
    2024年05月14日
    6 1 4
  • 模拟退火算法与遗传算法之Python

    实验一实验报告 模拟退火算法与遗传算法 一, 实验要求 模拟退火算法: 在 TSPLIB(http://comopt,ifi
    2024年05月14日
    3 1 1
  • 房屋租赁管理系统-javaweb

    基于 MVC 的房屋租赁系统的设计与实现 姓名:蔡文柳 学号:2017764321 ​ 摘 要 :房屋租赁管理系统与网络相结合
    2024年05月14日
    4 1 2
  • 科技星球-web作业

    科技星球 实验目的 1,科技星球项目的设计与实现; 实验环境 个人笔记本电脑,win10 操作系统,编译器为 IntelliJ IDEA 2020
    2024年05月14日
    9 1 1
  • 基于Python的图片及音频搜索引擎

    基于Python的图片及音频搜索引擎 在此次实验报告中将会分为五个部分进行单独分析,这五个部分分别是:爬虫,界面,文本搜索,图片搜索以及音频搜索, 一爬虫 1
    2024年05月14日
    3 1 1
  • 基于Java+SSM的论坛系统

    在当前信息时代,互联网已经成为人们获取信息,交流思想的重要平台之一,论坛系统作为互联网上的一种典型应用,具有着广泛的应用价值,基于Java+SSM的论坛系统是一种典型的网络应用
    2024年05月07日
    6 1 2

发表回复

登录后才能评论