当前位置:文档之家› 学生实训管理系统(DOC)

学生实训管理系统(DOC)

中北大学面向对象程序设计实训说明书学院、系:软件学院专业:软件工程学生班级:13140A01学生姓名:王一平学号:**********设计题目:学生实训管理系统起迄日期: 2015年6月29日- 2015年7月10日****:***2015 年 7月 8 日一、需求分析(1)、系统要求:实训学生信息、实训企业信息、实训课程、实训地点等信息的管理(录入、修改、删除等基本操作);能实现实训学生对实训企业的实训课程选择,某个企业的某门课程实训地点的管理(地点固定),选择结果的各种查询(按企业、学生、课程、地点等各种方式的查询) (2)、系统功能分析:二、概要设计(1)、概念模型:学生企业课程预定 课程查询 课程修改 信息浏览 课程添加 地点管理 课程修改 课程移除 人数设定课程查询 登陆企业宣传信息课程开始信息学生留言教师留言企 业企业编号企业名称 企业信息教 师教师号姓 名聘任任课课 程课程名开课地点开课时间学 生姓名性别专业年龄籍贯选课学生号课程号成绩人数统计表统计开课人数选课人数课程号学生留言表留言留言 教师留言表1 mnnnnn 1111 En关系模式:学生(学生号,姓名,性别,专业,年龄,籍贯, ...) 企业(企业编号,企业名称,企业信息, ...)课程(课程号,课程名,开课时间,开课教师,课程人数, ...) 教师(教师号,姓名,企业编号,课程号, ...) 学生留言(学生号,学生留言, ...) 教师留言(教师号,教师留言, ...)课程人数统计(课程号,课程人数,已选人数,...) 选课(学生号,课程号,成绩, ...)实训课程表(教师号,课程号,企业编号)三、详细设计(1)、数据流图:实训管理系统课程安排实训安排提供课程 学生选课课程信息 选课信息图1 学生实训系统的顶层数据流图1、课程安排2、实训安排提供课程信息选择课程 课程信息学生信息选课信息企业信息图2学生实训系统的1层数据流图(2)、数据字典:表1- student 学生表字段名称 含义说明 数据类型 长度 是否为空 备注 student_id 学生号 nvarchar 20 not 主码 student_name 姓名 nvarchar 20 not sex 性别 nvarchar 1 not dept 专业 nvarchar 20 not age 年龄 int 1 not homeland籍贯nvarchar20not1.1查询课程课程信息选课信息1.2课程添加1.3课程修改 删除地点管理图3 课程安排子系统的分层数据流图企业信息2.1课程查询课程信息2.2课程预定合法选课信息2.2选课修改图4实训安排系统的分层数据流图表2- company企业表表3- class课程表表4- teacher老师表表5- sc选课表表6- tc实训课程表表7-users用户登陆信息表四、编码实现(1)、所有文件VO类:Company.java、Course.java、Tc.java、Teacher.javaIDAO类:ICompanyDAO.java、ICourseDAO.java、ITcDAO.java、ITeacherDAO.java Proxy类:CompanyDAOProxy.java、CourseDAOProxy.java、TcDAOProxy.java、TeacherDAOProxy.javaImpl类:CompanyDAOImpl.java、CourseDAOImpl.java、TcDAOImpl.java、TeacherDAOImpl.javaServlet类:CompanyServlet.java、CourseServlet.java、TeacherServlet.java JSP文件:company_detailed.jsp、company_insert.html、company_list.jsp、company_update.jsp、course_insert.html、course_list.jsp、course_update.jsp、fun.js、teacher_insert.html、teacher_list.jsp、teacher_update.jsp、index.html、left.html、login.jsp(2)、具体代码(以部分企业功能为例)package com.dao.impl;import java.sql.*;import java.util.*;import com.dao.ITcDAO;import com.factory.DAOFactory;import com.vo.*;public class TcDAOImpl implements ITcDAO {private Connection conn=null;private PreparedStatement pstmt=null;public TcDAOImpl(Connection conn){this.conn=conn;}public boolean doCreate(Tc tc) throws Exception {boolean flag=false;String sql="{call inserttc (?,?,?)}";CallableStatement cs=null;cs=this.conn.prepareCall(sql);cs.setString(1, tc.getTeacher().getTeacher_id());cs.setString(2, tc.getCourse().getClass_id());cs.setString(3, tc.getCompany().getCompany_id());if(cs.executeUpdate()>0){flag=true;}return flag;}public boolean doUpdate(Tc tc) throws Exception {boolean flag=false;String sql="update tc set class_id=?,company_id=? where teacher_id=?";this.pstmt=this.conn.prepareStatement(sql);this.pstmt.setString(1, tc.getCourse().getClass_id());this.pstmt.setString(2, tc.getCompany().getCompany_id());this.pstmt.setString(3, tc.getTeacher().getTeacher_id());if(this.pstmt.executeUpdate()>0){flag=true;}return flag;}public boolean doDelete(String a,String b,String c) throws Exception {boolean flag=false;String sql="delete from tc where teacher_id=? and class_id=? and company_id=?";this.pstmt=this.conn.prepareStatement(sql);this.pstmt.setString(1,a);this.pstmt.setString(2,b);this.pstmt.setString(3,c);if(this.pstmt.executeUpdate()>0){flag=true;}return flag;}public List<Course> findAll(String companyId) throws Exception {List<Course> all=new ArrayList();ResultSet rs =null;String sql="select c.class_id, class_name, class_start, class_stop, class_place, te.teacher_name, pany_name,te.teacher_id,pany_id "+"from class c "+"left outer join tc t on(t.class_id=c.class_id) "+"left outer join teacher te on(te.teacher_id=t.teacher_id) "+"left outer join company com on(pany_id=pany_id) "+"where pany_id=?";this.pstmt=this.conn.prepareStatement(sql);this.pstmt.setString(1, companyId);rs = this.pstmt.executeQuery();while(rs.next()){Course course=new Course();course.setClass_id(rs.getString(1));course.setClass_name(rs.getString(2));course.setClass_start(rs.getDate(3));course.setClass_stop(rs.getDate(4));course.setClass_place(rs.getString(5));Teacher teacher=new Teacher();teacher.setTeacher_name(rs.getString(6));teacher.setTeacher_id(rs.getString(8));course.setTeacher(teacher);Company company=new Company();company.setCompany_name(rs.getString(7));company.setCompany_id(rs.getString(9));course.setCompany(company);all.add(course);}return all;}}package com.servlet;import java.io.IOException;import java.util.*;import javax.servlet.ServletException;import javax.servlet.http.*;import com.factory.DAOFactory;import com.vo.*;public class CompanyServlet extends HttpServlet { public CompanyServlet() {super();}public void destroy() {super.destroy();}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("gbk");String type=request.getParameter("type");if(!(type == null || "".equals(type))){if("insert".equals(type)){this.insert(request, response);}if("delete".equals(type)){this.delete(request, response);}if("updatepre".equals(type)){try {Company company = null;company = DAOFactory.getICompanyInstance().findById(request.getParameter("no"));request.setAttribute("company", company);} catch (Exception e) {}request.getRequestDispatcher("company_update.jsp").forward(request,response);}if("update".equals(type)){this.update(request, response);}if("listdetailed".equals(type)){this.listdetailed(request, response);}if("inserttc".equals(type)){this.inserttc(request, response);}if("deletetc".equals(type)){this.deletetc(request, response);}}}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}public void insert(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {List<String> info =new ArrayList();Company company=new Company();company.setCompany_id(request.getParameter("cno"));company.setCompany_name(request.getParameter("cname"));company.setCompany_info(request.getParameter("cinfo"));try {if(DAOFactory.getICompanyInstance().doCreate(company)){info.add("企业"+request.getParameter("cname")+"添加成功!");}else{info.add("企业"+request.getParameter("cname")+"添加失败!");}} catch (Exception e) {e.printStackTrace();}request.setAttribute("info", info);request.getRequestDispatcher("company_list.jsp").forward(request, response); }public void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {List<String> info =new ArrayList();try {if(DAOFactory.getICompanyInstance().doDelete(request.getParameter("no"))){ info.add("企业删除成功!");}else{info.add("企业删除失败!");}} catch (Exception e) {e.printStackTrace();}request.setAttribute("info", info);request.getRequestDispatcher("company_list.jsp").forward(request, response); }public void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {List<String> info =new ArrayList();Company company=new Company();company.setCompany_id(request.getParameter("cno"));company.setCompany_name(request.getParameter("cname"));company.setCompany_info(request.getParameter("cinfo"));try {if(DAOFactory.getICompanyInstance().doUpdate(company)){info.add("企业"+request.getParameter("cname")+"修改成功!");}else{info.add("企业"+request.getParameter("cname")+"修改失败!");}} catch (Exception e) {e.printStackTrace();}request.setAttribute("info", info);request.getRequestDispatcher("company_list.jsp").forward(request, response);}public List<Teacher> allteacher(HttpServletRequest request, HttpServletResponse response) throws Exception{List<Teacher> allteacher=DAOFactory.getITeacherInstance().findAll();return allteacher;}public List<Course> allcourse(HttpServletRequest request, HttpServletResponse response) throws Exception{List<Course> allcourse=DAOFactory.getICourseInstance().findAll();return allcourse;}public void listdetailed(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {try {List<Course> all=new ArrayList();all=DAOFactory.getITcInstance().findAll(request.getParameter("cId"));request.setAttribute("detailed",all);request.setAttribute("cId",request.getParameter("cId"));request.setAttribute("allteacher",this.allteacher(request, response));request.setAttribute("allcourse",this.allcourse(request, response));} catch (Exception e) {e.printStackTrace();}request.getRequestDispatcher("company_detailed.jsp").forward(request, response);}public void inserttc(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {List<String> info =new ArrayList();Tc tc=new Tc();Company com=new Company();com.setCompany_id(request.getParameter("cId"));tc.setCompany(com);Teacher teacher=new Teacher();teacher.setTeacher_id(request.getParameter("teacherId"));tc.setTeacher(teacher);Course course = new Course();course.setClass_id(request.getParameter("courseId"));tc.setCourse(course);try {if(DAOFactory.getITcInstance().doCreate(tc)){info.add("课程添加成功!");}else{info.add("课程添加失败!");}} catch (Exception e) {e.printStackTrace();}request.setAttribute("info", info);this.listdetailed(request, response);}public void deletetc(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {try {List<String> info =new ArrayList();if(DAOFactory.getITcInstance().doDelete(request.getParameter("teacherId"),request.getParam eter("courseId"),request.getParameter("cId"))){info.add("课程删除成功!");}else{info.add("课程删除失败!");}request.setAttribute("info", info);} catch (Exception e) {e.printStackTrace();}this.listdetailed(request, response);}}五、测试1、企业信息列表图5.1企业信息列表2、企业课程管理图5.2企业课程管理3、教师列表图5.3教师列表4、修改教师图5.4修改教师表成功5、添加课程图5.5添加课程界面图5.6添加课程成功六、心得体会通过本次面向对象实训,使我学会了在大一学习JAVA过程中没有理解的地方,同时,也将本学期JSP课程进行了巩固,进一步理解了B/S模式和MVC架构,知道了使用MVC模式可以讲显示层、控制层和模型层分离,减少的程序代码的冗余。

相关主题