主码 Pk 表2 学生信息表StuDetail的表结构 小数列 名 数据类型 宽度 空否 备 注 位 userID Char 10 N 学号 userSex Char 10 Y 性别 userMobil Char 30 Y 电话 userAddress Char 50 Y 地址 表3 教师表teacher的表结构 列 主码 数据类型 宽度 空否 备 注 名 Pk tId Char 10 N 编号 tName Char 20 Y 姓名 tPass Char 2 Y 密码 dId Char 20 Y 所在系号 表4 教师信息表teadetail的表结构 主列 名 数据类型 宽度 空否 备 注 码 Pk userID Char 10 N 学号 userSex Char 10 Y 性别 userAge Char 50 Y 电话 useredu Char 30 Y 学历 usertitle Char 30 Y 职称 usersch Char 30 Y 毕业院校 Char 50 Y Userhealth 健康状况 表5 课程信息表Course的表结构 列 主码 数据类型 宽度 空否 名 Pk cId Char 10 N coName Char 20 Y tId Char 10 Y credit Char 8 Y period Char 8 Y cPlace Char 10 Y cNumAll Char 4 Y cNum Char 4 Y dId Char 10 Y 表6 选课成绩表choosecourse的表结构 列 主码 数据类型 宽度 空否 名
备 注 课程号 课程名称 教师号 学分 学时 上课地点 总人数 已选人数 院系号 备 注 Char 5 N 课程代码 Char 3 N 学号 Decimal 5 Y 成绩 表7 教室信息表room的表结构 主码 列 名 数据类型 宽度 空否 备 注 roomname Char 10 N 教室名 Pk roomnum Char 10 N 容纳人数 roomtime Char 10 Y 空闲时间 Pk
表8 管理员表admin的表结构 主码 Pk 列 名 aId aPass 数据类型 宽度 空否 备 注 cId sId grade Char 10 N 管理员编号 Char 10 Y 管理员姓名 表9 院系表department的表结构 主列 名 数据类型 宽度 空否 备 注 码 Pk dId Char 10 N 院系号 dName Char 10 Y 院系名 下面在系统实施阶段就可以物理实现数据库了,本系统使用前面实验已经建好的服务器端SQL Server数据库—xuanke,具体创建方法见前面实验。
三.系统实现
本实验是用JSP结合数据库实现的,其中包含了三个主页面,一是学生登录页面,二是教师登录页面,三是管理员登录页面。其中每个页面中都会有菜单进行相应的操作。
JSP文件代表的操作
(1)主界面操作:
/登录界面(包含学生、教师、管理员三个选项) /密码验证 (2)学生选课
(a)学生选课界面:/菜单显示
/欢迎界面
(b)个人信息:/个人信息的页面显示 (c)密码修改:/在数据库中修改密码
/修改密码界面 /修改成功
(d)成绩查询:/相应课程的成绩查询 (e)选课:/所有课程显示
/在数据库中插入数据 /选课成功
(f)选课情况查询及退选:/选课情况查询
/数据库中删除选课记录 (g)注销: /注销 (3)教师管理
(a)教师管理界面:/菜单显示
/欢迎界面
(b)个人信息:/个人信息的页面显示 (c)密码修改:/在数据库中修改密码
/修改密码界面 /修改成功
(d)提交成绩:/选课学生信息显示 /在数据库中插入数据 (e)课程信息:/选课情况查询
(f)教室信息:/查看可用教室的空闲时间 (g)注销: /注销
数据库的连接
举例:验证用户类型和密码时的数据库连接
<%String name=(String)(\ String pass=(String)(\ String s=(String)(\ Connection conn=null; Statement stmt=null; ResultSet rs=null; String loginNum=\ (\ try { (\ conn=(\ if(\ { String sql=\* from student sPass='\ stmt=(); rs=(sql); if()) { loginNum=\ (\ (\ (name+\登陆成功,页面跳转........\ (\ }
where sId='\and else { (\用户名或密码有误..\ (\ } } if(\ { String sql=\* from teacher where tPass='\ stmt=(); rs=(sql); if()) { loginNum=\ (\ (\ (name+\登陆成功,页面跳转........\ (\ } else { (\用户名或密码有误..\ (\ } }
if(\ { String sql=\* from admin where aPass='\ stmt=(); rs=(sql); if()) { loginNum=\ (\ (\ (\管理员\登陆成功,页面跳转........\ (\ } else { (\用户名或密码有误..\ (\登陆页面\ } } }
tId='\aId='\and and catch(Exception e){(e);
00509F下图所示: