《J2EE应用实践教程》课程论文-学生信息管理系统.doc_第1页
《J2EE应用实践教程》课程论文-学生信息管理系统.doc_第2页
《J2EE应用实践教程》课程论文-学生信息管理系统.doc_第3页
《J2EE应用实践教程》课程论文-学生信息管理系统.doc_第4页
《J2EE应用实践教程》课程论文-学生信息管理系统.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

J2EE应用实践教程课程论文项目名称:学生信息管理系统指导老师:组员:完成时间:2011.12.25一、 需求分析在如今学校林立的社会,在我国教育事业蓬勃发展的现代化建设中,学校扮演着越来越重要的角色。要在激烈的社会竞争中赢下立足之地,就必须有强大的竞争力,包括硬件设施和软件设施。其中,软件设施是指的教育实力,而硬件设施指的是学校的各种设施。然而,有一个完整的学生信息管理系统,是一个学校硬件设施具有竞争力的最基本体现。所以,一个学校的管理,发展的好坏,很大程度上在于它的信息管理系统的好坏。在学生的信息系统中,主要应该有以下的这些功能:学生基本信息的查询,比如姓名,学号,生日等等基本信息。再者就是学生的一些基本的成绩查询,成绩录入,以及其他的一些信息的管理,比如辅修信息的管理,其基本模式和学生的基本信息管理模块大同小异。因为对于学生基本信息的管理,既要便于学校的管理,也要便于学生自己的查询,等等功能。所以,在设计学生基本信息管理系统的时候,要设置不同的权限。对于管理员,即教师的角度,要能够对学生基本信息有修改、录入、删除、查询功能;对于普通用户,即学生的角度,要有对本人的基本信息有查询,修改等基本功能。系统的所以用户都必须要通过系统所赋予的权限进行操作,所以要设置一个登录的功能,只有通过数据库的验证,才能进入系统进行相关的操作。所以我们设计的学生信息管理系统主要要能实现以下的功能:对于管理员(教师):对于普通用户(学生):二、 概要设计 1、数据库表的设计表一 学生分类表(degree)字段名别名数据类型主键是否重复NULL学生编号S_id自动编号否否学号S_noChar否否姓名S_nameChar否性别S_sexChar主修专业S_majorText否第二专业S_secondText表二 学生主修专业成绩表(firstgrade)字段名别名数据类型主键是否重复NULL学生编号S_id自动编号否否学号S_noChar否否姓名S_nameChar否课程号S_classnoChar成绩S_gradeFloat表三 学生第二专业成绩表(secondgrade)字段名别名数据类型主键是否重复NULL学生编号S_id自动编号否否学号S_noChar否否姓名S_nameChar否课程号S_classnoChar成绩S_gradeFloat表四 学生信息表(students)字段名别名数据类型主键是否重复NULL学生编号S_id自动编号否否照片S_photo.jpg学号S_noChar否否姓名S_nameChar否生日S_birthdayDate 性别S_sexChar主修专业S_majorText否表五用户表(管理登录用户的用户名和密码)(users)字段名别名数据类型主键是否重复Null用户类型U_typeChar否否用户idU_idChar否否用户密码U_pwdChar否否2、本系统所需实现的功能(1)实现用户登录的管理,即只有经过合法登录的用户才可进入该系统,进行相关的操作;(2)实现学生的基本信息管理,即学生信息的增、删、改、查;(3)实现学生的成绩管理 ;(4)实现学生的辅修信息管理。三、 具体分工模块一:登录、注销及全体布局情况(韦彩兰)模块二:学生基本信息(陈文荣)模块三:辅修信息(潘媛霞)模块四:登记成绩 (蒙思慧)四、 前置工作1、利用JDBC连接数据库:用access2003编写好数据库: 在本地数据源管理器处连接好本地数据源:利用JDBC技术编写一个连接数据库的类:package edu.sms.db;import java.sql.*;public class DbOperation Connection conn = null; /申明一个连接对象(全局)public DbOperation()try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);conn = DriverManager.getConnection(JDBC:ODBC:myJDBC); catch (Exception e) System.out.println(e.toString();public DbOperation(String dsn)try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);conn = DriverManager.getConnection(JDBC:ODBC: + dsn); catch (Exception e) System.out.println(e.toString();/* * 功能:关闭连接 */public void closeConn()conn = null;/* * 功能:执行查询 * param sql, 类型:String * return 类型:ResultSet 返回记录集对象 */public ResultSet query(String sql)ResultSet rs = null;Statement stmt = null;try stmt = conn.createStatement();rs = stmt.executeQuery(sql); catch (SQLException e) System.out.println(e.toString() + sql);finallystmt = null;return rs;/* * 功能:执行UpdateDeleteInsertCreate等数据库操作 * param sql, 类型:String * return 类型:int, 返回操作影响行数 */public int update(String sql)int re = -1;Statement stmt = null;try stmt = conn.createStatement();re = stmt.executeUpdate(sql); catch (SQLException e) System.out.println(e.toString() + sql);finallystmt = null;return re;2创建好实体类:package edu.sms.entity;public class StudentDegreeInfo private long s_id = 0;private String s_no = ;private String s_name = ;private String s_sex = ;private String s_major = ;private String s_second = ;public long getS_id() return s_id;public void setS_id(long sId) s_id = sId;public String getS_no() return s_no;public void setS_no(String sNo) s_no = sNo;public String getS_name() return s_name;public void setS_name(String sName) s_name = sName;public String getS_sex() return s_sex;public void setS_sex(String sSex) s_sex = sSex;public String getS_major() return s_major;public void setS_major(String sMajor) s_major = sMajor;public String getS_second() return s_second;public void setS_second(String sSecond) s_second = sSecond;package edu.sms.entity;public class StudentInfo private long s_id = 0;private String s_no = ;private String s_name = ;private String s_birthday = ;private String s_sex = ;private String s_major = ;private String s_photo = ;public String getS_photo() return s_photo;public void setS_photo(String sPhoto) s_photo = sPhoto;public long getS_id() return s_id;public void setS_id(long sId) s_id = sId;public String getS_no() return s_no;public void setS_no(String sNo) s_no = sNo;public String getS_name() return s_name;public void setS_name(String sName) s_name = sName;public String getS_birthday() return s_birthday;public void setS_birthday(String sBirthday) s_birthday = sBirthday;public String getS_sex() return s_sex;public void setS_sex(String sSex) s_sex = sSex;public String getS_major() return s_major;public void setS_major(String sMajor) s_major = sMajor;package edu.sms.entity;public class UserInfo String u_id; /帐号String u_pwd; /密码int u_type; /类型。普通用户:0;管理员:1;public UserInfo()public UserInfo(String u_id, String u_pwd, int u_type)this.u_id = u_id;this.u_pwd = u_pwd;this.u_type = u_type;public String getU_id() return u_id;public void setU_id(String uId) u_id = uId;public String getU_pwd() return u_pwd;public void setU_pwd(String uPwd) u_pwd = uPwd;public int getU_type() return u_type;public void setU_type(int uType) u_type = uType;3、创建好dao层类:package edu.sms.dao;import edu.sms.db.DbOperation;import edu.sms.entity.*;import java.util.*;import java.sql.*;public class DegreeInfoDAO DbOperation db = null;public DegreeInfoDAO()db = new DbOperation(studentJDBC);public ArrayList getDegreeInfo()ArrayList list = new ArrayList();String sql = select * from degree;ResultSet rs = db.query(sql);try while(rs.next()StudentDegreeInfo degreeInfo = new StudentDegreeInfo();degreeInfo.setS_id(rs.getInt(s_id);degreeInfo.setS_no(rs.getString(s_no);degreeInfo.setS_name(rs.getString(s_name);degreeInfo.setS_sex(rs.getString(s_sex);degreeInfo.setS_major(rs.getString(s_major);degreeInfo.setS_second(rs.getString(s_second);list.add(degreeInfo); catch (SQLException e) System.out.println(e.toString() + sql);return list;package edu.sms.dao;import edu.sms.db.DbOperation;import edu.sms.entity.*;import java.util.*;import java.sql.*;public class StudentInfoDAO DbOperation db = null;public StudentInfoDAO()db = new DbOperation(studentJDBC);public ArrayList getStudent()ArrayList list = new ArrayList();String sql = select * from students;ResultSet rs = db.query(sql);try while(rs.next()StudentInfo student = new StudentInfo();student.setS_id(rs.getInt(s_id);student.setS_photo(rs.getString(s_photo);student.setS_no(rs.getString(s_no);student.setS_name(rs.getString(s_name);student.setS_birthday(rs.getString(s_birthday);student.setS_sex(rs.getString(s_sex);student.setS_major(rs.getString(s_major);list.add(student); catch (SQLException e) System.out.println(e.toString() + sql);return list;public ArrayList getStudent(String condition, String keyword)ArrayList list = new ArrayList();String sql = select * from students;sql += where + condition + like % + keyword + %;ResultSet rs = db.query(sql);try while(rs.next()StudentInfo student = new StudentInfo();student.setS_id(rs.getInt(s_id);student.setS_photo(rs.getString(s_photo);student.setS_no(rs.getString(s_no);student.setS_name(rs.getString(s_name);student.setS_birthday(rs.getString(s_birthday);student.setS_sex(rs.getString(s_sex);student.setS_major(rs.getString(s_major);list.add(student); catch (SQLException e) System.out.println(e.toString() + sql);return list;public ArrayList getStudent(String start, String stop, String flag)/flag=s_birthday表示按照日期查询;ArrayList list = new ArrayList();String sql = select * from students;if(flag.equals(s_birthday)sql += where s_birthday between # + start + # and # + stop + #;elsereturn null;System.out.println(sql);ResultSet rs = db.query(sql);try while(rs.next()StudentInfo student= new StudentInfo();student.setS_id(rs.getInt(s_id);student.setS_photo(rs.getString(s_photo);student.setS_no(rs.getString(s_no);student.setS_name(rs.getString(s_name);student.setS_birthday(rs.getString(s_birthday);student.setS_sex(rs.getString(s_sex);student.setS_major(rs.getString(s_major);list.add(student); catch (SQLException e) System.out.println(e.toString() + sql);db.closeConn();return list;public int addStudent(StudentInfo s)int re = -1;String sql = insert into students(s_photo,s_no, s_name, s_birthday, s_sex, s_major) values(;sql += + s.getS_photo() + ,;sql += + s.getS_no() + ,;sql += + s.getS_name() + ,;sql += + s.getS_birthday() + ,;sql += + s.getS_sex() + ,;sql += + s.getS_major() + );System.out.println(sql);db.update(sql);/db.closeConn();return re;package edu.sms.dao;import java.sql.*;import edu.sms.entity.*;import edu.sms.db.*;import java.util.ArrayList;public class UserInfoDAO public boolean checkUser(UserInfo user)boolean result = false;String sql = select * from users where u_id = + user.getU_id() + ;DbOperation db = new DbOperation(studentJDBC);ResultSet rs = db.query(sql);try if(rs.next()if(rs.getString(u_pwd).equals(user.getU_pwd() & rs.getInt(u_type) = user.getU_type()result = true; catch (SQLException e) e.printStackTrace();System.out.println(UserInfoDAO: + sql);db.closeConn();return result;public ArrayList show()String sql = select * from users;DbOperation db = new DbOperation(studentJDBC);ResultSet rs = db.query(sql);ArrayList list = new ArrayList();try while(rs.next()UserInfo user = new UserInfo(rs.getString(u_id),rs.getString(u_pwd),rs.getInt(u_type);list.add(user); catch (SQLException e) e.printStackTrace();return list;五、 项目模块实施情况模块一:登录、注销及全体布局情况(韦彩兰)登录模块的详细设计:根据学生信息管理系统的需求分析,即登录的时候要根据所输入的基本信息查询相关权限,进入到不同的系统中,所以在数据库的设计时,除了要设计基本的账号,密码等基本信息以外,还要设计一个用于权限判断的字段,如:账户类型,当输入的账户类型为0时,进入管理员的权限系统。当输入的账户类型为1时,进入的是普通用户的权限系统。在权限判断之前,还要先实现登录的基本功能。对于登录的模块,设计在登录界面输入基本的账号信息之后,通过数据传输,将输入的数据与数据库中发的数据进行比较,如果数据库中存在这样的账户,就对输入账号进行权限判断,进入不同的系统。所以对登录系统的设计方案如下:所以登录模块的详细设计如下:1、写好登录界面,如图:2、编写DAO:主要是实现怎样对输入的账号信息进行判断,从数据库库中取出数据,与输入信息进行比较。为了实施功能的完整性,首先应该在登录界面判断所输入的信息是否符合系统的规定,包括数据类型是否符合、数据的大小是否在规定的范围,输入的大小区分等等。在就是从数据库中调出数据,当进行信息查询的时候会需要调出数据库中的数据信息在页面中。主要的函数编写如下:public class UserInfoDAO public boolean checkUser(UserInfo user)boolean result = false;String sql = select * from users where u_id = + user.getU_id() + ;DbOperation db = new DbOperation(studentJDBC);ResultSet rs = db.query(sql);try if(rs.next()if(rs.getString(u_pwd).equals(user.getU_pwd() & rs.getInt(u_type) = user.getU_type()result = true; catch (SQLException e) e.printStackTrace();System.out.println(UserInfoDAO: + sql);db.closeConn();return result;public ArrayList show()String sql = select * from users;DbOperation db = new DbOperation(studentJDBC);ResultSet rs = db.query(sql);ArrayList list = new ArrayList();try while(rs.next()UserInfo user = new UserInfo(rs.getString(u_id),rs.getString(u_pwd),rs.getInt(u_type);list.add(user); catch (SQLException e) e.printStackTrace();return list;3、编写sevelet:当先前的工作做好之后,就剩下应该的阶段。Sevelet主要是调用DAO等等函数判断用户输入的账号信息,以及权限判断等等功能的实现。Sevelet的主要代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setCharacterEncoding(GBK);response.setContentType(text/html);PrintWriter out = response.getWriter();request.setCharacterEncoding(GBK);String u_id = request.getParameter(u_id);String u_pwd = request.getParameter(u_pwd);int u_type = Integer.parseInt(request.getParameter(u_type);UserInfoDAO dao = new UserInfoDAO();UserInfo user = new UserInfo(u_id,u_pwd,u_type);HttpSession session = request.getSession();session.setAttribute(u_type, u_type);if(dao.checkUser(user)session.setAttribute(u_id, u_id);out.println(alert(欢迎光临,+u_id+ );location = ./teacher.jsp?u_type=+u_type+;);elsesession.setAttribute(u_id, null);out.println(alert(帐号或密码错误);location = ./login.jsp;);out.flush();out.close();在设计sevelet时,还要先设计好登录之后的页面,即teacher.jsp。teacher.jsp主要运用框架的结构设计。通过页面左边的超链接,分别跳到不同的信息管理界面。4、最后,要实现登出的功能,其实就是关闭页面,在跳到登录的初始界面。代码如下:alert(当前用户已注销!);location = login.jsp;模块二:学生基本信息(陈文荣)对于此模块,主要是实现学生基本信息的管理,此模块实现了学生信息的增、删、改、查的功能。查询某个学生的信息可按一下几种方式查询:1、 按学号查询; 结果显示:2、 按姓名查询;3、 按出生日期查询;4、 按性别查询;5、 按专业查询;6、 添加新同学:以上的查询功能主要是同过sql命令来完成的,主要在dao层处理,编码如下:StudentInfoDAO.javapublic class StudentInfoDAO DbOperation db = null;public StudentInfoDAO()db = new DbOperation(studentJDBC);public ArrayList getStudent()ArrayList list = new ArrayList();String sql = select * from students;ResultSet rs = db.query(sql);try while(rs.next()StudentInfo student = new StudentInfo();student.setS_id(rs.getInt(s_id);student.setS_photo(rs.getString(s_photo);student.setS_no(rs.getString(s_no);student.setS_name(rs.getString(s_name);student.setS_birthday(rs.getString(s_birthday);student.setS_sex(rs.getString(s_sex);student.setS_major(rs.getString(s_major);list.add(student); catch (SQLException e) System.out.println(e.toString() + sql);return list;public ArrayList getStudent(String condition, String keyword)ArrayList list = new ArrayList();String sql = select * from students;sql += where + condition + like % + keyword + %;ResultSet rs = db.query(sql);try while(rs.next()StudentInfo student = new StudentInfo();student.setS_id(rs.getInt(s_id);student.setS_photo(rs.getString(s_photo);student.setS_no(rs.getString(s_no);student.setS_name(rs.getString(s_name);student.setS_birthday(rs.getString(s_birthday);student.setS_sex(rs.getString(s_sex);student.setS_major(rs.getString(s_major);list.add(student); catch (SQLException e) System.out.println(e.toString() + sql);return list;public ArrayList getStudent(String start, String stop, String flag)/flag=s_birthday表示按照日期查询;ArrayList list = new ArrayList();String sql = select * from students;if(flag.equals(s_birthday)sql += where s_birthday between # + start + # and # + stop + #;elsereturn null;System.out.println(sql);ResultSet rs = db.query(sql);try while(rs.next()StudentInfo student= new StudentInfo();student.setS_id(rs.getInt(s_id);student.setS_photo(rs.getString(s_photo);student.setS_no(rs.getString(s_no);student.set

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论