您好,欢迎访问三七文档
课程设计报告一、课程设计任务完成学生选课管理系统的开发二、需求描述本系统是一个WEB版的小型的学生成绩管理系统,在本系统中,开发了一个面向管理员平台,对管理员提供的服务有增加学生、删除学生和修改学生、查询学生的服务,还有对成绩、增加、删除、查询的管理。三、系统总体设计1.系统架构设计(1)架构:单机(2)运行软件环境:windows10、jdk8.0、ApacheTomcat7.0、eclipseee(3)开发环境:硬件平台:CPU:2.60GHz内存:4gb以上软件平台:windows10、jdk1.8操作系统:Windows10数据库:Mysql5.7开发工具:Eclipseee2.功能模块设计学生成绩管理系统登录模块管理员登录模块成绩信息管理模块学生信息管理模块各模块功能:学生信息管理模块:管理员用于添加和删除、修改、查询学生信息的模块。成绩信息管理模块、用于对成绩的增加、删除、查询3.数据库设计(概要设计...)(1)E-R图(2)关系模式学生(学生学号,学生姓名,学生性别,所在班级,所在院系)班级(班级号,教师姓名,班级名)学生学生学号学生姓名课程选课所在班级学生院系学生性别学分课程编号课程名成绩课程(课程号,课程名,学分)选课(课程号,学生学号,课程名、成绩)院系(院系号,院系名)(3)数据库管理系统:MYSQL5.7(4)数据库命名test(5)数据库表students主要用来保存学生信息字段名数据类型长度是否为空是否主键SIDVarchar11不为空主键SNAMEVarchar255是否GENTERVarchar255是否SCLASSVarchar255是否SCOLLEGEOFVarchar255是否newclass(班级信息表)主要用来保存学生信息。字段名数据类型长度主键否是否为空描述NEWCLASSIDVarchar255主键不为空班级编号NEWCLASSNAMEVarchar255否是班级名称courses(课程信息表)用来储存教师的基本信息字段名数据类型长度主键否是否为空描述COURSEIDVarchar255主键不为空课程编号COURDENAMEVarchar255否是课程名字collegeof(院系信息表)字段名数据类型长度主键否是否为空描述COLLEGEOFIDVarchar255主键不为空院系编号COLLEGEOFNAMEVarchar255否是院系名称selectcollege(学生成绩表)用于存储学生成绩字段名数据类型长度是否为空是否主键SELECTIDVarchar255是否SELECTCOURSENAMEVarchar255不为空否SELECTSIDVarchar255是主键SELECTCOURSEIDVarchar255不为空主键SELECTSCOREVarchar255是否(8)数据库账户及权限(截图)学生信息表班级表院系表:(9)数据库存储过程:本次实验采用的为Struts2+hibernate+mysql的方式开发储存采用的是hibernate框架主要代码:见附加文档四、系统实现技术小结为了方便管理,将数据库的封装分成两部分,数据库资源配置文件和封装数据库操作的类SqlManager.java:Hibernate框架配置文件hibernate.cfg.hbm?xmlversion='1.0'encoding='UTF-8'?!DOCTYPEhibernate-configurationPUBLIC-//Hibernate/HibernateConfigurationDTD3.0//EN!--GeneratedbyMyEclipseHibernateTools.--hibernate-configurationsession-factorypropertyname=dialectorg.hibernate.dialect.MySQLDialect/propertypropertyname=connection.password123456/propertypropertyname=connection.usernameroot/propertypropertyname=connection.urljdbc:mysql://127.0.0.1:3306/test/propertypropertyname=connection.driver_classcom.mysql.jdbc.Driver/propertypropertyname=hibernate.current_session_context_classthread/propertypropertyname=show_sqltrue/propertypropertyname=format_sqltrue/propertypropertyname=hbm2ddl.autoupdate/propertypropertyname=hibernate.hbm2ddl.autoupdate/propertymappingresource=entity/Students.hbm.xml/mappingresource=entity/CollegeOf.hbm.xml/mappingresource=entity/Courses.hbm.xml/mappingresource=entity/NewClass.hbm.xml/mappingresource=entity/SelectCourse.hbm.xml//session-factory/hibernate-configurationStruts2框架配置文件:Struts2.xml?xmlversion=1.0encoding=UTF-8?!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN=defaultnamespace=/extends=struts-default/packagepackagename=selectsnamespace=/selectsextends=defaultactionname=*_*class=action.{1}Actionmethod={2}resultname=select_add_success/selects/Selects_selectAdd.jsp/resultresultname=select_query_success/selects/Selects_Query_success.jsp/resultresultname=select_delete_success/selects/Selects_Query_success.jsp/result/action/packagepackagename=studentsnamespace=/studentsextends=defaultactionname=*_*class=action.{1}Actionmethod={2}resultname=query_allstudents_success/students/Students_Query.jsp/resultresultname=students_add_success/students/Students_Query.jsp/resultresultname=students_queryone_success/students/Students_QueryOne_success.jsp/resultresultname=delete_students_success/students/Students_Query.jsp/result/action/package/strutsHibernate工具类:HibernateUtil。Javapackagedb;importorg.hibernate.SessionFactory;importorg.hibernate.cfg.Configuration;importorg.hibernate.service.ServiceRegistry;importorg.hibernate.service.ServiceRegistryBuilder;publicclassHibernateUtil{privatestaticSessionFactorysessionFactory;privateHibernateUtil(){}publicstaticSessionFactorygetSessionFactory(){if(sessionFactory==null){Configurationconfig=newConfiguration().configure();ServiceRegistryserviceRegistry=newServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();sessionFactory=config.buildSessionFactory(serviceRegistry);returnsessionFactory;}else{returnsessionFactory;}}}具体的实现类详见附加文件五、课程设计体会该系统主要实现了学生信息以及成绩信息的修改的功能,这个系统是我独立完成,从需求分析,web界面,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的Java的框架了更深刻的了解。比如Hibernate,对于它的用法我在网上找了很多资料,Hibernate的配置有很多规则,每一个属性都要对应一个字段、并且是具体确定到具体的类,对于struts2,关于action的配置以及动态action的配置,还有如何接受前台的内容,如何从后台获取内容,如何将前台的jsp页面与后台的action联系起来,还有再编写前端代码时,因为时间问题所以没有对前端进行美化,只是将应用的功能添加进去,在这其中,因为没有学过,所以每一次的前后台的交互都需要一番功夫,不过从其中学习到了很多。对于数据库,我尽量将对数据库的操作放在存储过程中,这样的抽象和封装使得源程序代码更加容易理解,而且在web应用系统中也可以避免发生不安全的状况,我想这是一个好的程序员应当要养成的习惯,我对于五个表分别创建了五个接口collegeofDAO、courseDAO、sclassDAO、SelectCourseDAO、StudentsDAO。之后再分别用五个实现类来实现五个接口,将它们的条理逻辑清晰化。在这次的课程设计中,层次化,模块化,抽象化也是我学到的一个重要的经验,参考一些资料后发现模块化能使程序设计更加简单,设计代码时目标更加明确,效率更高,以前虽然也知道这些道理,但自己真正实施起来却感到无从下手,比如前面的数据库操作和数据库资源配置文件,就是我从书中看来的,这样做的好处是,在程序中操作数据库的时候避免了使用很多try和catch语句,是代码更加简洁,更容易理解,此外需要连接不同的数据库时只要修改数据库的资源配置文件就可以了。=后我会尝试用jsp来做这个系统。六、系统主要源程序清单6.1五个实体类CollegeOf.ja
本文标题:课程设计报告
链接地址:https://www.777doc.com/doc-6073254 .html