版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高校学生课程选修系统的设计与实现
摘要
二十世纪末期,随着计算机科学的发展与人们对世界的认识的进步,各种类型的软
件技术再Internet中得至『了越来越广泛的使用,极大程度上便利了普通百姓的日常生
活,并且逐步丰富的网路生活,也在生活的很多方面提高了效率;简洁,方便下载和使
用,安全可靠,且具有一定的个性化等已经逐步成为了Web应用的潮流。
本文主要研究了一种基于SSM(Spring、SpringMVC、Mybatis)框架的学生线
上选课系统,主要为高校学生在线上就进行选修课程的选择提供了技术支持,采用Java
语言做开发语言,Mysql数据库存放数据,使用SSM框架与MVC设计模式在Windows
系统下进行开发。目前,运用先进的课程管理系统对高校学生选修课程进行网络化管理
已经成为高校信息管理系统所不可缺少的重要一环,先进的信息管理手段极大提高了信
息管理过程的效率和质量,高校学生选课过程是高校信息管理的一个重要环节。
传统的高校学生选课过程往往采用人工手动统计的方式来进行管理,管理方法落后,
效率较低,质量较差,因此将高校学生的选课过程从人工管理转移到线上管理就变得尤
为重要。此方案与现今网上已经出现并被采用的一些方案相比,由于使用了B/S架构,
因此具有用户使用更简单,界面更直观等优点。
关键词:自助选课;MySql;SSM框架
TheDesignandImpIementationofCollege
Students'eIectiveSystem
Abstract
Aliheendofthe20thcentury,withthedevelopmentofcomputerscienceandtheprogress
ofpeople'sunderstandingoftheworld,allkindsofsoftwaretechnologiesareavailableonthe
InternetIthasbeenusedmoreandmorewidely,whichgreatlyfacilitatesthedailylifeof
ordinarypeople,andgraduallyenrichestheInternetlife,andalsoimprovestheefficiencyin
manyaspectsoflife;itissimple,convenienttodownloadanduse,safeandreliable,andhasa
certaindegreeofpersonalization,whichhasgraduallybecomethetrendofwebapplications.
ThispapermainlystudiesanonlinecourseselectionsystembasedonSSM(spring,spring
MVC,mybaiis)framework,whichprovidestechnicalsupporttorcollegestudentstochoose
electivecoursesonline.Javalanguageisusedasdeveiopnientlanguage,MySQLdatabase
storesdata,SSMframeworkandMVCdesignmodeareusedtodevelopunderWindows
system.Atpresent,theusecfadvancedcoursemanagementsystemtocarryoutnetwork
managementofCollegeStudents'electivecourseshasbecomeanindispensablepartofcollege
informationmanagementsystem.Advancedinformationmanagementmeansgreatlyimprove
theefficiencyandqualityofinformationmanagementprocess,whichisanimportantpartof
collegeinformationmanagement.
Thetraditionalcourseselectionprocessofcollegestudentsisusuallymanagedbymanual
statistics.Themanagementmethodisbackward,lowefficiencyandpoorquality,soitis
particularlyimportanttotransferthecourseselectionprocessofcollegestudentsfrommanual
managementtoonlinemanagement.Comparedwithsomeschemesthathaveappearedand
beenadoptedontheInternet,thisschemehastheadvantagesofsimpleruseruseandmore
intuitiveinterfaceduetotheuseofB/Sarchitecture.
Keywords:self-helpcoursesystem;MySql.SSMframework
目录
摘要...................................................................I
1绪论..................................................................3
1.1开发背景.......................................................3
1.2开发意义.......................................................3
1.3研究内容.......................................................3
1.4论文结构.......................................................4
1.5本章小结.......................................................5
2主要技术和工具介绍..................................................6
2.1Java语言.......................................................6
2.2MySql数据库...................................................8
2.3JSP技术........................................................8
2.4MVC概述......................................................9
2.5SSM概述.......................................................9
2.6本章小结......................................................12
3系统分析............................................................13
3.1功能需求分析..................................................13
3.2业务流程分析..................................................15
3.3本章小结......................................................15
4系统总体设计........................................................16
4.1系统设计思想..................................................16
4.2系统总体设计..................................................16
4.3系统功能模块设计..............................................16
4.4数据库设计....................................................17
4.4.1概念模型设计............................................17
4.4.2数据库表设计............................................19
4.4.3数据库连接设计..........................................21
4.5本章小结......................................................22
5系统的详细设计与实现................................................23
5.1实现环境说明..................................................23
5.2基于SSM框架分层实现.........................................23
5.2.1表现层..................................................23
5.2.2业务层..................................................25
5.2.3数据访问层..............................................25
5.3系统主要模块的实现............................................26
5.3.1学生登录模块的实现......................................26
5.3.2学生注册模块的实现......................................28
5.3.3课程展示模块的实现......................................30
5.3.4学生自身课程显示模块的实现..............................33
5.3.5学生选课模块的实现......................................35
5.3.6教师登录模块的实现......................................37
5.3.7教师查看课程信息模块的实现..............................38
5.3.8教师查看选择某门课程的学生信息..........................38
5.4本章小结......................................................39
6系统测试............................................................40
6.1测试目的......................................................40
6.2功能测试.......................................................40
6.3测试结果......................................................42
6.4本章小结......................................................42
结论.................................................................44
参考文献..............................................................45
致谢.................................................................46
外文原文..............................................................47
中文翻译..............................................................54
II
1绪论
本章主要论述了系统的开发背景,结合国内外的实际情况,从多个角度论述了
开发该系统的意义与开发完成之后该系统所能带来的收益,其次也说明了开发该系统所
需要研究的内容。
1.1开发背景
二十世纪末二十一世纪初,人类社会逐渐进入了互联网信息高速发展的时代。互
联网的逐渐普及给人们的日常生活带来了诸多便利,现代人们的生活越来越离不开网
络。例如,大多数公司都有自己的信息管理系统,车票的购买也只需要通过手机即可
购买,甚至微信,支付宝等功能可以让人们出门不带钱包,人们的日常生活中的琐碎
事情都可以在网上解决,如交话费,交水电费等等;由此可见互联网给人们的R常生
活带来的巨大的便利。
互联网在不断的丰富便捷着人们生活的同时,也使人们越来越依赖于互联网系
统,人们越来越不愿意去进行繁琐的手工劳动,转而去希望可以有一款合格的系统来
代替人们完成一些琐碎,工作量大,技术要求不高的工作。
但是,在部分大学校园,高中校园内,存在着大量的可供学生选修的课程,学生
选课的过程仍然需要学生现场选课,通过老师人工统计的选课方式,给学生与老师都
带来了不小的麻烦,因为人工操作,所以不可避免的存在出现差错的可能性。此时,
为了提高效率,方便学校和学生,有必要建立适合学校的学生线上选课系统“与传统
手工选课过程相比,使用在线选课系统可以有效降低人力物力的消耗;同时,由于人
工统计不可避免的误差,使用在线学生自助选课系统可以有效避免误差。极大程度上
提升了效率且保证了选课过程的准确性。同时,可以宣传学校丰富的课程内容,使学
校树立更好的形象,营造更适宜的学习氛围和更宽松的学习生活环境。
1.2开发意义
方便学生和教师:首先,教师与学生都可以摆脱复杂的手工选课流程。教师不需
要统计学生选择的每门课程,也不需要将各种信息汇总,整理;各个代课教师也可以
直观,清晰的杳看自己所带的课程信息与选择了自己课程的学生的信息。同时,学生
也无需亲自去寻找老师了解课程相关的内容,选课过程也不需要手工报名等。
3
与传统手工选课过程相比,使用在线选课系统可以有效降低人力物力的消耗;同
时,由于人工统计不可避免的误差,使用在线学生自助选课系统可以有效避免误差。
极大程度上提升了效率且保证了选课过程的准确性。
同时,可以宣传学校丰富的课程内容,使学校树立更好的形象,营造更适宜的学
习氛围和更宽松的学习生活环境。
1.3研究内容
随着社会的发展,人们由之前的重温饱,逐渐转移到了重视精神文化的富有;社会
越来越重视高校学生的课余生活的丰富程度与身心健康程度,再加上近些年不断出现学
生因学习压力过大而发生悲刹的新闻,使得人们的心里健康问题,精神生活的丰富程度
受到「越来越多的关注,因此越来越多的高校逐渐开展「各式各样的选修课程以丰富学
生的课余生活,同时为「减轻教师与学生的负担,为了使学生选课流程更加安全,顺畅。
学生线上自助选课系统应运而生,使用在线选课系统可以有效降低人力物力的消耗同时
极大程度上提升了效率且保证了选课过程的准确性。有着巨大的市场,本文将对此进行
分析。以及为学生选课系统的发展提供参考。
1.4论文结构
(D绪论
主要从系统开发的背景、意义、以及该系统综合在国内外的发展状况,详细描述了
本文所研究的系统实现对于学生,学校,教师三方的意义、然后对本章进行总结。
(2)系统分析
主要是结合系统的功能需求分析以及系统的业务流程分析,来分析本文所研究的系
统的主要要实现的功能,以及系统功能的总体流程。然后对本章进行总结。
(3)系统总体设计
主要是从总体的角度出发,从设计的思想开始,逐步的进行系统的总体设计,进而
开始系统各个模块的总体设计,其次最重要的一点是在此完成了数据库相关的总体设计。
并且设计出了本文研究的系统所需要的数据库表。然后对本草进行总结
(4)系统的详细设计与实现
由于此前已经完成了系统的总体设计,所以本段主要是从整体到局部,逐步完成本
文所研究系统的各个功能模块的设计,并用Java语言完成代码的实现,本文研究的系
4
统主要有一下模块:学生登录模块、学生注册模块、老师登录模块、学生查询所有课程
模块、学生选择课程模块、学生查看自身已选择课程模块、老师登录模块、老师查看自
己课程模块、老师查看已选拦了某一门课的学生信息的模块。为这些模块提供代码支持,
并对本章进行总结。
(5)系统测试
上一章已经完成了系统的各个功能模块的代码实现,但是结合实际情况,为了保证
数据的安全性,同时也为了优化学生,教师等该系统的使用者的使用体验,因此对系统
的测试显得尤为重要,本章就从系统的测试目的,进行测试的方法,以及测试的结果儿
方面来进行详细地描述,并对本章进行总结
1.5本章小结
本章主要结合实际,描述了该系统存在的意义,分析了我的选题原因,以及系统的
实际价值,给学校、学生、老师三者都带来了便利,分析了系统的模块组成。
5
2主要技术和工具介绍
2.1Java)吾己
Java是由Sun公司于1995年5月推出的,Java是Java面向对象程序设计语言和
Java平台的总称。是由JamesGosling和同事们共同研发完成的,并且在1995年,正
式推出了Java语言。
Java语言有如下的一些特性。
(1).Java语言是简单易学的:Java语言的语法与C语言和C++语言的语法较为
相似,这就使得大多数程序员对于Java语言就比较容易学习和使用。另一方面,Java语
言丢弃了C++中很少使用的、另程序员很难理解的、容易迷惑程序员的一些复杂的特
性,如:操作符的重载、多继承、自动的强制类型转换等一些特性。尤其是Java语言不
便用指针,而是使用引用的形式来代替指针°最重要的一点是Java语言提供了自动的
垃圾回收机制,使得程序员就可以不用将太多的精力放在对象的回收上,因此程序员就
可以把精力更多得放在逻辑代码之上。
(2).Java语言是面向对象的:面向对象的语言有三大特性:封装、继承、多态,
Java语言不仅很好的实现了三个特性,且在一些方面还做出了自己的优化,例如与C语
言,C++语言不同的是:C语言,C++语言在类的继承方面都支持多继承(一个类可以
有多个父类),但是Java语言对于类的继承,只可以单继承〔一个类只可以有一个父类),
且为了更加强大的功能,同时也为了避免单继承所带来的局限性,Java语言提供了接口
(interface),接口是一种只包含抽象方法的类,Java语言可以多实现接口,即一个类可以
实现多个接口。总之,Java语言是一个纯粹的面向对象的程序设计语言。
(3).Java语言是分布式语言:Java语言支持网络级应用的开发,在Java语言所
提供的基础的Jar包之中,有着专门提供网络编程的包,它提供了用于网络应用编程的
类库。同时,Java语言提供了RMI(远程方法激活),这个机制也是分布式开发过程中
必不可缺的重要手段
(4).Java语言是健壮的:Java语言有着强制类型的机制,此机制就可以保证Java
语言不会发送类型模糊的异常,同时Java语言所提供的垃圾的自动收集机制与垃圾回
6
收器也在保护者Java程序的健壮性。同时Java语言还提供了安全检查机制,可以使得
Java语言更具健壮性。
(5).Java语言是安全的:因为Java语言通常被用在网络环境之中,为此,Java语
言提供了一个安全机制,以防止黑客使用恶意代码的攻击。Java语言提供了的许多安全
特性,如Java对通过网络下载的类具有一个安全防范机制,因为每一个类在运行之前
都会被Java的类加载器(ClassLoader)加载如内存,此时类加载器的双亲委派模型就
可以很好的防止网络中那些与重要的基础包同名包的恶意攻击。
(6).Java语言是体系结构中立的:Java程序(文件名为xxx.java的文件)执行
时,首先java文件会被编译为字节码文件(文件名为xxxdass的文件),然后这个字节
码文件就可以在任何实现这个Java平台的系统中运行。
(7).Java语言是可移植的:因为Java语言是体系结构中立的,另外,与C语言,
C++语言不同的是:Java还严格规定了各个基本数据类型的长度(这是Java可移植性
的核心)。Java系统本身也具有很强的可移植性,Java编译器是用Java语言实现的,
Java语言的运行环境是用ANSIC来实现的。
(8).Java语言是解释型的:结合之前的第六条所述,Java程序文件在Java平台
上被编译为二进制字节码文件,然后就可以在任何实现这个Java平台的系统中运行。
在运行时,Java平台中的Java解释器对这些字节码文件进行解释操作,执行过程中需
要的类在联接阶段被Java的类加教器加载到运行环境中。
(9).Java是高性能的:Java语言的运行速度随着jrr(Jusl-Li-Tiiuc)编译器技术
的逐渐发展与成熟,越来越接近于C++。
(10).Java语言是多线程的:在Java语言中,线程是一种特殊的Java对象,它必
须由Thread类或其子孙类来创建。线程是OS(操作系统)分配内存的最小单位,通常
在Java语言中有四种方法来创建线程:1.类继承于Thread类;2.类实现了Runnable接
口,并重写其中的run。方法来创建线程;3.类实现Callable接口,并重写接口之中的
call。方法来创建线程;4.使用线程池。在Java语言之中,Thread类也实现了Runnable
接口,而run()方法是Runnable接口之中的方法,run()方法体之中的代码段就是单个线
程需要执行的代码片段,Java语言支持多个线程同时进行,但是当多线程同时进行时就
需要考虑线程安全问题,为比Java语言提供了多种多样的锁。
7
(11).Java语言是动态的:Java语言最初的设计目标之一就是要使Java语言可以
适应于动态变化的环境之中,Java程序需要的类不但能够动态地被载入到运行环境,也
可以通过网络来载入所需要的类。
2.2MySqI数据库
MySQL数据库是一个典型的关系型数据库,由瑞典MySQLAB公司所开发,目
前属于Oracle公司。需要注意的是,MySQL数据库将数据保存在不同的表中,而不是
将所有数据放在一个大仓库内,这样就增加了速度,并提高了灵活性。
MySql数据库的特性。
(1).MySql数据库是开源的。
(2).MySql数据库支持大型数据库,可以处理拥有上千万条记录的大型数据库。
(3).MySql数据库使用标准的SQL数据语言形式,使得
(4).MySql可以运行于多个系统之匕并且支持多种语言。
(5).MySql是可以定制的,用户可以修改源码来开发自己的MySql系统。
2.3JSP
JSP是一种动态的网页技术标准。JSP与Servlet相似,都是部署在服务器上的,它
可以接受客户端发送的请求,并对请求进行响应,然后根据请求内容可以动态地生成各
种类型的Web网页,最后返回给客户端。Java语言就可以作为JSP技术的脚本语言,
可以捕捉从客户端发出的请求,之后对请求进行相对应的处理,同时,还可以与服务器
上的其他的Java程序合作,去处理一些复杂的业务。
JSP技术有以下几个特点。
(1).大大减少代码长度,在JSP中,可以很方便地使用动作标签,自定义标签
等。
(2).与数据库的连接更加容易,JSP技术可以将网站连接到数据库,并且能够对
数据库中的数据进行操作。
(3).制作互动网站,我们可以很方便地创建动态网页,帮助用户在实时的环境中
进行互动。
8
(4).无重新部署和编译,JSP技术是动态,安全和独立于平台,所以无需重新编
译执行的。
(5).JSP是Senlct的扩展,因为JSP技术拥有servlet隐式对象和自定义标记的
全部功能。
2.4MVC概述
MVC(Model>View>Controller),是模型(model),视图(view),控制器(conlroller)
的缩写,MVC是一种软件的设计模式,它将程序开发的业务逻辑,开发所需要的数据,
以及客户端的页面展示三个模块分隔开来,这样就将不同模块的代码分隔开,例如如果
需要美化用户界面时,程序员只需要去修改视图模块的相关代码即可,不用去关心程序
中的数据以及控制器中的业务逻辑。大大减轻了负担。
(1)模型(Model)
模型模块中通常是与数据库交互的对象,主要负责舜序与数据库交互的部分。
与数据库的交互对象,可以通过相关代码去操作数据库,实现数据的CRUD(数据
库数据的增删改查)等操作
(2)视图(View)
可以将模型中的数据,通过控制器的处理之后展示给用户。
(3)控制器(Controller)
控制器处于视图与模型的中间,可以拦截视图发送的请求,并作出相关的处理。也
可以对模型数据进行操作,同时也可以将模型中的数据发送给视图。因此控制器在应用
程序之中通常处理与用户的交互
MVC分层模型有助于管理复杂的代码逻辑,因为MVC分层模型将程序分文三个
部分,这样就使得程序员可以在一个时间内专注于MVC三层模型的其中某一层。
同时,MVC分层模型也在一定程度上简化了分组开发,因为MVC分层模型将代
码分文三个部分,所以就可以使得每一个小组只需要专注于自己小组需要重点开发的模
块,并完成好相对应的模块测试即可.
2.5SSM概述
9
SSM是Spring,SpringMVC,MyBatis三个框架的组合,能更好的实现MVC分层
模型,使三个框架对应于MVC分层模型的三个模块。其中通过SpringMVC中有
DispatchcrServlet,其就是一个SpringMVC内置的Servlet,拥有着和Servlet相同的作用
与功能:在表示层中处理页面请求和转发工作;通过Spring强大的依赖注入(Inversion
ofControl简称为IOC)技术降低了程序之间的耦合;通过MyBatis框架在持久层完成
与数据库的数据交互工作"三层框架的整合形成一个结构良好、功能强大,层次清晰的
框架体系。
MVC三层模型如图2-1所示。
图2-1MVC三层模型
(I)表现层,也就是Comroller层,该层主要由SpringMVC来控制,而
SpringMVC是Spring之中的一个模块,不需要做多余的整合
(2)业务层,也就是service层,该层主要完成了实现程序功能的相关逻辑代码与
方法,是开发过程中最重要的一层。通常程序员会将Service层的对象交给Spring进
行管理,这样在Controller层,只需要通过Spring容器就可以获取到Service层的对
10
象,进而调用Service层的相关逻辑方法。并且为了保iE程序的稳定与安全,大多数
程序都会引入事务相关的控制,事务的控制大多也在Service层实现。
(3)持久层,也就是Dao层,该层主要用来管理程序中所使用到的实体,将这些
实体对象交给Mybatis来管理,通过这些实体来操作Mapper类,Mapper类通过
namespace来寻找到对应的Mapper.xml文件,Mapper类中的方法名对应Mapper.xml
文件中的标签名,以此来完成程序与数据库的交互
(1)SpringMVC
SpringMVC是Spring框架之中的一个模块,SpringMVC是目前为止最优秀的MVC
框架,随着技术的不断进步与发展,SpringMVC实现了对于注解进行配置的支持,这
就使得SpringMVC的易用性大大提高。由于SpringMVC是Spring框架的一部分,所
以SpringMVC很好的继承了Spring框架的一些优点,例如扩展性十分强大。
SpringMVC的运行流程如图2-2所示。
图2-2SpringMVC的运行过程
(2)Spring
Spring框架是一个开源的J2EE的应用程序框架,主要是针对底层Bean对象的生
命周期的管理,以及Bean对象的实例化的管理,最重要的是为了降低程序之间的耦合,
11
大大提高了代码的可维护性与扩展性,在整个Spring框架中,各个类型的功能都会被
抽象成一个Bean,例如本文所研究的系统之中,一个学生对象就会被抽象成一个
StudentBcan。这样就可以方便对Bean对象各个功能的管理与维护。方便了程序的开发。
(3)MyBatis
传统的与数据库的交互,通常采用JDBC的方式来与数据库交互,这种方式有许多
缺点,比如代码繁杂,有着大量的重复代码,而且代码的维护性很差,所以就需要一
款可以实现与数据库产生交互,并且高效,安全,扩展性强,最好也使用标准的SQL
语句来操作数据库。而Mybatis完美符合上述要求。
利用Mybatis操作数据库时,步骤可分为如下:
(1).首先家在Mybatis的配置文件,配置文件中是数据库的端口,驱动,账号,
密码等相关信息。
(2).使用已经加载的配置文件来创建SqlSessionFactory对象。
(3).使用Sq1SessionFactory对象来创建Sqlsession。
(4).使用SqlSession来执行相关的查询方法,完成与数据库的交互
2.6本章小结
本章详细介绍了系统实现需要用到的技术和工具,也通过与其他技术和工具的对比,
详细描述了编写代码时所使用的技术,以及使用的相关技术的优势,为何需要使用这些
技术。扩展了自己的技能。
12
3系统分析
3.1功能需求分析
根据调查得知员工的需求,从而对系统的功能进行分析,系统应该包括了系统用户
管理、部门信息管理、员工信息管理、考勤记录管理、奖惩管理、薪资信息管理、请假
信息管理等功能模块。功能需求列表如表3-1所示。
表3-1功能需求列表
编号功能名称功能描述输入内容输出内容
1学生登录保证学生通过身份验学生id、密碣学生登录是否成功以
证进入系统进行操作及当前学生
2学生注册学生注册账号,使其部门信息的相部门信息列表
可以进入系统关信息
3展示所有将所有课程展示出来无所有课程的信息
课程
4展示自己将自己已选择的课程学生学号学生已选择的课程
已选课程展示出来
5选择课程学生进行选课学生学号与课学生已选择的所有课
程编号程
6学生退出学生选择完课程,安学生学号是否成功退出
全退出
7教师登录教师通过专属页面进教师姓名与密教师是否登录成功以
行登录码及当前教师
8展示自己教师查看自己授课的教师id教师所带的课程信息
所带课程课程
9查看选课教师查看已选择某一课程id选择了这门课的学生
学生门课的血汗俄国的信息
13
学生用户的用例有个人资料,个人课程,所有课程等;
学生用户的用例图如图3-1所示。
图3-1普学生用户用例图
老师用户的用例有个人登录、查看课程、查看学生;
教师用户的用例图如图3-2所示。
图3-2教师用户用例图
14
3.2业务流程分析
系统的业务流程为:若使用系统者的身份是学生,则可以在学生登录页面直接输入
学生学号与密码进行登录,也可以进入注册页面进行注册,成功登录系统之后,可以查
看到可供自己选择的所有的课程信息,学生根据自己的兴趣爱好进行选择,选择的过程
中,学生可以随时查看自己已选择的课程;若是使用系统者的身份是教师,则需要通过
教师的专属页面进行登录,输入教师姓名与密码即可登录,验证成功之后便可以查看自
己所带的课程的相关信息,点击“查看”按钮便可以看到三选择了这门课程的学生的信
息。
3.3本章小结
本章主要从系统的总体角度出发,分析系统的需求,系统需要实现哪一些模块,
并画出了系统主要用例的用例图,分析了系统的业务流程。
15
4系统总体设计
4.1系统设计思想
本文所研究的系统是基于SSM框架来设计实现的,采用了B/S架构,使得老师和
学生可以不用安装软件,直接在网页上就可以访问系统,更加便利。该系统主要针对学
生选课信息的录入与查看。
4.2系统总体设计
根据上.文的设计与分析,该系统从模块上主要可以分为学生模块与教师模块,学生
模块是为了让学生进入系统,使用系统提供的学生自主选课的功能,包括个人账号的注
册与登录,查看所有课程以及授课教师的相关信息,以及查看自己己选的课程及老师的
信息,包括最重要的选择课程的功能;教师模块主要是为了使教师登录系统,主要包括
教师查看个人所带课程,查看已选择某门课程的学生的信息的功能。系统功能结构图如
图4-1所示。
个人詈理
课程管理课程管理学生管理个人管理
2直
教
询
谓
选
师
巳
搔
所
专
选
课
有
属
程
课
课
登
程
程
陆
图4-1系统功能结构图
4.3系统功能模块设计
(1)学生用户登录系统:这个模块是学生访问系统的入口,登录页面包括学生学
号,密码,然后输入的信息进行判断,验证学号与密码是否正确。如果输入的学号不
16
存在后台的数据库Sludent表之中,则弹出提示消息“学号不存在,请注册”;若输入
学号可以在Student表中查到数据,但是查询到的该学号对应的密码与表现层传递而来
的密码不同。则代表密码输入错误,弹出提示消息“输入的密码错误,请重新输入”。
账号与密码都正确则学生登录系统,实用系统功能。
(2)学生系统注册:如果在登录页面判断出输入的学号不存在,则会提示学生进
项注册,学生在该页而需要按照页面上的要求,输入正确的学号,密码等信息,脸证
通过之后则完成注册功能。
(3)课程展示模块:学生成功登录系统之后,进入课程展示模块,在此页面.匕
学生可以看到全部可供自己选择的课程以及授课教师的相关信息,可以根据自己喜好
进行课程的选择。
(4)自身课程展示模块:在这个模块,学生可以查看到自己已选择的课程以及授
课教师的相关信息。
(5)学生选课模块:在此课程展示模块,学生如果发现自己想选择的课程,可以
直接进行选择。
(6)教师登录模块:类似于学生登录模块,不过教师需要通过教师登录页面进行
登录功能的实现,需要输入教师姓名与密码,如验证成功便可以登录进系统。
(7)教师查询课程模块:教师登录进入系统之后,会默认出现该教师所带的所有
课程,教师可以看到自己所带课程。
(8)教师查看课程信息模块:该模块实现了教师查看已经选择这门课程的所有学
生的相关信息。
4.4数据库设计
4.4.1概念模型设计
在实际开发系统之前,需要先建立好适合该系统的数据库,为后续的系统的开发提
供数据上的支持:,而要建立数据库,首先就要对系统所需要使用到的数据进行概念模型
设计,结合实体所包含的属性,实体相互之间的关系等,结合前文所论述的实际的需求,
本文采用E-R图的形式,来将实体间的相互关系,以及各个实体的属性来清晰地表达
出来。这一步需要建立在深刻理解系统的需求分析以及业务流程和系统的模块结构的基
础之上,功能需求列表如表4-2所示。
17
说明实体属性联系
图4-2功能需求列表
在该系统中,通过分析系统的流程,提取出了一下几个室体:学牛,教师,课程
等实体,主要实体的E-R图如下。
图4-3学生用户的E-R图
18
系统总体的E-R图如图4-6所示:
图4-6系统的总体E-R图
4.4.2数据库表设计
在服务器上建立名为SiudentChooseCoursesSysiem的数据库,其中包括以下表:学
生用户信息表如表4-1所示,
表4-1学生用户信息表
该表主要存储了学生用户的相关信息,如学生的姓名,学生用于登录系统的密码,学
生的id编号与学号
名翻外威克不曷null
►s」dint1100.1
snamevarchar25500
passwordvarchar1100
s_n。int110□
19
课程信息表如表4-2所示。
表4-2课程信息表
该表主要存储的是可供学生选择的课程的相关信息,主要村存储字段有课程的编号,
课程名称,已选择该课程学生的数量,上课时间,课程时长,以及课程所属类型的信
息
名〃救点不是null
Qcjd]int110
cnamevarchar2550□
choosednumint110□
teacherjdint110□
timevarchar2550□
clockvarchar2550□
longvarchar2550□
typevarchar2550□
教师记录表如表4-3所示。
表4-3教师记录表
该表主要记录着教师实体的相关信息,包括了了教师的id编号,教师姓名,教师登录
系统的密码。
名不是null
□tjd.int1100a
tnamevarchar2550
passwordint110
学生选课信息表如表4-4所示。
表4-4学生选择课程信息表
由于学生实体与课程实体之间是多对多的关联关系,所以需要一个桥表来将学生信息
表与课程信息表连接起来,学生选课信息表之中就将学生表之中的主键学生s_id,与
课程表之中的主键cou「se_ic作为字段,将学生与课程之间建立起关联关系。
20
名______________谓4豉点不曷null
Bid.int30
studentidint110□
coursejdint110□
4.4.3数据库连接设计
本系统采用Java语言和MySQL数据库,并且通过MyBatis框架操作数据库,大致
过程如下。
(1)导入相关的jar包;在pom.xml文件中添加如下字段,以导入MM。
〈dependency〉
<groupld>org.mybatis</groupld>
<artifactld>mybatis</artifactld>
<version>3.4.6</version>
</dependency>
<dependency>
<groupld>mysql</groiipld>
<artifactld>mysql-connector-java</artifactld>
<version>5.1.47</version>
</dependency>
(2)编写专门的数据库操作类,实现数据库的连接和操作。
publicclassHjsenBatisUlils{
privatestaticSqlSessionFactoryHjsensqlSessionFactory;
publicstaticSqlSessionFactorygetSqlSessionFactoryO(
if(HjsensqlSessionFactory==niill)(
InputStreamHjseninputStream=null;
try(
HjseiiiiipuLSticain-Rcsuuices.gctRcsouii;eAsSlicaiii("iiiyb<ilis-
config.xmr');
HjsensqlSessionFactory=new
SqlSessionFactoryBuilder().build(inputStream);
}catch(lOExceptione){
21
e.printStackTrace();
thrownewRuntimeException(e.getCause());
)
)
returnHjsensqlSessionFactory;
)
publicstaticSqISessionopenSession(){
returnopenSession(false);
)
publicstaticSqISessionopenSession(booleanHjsenautoCommit)(
returngctSqlScssionFactory().opcnScssion(HjscnautoConiniit);
)
)
4.5本章小结
本章主要论述了开发本系统时对系统进行的总体设计,尤其是数据库方面的设计与
实现,对学生实例、教师实例、课程实例分别描述了其属性与这些实例之间的关联关系,
最后对系统的各个模块进行划分。
22
5系统的详细设计与实现
5.1实现环境说明
运行环境包括硬件要求和软件要求。硬件要求如表5-1所示。软件要求如表5-2所
示。
表5-1硬件要求
设备名称说明
处理器I7-9750H
内存16GB
硬盘1TB
软件要求如表5-2所示,
表5-2软件要求
软件名称说明
操作系统Windows10
应用软件IDEA,Navicat,MySql,Tomcat
5.2基于SSM框架分层实现
5.2.1表现层
表现层的主要作用就是当用户在客户端操作系统时,系统会根据用户的操作来发送
特定的请求,表现层就负责接收这些请求,表现层接收到请求之后会将请求作出一系列
的响应,之后会将响应结果返回给客户端,也就是在浏览器中展示结果,通常用户操作
系统所发出的请求是hnp请求。
以下代码段就是表现层的核心SpringMVC的配置文件Spring-config.xml。
SpringMVC的配置文件SpringMVC-servlct.xml如下。
<!-下面是配置扫描包的位置,包名为com.hjsen.StudentChooseCoursesSystem,-fi
就是说,我们的试图解析器应该放在com.hjscn.StudcntChooseCoursesSystem包下.
<contcxt:componcnt-scanbasc-packagc="com.hjscn.StudcntChooscCoursesSystcm'7>
<!-注解驱动:配置处理器映射器和适配器
<mvc:annotation-drivcn/>
23
<!--配置静态资源的访问映射,此配置中的文件,将不被前端控制器拦截
<mvc:resourceslocation='7css/"mapping=,7css/**H/>
<mvc:resourceslocalion="/images/"mapping="/images/**”/>
<mvc:resourceslocation=7common/^'mapping='7common/**"/>
<mvc:resourceslocation="/js/"mapping="/js/**n/>
<beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">
<propertyname="prefix"value=7"/>
<!-设置后缀为.jsp-->
<propertyname="suffix"value=".jsp"/>
</bcan>
</beans>
SpringMVC从接收到浏览器发送的http请求之后带作出响应的过程中,大体过程
为
(1).首先会有一个前端控制器(DispatcherServlel),这实际上就是SpringMVC内部配
置好的Servlet,具有与Servlet相似的功能,DispatcherServlet会收到用户发送的请求。
(2).DispatcherServlet在收到请求之后变回去调用处理器映射器(HandlerM叩ping)。
(3).处理器映射器会根据用户所发送的具体的请求信息去寻找到具体的处理器,处
理器中会进行一系列的逻辑处理,最后将处理结果再返回给DispatcherServleto
(4).DispatcherServlet会根据处理器返回的结果再进行一系列的处理,如参数的封装,
数据格式的转换,重要数据的验证等等。
(5).页面控制器开始执行。
(6).页面控制器执行完成之后,返回一个ModelAndView对象。
(7).处理器适配器会将页面控制器返回的ModelAndView对象进一步返回到
DispatcherServleto
(8).前端控制器再将处理器适配器返回的结果交给视图解析器(ViewReslovwe)。
(9).视图解析器对接收到的结果进行解析之后,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 颗粒剂工岗中岗位知识考核试卷含答案
- 磨矿分级工岗位安全责任制能力考核试卷含答案
- 露酒酿造工岗中细节管理考核试卷含答案
- 平版制版员改进模拟考核试卷含答案
- 会展场馆管理师安全技能能力考核试卷含答案
- 矿山设备运行协调员岗前异常处置考核试卷含答案
- 不动产测绘员安全生产基础知识评优考核试卷含答案
- 2026中国脑机接口技术研发进展与产业化障碍报告
- 2026中国创新药行业市场格局及投资机会评估报告
- 2026第三代半导体器件封装技术突破与可靠性测试研究
- 警棍盾牌操图文教材
- 医务科医疗质量改进与安全管理工作计划
- 工业仿真软件基础教程245
- 实施指南(2026)《JBT 7364-2014倍速输送链和链轮》
- 三腔二囊管的护理查房
- 浙江润彩新材料科技有限公司年产23000吨消泡剂和7000吨润湿剂项目环评报告
- 鹦鹉热的健康宣教
- 上海市幼儿园幼小衔接活动指导意见(修订稿)
- GB∕T2673.1-2018 内六角花形沉头螺钉
评论
0/150
提交评论