高校学生课程选修系统的设计与实现.docx

上传人:太** 文档编号:63215074 上传时间:2022-11-23 格式:DOCX 页数:58 大小:545.90KB
返回 下载 相关 举报
高校学生课程选修系统的设计与实现.docx_第1页
第1页 / 共58页
高校学生课程选修系统的设计与实现.docx_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《高校学生课程选修系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《高校学生课程选修系统的设计与实现.docx(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、高校学生课程选修系统的设计与实现摘要二十世纪末期,随着计算机科学的发展与人们对世界的认识的进步,各种类型的软 件技术再Internet中得到了越来越广泛的使用,极大程度上便利了普通百姓的日常生 活,并且逐步丰富的网路生活,也在生活的很多方面提高了效率;简洁,方便下载和使 用,安全可靠,且具有一定的个性化等已经逐步成为了 Web应用的潮流。本文主要研究了一种基于SSM (Spring、SpringMVC、Mybalis)框架的学生线 上选课系统,主要为高校学生在线上就进行选修课程的选择提供了技术支持,采用Java 语言做开发语言,Mysql数据库存放数据,使用SSM框架与MVC设计模式在Wind

2、ows 系统下进行开发。目前,运用先进的课程管理系统对高校学生选修课程进行网络化管理 已经成为高校信息管理系统所不可缺少的重要一环,先进的信息管理手段极大提高了信 息管理过程的效率和质量,高校学生选课过程是高校信息管理的个重要环节。传统的高校学生选课过程往往采用人工手动统计的方式来进行管理,管理方法落后, 效率较低,质量较差,因此将高校学生的选课过程从人工管理转移到线上管理就变得尤 为重要。此方案与现今网上已经出现并被采用的一些方案相比,由于使用了 B/S架构, 因此具有用户使用更简单,界面更直观等优点。关键词:自助选课;MySql; SSM框架(11) .Java语言是动态的:Java语言最

3、初的设计目标之一就是要使Java语言可以 适应于动态变化的环境之中。Java程序需要的类不但能够动态地被载入到运行环境,也 可以通过网络来载入所需要的类。2.2 MySql数据库MySQL数据库是一个典型的关系型数据库,由瑞典MySQLAB公司所开发,目 前属于Oracle公司。需要注意的是,MySQL数据库将数据保存在不同的表中,而不是 将所有数据放在一个大仓库内,这样就增加了速度,并提高了灵活性。MySql数据库的特性。(1) .MySql数据库是开源的。(2) .MySql数据库支持大型数据库,可以处理拥有上千万条记录的大型数据库。(3) .MySql数据库使用标准的SQL数据语言形式,

4、使得(4) .MySql可以运行于多个系统之上,并且支持多种语言。(5) .MySql是可以定制的,用户可以修改源码来开发自己的MySql系统。2. 3 JSPJSP是一种动态的网页技术标准。JSP与Servlet相似,都是部署在服务器上的,它 可以接受客户端发送的请求,并对请求进行响应,然后根据请求内容可以动态地生成各 种类型的Web网页,最后返回给客户端。Java语言就可以作为JSP技术的脚本语言, 可以捕捉从客户端发出的请求,之后对请求进行相对应的处理,同时,还可以与服务器 上的其他的Java程序合作,去处理一些复杂的业务。JSP技术有以下几个特点。(1) .大大减少代码长度,在JSP中

5、,可以很方便地使用动作标签,自定义标签 等。(2) .与数据库的连接更加容易,JSP技术可以将网站连接到数据库,并且能够对 数据库中的数据进行操作。(3) .制作互动网站,我们可以很方便地创建动态网页,帮助用户在实时的环境中 进行互动。(4) .无重新部署和编译,JSP技术是动态,安全和独立于平台,所以无需重新编 译执行的。(5) . JSP是Servlet的扩展,因为JSP技术拥有servlet隐式对象和自定义标记的 全部功能。2. 4 MVC概述MVC( Model View、Controller),是模型(model),视图(view),控制器(controller) 的缩写,MVC是一

6、种软件的设计模式,它将程序开发的业务逻辑,开发所需要的数据, 以及客户端的页面展示三个模块分隔开来,这样就将不同模块的代码分隔开,例如如果 需要美化用户界面时,程序员只需要去修改视图模块的相关代码即可,不用去关心程序 中的数据以及控制器中的业务逻辑。大大减轻了负担。(1)模型(Model)模型模块中通常是与数据库交互的对象,主要负责程序与数据库交互的部分。与数据库的交互对象,可以通过相关代码去操作数据库,实现数据的CRUD(数据 库数据的增删改查)等操作(2)视图(View)可以将模型中的数据,通过控制器的处理之后展示给用户。(3)控制器(Controller)控制器处于视图与模型的中间,可以

7、拦截视图发送的请求,并作出相关的处理。也 可以对模型数据进行操作,同时也可以将模型中的数据发送给视图。因此控制器在应用 程序之中通常处理与用户的交互MVC分层模型有助于管理复杂的代码逻辑,因为MVC分层模型将程序分文三个 部分,这样就使得程序员可以在一个时间内专注于MVC三层模型的其中某一层。同时,MVC分层模型也在一定程度上简化了分组开发,因为MVC分层模型将代 码分文三个部分,所以就可以使得每一个小组只需要专注于自己小组需要重点开发的模 块,并完成好相对应的模块测试即可。2.5 SSM概述SSM是Spring, SpringMVC, MyBalis三个框架的组合,能更好的实现MVC分层 模

8、型,使三个框架对应于MVC分层模型的三个模块。其中通过SpringMVC中有 DispatcherServlet,其就是一个SpringMVC内置的Servlet,拥有*着和Servlet相同的作用 与功能:在表示层中处理页面请求和转发工作;通过Spring强大的依颇注入(Inversion of Control简称为IOC)技术降低了程序之间的耦合;通过MyBalis框架在持久层完成 与数据库的数据交互工作。三层框架的整合形成一个结构良好、功能强大,层次清晰的 框架体系。MVC三层模型如图2-1所示。厂图2-1 MVC三层模型(1)表现层,也就是Controller层,该层主要由Spring

9、MVC来控制,而 SpringMVC是Spring之中的一个模块,不需要做多余的整合(2)业务层,也就是service层,该层主要完成了实现程序功能的相关逻辑代码与 方法,是开发过程中最重要的一层。通常程序员会将Service层的对象交给Spring进 行管理.,这样在ConlroHer层,只需要通过Spring容器就可以获取到Service层的对10 象,进而调用Service层的相关逻辑方法。并且为了保证程序的稳定与安全,大多数 程序都会引入事务相关的控制,事务的控制大多也在Service层实现。(3)持久层,也就是Dao层,该层主要用来管理程序中所使用到的实体,将这些 实体对象交给Myb

10、atis来管理,通过这些实体来操作M叩per类,Mapper类通过 namespace来寻找到对应的M叩per.xml文件,IVpper类中的方法名对应M叩per.xml 文件中的标签名,以此来完成程序与数据库的交互(1) SpringMVCSpringMVC是Spring框架之中的一个模块,SpringMVC是目前为止最优秀的MVC 框架,随着技术的不断进步与发展,SpringMVC实现了对于注解进行配置的支持,这 就使得SpringMVC的易用性大大提高。由于SpringMVC是Spring框架的一部分,所 以SpringMVC很好的继承了 Spring框架的一些优点,例如扩展性十分强大。

11、SpringMVC的运行流程如图2-2所示。图2-2 SpringMVC的运行过程(2) SpringSpring框架是一个开源的J2EE的应用程序框架,主要是针对底层Bean对象的生 命周期的管理,以及Bean对象的实例化的管理,最重要的是为了降低程序之间的耦合,11 大大提高了代码的可维护性与扩展性,在整个Spring框架中,各个类型的功能都会被 抽象成一个Bean,例如本文所研究的系统之中,一个学生对象就会被抽象成一个 SludentBean。这样就可以方便对Bean对象各个功能的管理与维护。方便了程序的开发。(3) MyBatis传统的与数据库的交互,通常采用JDBC的方式来与数据库交

12、互,这种方式有许多 缺点,比如代码繁杂,有着大量的重复代码,而且代码的维护性很差,所以就需要一 款可以实现与数据库产生交互,并且高效,安全,扩展性强,最好也使用标准的SQL 语句来操作数据库。而Mybatis完美符合上述要求。利用Mybatis操作数据库时,步骤可分为如下:1 1).首先家在Mybatis的配置文件,配置文件中是数据库的端口,驱动,账号, 密码等相关信息。2 2).使用已经加载的配置文件来创建SqlSessionFactory对象。3 3).使用 SqlSessionFactory 对象来创建 Sqlsessiorio4 4).使用SqlSession来执行相关的查询方法,完成

13、与数据库的交互5 .6本章小结本章详细介绍了系统实现需要用到的技术和工具,也通过与其他技术和工具的对比, 详细描述了编写代码时所使用的技术,以及使用的相关技术的优势,为何需要使用这些 技术。扩展了自己的技能。123系统分析6 .1功能需求分析根据调查得知员工的需求,从而对系统的功能进行分析,系统应该包括了系统用户 管理、部门信息管理、员工信息管理、考勤记录管理、奖惩管理、薪资信息管理、请假 信息管理等功能模块。功能需求列表如表3-1所示。表31功能需求列表编号功能名称功能描述输入内容输出内容1学生登录保证学生通过身份验证进入系统进行操作学生id、密码学生登录是否成功以及当前学生2学生注册学生注

14、册账号,使其可以进入系统部门信息的相关信息部门信息列表3展示所有课程将所有课程展示出来无所有课程的信息4展示自己 已选课程将自己己选择的课程展小一出来学生学号学生己选择的课程5选择课程学生进行选课学生学号与课程编号学生已选择的所有课程6学生退出学生选择完课程,安全退出学生学号是否成功退出7教师登录教师通过专属页面进行登录教师姓名与密码教师是否登录成功以及当前教师8展示自己所带课程教师查看自己授课的课程教师id教师所带的课程信息9查看选课学生教师查看已选择某一 门课的血汗俄国课程id选择了这门课的学生的信息13学生用户的用例有个人资料,个人课程,所有课程等;学生用户的用例图如图3-1所示。图3-

15、1普学生用户用例图老师用户的用例有个人登录、查看课程、查看学生;教师用户的用例图如图3-2所示。图3-2教师用户用例图147 .2业务流程分析系统的业务流程为:若使用系统者的身份是学生,则可以在学生登录页面直接输入 学生学号与密码进行登录,也可以进入注册页面进行注册,成功登录系统之后,可以查 看到可供自己选择的所有的课程信息,学生根据自己的兴趣爱好进行选择,选择的过程 中,学生可以随时查看自己已选择的课程;若是使用系统者的身份是教师,则需要通过 教师的专属页面进行登录,输入教师姓名与密码即可登录,验证成功之后便可以查看自 己所带的课程的相关信息,点击“查看”按钮便可以看到已选择了这门课程的学生

16、的信 息。8 .3本章小结本章主要从系统的总体角度出发,分析系统的需求,系统需要实现哪一些模块, 并画出了系统主要用例的用例图,分析了系统的业务流程。154系统总体设计4.1 系统设计思想本文所研究的系统是基于SSM框架来设计实现的,采用了 B/S架构,使得老师和 学生可以不用安装软件,直接在网页上就可以访问系统,更加便利。该系统主要针对学 生选课信息的录入与查看。4.2 系统总体设计根据上文的设计与分析,该系统从模块上主要可以分为学生模块与教师模块,学生 模块是为了让学生进入系统,使用系统提供的学生自主选课的功能,包括个人账号的注 册与登录,查看所有课程以及授课教师的相关信息,以及查看自己己

17、选的课程及老师的 信息,包括最重要的选择课程的功能:教师模块主要是为了使教师登录系统,主要包括 教师查看个人所带课程,查看已选择某门课程的学生的信息的功能。系统功能结构图如 图4-1所示。源程管理学生管理个人管理课程管理个人管理查看授课课程笠看所有课程资询已选臬门课的学生敦师专属fi陆图4-1系统功能结构图4.3 系统功能模块设计(1)学生用户登录系统:这个模块是学生访问系统的入口,登录页面包括学生学 号,密码,然后输入的信息进行判断,验证学号与密码是否正确。如果输入的学号不16存在后台的数据库Student表之中,则弹出提示消息“学号不存在,请注册”;若输入 学号可以在Student表中查到

18、数据,但是查询到的该学号对应的密码与表现层传递而来 的密码不同。则代表密码输入错误,弹出提示消息“输入的密码错误,请重新输入”。 账号与密码都正确则学生登录系统,实用系统功能。(2)学生系统注册:如果在登录页面判断出输入的学号不存在,则会提示学生进 项注册,学生在该页面需要按照页面上的要求,输入正确的学号,密码等信息,验证 通过之后则完成注册功能。(3)课程展示模块:学生成功登录系统之后,进入课程展示模块,在此页面上, 学生可以看到全部可供自己选择的课程以及授课教师的相关信息,可以根据自己喜好 进行课程的选择。(4)自身课程展示模块:在这个模块,学生可以查看到自己已选择的课程以及授 课教师的相

19、关信息。(5)学生选课模块:在此课程展示模块,学生如果发现自己想选择的课程,可以 直接进行选择。(6)教师登录模块:类似于学生登录模块,不过教师需要通过教师登录页面进行 登录功能的实现,需要输入教师姓名与密码,如验证成功便可以登录进系统。(7)教师查询课程模块:教师登录进入系统之后,会默认出现该教师所带的所有 课程,教师可以看到自己所带课程。(8)教师查看课程信息模块:该模块实现了教师查看已经选择这门课程的所有学 生的相关信息。4.4 数据库设计4.4.1 概念模型设计在实际开发系统之前,需要先建立好适合该系统的数据库,为后续的系统的开发提 供数据上的支持,而要建立数据库,首先就要对系统所需要

20、使用到的数据进行概念模型 设计,结合实体所包含的属性,实体相互之间的关系等,结合前文所论述的实际的需求, 本文采用E-R图的形式,来将实体间的相互关系,以及各个实体的属性来清晰地表达 出来。这一步需要建立在深刻理解系统的需求分析以及业务流程和系统的模块结构的基 础之上,功能需求列表如表4-2所示。17The Des i gn and Imp Iementat i on of Co I IegeStudents eIect i ve SystemAbstractAt the end of the 20th century, with the development of computer sci

21、ence and the progress of peoples understanding of the world, all kinds of software technologies are available on the Internet It has been used more and more widely, which greatly facilitates the daily life of ordinary people, and gradually enriches the Internet life, and also improves the efficiency

22、 in many aspects of life; it is simple, convenient to download and use, safe and reliable, and has a certain degree of personalization, which has gradually become the trend of web applications.This paper mainly studies an online course selection system based on SSM (spring, spring MVC, mybatis) fram

23、ework, which provides technical support for college students to choose elective courses online. Java language is used as development language, MySQL database stores data, SSM framework and MVC design mode are used to develop under Windows system. At present, the use of advanced course management sys

24、tem to carry out network management of College Students1 elective courses has become an indispensable part of college information management system. Advanced information management means greatly improve the efficiency and quality of information management process, which is an important part of colle

25、ge information management.The traditional course selection process of college students is usually managed by manual statistics. The management method is backward, low efficiency and poor quality, so it is particularly important to transfer the course selection process of college students from manual

26、 management to online management. Compared with some schemes that have appeared and been adopted on the Internet, this scheme has the advantages of simpler user use and more intuitive interface due to the use of B / S architecture.Key words: self-help course system; MySql. SSM framework说明实体属性联系图4-2功

27、能需求列表在该系统中,通过分析系统的流程,提取出了一下几个实体:学生,教师,课程e生序号2图4:二学D1学生用户姓名一,学生用户的E-R图g师姓名教师用户等实体,主要实体的E-R图如下图4-4教师用户的E-R图选择人Q/时长二)图,教师ict二)、 /时间二)课号匚Qj果星期二)4-5课程的E-R图18系统总体的E-R图如图4-6所示:图4-6系统的总体E-R图4.4.2 数据库表设计在服务器上建立名为StudcntChooseCoursesSystem的数据库,其中包括以下表:学 生用户信息表如表4-1所示。表4-1学生用户信息表该表主要存储了学生用户的相关信息,如学生的姓名,学生用于登录系

28、统的密码,学 生的id编号与学号名越长度强点不是null sd|int1100 夕1snamevarchar25500passwordvarchar1100s_noint110019课程信息表如表42所示。表4-2课程信息表该表主要存储的是可供学生选择的课程的相关信息,主要村存储字段有课程的编号, 课程名称,已选择该课程学生的数量,上课时间,课程时长,以及课程所属类型的信息名越强点不是nullc_id.int110051cnamevarchar2550choosednumint110teacheridint110timevarchar2550clockvarchar2550longvarcha

29、r2550typevarchar2550教师记录表如表4-3所示。表4-3教师记录表该表主要记录着教师实体的相关信息,包括了了教师的id编号,教师姓名,教师登录 系统的密码。名谈4融不是null Vdint1100户1tnamevarchar25500passwordint110学生选课信息表如表4-4所示。表4-4学生选择课程信息表由于学生实体与课程实体之间是多对多的关联关系,所以需要一个桥表来将学生信息 表与课程信息表连接起来,学生选课信息表之中就将学生表之中的主键学生s_id,与 课程表之中的主键course_id作为字段,将学生与课程之间建立起关联关系。20名越不是nullQid.in

30、t300 Pstudentidint110courseidint110数据库连接设计本系统采用Java语言和MySQL数据库,并且通过MyBatis框架操作数据库,大致 过程如下。(1)导入相关的jar包:在pom.xml文件中添加如下字段,以导入MM。org.mybatismybatis3.4.6mysqlmysql-connector-java5.1.47(2)编写专门的数据库操作类,实现数据库的连接和操作。public class HjsenBatisUtils private static SqlSessionFactory HjsensqlSessionFactory;public

31、static SqlSessionFactory gelSqlSessionFactory() if(HjsensqlSessionFactory = null)InputStream HjseninputStream = null;try )HjseninputStream = Resources.gelResourceAsStream(mybatis- config.xml);HjsensqlSessionFactory = newSqlSessionFactoryBuilder().build(inputStream); catch (lOException e) 21e.printSt

32、ackTrace();throw new RuntimeException(e.getCause();)return HjsensqlSessionFactory;public static SqlSession openSession() return openSession(false);public static SqlSession openSession(boolean HjsenautoCommit) return getSqlSessionFactory().opcnSession(HjsenautoCommit);) )4.5 本章小结本章主要论述了开发本系统时对系统进行的总体

33、设计,尤其是数据库方面的设计与 实现,对学生实例、教师实例、课程实例分别描述了其属性与这些实例之间的关联关系, 最后对系统的各个模块进行划分。225系统的详细设计与实现5.1 实现环境说明运行环境包括硬件要求和软件要求。硬件要求如表5-1所示。软件要求如表5-2所 示。表5-1硬件要求软件要求如表5-2所示。设备名称说明处理器I7-9750H内存16GB硬盘1TB表5-2软件要求软件名称说明操作系统Windows 10应用软件IDEA,Navicat,MySql,Tomcat5.2 基于SSM框架分层实现5.2.1 表现层表现层的主要作用就是当用户在客户端操作系统时,系统会根据用户的操作来发送

34、 特定的请求,表现层就负责接收这些请求,表现层接收到请求之后会将请求作出一系列 的响应,之后会将响应结果返回给客户端,也就是在浏览器中展示结果,通常用户操作 系统所发出的请求是htlp请求。以下代码段就是表现层的核心SpringMVC的配置文件Spring-config.xmLSpringMVC 的配置文件 SpringMVC-servlet.xml 如下。!下面是配置扫描包的位置,包名为 com.hjsen. StudentChooseCoursesSystem,t!l 就是说,我们的试图解析器应该放在com.hjscn.StudcntChooseCourscsSystcm包下.一注解驱动:

35、配置处理器映射器和适配器23SpringMVC从接收到浏览器发送的http请求之后带作出响应的过程中,大体过程 为(1) .首先会有一个前端控制器(DispatcherServlet),这实际上就是SpringMVC内部配 置好的Servlet,具有与Servlet相似的功能,DispatcherServlet会收到用户发送的请求。(2) .DispatcherServlet在收到请求之后变回去调用处理器映射器(HandlerMapping)。(3) .处理器映射器会根据用户所发送的具体的请求信息去寻找到具体的处理器,处 理器中会进行一系列的逻辑处理,最后将处理结果再返回给Dispatcher

36、Servleto(4) .DispatcherServlet会根据处理器返回的结果再进行一系列的处理,如参数的封装, 数据格式的转换,重要数据的验证等等。(5) .页面控制器开始执行。(6) .页面控制器执行完成之后,返回一个ModelAndView对象。(7) .处理器适配器会将页面控制器返回的ModelAndView对象进一步返回到 DispatcherServleto(8) .前端控制器再将处理器适配器返回的结果交给视图解析器(VicwReslovwc)。(9) .视图解析器对接收到的结果进行解析之后,返回一个具体的view对象。(10) .前端控制器会将数据模型Model进行渲染与处理

37、,最终将Model模型数据填 充至视图之中。(11) .前端控制器响应用户。245.2.2 业务层业务层就是Service层,主要负责的是对于业务逻辑的处理,表现层是依赖于业 务层的,表现层只负责对于用户发送的请求的拦截于响应,具体如何响应,逻辑代码 都在业务层之内,但是业务层在处理业务逻辑的时候,有时会依赖于表现层来完成数 据的持久化的操作,同时如果遇到对数据持久化时需要保证事务的一致性,那么事务 的相关处理过程也应该在Service层来实现。5.2.3 数据访问层持久层就是Dao层,主要用来负责数据的持久化,就是将对象的相关信息保存在存 储介质当中,而数据库就是对持久化后的数据的载体,数据

38、访问层是业务层与持久层之 间的载体,业务层需要通过数据访问层的相关功能方法来实现对于数据库的增删改查等 操作。(D学生类实体类定义类如下。Repositorypublic class Student private int s_id; private Siring sname; private int source; private int password; private int s_no ;之后为没有参数的构造方法,包含全部参数的构造方法,各个属性的getter方法 与setter方法,以及重写的toString方法(2)持久化映射文件25v/resultMapselect name f

39、rom student where s_id = #id);select * from student where s_no = #s_no);insert into student(s_id,sname,password,s_no,source) values (s_id,#sname,#password),#s_no,#source);select * from course_student cs,course cwhere cs.course_id = c.c_idand cs.student_id = #s_id;5.3系统主要模块的实现5.3.1 学生登录模块的实现在此模块之中,需要

40、学生按照界面来输入相关的信息。学生输入学号,密码,然 后输入的信息进行判断,验证学号与密码是否正确。如果输入的学号不存在后台的数 据库Student表之中,则弹出提示消息“学号不存在,请注册”;若输入学号可以在 Student表中查到数据,但是查询到的该学号对应的密码与表现层传递而来的密码不 同。则代表密码输入错误,弹出提示消息“输入的密码错误,请重新输入二账号与密 码都正确则学生登录系统,实用系统功能。26学生用户登录流程图如图51所示。图51学生登录流程图当学生用户输入完学生学号和密码后,点击登录按钮,则会发送一个请求,后台通 过springmvc的Dispalcherservlet拦截请

41、求进行处理,进而找到对应的Controller处理请 求,调用该Controller中的loginScrvlet ()方法进行验证登录,该方法的主要代码如下。RcquestMapping(LoginServlet)public String loginServlet(HttpServlctRequest req, HttpServletResponse resp) HttpSession session = req.getSession();Integer s_no = Integer. valueOf(req.getParameter(s_non);Integer password = Integer.vakicOf(req.gctParameter(password);if(s_no = 0 | password = 0)session.setAttribute(wrong”,请输入正确的有效信息!) return Login;)Stud

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁