衢州职业技术学院
Web应用实训 课程
实 训 设 计 报 告
设计题目: 学籍管理系统
专 业: 计算机网络技术
班级学号:
姓 名:
指导教师:
20##年6月
衢州职业技术学院
课程设计任务书
课题名称:学籍管理系统
设计内容:统要求管理员在使用过程中可以完成登录和检测的基本功能,并在成功登陆后可在此管理系统中的各种学籍信息完成查询,删除,添加,修改等功能。另外该系统分为管理员和学生的各种操作的功能,以用于对学生学籍的等方面信息的查询和处理。学籍管理系统要求具有安全性、可靠性、准确性、易于管理等优点。
技术条件或要求:要求有html基础,动态JSP页面的相关知识,数据库的相关知识,并熟悉链接数据库的技术。相关的必要的软件,如:JAVA环境 Dreamweaver 、Tomcat、等等。
引 言
学生学籍管理系统是每家院校都必有的系统,也是学生利用JAVA VB等语言学习制作动态网页的途径,不但要脱离仅仅依赖用户手工管理众多信息,其缺点众所周知,所以要向网络方向发展,一个比较全面而又方便的学籍管理系统是必不可少的,这样即实现对学生学籍的综合性管理又是用户更加方便的对学生信息的管理。
所以此次我们的课程设计就以学生学籍管理系统为实训项目,做一个简单的学生学籍管理系统 ,此次课程设计对用户和管理员实现的各种功能要求,使我们课程设计的依据和基础。
1.项目背景
项目名称:学籍管理系统
需求单位:暂无
开发单位:衢州职业技术学院10网络(1)班××开发小组
2.任务描述
目标
本系统要求管理员在使用过程中可以完成登录和检测的基本功能,并在成功登陆后可在此管理系统中的各种学籍信息完成查询,删除,添加,修改等功能。另外该系统分为管理员和学生的各种操作的功能,以用于对学生学籍的等方面信息的查询和处理。学籍管理系统要求具有安全性、可靠性、准确性、易于管理等优点。
3.可行性分析
3.1可行性研究的前提
学生学籍管理系统具有的功能:
登录:管理员和学生登录
添加:管理员的应用功能
删除:管理员的应用功能
查询:管理员和学生的应用功能
修改:管理员的应用功能
3.2技术可行性
本系统为一个简单的学生学籍管理系统,具有JSP语言基础知识.开发时所需的硬件设备和软件设备,其中计算机一台以便于编写代码。计算机的最低硬件设施为: 160G硬盘,1G内存,奔4处理器,显示器,键盘,鼠标等即基本输入/输出设备;计算机的基本软件设备:JSP语言开发工具及相关软件。
3.3经济可行性
由于一个小项目,并且所需工作全部由小组成员负担,只是为了实现相关功能,所以可以说是零费用。
3.4法律可行性
本系统由小组成员合作完成,使用时,不存在任何侵犯、妨碍和责任问题。
3.5社会可行性
学生学籍管理系统作为目前高校必不可少的系统,不但要脱离仅仅依赖用户手工管理而且也要向网络方向发展所以一个比较全面而方便的学籍管理系统是必不可少的。本软件符合国家制定的一切相关法律,不违反民间民俗传统习俗,顺应社会各项体制,安全,规范。能为社会带来经济利益,促进社会和谐发展。
需 求 分 析
该学生学籍管理系统主要是对全体学生的学籍信息的一个综合管理系统,主要是由管理员的管理模块构成,管理员登录后可以对信息进行增加、查询、修改和删除等几大功能。
建立的学生学籍管理系统满足以下功能:当管理员成功登陆后可以实现对学生的综合管理,能够实现系统提供的全部功能。管理员可根据需求对系统内信息进行更新与修改或删除,在系统出现错误后可以进行维护,保证系统的安全。学生登陆后可以对自己的相关信息进行查询但不能进行修改或删除等操作。
概 要 设 计
1. 功能要求:
注册:能实现管理员注册功能
登录:管理员登录和学生员登录,登录后进入各自的应用界面
添加:管理员的应用功能,可以实现对系统信息的添加
删除:管理员的应用功能,实现对信息的删除功能
查询:管理员和普通会员共有的的应用功能,通过查询可以筛选出所需要的信息
修改:管理员的应用功能,能对存在错误的信息等进行改正
2 功能结构图:
功能机构图定义了软件可实现的功能,使用户可以明确的了解该系统的功能。
4系统用例图:
系统用例图用一些图形符号和文字来直观的表达了系统所实现功能时,谁要访问系统,系统提供给每个角色的功能是什么,有助于查找遗漏的需求。
详 细 设 计
1.设计说明
1、建立数据库表如下:
Admin,users。
Admin:uname,uupass。
Users:uno,upass,type。
·所有工作分配
本小组所有内容分五大部分有所有成员加组长总五人每人各做一部分,我主要完成管理员对学生信息的增加的部分,由于时间和自身理解有限所以在完成内容方面主要实现了修改学生的各种信息,如:密码、学籍等信息的增加。
2、相关代码如下:
(1)添加页面updateuser.jsp的具体代码:
<%@ page language="java" import="java.util.*,dao.UsersDao,entity.Users" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'updateuser.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%String uno=request.getParameter("uno");
UsersDao userdao=new UsersDao();
Users users=userdao.selUserByname(uno);
%>
<form name="form1" method="post" action="updateUserok.jsp">
<table width="258" border="1">
<tr>
<td width="80">用户名</td>
<td width="223"><label>
<input name="uno" type="text" id="uno" size="8" readonly="true" value=<%=users.getUno() %>>
</label></td>
</tr>
<tr>
<td>密码</td>
<td><label>
<input name="upass" type="text" id="upass" size="6" value=<%=users.getUpass()%>>
</label></td>
</tr>
<tr>
<td>确认密码</td>
<td><label>
<input name="reupass" type="text" id="reupass" size="6" value=<%=users.getUpass()%> >
</label></td>
</tr>
<tr>
<td>类型</td>
<td><label>
<input name="utype" type="text" id="utype" size="6" readonly="true" value=<%=users.getUtype() %>>
</label></td>
</tr>
<tr>
<td colspan="2" align="center"> <label>
<input type="submit" name="Submit" value="修改">
</label>
<label>
<input type="submit" name="Submit2" value="取消">
</label></td>
</tr>
</table>
</form>
</body>
</html>
(2)修改完成处理的页面:
<%@ page language="java" import="java.util.*,dao.UsersDao,entity.Users" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'updateUserok.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<%String uno=request.getParameter("uno");
String upass=request.getParameter("upass");
String upassok=request.getParameter("reupass");
if(!upass.equals(upassok)){
out.print("密码不一致");
}else{
UsersDao userdao=new UsersDao();
int count=userdao.updateuser(uno,upass);
if(count==0){
out.print("修改失败");
}else{
Users users=userdao.selUserByname(uno);
%>
<table width="258" border="1">
<tr>
<td width="80">用户名</td>
<td width="223"><label>
<input name="uno" type="text" id="uno" size="8" readonly="true" value=<%=users.getUno() %>>
</label></td>
</tr>
<tr>
<td>密码</td>
<td><label>
<input name="upass" type="text" id="upass" size="6" value=<%=users.getUpass() %>>
</label></td>
</tr>
<tr>
<td>确认密码</td>
<td><label>
<input name="repass" type="text" id="repass" size="6" value=<%=users.getUpass() %> >
</label></td>
</tr>
<tr>
<td>类型</td>
<td><label>
<input name="utype" type="text" id="utype" size="6" readonly="true" value=<%=users.getUtype() %>>
</label></td>
</tr>
</table>
<%} }%>
</body>
</html>
(3)Dao层代码
1 .Conn.java :
package dao;
import java.sql.*;
publicclass Conn {
public Connection getCon(){
Connection con=null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
String path="d:\\score.mdb";
con=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+path);
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}
publicvoid closeCon
(Connection con,
Statement st,
ResultSet rs) throws SQLException {
if(rs!=null)rs.close();
if(st!=null)st.close();
if(con!=null)con.close();
}
}
2 .UsersDAO.java :
package dao;
import java.sql.*;
import java.util.ArrayList;
import entity.Users;
import dao.Non;
public class UsersDAO {
private Connection con = null;
private Statement st = null;
private ResultSet rs = null;
public Users selUserBynamepwd(String uname, String upass,String utype,String xueji) {
Users users=null;
Conn conn = new Conn();
con = conn.getCon();
try {
st = con.createStatement();
String sql = "select * from users where uno='"+uname+"' and upass='"+upass+"' and utype='"+utype+"'";
rs = st.executeQuery(sql);
if (rs.next()) {
users =new Users();
users.setUno(rs.getString("uno"));
users.setXueji(rs.getString("xueji"));
users.setUpass(rs.getString("upass"));
users.setUname(rs.getString("utype"));
}
conn.closeCon(con, st, rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return users;
}
publicint addUsers
(String uname, String upass,String xueji) {
int count = 0;
Conn conn=new Conn();
con=conn.getCon();
try {
st=con.createStatement();
String sql="insert into users(uno,upass,xueji) values('"+uname+"','"+upass+"','"+xueji+"')";
count=st.executeUpdate(sql);
conn.closeCon(con, st, rs);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return count;
}
(4)entity层
Users.java:
package entity;
publicclass Users {
private String uno;
private String uname;
private String upass;
private String utype;
private String xueji;
public String getUname() {
return uname;
}
publicvoid setUname(String uname) {
this.uname = uname;
}
public String getUno() {
return uno;
}
publicvoid setUno(String uno) {
this.uno = uno;
}
public String getUpass() {
return upass
}
publicvoid setUpass(String upass) {
this.upass = upass;
}
public String getUtype() {
return utype;
}
publicvoid setUtype(String utype) {
this.utype = utype;
}
public String getXueji() {
return xueji;
}
publicvoid setXueji(String xueji) {
this.xueji = xueji;
}
}
至此,我做的所有代码已经完成,其修改方面的功能都可实现。
总结
为期一周的实训已经悄然结束,我们虽有有在计算机房做,但是大部分内容都是在宿舍完成。其中乐趣也是不可言喻的。
学习使用了JSP,Servlet和JDBC整合开发应用的方法,学会了通过Myeclipse、TOMCAT和ACCESS数据库等软件来制作JSP页面,整个所有的页面都是有代码编写完成的,完成了页面的跳转和方法的调用,JDBC作为系统中的持久层的工具,完成了对数据库的全部操作。本系统有学生用户和管理员用户两类,这样既方便了学校对学生学籍的综合性的管理有满足了学生对自己信息的查询功能。
通过本次实训,我们制作小组成员也是努力做出自己的贡献,同时也是受益匪浅,不仅解决了制作过程中的遇到的各种困难,还对系统做出了创新性的改变。我们也漂亮的完成了老师对功能要求。最后,也锻炼了我们小组的团结能力和应变创新能力。同时,顺利的完成对整个系统制作。
衢州职业技术学院
实训课程成绩评定表