您的当前位置:首页正文

论《招生录取管理系统》开发设计与实现

2023-04-14 来源:一二三四网
2017年2月下 论述203 论《招生录取管理系统》开发设计与实现 单智峰(杭州汽车高级技工学校) 【摘 要】随着近年来我校招生规模的不断扩大,录取工作的高效性和准确性显得尤为重要。为了能更好地完成招生录取工作,本人结合所学的计 算机专业知识和多年的招生录取经验,开发了《招生录取管理系统》1.0版本,并经过多次测试能很好地解决学校在录取环节中出现的问题。 【关键词】录取;系统;设计 【中图分类号]TP311.5 【文献标识码】A 【文章编号11006—4222(2017)04—0203—04 1开发背景与现状 3系统技术架构 近年来,随着社会经济的快速发展,中等职业教育异军突 3.1后台框架架构 起,加上政府连续出台一系列推进中职教育发展的重大政策 本系统使用java微服务框架Spring Boot。Spring Boot是 措施,可以说职业教育的春天已经到来。如我校作为杭州市创 由Pivotal团队提供的全新框架。其设计目的是用来简化新 办最早的汽车维修类技术学校,在专业上有着明显的优势。因 Spring应用的初始搭建以及开发过程。该框架使用了特定的方 此,每年报考我校的学生数比较多,且报考人数还在逐年增 式来进行配置,从而使开发人员不再需要定义样板化的配置 加。同时,学校开设的专业数量较多,报考学生又可以同时填 3.1.1对应的技术 报三个专业志愿。这都给录取工作带来了巨大的考验.如何能 jdk1.8.0_101版本,Spring Boot 1 3,Mybatis3.4,druid1.0.1 1 快速准确地录取学生成为了学校关注的热点。本人作为招就 系统是基于微框架Spring Boot搭建的restful后台架构风格。 处的招生老师,从事招生工作多年,结合自己所学的计算机专 druid负责数据库链接,Mybatis负责数据持久层,spring作为控 业知识,开发了《招生录取管理系统》1.0版本,该系统能很好 制层。 地解决学校在录取环节中所面临的问题.达到准确化、系统 由于Mybatis和Spring Boot都是用注解的方式.所以整个 化、智能化的目标。 系统代码管理看上去非常简介。 2开发平台介绍 3.1.2系统中对于Mybatis的运用 2.1开发语言 ①在application.yml中加入相关数据库选项的配置。②再 Java是一门面向对象编程语言.不仅吸取了C++语言的 添加一个MybatisConfig类实现Spring中的EnvironmentAware 各种优点.还摒弃了C++里难以理解的多继承、指针等概念。 接口,并在类面前增加注释@Configuration(表示这个类可以 还具有简单性、面向对象、分布式、健壮性、安全性、平台独立 使用SpringIoC容器作为bean定义的来源),以及@Enable. 与可移植性、多线程、动态性等特点。本系统后台应用的正是 TransactionManagement(通知Spring,@Transactional注解的类 这种语言.目前后台开发的主流语言也是JAVA.且本人对 被事务的切面包围,这样@Transactional就可以使用了)。在 JAVA语言比较熟悉。 MybatisConfig类中引入配置属性使用对象RelaxedPropertyRe— 前端展示则是用国内比较流行的iavascript框架Vue。 solver,引入之后就可以使用。 Vue是一套构建用户界面的渐进式框架。与其他重量级框架 具体代码如下: 不同的是。Vue采用自底向上增量开发的设计。Vue的核心库 RelaxedPropertyResolver propertyResolver; 只关注视图层.并且非常容易学习。另一方面,Vue完全有能 this.prope ̄y Resolver=new RelaxedPropertyResolver(env.” 力驱动采用单文件组件和Vue生态系统支持的库开发的复杂 spring.datasource.”) 单页应用。 destroyMethod表示销毁bean datasource之前要做的操 基于本人所学的专业知识.且热衷于新潮的计算机语言 作调用close方法.初始化要调用init方法 / ’ 学习。抱着学以致用的目的,在本次开发中选择Vue作为前端 @Bean(destroyMethod=”close”,initMethod=”init”) 开发框架。 public DataSource dataSource0{ 2.2数据库 DruidDataSource datasource new DruidDataSouree0; 本系统数据库是选用MariaDB,它是MySQL的一个分支, datasource.setUri(propertyResolver.getProperty(”u )); 采用GPL授权许可。MariaDB的目的是完全兼容MySQL.包 datasource.setDriverClassName(propertyResolver.getProperty 括API和命令行,使之能轻松成为MySQL的代替品。在存储 (”driverClassName”));,/数据库链接地址 引擎方面.使用XtraDB来代替MySQL的InnoDB。MariaDB是 datasource.setUsemame(propertyResolver.getProperty f.tuser— 基于事务的Maria存储引擎。 name”));/,登陆名 MariaDB内建的复制功能是构建大型.高性能应用程序 datasource.setPassword(propertyResolver.getProperty(”pass- 的基础。将MySQL的数据分布到多个系统上去,以备一台系 word”));,/密码 统奔溃导致整个数据没了。 datasource.setlnitialSize(Integer.valueOf(propert) Resolver. 我们数据库是做了主从备份的.通过将MariaDB的某一 getProperty(”initialSize”)));,/初始化连接大小 台主机的数据复制到其它主机上,并重新执行一遍来实现的。 datasouree.setMinIdle(Integer.value0f(propertyResolver.get- 复制过程中一个服务器充当主服务器.另外一台作为从服务 Property(”minIdle”)));//连接池最小空闲 器,其中主服务器生成日志,然后复制到从服务器上再执行日 datasource.setMaxWait(Long.valueOf(propertyResolver.get— 志所对应的操作。 Property(”maxWait”)));//获取连接最大等待时间 204论述 2017年2月下 datasource.setMaxActive(Integer.vMueOf(propertyResolver. getProperty(”maxActive”)));//连接池最大使用连接数 datasource.setMinEvictableldleTimeMilis(Long.valueOf(prop— ertyResolver.getProperty(”minEvictableIdleTimeMillis”))); } 因为Mybatis没有带分页插件所以,分页需要自己实现, 所以需要在sqlSessionFactory的Bean中实现分页插件。 查询实现如下: roUtes }) 3.2.2 Vuex 它是作用是减少数据传递,实现对数据统一存放管理。 代码具体如下: import store from ./vuex/store import Vuex from vuex vue最近技术:element ui,nodejs打包等各项技术, NProgress @Mapper mybatis注解方式注入,查询如下: @Select fIIselect from STUDENT WHERE name like# 页面切换等进度条显示来平滑过度。 {namel AND code like#{code]”)。 实现分页则如下: Page<Student>pageStu=new Page<Student>(page); stu.setPage(pageStu); pageStu.setList(studentMapper.ifndList(stu)); 返回给前台则Controller层使用@RestController注解.方 法注解@RequestMapping(value=”/stu/list”,method=GET),返 回内容Page<Student>.因为是RestController注解所以前台收 到的则是Page<Student> json格式。 3.2前端技术实现 前端环境要求Node Js大于v5,NPM大于v3,Webpack大 于v2。 使用的技术版本如下: ”dependencies”: { ”axios”:”^o.15.3”. ”echarts’。:” 3.3.2”. ”flex.CSS”:” 1.1.6”. ”nprogress”:” .2.0“. ”rue”:”^2.1.10”. ”vuex”:”^2.0.0一re.6” } 3.2.1 vue—router 它是Vue.js官方的路由插件,它和vue.js是深度集成的, 适合用于构建单页面应用。vue的单页面应用是基于路由和组 件的,路由用于设定访问路径.并将路径和组件映射起来。 具体代码如下: import VueRouter from rue-router eonst routes=【 { path: /login , component:Login, hidden:true//不显示在导航中 }, //{path: /main ,component:Main}, { path:ff . component:Home, name: 录取管理 . iconCIs: el-icon-message 。,/图标样式class children:【 //f path: /main ,component:Main}, {path: /grade ,component:Grade,name: 分数查询 ) 】 1] const router=new VueRouter({ import NProgress from nprogress ,/页面顶部进度条 import nprogress/nprogress.CSS 3.2.3 Element UI——饿了么UI ElementUI是一套采用Vue2.0作为基础框架实现的组件 库。它面向企业级的后台应用,能够帮助你快速地搭建网站, 极大地减少研发的人力与时间成本。 代码具体如下: import ElementUI from element-ui import element—ui/lib/theme—default/index.CSS 3.2.4 Mock Mock能生成随机数据.具有拦截Ajax请求。 具体代码如下: import Mock from ./mock ; Mock.bootstrap0; Vue.use(ElementUI) Vue.use(VueRouter) Vue.use(Vuex) new Vue({ el: #app , template: <App/> , router, store, components:{App} //render:h=>h(Ix)gin、 )).¥mount( #app ) 3.2.5跟后台交互 后台交互的代码集中在Api.js,引入axios作为交互的插 件。vue更新到2.0之后,vue作者就宣告不再对vue—resource 更新,而是推荐的axios,所以我们也使用axios作为后台交互 插件。 系统菜单实现:router.options.routes中配置相应的菜单数 据,然后如下循环控制。点击则自动在导航栏上显示名称。其 中包括@open=”handleopen”@close=”handleclose”@select=” handleselect”三个事件。 具体代码如下: <el—menu:default—active=”currentPath”class=”el—menu— vertical—demo”@open=”handleopen”@close=”handleclose” @select=”handleselect” theme=”dark”unique—opened router> <template v-for=”(item,index)in Srouter.options.routes” v—if-”!item.hidden”> <el—submenu:index=”index+””V—if-”!item.1eaf。> <template slot=”title”><i:class=”item.iconCls”></i>{{item.name}1</ template> <el—menu—item V—for=”child in item.chil— 20l7年2月下 论述205 dren”:index=”child。path”>{{child.name}}</el—menu—item> </el—submenu> <el——menu—.item </el-table> </template> 4系统功能模块分析 本系统采用B/S架构.基于B/S架构的《招生录取管理系 可使用手机游览器或者微信. .v-if_”item.1eaf&&item.children.1ength>0”:index=”item.chil. dren[0].path”><j:class=”item.iconCls”></i>{{item.children[0】. 统》.客户端是通用的游览器(IE9以上、谷歌、火狐),录取查询 name}}</el——menu——item> <,template> </e】-memI> 系统中查询设置.由于涉及到的学生和专业数据有一定 数据量.所以查询的参数部是以右模糊查询的,这样查询的条 件可以走索引.速度较快。本系统有下列几个模块: 3.2.6系统表格列表实现 首先通过api中axios,请求后台并获取相应的数据,然后 展示分页列表。代码如下: 4.1系统登录 打开谷歌游览器.在地址栏里输入http://1ocalhost打开登 陆界面.如图1所示 export const getStudentPage params:>f return axios。get( ¥{hase}/stu/page ,f params:params 1);}; getStudents0{ let para={ page:this.page, name:this.ilfters.name, code:this.iflters.code }; this.1istl ̄oading true; NProgress.start0; 图1 getStudentPage(para).then((res):>{ console.1og(res); this.total=Yes.data.count; this.students=res.data.1ist; 输入正确的用户名和密码登陆.输入错误用户名、密码或 用户类型,用户无法登陆,登陆后如图2所示。 NProgress.doneO; }); } 数据模板如下: <!一一 ,J表一一> <template> <el-table:data=’’users”highlight—current—row V— loading=”listLoading”style=”width:100%;”:row—class—name=” tabkR0wClassName”> 图2 <el—table—column prop=”code”label=”学号“ sortable></el—table—column> <el—table—column prop=”name“label=”姓名” s0rtable></el—table—column> 4.2录取管理 该模块包括分数查询、志愿查询、专业管理、录取详情 (1)分数查询:学生的中考成绩(包括语文、数学、英语、科 学、文科综合、体育以及总分)以及性别,同时也可输入姓名或 <el—table—column prop=”sex”label=”性别”: formatter=-”formatSex’’> 者学号进行查询.如图3所示 —_ --_ ¨ …●^ ’_ II一 <el—table—colmnn prop=”sports”label=”体育” sortable></el—ta.ble—column> <el—table—column inline—template:context=” 一-t ● ● ● ●-^ ●…● …- _ }J _● ● r - , - ●。 - -__棚一_   t t , ¨ - - I - - l - u _ H ● 口 - I ■  '- - - - - - ● - _ ●    - ■ ● ● w t _ f- t- ● 4 ^ H ■ _ ¨ ●I ● 々 _ ■ sew’label=”总分”><span>{{row.chinese+row.maths+row. ● ● ‘ _ m一 ■ ● ● ● ● ,, ● _ ● _ _ J●● ●-一  _ ‘ english+row.science+row.politics+row.sports}l</span></el— table—colunm> <!一一 <el—table—column inline—template:context=” - _ _ ● ■ - 圈3 (2)志愿查询:该模块中能罗列出各个学生所填写的志 愿.如果是可调剂的则可直接修改相应志愿,如图4所示。 sell 1abel=“操作”min—width=”l 50”> <span> (3)专业管理:该模块可以显示各个专业,并可增删改查 如图5所示 <el—button size=”small”@click=”han— dleEdit(row)”>编辑</el—button> <el—button type=’ danger”size=”small ‘ ①增加(修改)专业(见图6) 新增专业时,录取分数和录取人数有相应的限制,只能是 数字且有默认值,可以直接在输入框里输入也可以点击旁边 按钮增加或者减少修改专业界面基本上跟新增一样,就是多 @click=”handleDel(row)”>删除</el—button> </span> /eI<-table—cf)l1ln1n>--> 206论述 2017年2月下 r一_ 图4 瞄圈 … ~ … 一 一 _ 图9 到统计分析各个专业录取人数的目的,其中横坐标表示专业, 纵坐标表示录取人数,效果图如图l0所示。 I薯 蕾 _ 鞫■ 衄 l曩 l曩 ■● ■■ ∞  ‘…r … ,l ’  ‘・t 一 ¨ ,H 一。 -_ -・  、“ ”” 。 。--_‘__售专业帚敷情况 _- .】 、 ¨ ・●曩 ●图5 图10 5运行环境及测试 5.1软件运行环境 本系统运行在Centos6.5系统上,前端代码运行在ng— inx1.10上,后台通过nginx代理,运行在tomcat 8.0.36 5.2硬件运行环境 计算机使用CPU双核3.0G以上.内存4G以上 、 图6 6结束语 通过不懈努力,《招生录取管理系统》1.0版本终于完成。 个编号显示。 ②删除专业 经过测试,该系统能很好地解决学校在录取环节中出现的效 率低、出错率高、操作不便等问题,达到准确化、系统化、智能 化的目标。同时,我会在以后的工作和学习过程中不断完善该 系统,使它能更好地服务于招生录取工作. .图7 参考文献 【1]陈陆扬.Vue.js前端开发快速入f'l与专业应用.人民邮电出版社 2017,01. 删除专业时需要确认才可以删除。 (4)录取详情:针对专业的录取情况,排序按总分倒序排 [2]张耀春.He.js权威指南.电子工业出版社,2016,09. 序,查询可根据专业或者学号查询,如图8所示。 [3】毕广吉.Java程序设计实例教程【M】.北京:冶金工业出版社,2007. f41李兴华.Java开发实战经典.北京:清华大学出版社,2009,8. I51扬昭编.Java语言程序设计教程.中国水利水电出版社,2006. 收稿L1期:2017—1一I6 圈8 4_3数据导入模块 该模块包含成绩、志愿导入。其中,导入的格式需要指定 模板的exee](字段包括:学生编号、姓名、性别、各科成绩.所 报志愿等)。在导入过程中,选择指定的excel导入即可 导入 界面如图9所示、 4.4图表分析 我们使用echarts作为图表插件来实现图表的展示.以达 

因篇幅问题不能全部显示,请点此查看更多更全内容