课程设计报告_第1页
课程设计报告_第2页
课程设计报告_第3页
课程设计报告_第4页
课程设计报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

)课程设计报告一、课程设计任务完成学生选课管理系统的开发二、需求描述本系统是一个WEB版的小型的学生成绩管理系统,在本系统中,开发了一个面向管理员平台,对管理员提供的服务有增加学生、删除学生和修改学生、查询学生的服务,还有对成绩、增加、删除、查询的管理。三、系统总体设计1.系统架构设计(1)架构:单机—(2)运行软件环境:windows10、、Apache、eclipseee(3)开发环境:硬件平台:CPU:内存:4gb以上软件平台:windows10、操作系统:Windows10数据库:【开发工具:Eclipseee2.功能模块设计学生学生成绩管理系统登录模块管理员登录模块成绩信息~管理模块学生信息、管理模块各模块功能:学生信息管理模块:管理员用于添加和删除、修改、查询学生信息的模块。成绩信息管理模块、用于对成绩的增加、删除、查询3.数据库设计(概要设计...):(1)E-R图学生学生学生学号学生姓名课程选课所在班级·学生院系学生性别学分课程编号课程名成绩(2)关系模式学生(学生学号,学生姓名,学生性别,所在班级,所在院系)'班级(班级号,教师姓名,班级名)课程(课程号,课程名,学分)选课(课程号,学生学号,课程名、成绩)院系(院系号,院系名)(3)数据库管理系统:MYSQL(4)数据库命名test(5)数据库表·students主要用来保存学生信息字段名数据类型长度是否为空是否主键SID】Varchar11不为空主键SNAMEVarchar255是】否GENTERVarchar255是否SCLASSVarchar%255是否SCOLLEGEOFVarchar255是否·newclass(班级信息表)主要用来保存学生信息。字段名数据类型长度主键否是否为空?描述NEWCLASSIDVarchar255主键不为空班级编号NEWCLASSNAME)Varchar255否是班级名称courses(课程信息表)用来储存教师的基本信息:字段名数据类型长度主键否是否为空描述COURSEIDVarchar*255主键不为空课程编号COURDENAMEVarchar255否、是课程名字collegeof(院系信息表)字段名数据类型长度主键否,是否为空描述COLLEGEOFIDVarchar255主键不为空院系编号"COLLEGEOFNAMEVarchar255否是院系名称selectcollege(学生成绩表)\用于存储学生成绩字段名数据类型长度是否为空是否主键SELECTIDVarchar,255是否SELECTCOURSENAMEVarchar255不为空否'SELECTSIDVarchar255是主键SELECTCOURSEIDVarchar255}不为空主键SELECTSCOREVarchar255是否,(8)数据库账户及权限(截图)学生信息表班级表院系表:$(9)数据库存储过程:本次实验采用的为Struts2+hibernate+mysql的方式开发储存采用的是hibernate框架主要代码:见附加文档四、系统实现技术小结为了方便管理,将数据库的封装分成两部分,数据库资源配置文件和封装数据库操作的类:Hibernate框架配置文件version=''encoding='UTF-8'>$<!DOCTYPEhibernate-configurationPUBLIC"---><hibernate-configuration><session-factory><propertyname="dialect"><propertyname="">123456</property><propertyname="">root</property><propertyname="">jdbc:<propertyname=""> <propertyname="">thread</property>[ <propertyname="show_sql">true</property> <propertyname="format_sql">true</property> <propertyname="">update</property> <propertyname="">update</property> <mappingresource="entity/"/> <mappingresource="entity/"/> <mappingresource="entity/"/> <mappingresource="entity/"/>[ <mappingresource="entity/"/></session-factory></hibernate-configuration>Struts2框架配置文件:<xmlversion=""encoding="UTF-8"><!DOCTYPEstrutsPUBLIC"-1}Action"method="{2}">》<resultname="select_add_success">/selects/</result><resultname="select_query_success">/selects/</result><resultname="select_delete_success">/selects/</result></action></package><packagename="students"namespace="/students"extends="default"><actionname="*_*"class="action.{1}Action"method="{2}">[<resultname="query_allstudents_success">/students/</result><resultname="students_add_success">/students/</result><resultname="students_queryone_success">/students/</result><resultname="delete_students_success">/students/</result></action></package></struts>Hibernate工具类:HibernateUtil。Java-packagedb;importclassHibernateUtil{privatestaticSessionFactorysessionFactory; privateHibernateUtil(){ } publicstaticSessionFactorygetSessionFactory(){] if(sessionFactory==null){ Configurationconfig=newConfiguration().configure(); ServiceRegistryserviceRegistry=newServiceRegistryBuilder().applySettings()).buildServiceRegistry(); sessionFactory=(serviceRegistry); returnsessionFactory; }else{ 。 returnsessionFactory; } }}具体的实现类详见附加文件五、课程设计体会该系统主要实现了学生信息以及成绩信息的修改的功能,这个系统是我独立完成,从需求分析,web界面,到数据库的连接,表格,存储过程和存储过程等的建立,在这段时间的摸索中,我确实学到了很多东西,特别是对以前不太了解的Java的框架了更深刻的了解。比如Hibernate,对于它的用法我在网上找了很多资料,Hibernate的配置有很多规则,每一个属性都要对应一个字段、并且是具体确定到具体的类,对于struts2,关于action的配置以及动态action的配置,还有如何接受前台的内容,如何从后台获取内容,如何将前台的jsp页面与后台的action联系起来,还有再编写前端代码时,因为时间问题所以没有对前端进行美化,只是将应用的功能添加进去,在这其中,因为没有学过,所以每一次的前后台的交互都需要一番功夫,不过从其中学习到了很多。对于数据库,我尽量将对数据库的操作放在存储过程中,这样的抽象和封装使得源程序代码更加容易理解,而且在web应用系统中也可以避免发生不安全的状况,我想这是一个好的程序员应当要养成的习惯,我对于五个表分别创建了五个接口collegeofDAO、courseDAO、sclassDAO、SelectCourseDAO、StudentsDAO。之后再分别用五个实现类来实现五个接口,将它们的条理逻辑清晰化。在这次的课程设计中,层次化,模块化,抽象化也是我学到的一个重要的经验,参考一些资料后发现模块化能使程序设计更加简单,设计代码时目标更加明确,效率更高,以前虽然也知道这些道理,但自己真正实施起来却感到无从下手,比如前面的数据库操作和数据库资源配置文件,就是我从书中看来的,这样做的好处是,在程序中操作数据库的时候避免了使用很多try和catch语句,是代码更加简洁,更容易理解,此外需要连接不同的数据库时只要修改数据库的资源配置文件就可以了。=后我会尝试用jsp来做这个系统。六、系统主要源程序清单】五个实体类packageentity;/**创建院系实体类*设置的属性有院系号、院系名、其中院系号作为主键*/[publicclassCollegeOf{ privateStringcollegeofid; privateStringcollegeofname; publicStringgetCollegeofid(){ returncollegeofid; } publicvoidsetCollegeofid(Stringcollegeofid){ =collegeofid;】 } publicStringgetCollegeofname(){ returncollegeofname; } publicvoidsetCollegeofname(Stringcollegeofname){ =collegeofname; } publicCollegeOf(){【 } publicCollegeOf(Stringcollegeofid,Stringcollegeofname){ //super(); =collegeofid; =collegeofname; } (}packageentity;/**创建课程实体类*设置属性课程号、课程名、学分*其中课程号作为一个主键…*/publicclassCourses{ privateStringcourseid; privateStringcoursename; privateStringcoursescore; publicStringgetCourseid(){ returncourseid; }} publicvoidsetCourseid(Stringcourseid){ =courseid; } publicStringgetCoursename(){ returncoursename; } publicvoidsetCoursename(Stringcoursename){ =coursename;~ } publicStringgetCoursescore(){ returncoursescore; } publicvoidsetCoursescore(Stringcoursescore){ =coursescore; } publicCourses(){$ } publicCourses(Stringcourseid,Stringcoursename,Stringcoursescore){ //super(); =courseid; =coursename; =coursescore; }: }packageentity;/**创建班级实体类*设置属性班级号、班级名称}*其中将班级号设置为主键*/publicclassNewClass{ privateStringnewclassid; privateStringnewclassname; publicStringgetNewclassid(){ returnnewclassid; }^ publicvoidsetNewclassid(Stringnewclassid){ =newclassid; } publicStringgetNewclassname(){ returnnewclassname; } publicvoidsetNewclassname(Stringnewclassname){ =newclassname;- } publicNewClass(){ } publicNewClass(Stringnewclassid,Stringnewclassname){ //super(); =newclassid; =newclassname;( } }packageentity;/*(*创建选课的实体类*设置的属性有选课号、课程号、学号、成绩、*其中选课号作为主键,课程号作为外键与课程号相关联,学号作为外键与学号相关联*/publicclassSelectCourse{ privateStringselectid; privateStringselectcourseid; privateStringselectcoursename;、 privateStringselectsid; privateStringselectscore; publicStringgetSelectid(){ returnselectid; } publicvoidsetSelectid(Stringselectid){ =selectid; }~ publicStringgetSelectcourseid(){ returnselectcourseid; } publicvoidsetSelectcourseid(Stringselectcourseid){ =selectcourseid; } publicStringgetSelectsid(){ returnselectsid;" } publicvoidsetSelectsid(Stringselectsid){ =selectsid; } publicStringgetSelectscore(){ returnselectscore; } publicvoidsetSelectscore(Stringselectscore){\ =selectscore; } publicSelectCourse(){ } publicStringgetSelectcoursename(){ returnselectcoursename; }《 publicvoidsetSelectcoursename(Stringselectcoursename){ =selectcoursename; } publicSelectCourse(Stringselectid,Stringselectcourseid,Stringselectcoursename,Stringselectsid, Stringselectscore){ super(); =selectid; =selectcourseid;| =selectcoursename; =selectsid; =selectscore; } }【packageentity;/**创建学生实体类的javabean*分别有学号、姓名、性别、班级、院系*/publicclassStudents{ privateStringsid;, privateStringsname; privateStringgenter; privateStringsclass; privateStringscollegeof; publicStringgetSid(){ returnsid; } publicvoidsetSid(Stringsid){~ =sid; } publicStringgetSname(){ returnsname; } publicvoidsetSname(Stringsname){ =sname; }. publicStringgetGenter(){ returngenter; } publicvoidsetGenter(Stringgenter){ =genter; } publicStringgetSclass(){ returnsclass;~ } publicvoidsetSclass(Stringsclass){ =sclass; } publicStringgetScollegeof(){ returnscollegeof; } publicvoidsetScollegeof(Stringscollegeof){, =scollegeof; } publicStudents(){ } publicStudents(Stringsid,Stringsname,Stringgenter,Stringsclass,Stringscollegeof){ //super(); =sid;! =sname; =genter; =sclass; =scollegeof; } }:五个接口类packageservice;import;…publicinterfacecollegeofDAO{ publicList<CollegeOf>queryCollegeOf();}packageservice;(/**course接口*/import;publicinterfacecourseDAO{ publicList<Courses>queryCou

温馨提示

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

评论

0/150

提交评论