基于SSH的网上选课系统.doc_第1页
基于SSH的网上选课系统.doc_第2页
基于SSH的网上选课系统.doc_第3页
基于SSH的网上选课系统.doc_第4页
基于SSH的网上选课系统.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

计算机科学技术系JavaEE框架技术项目报告题目 学生选课系统 姓名 学号 专业 计算机网络技术 班级 2010级3班 2012年6月15日一、 功能需求分析 随着在校大学生人数的不断增加,教务系统的数据量也不断的上涨。针对学生选课这一环节,过去的选课方法是采用人工的方法去管理文件档案,而这种管理方式存在许多的缺点:保密性差、效率低,另外时间一长,将会产生大量的文件和数据,这对于查找、更新和维护都会带来不少的困难。随着科学技术的不断提高,计算机已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,实用技术绝对选课信息进行管理,具有手工管理所无法比拟的优点。 本系统从学生网上自主选课以及教师的课程发布两个大方面进行了设计基本实现了查询个人信息、修改个人信息、查询所有课程、选课以及退课的功能。本程序前台采用Adobe Dreamweaver CS5进行页面制作,后台由Navicat Lite for MySQL数据库支持,实现动态网页的效果,达到对数据库的操作以完成使用的要求。二、 系统功能模块设计学生登录选课系统主页 课程信息管理个人信息管理 退选课程 选修课程查看个人信息修改个人信息所有课程信息查看选课信息三、 系统流程学生选课系统 登录 失 败 成 功 选课系统主页所有课程信息个人选课情况修改个人信息查看个人信息选课退选输入个人信息9选课成功 退选成功 修改成功退 出 系 统四、 数据库设计1. 数据库概念设计管理员实体对象管理员实体对象如图4.1所示:管理员登录号口令 图4.1 管理员实体对象图学生实体对象学生实体对象如图4.2所示: 照片备注总学分学号学 生专业ID出生时间性 别姓名图4.2 学生实体对象图 专业实体对象专业实体对象如图4.3所示: 专业辅导员人数专业名 图4.3 专业实体对象图课程实体对象课程实体对象如图4.4所示:课程号课 程学分课程名学时开学学期图4.4课程实体对象图学生-课程实体对象课程实体对象如图4.5所示:学号课程号 _ 图4.5学生-课程实体对象图2. 数据库逻辑设计 登录表 dlb表4.1 登录表列名描述数据类型可空默认值说明id标识int自增1主键,自增xh登录号char(6)无外键,xsb中的xhkl口令char(20)无学生表 xsb表4.2 学生表列名描述数据类型可空默认值说明XH学号Char(6)无XM姓名Char(8)无XB性别Bit无1:男,2:女CSSJ出生时间datetime无ZY_ID专业IDint无ZXF总学分int无BZ备注Varchar(200)无ZP照片mediumblob无专业表 zyb 表4.3 专业表列名描述数据类型可空默认值说明idIDint自增1主键zym专业名Char(12)无rs人数int0fdy辅导员Char(8)无课程表 kcb表4.4课程表列名描述数据类型可空默认值说明kch课程号Char(3)无主键kcm课程名Char(12)无kxxq开课学期smallint无1-8xs学时int0xf学分int0连接表 xs_kcb表4.5连接表列名描述数据类型可空默认值说明xh学号Char(6)主键kch课程号Char(3)主键五、 项目规范1. 项目名称:StudentCourse,中间不要加空格或其他字符,如:StudentCourse10231109352. 访问路径与项目名相同,如:http:/localhost:8080/StudentCourse1023110935/3. 包命名规范*.entity 实体类 *.biz 业务逻辑接口类 *.biz.impl 业务逻辑实现类 *.dao DAO接口类 *.dao.impl DAO实现类 *.web.action 各个Action类4. 尽量书写必要的文档和注释六、 系统实现1.给项目添加Hibernate支持,建立实体类及其所对应的映射文件右击项目名StudentCourse1023110701,选择【 MyEclipse】【Add Hibernate Capabilites】菜单项,出现如图6.1所示的对话框,选择Hibernate框架应用版本及所需要的类库。图6.1单击【Next】按钮,进入如图6.2所示页面。创建Hibernate配置文件hibernate.cfg.xml,将该文件放在src文件夹下。图6.2单击【Next】进入图6.3所示页面。指定hibernate数据库连接细节。图6.3单击【Next】。出现如图6.4所示页面。指定SessionFactory的位置以及类名。完成Hibernate的配置。图6.4 在Myeclipse的src下新建com.cyy.entity包,用于存放与数据库对应的Java类POJO。打开MyEclipse Database Explorer视图。打开之前的数据库连接,选择【XSCJ】 【TABLE】菜单项,右击相应表,选择【Hibernate Reverse Engineering】菜单项,启动Hibernate Reverse Engineering向导,完成从已有的数据库表生成对应的Java类和相应的配置文件。实体类以及相应的配置文件:登录表:Dlb.javapublic class Dlb implements java.io.Serializable private Integer id;private String xh;private String kl;中间省略set和get方法Dlb.hbm.xml 学生表:Xsb.javapublic class Xsb implements java.io.Serializable private String xh;private String xm;private String xb;private Timestamp cssj;private Integer zyId;private Integer zxf;private String bz;private String zp;private Zyb zyb;private Set kch=new HashSet(); 省略set和get方法Xsb.hbm.xml 课程表:Kcb.javapublic class Kcb implements java.io.Serializable private String kch;private String kcm;private Short kxxq;private Integer xs;private Integer xf;private Set xss=new HashSet();省略set和get方法Kcb.hbm.xml 专业表:Zyb.javapublic class Zyb implements java.io.Serializable private Integer id;private String zym;private Integer rs;private String fdy; 省略set和get方法Zyb.hbm.xml 2.DAO层的设计与实现2.1 DAO接口登录接口:DlDAO.javapublic interface DlDAO public Dlb checkLogin(String xh,String kl);学生接口:XsDAO.javapublic interface XsDAO public Xsb selestInfoByXh(String xh);public void updateInfo(Xsb x);课程接口:KcDAO.javapublic interface KcDAO public List getAll(); public Kcb getOneById(String kch);专业接口:ZyDAO.javapublic interface ZyDAO public Zyb getZyb(int id);public List getAll();2.2DAO实现类登录接口的实现类:DlDaoImpl.javapublic class DlDaoImpl implements DlDAO public Dlb checkLogin(String xh, String kl) Session session=HibernateSessionFactory.getSession(); Transaction tx=null; try tx=session.beginTransaction(); Query query=session.createQuery(from Dlb where xh= ? and kl=?); query.setParameter(0,xh); query.setParameter(1,kl); query.setMaxResults(1); Dlb dlb=(Dlb) query.uniqueResult(); mit(); if(dlb!=null) return dlb; return null; catch(Exception e) e.printStackTrace(); return null; 学生接口实现类:XsDaoImpl.javapublic class XsDaoImpl implements XsDAO public Xsb selestInfoByXh(String xh) Session session=HibernateSessionFactory.getSession(); Transaction tx=null; try tx=session.beginTransaction(); Query query=session.createQuery(from Xsb as x where x. xh=?); query.setParameter(0,xh); query.setMaxResults(1); Xsb x=(Xsb) query.uniqueResult(); return x; catch(Exception e) e.printStackTrace();return null; public void updateInfo(Xsb x) Session session=HibernateSessionFactory.getSession(); Transaction tx=null; try tx=session.beginTransaction(); session.update(x); mit(); HibernateSessionFactory.closeSession(); catch(Exception e) if(null!=tx) tx.rollback(); e.printStackTrace(); 课程接口实现类:KcDao.javapublic class KcDaoImpl implements KcDAO public List getAll() Session session=HibernateSessionFactory.getSession(); Transaction tx=null; try tx=session.beginTransaction(); List list=session.createQuery(from Kcb order by kch).list(); session.clear(); return list; catch(Exception e) e.printStackTrace(); return null; public Kcb getOneById(String kch) Session session=HibernateSessionFactory.getSession(); Transaction tx=null; try tx=session.beginTransaction(); Query query=session.createQuery(from Kcb where kch=?); query.setParameter(0,kch); query.setMaxResults(1); Kcb k=(Kcb) query.uniqueResult(); session.clear(); return k; catch(Exception e) e.printStackTrace(); return null; 专业接口实现类:ZyDaoImpl.javapublic class ZyDaoImpl implements ZyDAO public List getAll() try Session session=HibernateSessionFactory.getSession(); Transaction tx=session.beginTransaction(); List list=session.createQuery(from Zyb).list(); mit(); HibernateSessionFactory.closeSession(); return list; catch(Exception e) e.printStackTrace(); return null;public Zyb getZyb(int id) try Session session=HibernateSessionFactory.getSession(); Transaction tx=session.beginTransaction(); Query query=session.createQuery(from Zyb where id=?); query.setParameter(0,id); query.setMaxResults(1); Zyb zyb=(Zyb) query.uniqueResult(); mit(); HibernateSessionFactory.closeSession(); return zyb; catch(Exception e) e.printStackTrace(); return null;3. 添加struts支持右击项目,【 MyEclipse】 【Add Struts Capabilities】 ,进入如图6.5所示的页面。图6.5单击Next,如图6.6所示。图6.6完成添加struts支持的向导。 3.1 Action登录action LoginAction.javapublic class LoginAction extends ActionSupport private Dlb dlb;private DlDAO dldao;public DlDAO getDldao() return dldao;public void setDldao(DlDAO dldao) this.dldao = dldao;public Dlb getDlb() return dlb;public void setDlb(Dlb dlb) this.dlb = dlb; public String execute()throws Exception Dlb d=dldao.checkLogin(dlb.getXh(),dlb.getKl(); System.out.println(d); if(d!=null) Map session=ActionContext.getContext().getSession();session.put(user,d);return SUCCESS; else return ERROR; 获得学生当前个人信息 GetXsInfoAction.javapublic class GetXsInfoAction extends ActionSupport private XsDAO xsdao; private Xsb xs; private Kcb kc; private Zyb zyb;public XsDAO getXsdao() return xsdao;public void setXsdao(XsDAO xsdao) this.xsdao = xsdao;public Xsb getXs() return xs;public void setXs(Xsb xs) this.xs = xs;public Kcb getKc() return kc;public void setKc(Kcb kc) this.kc = kc;public Zyb getZyb() return zyb;public void setZyb(Zyb zyb) this.zyb = zyb;public String execute() throws Exception Map session=ActionContext.getContext().getSession();Dlb dlb=(Dlb) session.get(user);XsDAO xd=new XsDaoImpl();Xsb xs=xd.selestInfoByXh(dlb.getXh();Map request=(Map) ActionContext .getContext().get(request);request.put(xsinfo,xs);return SUCCESS; 修改学生信息 UpdateXsInfo.javapublic class UpdateXsInfoAction extends ActionSupport private Xsb xs;XsDAO xsdao; public XsDAO getXsdao() return xsdao;public void setXsdao(XsDAO xsdao) this.xsdao = xsdao;public Xsb getXs() return xs;public void setXs(Xsb xs) this.xs = xs; public String update()throws Exception Map session=ActionContext.getContext().getSession(); Dlb d=(Dlb) session.get(user); Xsb xsb=xsdao.selestInfoByXh(d.getXh(); xsb.setXm(xs.getXm(); System.out.println(xs.getXm(); xsb.setCssj(xs.getCssj(); xsb.setBz(xs.getBz(); xsb.setXb(xs.getXb(); xsdao.updateInfo(xsb); return SUCCESS; 获得学生选修的课程 GetXkAction.javapublic class GetXkAction extends ActionSupport XsDAO xsdao; public XsDAO getXsdao() return xsdao;public void setXsdao(XsDAO xsdao) this.xsdao = xsdao;public String getXKInfo()throws Exception Map session=ActionContext.getContext().getSession(); Dlb dlb=(Dlb) session.get(user); String xh=dlb.getXh(); Xsb xsb=xsdao.selestInfoByXh(xh); Set list=xsb.getKch(); System.out.println(list); Map request=(Map) ActionContext.getContext().get(request); request.put(list,list); return SUCCESS; 退选课程DeleteXkAction.javapublic class DeleteXkAction extends ActionSupport private Kcb kc;private XsDAO xsdao; public Kcb getKc() return kc;public void setKc(Kcb kc) this.kc = kc; private String kch; public String getKch() return kch;public void setKch(String kch) this.kch = kch;public XsDAO getXsdao() return xsdao;public void setXsdao(XsDAO xsdao) this.xsdao = xsdao;public String deleteKC() throws Exception Map session=ActionContext.getContext().getSession(); Map request=(Map) ActionContext.getContext().get(request); Dlb dlb=(Dlb) session.get(user); String xh=dlb.getXh(); Xsb s1=xsdao.selestInfoByXh(xh); Set list=s1.getKch(); System.out.println(list); Iterator it=list.iterator(); while(it.hasNext() Kcb kc=(Kcb) it.next(); if(kch.equals (kc.getKch() it.remove(); s1.setKch(list); request.put(list,list); xsdao.updateInfo(s1); return SUCCESS; 所有课程信息AllKcAction.javapublic class AllKcAction extends ActionSupport KcDAO kcdao;public String execute() throws Exception List list=kcdao.getAll();Map request=(Map) ActionContext.getContext().get(request);request.put(list,list);return SUCCESS;public KcDAO getKcdao() return kcdao;public void setKcdao(KcDAO kcdao) this.kcdao = kcdao;选定课程 SelectKcAction.javapub

温馨提示

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

评论

0/150

提交评论