目录
I系统分析 (1)
I.1功能 (1)
I.2解决方案 (1)
II系统设计 (3)
II.1解决方案的概述 (3)
II.2主要代码模块 (4)
II.3数据库设计 (4)
III系统实现 (5)
III.1CSS&javascript (5)
III.2数据库实现 (10)
III.3PHP&功能模块实现 (27)
- I -
I系统分析
I.1功能
◆创建实验课程
◆创建实验项目
◆学生数据维护
◆上传教学文档
◆批阅实验报告
◆修改密码
◆找回密码
◆提交实验报告
◆教师信息维护
I.2解决方案
?用户识别和个性化设置
我们希望用户和一些个性化信息联系在一起,将登陆名,密码和邮箱联系在一起,放入一个表中,验证的时候用它做比较。
实现如下功能:
?用户有一个唯一的用户名,密码和邮箱地址。限制用户名和密码的长度和格
式,密码要加密。
?用户可通过资料完善填充详细的个人信息
?用户可以修改密码
?用户可以找回密码。方法是管理员将用户密码发送至用户邮箱
?用户完成登陆访问后可以登出
?网站能够检测用户是否登陆,并未登陆用户访问数据
?实验课程和实验项目的创建
实验课程和实验项目因为各自有其不同的参数而分别建表。由于都是相同的创建功能,所以解决方案一致,且均为教师权限下。
实现如下功能:
?用户可以浏览已建成的课程和项目
?用户可以根据需要修改课程和项目的数据
?用户可以创建新的课程和项目
1
大连理工大学专业学位硕士学位论文
2
?用户可以删除已过期的课程和项目
要为以上每个功能编写函数
?教师维护学生数据
在创建了实验课程的基础上,教师维护学生数据。学生数据存在于学生信息表,可通过功能操作从而间接修改数据库数据。
实现如下功能:
?教师可导入对应学生名单
?教师可查看已导入的学生名单
?教师可以删除被选中的学生名单
?教师可以修改被选中的学生名单
要为以上每个功能编写函数
?教学文档上传和实验报告提交
教学文档和实验报告因为各自有其不同的参数而分别建表。由于都是相同的提交(上传),所以解决方案一致。
实现如下功能:
用户可以浏览已上传的教学文档和实验报告(仅限教师)
?用户可以上传新建的教学文档和实验报告
?用户可以删除自己上传的教学文档和实验报告
要为以上每个功能编写函数
?实验报告批阅
由于实验报告批阅涉及到日期问题和回复问题,所以单独创建报告批阅表。
实现如下功能:
?教师可以浏览所负责项目的已上传的实验报告
?教师可以批阅已上传且未批阅的实验报告
要为以上每个功能编写函数
?管理员维护教师信息
为了便于维护,创建教师信息表
实现如下功能:
?管理员可以对教师信息进行增删改查
要为以上各个功能编写函数
II系统设计
II.1解决方案的概述
系统流程图:
3
大连理工大学专业学位硕士学位论文
4
II.2 主要代码模块
● 登陆页面
● 框架结构
● 链接页面
● 主框架页面
● 创建实验课程
● 显示已创建的实验项目
● 修改某实验项目,并跳转到显示页面
● 删除某实验项目,并跳转到显示页面
● 验证角色登陆
● 修改教师密码
● 显示学生查看实验报告信息
● 删除学生
● 显示学生提交的报告
● 检查提交的报告
II.3 数据库设计
数据库环境说明
考虑该系统的定位与现有技术力量,决定采用oracle 作为系统的后台数据库开发环
境。
数据库设计说明
根据实验系统的要求以及功能模块实现的需要,现设计数据库如下
III系统实现
III.1CSS&javascript
CSS
这一部分主要是页面布局,所以主要的部分是一些静态网页,详见代码,以下为部分css,大部分css 为内置的。为演示我们在“3.3 功能模块实现”贴出的截图和“2.2 主要代码模块”贴出的部分静态页面代码。
/* CSS Document */
/**************/
/* */
/* CSS for HTML */
/* */
/**************/
body
{
font-family: "新宋体";
font-size: medium;
}
table1
{
width:100%;
height: 475px;
}
table1
{
width: 100%;
}
tr{ }
td
5
大连理工大学专业学位硕士学位论文
{
width:25%;
padding:3px;
/*border:solid 1px red;*/
}
font1
{
font-size: 14px;
color: #000000;
}
font2
{
color: #000000;
font-size:+3;
}
https://www.doczj.com/doc/f45832649.html,bel
{
width:20%;
text-align: center;
}
https://www.doczj.com/doc/f45832649.html,bel2
{
width:15%;
text-align:right;
}
https://www.doczj.com/doc/f45832649.html,bel3
{
width:10%;
text-align:right;
}
https://www.doczj.com/doc/f45832649.html,bel4
{
width:5%;
text-align:right;
}
td.text
{
6
width:30%;
text-align:left;
}
td.text2
{
width:10%;
text-align:left;
}
td.text3
{
width:20%;
text-align:left;
}
td.text4
{
width:25%;
text-align:left;
}
td.button
{
padding-top:30px;
padding-bottom:30px;
text-align:center;
}
td.button2
{
text-align:center;
}
.title1
{
font-size:150%;
font-weight:bold;
color:Blue;
text-align:center;
7
大连理工大学专业学位硕士学位论文
8 padding:40px;
}
.title2
{
font-size:120%;
font-weight:bold;
color:White;
/*background-color:#ffffbb;*/
background-color:#87CEFA;
text-align:left;
}
.title3
{
width:15%;
color:Blue;
text-align:center
}
/******************/
/* */ /* CSS for Controlers */
/* */ /******************/
.input_text
{
font-family: "新宋体";
width:80px;
}
.input_button
{
width:50px;
}
.FileUpload
{
font-family:微软雅黑;
}
Javascript
这一部分主要是页面布局,所以主要的部分是一些静态网页,详见代码,以下为部分JavaScript大部分JavaScript为内置的。为演示我们在“3.3 功能模块实现”贴出部分代码和截图。
1、显示上传文件控件
function myfunction1()
{
document.all["File1"].style.visibility = "visible";
}
2、加载页面时隐藏上传文件控件
window.onload=function myfunction2()
{
document.all["File1"].style.visibility = "hidden";
}
3、提示信息:通过参数Warning传递要提示的信息
function disp_confirm(warning)
{
Var warn=warning;
Var r=confirm(warn)
4、返回今天日期
document.write(Date())
5、Email验证
function validate_email(field,alerttxt)
{
with (field)
{
apos=value.indexOf("@")
dotpos=https://www.doczj.com/doc/f45832649.html,stIndexOf(".")
9
大连理工大学专业学位硕士学位论文
if (apos<1||dotpos-apos<2)
{alert(alerttxt);return false}
else {return true}
}
}
function validate_form(thisform)
{
with (thisform)
{
if (validate_email(email,"Not a valid e-mail address!")==false) {email.focus();return false}
}
}
6、异常错误处理
onerror=handleErr
var txt=""
function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n"
txt+="Error: " + msg + "\n"
txt+="URL: " + url + "\n"
txt+="Line: " + l + "\n\n"
txt+="Click OK to continue.\n\n"
alert(txt)
return true
}
function message()
{
adddlert("Welcome guest!")
}
III.2数据库实现
表1:Administrator
10
●列名说明:
A_NAME:管理员姓名
A_PASSWORD:管理员密码
●建表脚本:
CREATE TABLE "ADMINISTRATOR"
( "A_NAME" NVARCHAR2(10) NOT NULL ENABLE,
"A_PASSWORD" CHAR(40) NOT NULL ENABLE,
CONSTRAINT "管理员姓名" PRIMARY KEY ("A_NAME") ENABLE
)
/
●该表数据:
●表约束条件:
表2:Course
11
大连理工大学专业学位硕士学位论文
●列名说明:
COURSEID:课程号
COURSENAME:课程名
CLASS:课程班级
CTYPEID:课程类型编号
CLASSHOUR:课程学时
DEPTID:开设院系编号
TOTALNUM:课容量
T_ID:授课教师编号
CREATETIME:创建时间
●建表脚本:
CREATE TABLE "COURSE"
( "COURSEID" NUMBER NOT NULL ENABLE,
"COURSENAME" VARCHAR2(20),
"CLASS" VARCHAR2(20),
"CTYPEID" NUMBER,
"CLASSHOUR" NUMBER,
"DEPTID" NUMBER,
"TOTALNUM" NUMBER,
"T_ID" NUMBER,
"CREATETIME" DATE,
CONSTRAINT "COURSEID" PRIMARY KEY ("COURSEID") ENABLE )
/
●该表数据:
12
13
● 表约束条件:
表3:
CType
● 列表说明:
CTYPEID :课程类型编号
CTYPENAME :课程类型名称
● 建表脚本:
CREATE TABLE "CTYPE"
( "CTYPEID" NUMBER NOT NULL ENABLE,
"CTYPENAME" VARCHAR2(50),
CONSTRAINT "课程类型" PRIMARY KEY ("CTYPEID") ENABLE
)
/
大连理工大学专业学位硕士学位论文
14 ● 该表数据:
● 表约束条件:
表4:
Dept
● 列表说明:
DEPT_ID :院系编号
DEPT_NAME :院系名称
● 建表脚本:
CREATE TABLE "DEPT"
( "DEPT_ID" NUMBER NOT NULL ENABLE,
"DEPT_NAME" VARCHAR2(50),
CONSTRAINT "DEPT_ID" PRIMARY KEY ("DEPT_ID") ENABLE
)
/
● 该表数据:
15
● 表约束条件:
表
5:Project
● 列表说明:
P_ID :项目编号
P_NAME :项目名称
COURSEID :课程编号
PCLASSHOUR :项目学时
R_ID :项目要求编号
PTYPEID :项目类型编号
PCREATETIME :项目创建时间
● 建表脚本:
CREATE TABLE "PROJECT"
( "P_NAME" VARCHAR2(50),
"COURSEID" NUMBER,
大连理工大学专业学位硕士学位论文
16
"PCLASSHOUR" NUMBER,
"P_ID" NUMBER NOT NULL ENABLE,
"R_ID" NUMBER,
"PTYPEID" NUMBER,
"PCREATETIME" DATE,
CONSTRAINT "P_ID" PRIMARY KEY ("P_ID") ENABLE )
/
●该表数据:
●表约束条件:
表6:
PType
●列表说明:
PTYPEID:项目类型编号
PTYPENAME:项目类型名称
●建表脚本:
CREATE TABLE "PTYPE"
( "PTYPEID" NUMBER NOT NULL ENABLE,
"PTYPENAME" VARCHAR2(50),
CONSTRAINT "项目类型" PRIMARY KEY ("PTYPEID") ENABLE
)
/
●该表数据:
●表约束条件:
表7:
Report
●列表说明:
RP_ID:报告编码
COURSEID:课程编号
P_ID:项目编号
17
大连理工大学专业学位硕士学位论文
18 RP_CONTENT :报告内容
S_ID :学号
● 建表脚本:
CREATE TABLE "REPORT"
( "COURSEID" NUMBER NOT NULL ENABLE,
"P_ID" NUMBER NOT NULL ENABLE,
"RP_ID" NUMBER NOT NULL ENABLE,
"RP_CONTENT" VARCHAR2(1000),
"S_ID" NUMBER NOT NULL ENABLE,
CONSTRAINT "RP_ID" PRIMARY KEY ("RP_ID") ENABLE
)
● 该表数据:
● 表约束条件:
表8:Request