博主介绍:翰文编程 专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和课设项目实战、企业信息化系统建设,从业十八余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+题目解决方法案例 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
针对电子书包学习网站,分别对用户权限进行详细的调研和分析,总结出如下的需求信息:
(1)管理员功能模块:管理员是拥有系统后台所有模块的权限,其中包括:权限管理;用户管理;试题管理;试卷管理;资源管理;答题管理等系统全部功能的需求。
(2)普通用户功能模块:是根据实际情况具有用户登录,能够查看试题,查看试卷,进行试卷回答和成绩查看等部分功能。
根据模块化的设计思想,将本系统划为2个权限,每个权限具有不同的功能,本系统的功能结构图如图4.1所示。
编辑
图4.1 系统功能图
本系统根据需求分析可以得知系统包括权限的分配:有管理员、学生。下面详细介绍每个角色的详细功能:
管理员功能包括以下几个模块
(1)权限管理:对权限信息进行添加、删除、修改和查看
(2)用户管理:对用户信息进行添加、删除、修改和查看
(3)试题管理:对试题信息进行添加、删除、修改和查看
(4)试卷类型管理:对试卷类型信息进行添加、删除、修改和查看
(5)试卷管理:对试卷信息进行添加、删除、修改和查看
(6)卷管理:对卷信息进行添加、删除、修改和查看
(7)成绩管理:对成绩信息进行添加、删除、修改和查看
(8)答题管理:对答题信息进行添加、删除、修改和查看
(9)公告管理:对公告信息进行添加、删除、修改和查看
(10)资源管理:对资源信息进行添加、删除、修改和查看
(11)收藏管理:对收藏信息进行添加、删除、修改和查看
学生的功能包括以下几个方面
通过E-R图对系统的实体及实体之间的联系进行描述,可以直观的分析系统的数据情况。根据需求分析,电子书包学习网站设计的实体有权限实体,用户实体,试题实体,试卷类型实体,试卷实体,卷实体,成绩实体,答题实体,公告实体,资源实体,收藏实体,具体的E-R如图下所示:
编辑
图4.2 权限实体E-R图
编辑
图4.3 用户实体E-R图
编辑
图4.4 试题实体E-R图
编辑
图4.5 试卷类型实体E-R图
编辑
图4.6 试卷实体E-R图
编辑
图4.7 卷实体E-R图
编辑
图4.8 成绩实体E-R图
编辑
图4.9 答题实体E-R图
编辑
图4.10 公告实体E-R图
编辑
图4.11 资源实体E-R图
编辑
图4.12 收藏实体E-R图
编辑
图4.13 系统E-R图
表4.1 权限信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | qxid | INTEGER | 11 | 是 | 权限编号 |
2 | qx | VARCHAR | 40 | 否 | 权限 |
表4.2 用户信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | yhid | INTEGER | 11 | 是 | 用户编号 |
2 | yhm | VARCHAR | 40 | 否 | 用户名 |
3 | mm | VARCHAR | 40 | 否 | 密码 |
4 | xm | VARCHAR | 40 | 否 | 姓名 |
5 | qx | VARCHAR | 40 | 否 | 权限 |
表4.3 试题信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | stid | INTEGER | 11 | 是 | 试题编号 |
2 | st | VARCHAR | 40 | 否 | 试题 |
3 | ms | VARCHAR | 40 | 否 | 描述 |
4 | da | VARCHAR | 40 | 否 | 答案 |
5 | f | VARCHAR | 40 | 否 | 分 |
6 | lx | VARCHAR | 40 | 否 | 类型 |
7 | jx | VARCHAR | 40 | 否 | 解析 |
表4.4 试卷类型表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | sjlxid | INTEGER | 11 | 是 | 试卷类型编号 |
2 | sjlx | VARCHAR | 40 | 否 | 试卷类型 |
表4.5 试卷信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | sjid | INTEGER | 11 | 是 | 试卷编号 |
2 | sj | VARCHAR | 40 | 否 | 试卷 |
3 | sjlx | VARCHAR | 40 | 否 | 试卷类型 |
4 | nr | VARCHAR | 40 | 否 | 内容 |
5 | shijian | VARCHAR | 40 | 否 | 时间 |
表4.6 卷信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | jid | INTEGER | 11 | 是 | 卷编号 |
2 | sj | VARCHAR | 40 | 否 | 试卷 |
3 | st | VARCHAR | 40 | 否 | 试题 |
表4.7 成绩信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | cjid | INTEGER | 11 | 是 | 成绩编号 |
2 | sj | VARCHAR | 40 | 否 | 试卷 |
3 | yh | VARCHAR | 40 | 否 | 用户 |
4 | shijian | VARCHAR | 40 | 否 | 时间 |
5 | cj | VARCHAR | 40 | 否 | 成绩 |
表4.8 答题信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | dtid | INTEGER | 11 | 是 | 答题编号 |
2 | sj | VARCHAR | 40 | 否 | 试卷 |
3 | st | VARCHAR | 40 | 否 | 试题 |
4 | da | VARCHAR | 40 | 否 | 答案 |
5 | dc | VARCHAR | 40 | 否 | 对错 |
6 | sijian | VARCHAR | 40 | 否 | 时间 |
7 | yh | VARCHAR | 40 | 否 | 用户 |
表4.9 公告信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | ggid | INTEGER | 11 | 是 | 公告编号 |
2 | bt | VARCHAR | 40 | 否 | 标题 |
3 | nr | VARCHAR | 40 | 否 | 内容 |
4 | sj | VARCHAR | 40 | 否 | 时间 |
表4.10 资源信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | zyid | INTEGER | 11 | 是 | 资源编号 |
2 | bt | VARCHAR | 40 | 否 | 标题 |
3 | nr | VARCHAR | 40 | 否 | 内容 |
4 | tp | VARCHAR | 40 | 否 | 图片 |
5 | bz | VARCHAR | 40 | 否 | 备注 |
表4.11 收藏信息表
序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 |
1 | szid | INTEGER | 11 | 是 | 收藏编号 |
2 | zy | VARCHAR | 40 | 否 | 资源 |
3 | yh | VARCHAR | 40 | 否 | 用户 |
4 | szsj | VARCHAR | 40 | 否 | 收藏时间 |
1 权限信息表( 权限编号,权限 )
2 用户信息表( 用户编号,用户名,密码,姓名,权限 )
3 试题信息表( 试题编号,试题,描述,答案,分,类型,解析 )
4 试卷类型表( 试卷类型编号,试卷类型 )
5 试卷信息表( 试卷编号,试卷,试卷类型,内容,时间 )
6 卷信息表( 卷编号,试卷,试题 )
7 成绩信息表( 成绩编号,试卷,用户,时间,成绩 )
8 答题信息表( 答题编号,试卷,试题,答案,对错,时间,用户 )
9 公告信息表( 公告编号,标题,内容,时间 )
10 资源信息表( 资源编号,标题,内容,图片,备注 )
11 收藏信息表( 收藏编号,资源,用户,收藏时间 )
数据库设计的基本原则是在管理总体信息方案的指导下,数据库中的各个关系表应当为它所支持的管理目标服务,因此在设计数据库系统时,应当重点考虑以下几个因素[3]:
(1) 数据库必须层次分明,布局合理。
(2) 数据库必须高度结构化,保证数据的结构化,规范化和标准化,这是建立数据库和进行信息交换的基础。数据结构的设计应该遵循国家标准和行业标准,尤其要重视编码的应用。
(3) 在设计数据库的时候,一方面要尽可能地减小冗余度,减小存储空间的占用,降低数据一致性问题发生的可能性;另一方面,还要考虑适当的冗余,以提高运行速度和降低开发难度。
(4) 必须维护数据的正确性和一致性。在管理信息系统中,多个用户共享数据库,由于并发操作,可能影响数据的一致性。因此必须用“锁”等办法保证数据的一致性。
(5) 设定相应的安全机制,由于数据库的信息对特定的用户有特定的保密要求,安全机制必不可少。
系统管理员流程图如图13所示。
编辑
图5.1 管理员登录流程图
展现公告、资源信息,具体如下图展示
编辑
图5.2 首页信息
浏览资源信息,具体的信息如下图5.3所示:
编辑
图5.3 浏览资源信息
主要代码:
<table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#E7E7E7">
<tr>
<td height="134" align="center" bgcolor="#FFFFFF"><table border="0" cellpadding="0" cellspacing="0" width="100%" background="img/pattern.gif" style="border: 1px solid #C0C0C0">
<tr>
<td height="30" colspan="8"> </td>
</tr>
<tr>
<th>序号</th>
<th>标题</th>
<th>操作</th>
</tr>
<%
db.open();
sql="select * from ziyuan where 1=1";
int i=1;
rs=db.query(sql);
while(rs.next()){
%>
<tr>
<td class="list_data_text"><div align="center"><%=i%></div></td>
<td class="list_data_text"><div align="center"><%=rs.getString("bt")%></div></td>
<td><div align="center"><a href="aziyuan.jsp?keyid=<%=rs.getString("zyid")%>">详细</a></div></td>
</tr>
<%
i++;
}
%>
</table>
</td>
</tr>
用户进入网站,点击注册按钮,提示出现学号、姓名、密码等基本信息,用户对其进行填写后方可注册成功。具体详细情况如下图5.4所示:
编辑
图5.4 用户注册
主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.util.*"%>
<%
/*
用户添加后台
*/
DBO db=new DBO();
request.setCharacterEncoding("gb2312");
ResultSet rs=null;
String keyid =(String)request.getParameter("keyid");
String yhm=(String)request.getParameter("yhm");
String mm=(String)request.getParameter("mm");
String xm=(String)request.getParameter("xm");
String qx=(String)request.getParameter("qx");
String zcsj=StaticMethod.getStringDate();
String sql="";
;//用户SQL 语句
int row=1;
int a=0;
try{
sql="select count(1) as num from yonghu where yhm='"+yhm+"'";
rs=db.query(sql);
if(rs.next()){
a=rs.getInt("num");
}
if(a>0){
out.println("<script>");
out.println("alert('操作失败,用户名重复');");
out.println("window.location='reg.jsp'");
out.println("</script>");
return;
}
sql="insert into yonghu(yhm,mm,xm,qx) values('"+yhm+"','"+mm+"','"+xm+"','"+qx+"')";
//int row =0;
row=db.update(sql);
}catch(Exception e){
System.out.println(e.toString());}
if(row==1){
out.println("<script>");
out.println("alert('操作成功');");
out.println("window.location='gonggao.jsp'");
out.println("</script>");
}else{
out.println("<script>");
out.println("alert('操作失败');");
out.println("window.location='reg.jsp'");
out.println("</script>");
}
db.close();
%>
在线测试。此模块的设计如图5.5所示。
编辑
图5.5 在线测试信息
主要代码:
<td height="134" align="center" bgcolor="#FFFFFF"><table border="0" cellpadding="0" cellspacing="0" width="100%" background="img/pattern.gif" style="border: 1px solid #C0C0C0">
<tr>
<td height="30" colspan="8"> </td>
</tr>
<tr>
<th>序号</th>
<th>试卷</th>
<th>内容</th>
<th>时间</th>
<th>操作</th>
</tr>
<%
db.open();
sql="select * from shijuan where 1=1";
if(sjlx!=null){
sql+=" and sjlx in (select sjlx from sjlx where sjlxid='"+sjlx+"')";
}
rs=db.query(sql);
int i=1;
while(rs.next()){
%>
<tr>
<td class="list_data_text"><div align="center"><%=i%></div></td>
<td class="list_data_text"><div align="center"><%=rs.getString("sj")%></div></td>
<td class="list_data_text"><div align="center"><%=rs.getString("nr")%></div></td>
<td class="list_data_text"><div align="center"><%=rs.getString("shijian")%></div></td>
<td><div align="center"> <%
if(session.getAttribute("yhm")!=null){
%><a href="oneshijuan.jsp?keyid=<%=rs.getString("sjid")%>">测试</a><% }%></div></td>
</tr>
<%
i++;
}
%>
</table>
</td>
</tr>
输入网址,登录系统管理后台,输入管理员用户名和密码进行登录。
编辑
图5.6 管理员登录界面
主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<%@ page import="com.util.DBO"%>
<%
DBO db=new DBO();
request.setCharacterEncoding("gb2312");
String yhm=(String)request.getParameter("yhm");
String mm=(String)request.getParameter("mm");
String sql="";
sql="select * from yonghu where yhm='"+yhm+"' and mm='"+mm+"' and qx='管理员' ";
System.out.println("sql="+sql);
db.open();
ResultSet rs=db.query(sql);
out.println("<script>");
if(rs.next()){
session.setAttribute("yhm",rs.getString("yhm"));
session.setAttribute("mm",rs.getString("mm"));
session.setAttribute("qx",rs.getString("qx"));
out.println("alert('登录成功');");
out.println("window.location='index.jsp'");
}else{
out.println("alert('用户名或者密码错误');");
out.println("window.location='login.jsp'");
}
out.println("</script>");
%>
对系统内的用户信息进行管理,如图5.7所示:
编辑
图5.7 用户管理
主要代码:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.util.*"%>
<%
request.setCharacterEncoding("gb2312");//设置页面字符集
DBO db=new DBO();//初始链接数据库类
String sql="select * from yonghu where 1=1 ";//查询 用户sql语句
db.open();//打开数据库链接
ResultSet rs=db.query(sql);//查询结果
//用户信息列表
对试题信息管理,界面如下图5.8所示:
编辑
图5.8 试题管理
.大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者