版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录摘要 IAbstract II第一章绪论 11.1研究目的 11.2研究现状 11.2.1国外现状 11.2.2国内现状 11.3研究意义 21.4论文结构 2第二章系统开发环境介绍 42.1软件环境介绍 42.1.1开发工具介绍 42.1.2开发所用技术介绍 52.2运行环境介绍 62.2.1硬件环境分析 62.2.2软件环境分析 7第三章系统概要分析 83.1可行性分析 83.2需求分析 93.2.1功能需求 93.2.2数据需求 102.3.3性能需求 12第四章系统详细设计 134.1系统组织结构图 134.2业务流程 134.2.1添加新的管理员的数据流图 134.2.2修改学生信息的数据流图 144.2.3删除学生信息的数据流图 144.2.4新生分班的数据流图 154.2.5新生分寝室数据流图 154.3主要算法设计 164.3.1登录模块算法设计时序图 164.3.2修改学生信息模块算法设计时序图 164.3.3新生分班模块算法设计 174.3.4新生分寝室算法设计 174.4数据库设计 184.4.1数据字典 184.4.2系统用例图 194.4.3概念设计 204.4.4逻辑设计 20第五章系统实现 245.1系统登录功能实现 245.2添加功能实现 255.2.1添加用户界面实现 255.2.2添加学生信息界面实现 255.2.3添加楼宇信息界面实现 265.2.4添加专业信息界面实现 265.2.5添加班级信息界面实现 265.2.6添加寝室信息界面 275.3查看功能实现 275.3.1查看用户信息界面设计 275.3.2查看学生信息界面实现 275.3.3查看楼宇信息界面实现 295.3.4查看寝室信息界面实现 295.3.5查看专业信息界面实现 295.3.6查看班级信息界面实现 305.3.7查看用户信息界面实现 305.3.8直接浏览学生信息界面实现 315.3.9直接浏览班级信息界面实现 315.4分配功能实现 315.4.1给学生分班界面实现 315.4.2给学生分寝室界面实现 325.5修改用户密码界面实现 32第六章系统测试 336.1系统测试概述 336.2功能测试 336.3安全性分析 38第七章算法介绍 407.1新生分班问题背景 407.2分班程序设计的原则 407.3分班的实现 417.3.1班级间状态表示 417.3.2分班过程 417.3.3人工模拟分班 417.4设计说明 437.5设计分析 437.5.1执行结果分析 437.5.2时间和空间代价分析 44总结 458.1成果总结 458.2收获体会 45致谢 46参考文献 47第一章绪论1.1研究目的随着我国教育事业的不断发展,各级教育层次的教学规模日益扩大,随之而来的高校扩招力度也不断加强。采用传统的大学新生报到方法(如直接手工管理或者开发程度不高的管理系统),不但浪费大量人力、物力和财力资源,而且不能满足当前教育发展的需求。甚至还会影响正常的报到工作,致使高校录取新生工作效率下降,学生权益得不到最大的保障,也会影响高校的日常管理,一旦出问题,学校问责不明,使得体制健全性受到破坏,还可能导致学生在日常学习工作中面临诸多问题,最后甚至导致影响毕业。随着全国各高校扩招比例逐年加大,大学新生报到工作也越来越繁重,每当新生入学阶段,各高校招生部门都会忙的焦头烂额,新生的寝室分配原则,各地生源在班级中的分配比例等问题都是高校工作人员录取新生时比较繁重的工作内容。更有大量的学生信息数据需要录入,审核以及保管。以前生源量小,手续不是很庞杂,而且信息时代还没有到来,各高校基本采用人工输入的方式。现如今,传统的人工输入不但耗时耗力,而且分班结果也不尽如人意。在生源规模日益扩大的情况之下,手工输入的方法所带来的弊端已显而易见,例如管理人员工作效率低,分班原则不智能,学生信息维护滞后等问题。因此,高校新生录取工作急需一个自动化分班系统来缓解报到工作压力,一个智能的新生报到系统应运而生。1.2研究现状1.2.1国外现状由于人口因素以及经济发展情况的影响,国外高校生源少,手续也很简单,并且各高校都有一个先进的管理系统作支撑,设施完备,技术成熟。首先其生源数量稳定,不会有大的情况变动。其次,其先进的管理手段也足以应付生源突然增多或学生意外变动情况。1.2.2国内现状我国是教育大国,国家大力发展教育事业,特别是要全面推进高等教育。全国各地高校林立,扩招力度逐年加大,与此同时,各高校避免不了要投入大量人力物力和财力来安置学生,特别是没有一个科学合理智能化的管理系统的高校在处理新生到校报到时,繁杂的手续、新生们各异的条件以及校方应接不暇的种种意外事件都将成为高等院校进行安排新生报到工作的瓶颈。给校方管理人员及同学们的报到环节带来许多不便。而这种情况在我国是普遍存在的。1.3研究意义基于以上所述的现状,联系到高校工作实际,一个大学新生报到系统的理论可行性以及实际意义已十分明显。大学新生报到系统是一种融合管理科学、信息科学、系统科学和计算机技术为一体的综合性先进管理手段。它是解决新生入学报到问题的利器,通过计算机的智能分析,把学生信息分类管理,合理分配。并具有时效性,能够应对新生插班、寝室调度,信息转移,退学变更等基本问题。使高校学生管理部门能够科学有效的进行学生各项信息的维护。例如本系统可通过新生属性(生源地,高考分数,性别等)来动态得设计分班及分寝室原则,在进行新生录取工作过程中进行分班、分寝工作,能够达到人数相近,比例均衡的理想结果。而且相比较传统的手工录入而言,优势十分明显,效果特别突出,避免了高校为新生报到工作而支出的大量人力、物力、财力。使招生工作更加简明、快捷、准确和高效。同时也减轻校方录取人员的工作压力,降低了工作疲劳所导致的失误率,这样也就能够节省很多录取后续工作,为校方和同学们的日常工作和生活学习提供了坚实保障。1.4论文结构本文共分七章,现将每章具体内容解释如下:第一章,论文概述。主要介绍了本文所论述的课题的研究目的和研究意义,从国内外两方面阐述了本文所选课题的现状,介绍了选题背景。第二章,详细介绍了本系统的开发环境,包括开发本系统所用到的软件的介绍和本系统所需要的运行环境。所涉及到的开发工具将会一一讲解。第三章,系统概要分析。这一章中对本文研究课题进行了多方面的理论分析,为系统实现提供理论依据和设计方案。可行性分析将为本系统的开发提供科学的分析结果,完备的可行方案以及合理的设计原则。需求分析将详细说明本系统的设计需求,为设计工作提供数据支持和功能界定,细化功能需求,描述系统的数据域,为系统开发提供完整、准确、清晰、具体的要求。将从需求的提出与需求的描述两方面进行说明。第四章,系统设计。这一章节中要把整个系统的功能模块进行划分,并详细说明具体每个模块的作用以及其内在的联系。接下来要设计后台数据库,会把所用数据以数据字典的形式展现,然后将从概念设计、逻辑设计、物理设计等步骤做详细介绍,包括概念模型(E-R模型),基本表等。第五章,系统实现。这一章包括界面实现和功能实现,将为读者呈现本系统各个功能的实现界面是如何设计的,例如管理员的登录界面,添加学生信息界面,登录状态界面等。各个功能点之间的接口与流程,不同功能点之间的逻辑联系。第六章,系统测试。这一章将把系统主要功能设计一套测试案例,进行全面测试,会以截图方式展示测试结果,并进行了测试的安全性分析。第七章,算法介绍。这章的内容是将本系统中的核心算法,即学生分配班级的智能算法做详细的说明。第八章,总结。这一章将对研究内容做一个回顾,总结研究成果,找出不足,介绍自己的收获与体会。
第二章系统开发环境介绍2.1软件环境介绍2.1.1开发工具介绍1.数据库MySQL简介MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQLAB创始人之一的MontyWidenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。MySQL的海豚标志的名字叫“sakila”,它是由MySQLAB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者AmbroseTwebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性。 2.后台开发环境MyEclipse简介MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。在结构上,MyEclipse的特征可以被分为7类:1.J2EE模型2.WEB开发工具3.EJB开发工具4.应用程序服务器的连接器5.J2EE项目部署服务6.数据库服务7.MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。3.服务器Tomcat简介Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。目前最新版本是6.0。Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML页面的访问请求。实际上Tomcat部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache独立的进程单独运行的。2.1.2开发所用技术介绍开发语言Java简介Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。另一方面,Java技术也不断更新。Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java应用编程接口已经从1.1x版发展到1.2版。目前常用的Java平台基于Java1.4,最近版本为Java1.7。Java分为三个体系J2SE(Java2StandardEdition),J2EE(Java2Platform,EnterpriseEdition),J2ME(Java2MicroEdition)。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。2.2运行环境介绍由于本系统是基于B/S模式开发的新生报到系统,本系统中所有的数据交互都是在服务器端进行的,而客户端只是用来进行网页的浏览。因此,本系统中服务器端的软硬件配置要求严格,软硬件的合理搭配也是非常重要的。本系统采用B/S结构开发,硬件配置主要包括客户端硬件和服务器端硬件的选择。新生报到系统的硬件配置要根据用户对系统的稳定性要求、系统的容量、系统的吞吐量,以及用户的维护水平来确定。2.2.1硬件环境分析本系统的硬件环境如下:客户端:普通PCCPU:P41.8G以上内存:256MB以上分辨率:推荐使用1024*768像素数据库服务器:CPU:P42.0GHz内存:1GB以上硬盘:80GB以上2.2.2软件环境分析本系统的软件环境如下:操作系统:UNIX/Linux/Windows2000或以上版本数据库:MySQL开发工具:MyEclipse服务器:Tomcat开发语言:Java
第三章系统概要分析3.1可行性分析eq\o\ac(○,1)可行性分析的任务。并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解决方法,那么花费在这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。而进行可行性分析就是为了确定解决问题的方法是否合理可行,并加以论证。eq\o\ac(○,2)可行性研究的目的。进行可行性研究就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解决。怎样达到这个目的呢?当然不能靠主观猜想,而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。eq\o\ac(○,3)可行性研究的实质。进行可行性研究实际上就是要进行一次大大压缩简化了的系统分析和设计的过程。也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。从以上的分析原则来看,我所设计的高校新生报到系统虽说是一个规模不大的系统,但是并不缺失可行性,本系统目标明确,针对性强,功能精简,开销不大。本系统基本功能对于我国所有的正规高等院校均可适用。当然它需要进一步的完善和更新。在使用过程中,要看它能不能带来效益,当今时代,得效率者得利益,从实用角度出发来看,本系统的性价比很高,有一定的实用价值和现实意义;从社会发展角度看,时代发展飞速,自动化办公大势所趋,本系统必将长期发挥其时效性。这也是开发本系统的一个非常重要的原因。21世纪是计算机的时代,它必然取代一部分人的工作,高科技的管理系统必将会应用到各行各业,全面持久的发挥效用。本设计从以下三个方面进行可行性研究:eq\o\ac(○,1)技术可行性。本设计“高校新生报到系统”是为高校学生管理人员开发的。本人通过在校学习,课余实践过程中有过用Java语言结合MySQl数据库开发过类似的办公管理系统,因此对开发信息管理系统有了一定的基础和认识,本人在开发过程中所积累的经验和得到的技术层次上的锻炼也为本系统的设计提供的有力支持,在做信息管理类系统这一方面有了更加成熟的技术和更加明确的方法。由于本设计最重要体现的是智能化,所以,通过大量的社会调查和分析,总结了高校新生报到时所能遇到的种种问题,并进行了分类处理,为我的设计原则提供现实依据,使开发出来的系统能够真正做到智能管理,解决实际问题。eq\o\ac(○,2)经济可行性。成本方面:由于本设计属于专业教学的一个环节,所以人力消耗为本人正常学习时间,资源有学校提供,指导老师义务提供指导。成本只需计算开发期间开发者的生活消费以及学校公共资源的消耗,可见本软件的开发成本是非常之低。效益方面:本系统投入小,功能全面,针对性强。可为高校新生报到提供强有力的帮助,自动化信息管理,自动化分配班级寝室等智能表现可为高校学生管理人员大大节约人力资源消耗,减少不必要的资源浪费,提高工作效率,以前需要多人共同协作的工作,若使用本系统只需一个管理员就能完成,工作量和劳动强度大大降低,校方资源降低支出,投资小,收益大。所以开发本软件能够通过经济可行性验证。eq\o\ac(○,3)操作可行性。本系统是为高等院校的学生信息管理人员开发的B/S模式的新生报到系统,客户端是网页浏览形式,所有使用本软件的用户是负责新生接待的高校工作人员,由于本系统设计的界面友好,流程清晰,提示信息准确无歧义,只要有一些简单的计算机操作知识储备的人,就能运用自如本软件。而且用户又是有一定计算机操作水平的行政工作人员,所以,本系统的操作可行性通过验证。从以上几个方面的分析来看,开发本软件是完全可行的。3.2需求分析3.2.1功能需求系统功能主要包括登录功能、管理员信息管理、学生信息管理、寝室信息管理、楼宇信息管理、班级信息管理、专业信息管理等。以下按照不同的功能处理具体功能进行描述。登录功能只有在输入正确的户名、密码和验证码才可登录进入操作界面。根据用户的不同进入的操作界面也不相同。2.管理员信息管理这个系统的系统管理员有权对员工信息进行管理,可以员工信息进行增添、删除、修改、查询功能。普通管理员即普通用户,只能修改个人密码。3.学生信息管理管理员可以对学生信息进行增加、修改、删除、查询功能。4.寝室信息管理管理员可以对寝室信息进行增加、修改、删除、查询功能。5.楼宇信息管理管理员可以对楼宇信息进行增加、修改、删除、查询功能。6.班级信息管理管理员可以对班级信息进行增加、修改、删除、查询功能。7.专业信息管理管理员可以对专业信息进行增加、修改、删除、查询功能。8.数据操作管理员可以对学生、专业等按名称进行模糊搜索。3.2.2数据需求整个业务的系统类图,如图3-1图3-1整个业务的类图表3-1是对类图的属性和方法的解释属性或方法解释student_id学生编号,是整型的,是学生的唯一标识,由系统自动生成student_name学生姓名,是字符串类型的student_sex学生的性别,是字符型的student_tele学生的联系方式,是字符型的province学生生源地所在的省,是字符串型的city学生生源地所在的市,是字符串型的student_birth学生的出生日期,是字符串型的student_score学生的入学分数,是双精度型的addStudent()录入学生信息,学校根据录取来的学生,将学生信息录入系统来进行统一的管理工作selectStudent()查看全部的学生信息editStudent()编辑学生信息,当学生的信息出现错误的时候,可以由管理员对学生的信息进行编辑工作deleteStudent()删除学生信息debideClass()给新生分班,将新生信息都录入到系统后,然后给新生进行分班工作class_id班级编号,是整型的,是班级的唯一标识,由系统自动生成class_name班级名称,是字符串类型的class_manager班级负责人的名字,是字符串类型的addClass()添加班级信息,当新生信息都录入完毕后,根据新生数量决定分多少个班,然后将班级信息录入管理系统selectClass()查看班级信息editClass()编辑班级信息,当班级信息比如名称或者管理者更换时都可以进行编辑工作deleteClass()删除班级信息dept_id专业编号,整型的,是专业的唯一标识,由系统自动生成dept_name专业的名称,是字符串型的dept_manager专业的负责人名字,是字符串型的addDept()录入专业信息selectDept()查看专业信息editDept()编辑专业信息,当专业名称或者专业负责人发生变化时,就应该编辑专业信息deleteDept()删除专业信息dormitory_id寝室编号,是整型的,是寝室的唯一标识,由系统自动生成dormitory_name寝室名称,是字符串类型的dormitory_num寝室能容纳的总人数,是整形的dormitory_inNum寝室已住的人数,是整形的addDormitory()添加寝室信息,当新建寝室楼或者寝室的数量增加时,就要添加寝室信息selectDormitory()查看寝室信息editDormitory()当寝室信息发生变化时就需要修改寝室的信息deleteDormity()删除寝室信息,当寝室废弃不用是就要删除寝室信息floor_id楼宇编号,是整型的,是楼宇的唯一标识,由系统自动生成floor_name楼宇的名称,是字符串型的floor_layers楼宇的层数,是整型的floor_num楼宇能容纳的人数,是整型的floor_inNum楼宇已住的人数,是整型的floor_sex楼宇的性质,是字符型的,有男、女两个值addFloor()录入楼宇信息,当有新的寝室楼时就要录入楼宇信息selectFloor()查看楼宇信息editFloor()编辑楼宇信息deleteFloor()删除楼宇信息3.3.3性能需求本系统结构设计合理,功能齐全,信息指标丰富、规范;采用模块化设计、结构合理、操作简单,具有友好的人机界面和灵活的系统可维护性;有优越的数据共享性,可以使用户充分的利用历史数据,减少数据的重复录入和工作量;方便快捷有效的完成宾馆管理系统的各项工作,录入数据合法性的校验程度高,数据查询速度快;有广泛的网络选择性,可以形成客户机/服务器结构的数据库系统。
第四章系统详细设计4.1系统组织结构图对图4-1系统管理员登录的系统组织结构图的描述:当系统管理员登录成功后进入系统管理员的操作界面,其中包括用户信息管理、学生信息管理、楼宇信息管理、寝室信息管理、专业信息管理、班级信息管理。在子模块中能对用户信息进行增加、修改、删除、查看,对学生信息进行增加、修改、删除、查看,对楼宇信息进行增加、修改、删除、查看,对寝室信息进行增加、修改、删除、查看,对专业信息进行增加、修改、删除、查看,对班级信息进行增加、修改、删除、查看等操作。图4-1系统的系统组织结构图4.2业务流程4.2.1添加新的管理员的数据流图描述:当学校有新的管理员来报到时,由系统管理员为新管理员注册信息。系统管理员将新管理员的信息录入到系统存到数据库中,再将刚录入的信息展示给新的管理员进行核对,如果新管理员对所录入的信息没有问题,则新管理员的录入工作完成。图4-2添加新的管理员的数据流图4.2.2修改学生信息的数据流图描述:当学生报到时看到自己的信息不正确时,可以将信息反馈到管理员那里,然后由管理员进行修改,管理员修改完成后,再查看修改后的学生信息,由学生查看修改后的学生信息是否正确,如果正确,则本次修改工作完成,否则继续本次修改工作。图4-3修改学生信息的数据流图4.2.3删除学生信息的数据流图描述:由于一些客观原因,学校需要将某个学生的信息删除。此操作有管理员执行,首先管理员要查看学生信息,找到要删除的学生的信息,然后将信息删除。图4-4删除学生的数据流图4.2.4新生分班的数据流图描述:当管理员将全部的学生信息都录入到信息后,然后为了迎接新生,需要对新生进行分班工作。分班后会显示分完班后的结果,然后管理员查看,如有不妥的地方,再进行个别调整即可。图4-5新生分班数据流图4.2.5新生分寝室数据流图描述:当管理员将全部的学生信息都录入到信息后,然后为了迎接新生,需要对新生进行分寝室工作。分寝室后会显示分完寝室后的结果,然后管理员查看,如有不妥的地方,再进行个别调整即可。图4-6新生分寝室数据流图4.3主要算法设计4.3.1登录模块算法设计时序图管理员在首页输入用户名、密码和验证码后,系统首先验证验证码是否正确,正确后可以进一步通过查询后台数据库验证用户信息,正确后可以进入登录成功页面,行使权限。图4-7用户登录过程的时序图4.3.2修改学生信息模块算法设计时序图在获取到要修改的学生信息后,管理员在修改界面进行修改操作,修改内容发送到后台后,更新后台数据库,之后数据库把修改后信息反显到前台页面,管理员审核后,业务处理完毕。图4-8修改学生信息的时序图4.3.3新生分班模块算法设计管理员打开分班界面进行分班,提交信息后程序会根据分班算法自动智能分班,分班结果会插入数据库,数据库获取分班结果进行存储,之后回到分班界面,管理员可以继续进行分班工作。图4-9新生分班的时序图4.3.4新生分寝室算法设计管理员打开分寝界面进行分寝室,提交信息后程序会根据分寝室算法自动智能分寝室,结果会插入数据库,数据库存储结果,之后回到分寝室界面,管理员可以继续进行分寝室工作。图4-10新生分寝室的时序图4.4数据库设计4.4.1数据字典根据需求分析可以得到表4-1的数据字典,以下是对其中的属性和实体的解释。表4-1数据字典概念解释管理员(user)系统的管理人员,能管理学校的各种信息,按照权限的不同可分为系统管理员和普通管理员管理员编号(user_id)管理员的编号,是由系统自动生成的,是唯一的标识用户名(username)管理员登录系统时用的用户名密码(password)管理员登录系统时用的密码角色(role)管理员的职位,可分为系统管理员和普通管理员性别(sex)管理员的性别,有男、女两个值出生日期(date)出生的日期联系方式(tele)管理员的联系方式学生(student)系统要管理的人员,学校刚录取进来的新生学生编号(student_id)学生编号,是唯一标识,由系统自动生成学生姓名(student_name)学生的姓名学生的性别(student_sex)学生的性别,有男、女两个值省份(province)学生生源地所在的省市(city)学生生源地所在的市学生出生日期(student_birth)学生的出生日期入学分数(student_score)学生的高考成绩,作为新生的入学分数专业(dept)学校根据要求所设立的专业专业编号(dept_id)专业编号,是唯一标识,由系统自动生成专业名称(dept_name)专业的名称专业负责人(dept_manager)专业的负责人,管理负责的专业的信息班级(class)根据不同的专业进行分班班级编号(class_id)班级编号,是唯一标识,有系统自动生成班级名称(class_name)班级的名称,通常是1、2、3这样排列下来的班级负责人(class_manager)班级的负责人,对班级的工作进行管理楼宇(floor)寝室楼楼宇编号(floor_id)楼宇编号,是唯一标识,有系统自动生成楼宇名称(floor_name)楼宇的名称层数(floor_layers)楼宇所有的层数能容纳的总人数(floor_num)楼宇所能容纳的总的人数已住人数(floor_inNum)楼宇内已经入住的人数楼宇的性质(floor_sex)楼是供男生还是女生居住的寝室(dormitory)楼里面的房间,供学生居住的寝室编号(dormitory_id)寝室编号,是唯一标识,由系统自动生成寝室名称(dormitory_name)寝室的名称,通常是以层数开始命名的寝室容纳人数(dormitory_num)寝室能容纳的人数寝室已住人数(dormitory_inNum)寝室已经入住的人数4.4.2系统用例图描述:系统中普通管理员能管理自己个人的密码,能对其进行修改工作,还能管理学生信息,管理班级信息,管理院系信息,管理楼宇信息,管理寝室信息。系统管理继承普通管理员的这些职能,他还能管理用户信息,即管理员信息。图4-11系统用例图4.4.3概念设计通过进行需求分析可以得到以下实体:寝室楼、寝室、专业、学生、班级、用户。图4-12是对各实体的关系的描述。图4-12新生报到系统概念设计模型图4.4.4逻辑设计根据概念模型和数据字典得出逻辑模型如图4-13。图4-13新生报到系统逻辑设计模型图对逻辑模型的描述,参见下面的表。dept表示专业,以下是对其的描述:表4-2专业表名称Datetype约束泛型文档dept_idinteger(4)PK否专业编号,是专业的唯一标识,由系统自动生成dept_namevarchar(50)否专业的名称dept_managervarchar(30)否专业负责人floor表示楼宇,以下是对其的描述:表4-3楼宇表名称Datetype约束泛型文档floor_idinteger(4)PK否楼宇的编号,是唯一楼宇的唯一标识,由系统自动生成floor_namechar(20)否楼宇名称floor_layersinteger(4)否楼宇的总层数floor_numinteger(10)否这个楼宇能住的总的学生数量floor_inNuminteger(10)否这个楼宇已经注入的人数floor_sexchar(2)否这个楼是男生入住还是女生入住,男表示由男生入住,女表示由女生入住class表示班级,以下是对其的描述:表4-4班级表名称Datetype约束泛型文档class_idinteger(4)PK否班级编号,是班级的唯一标识,由系统自动生成class_namechar(20)否班级的名称class_managerchar(30)否班级负责人deptdept_idinteger(4)FK(dept.dept_id)否dormitory表示寝室,以下是对其的描述:表4-5寝室表名称Datetype约束泛型文档dormitory_idinteger(4)PK否寝室的编号,是寝室的唯一表示,由系统自动生成dormitory_namechar(20)否寝室的名称dormitory_numinteger(4)否寝室能入住的总人数dormitory_inNuminteger(4)否寝室已经入住的人数floorfloor_idinteger(4)FK(floor.floor_id)否student表示学生,以下是对其的描述:表4-6学生表名称Datetype约束泛型文档student_idinteger(10)PK否学生编号,是学生的唯一标示,由系统自动生成student_namevarchar(30)否学生的名字student_sexchar(4)否学生的性别,有男、女两个值student_telechar(20)否学生的联系方式,用来和学生取得联系provincevarchar(30)否学生生源地的省份cityvarchar(30)否学生生源地的所在的市student_birthdate(0)否学生的出生日期student_scoredouble(10)否学生的入学分数dormitorydormitory_idinteger(4)FK(dormitory.dormitory_id)否classclass_idinteger(4)FK(class.class_id)否user表示管理员,以下是对其的描述:表4-7管理员名称Datetype约束泛型文档user_idinteger(4)PK否用户编号,是唯一标识,有系统自动生成usernamevarchar(30)否用户名,登录时将用到passwordvarchar(20)否密码,登录时会用到rolechar(20)否用户的角色,可分为系统管理员和普通管理员sexchar(4)否性别,只有男、女两个值birthdate(20)否出生日期telechar(20)否用户的电话号码,用来和用户取得联系
第五章系统实现5.1系统登录功能实现该模块包括系统管理员、普通管理员登录的主界面的设计。每个管理员都有事先分配好的用户名和密码,只有用户名和密码同时正确时才能登录成功。不同的用户根据权限不同,进入的登录界面也不同。现以系统管理员为例展现登录功能。进入系统欢迎页,在页面右侧会有登录输入页面,用户需要添加用户名、密码和验证码,如图5-1的登录页面。图5-1系统欢迎页面当用户登录成功后则进入到图5-2的界面,在这里有用户信息管理、学生信息管理、楼宇信息管理、寝室信息管理、专业信息管理、班级信息管理,图5-2系统管理员登录成功界面5.2添加功能实现5.2.1添加用户界面实现当有新的管理员来的时候就需要添加该管理员的信息,点击用户信息管理下的添加用户信息即可得如图5-3的界面,然后填入相应的信息,其中角色、性别、出生日期都是可以选择的,这可以避免用户手工输入的错误,这样设计很友好。图5-3添加用户界面5.2.2添加学生信息界面实现当想要添加学生信息时,就点击学生信息管理下的添加学生信息,或者在查看学生信息界面的左上方点击添加学生的按钮也可以,都会得到图5-4的界面。在这里有许多的信息都是不需要手工输入的,像性别、出生年月、籍贯等进行选择就可以了,这样可以避免手工输入造成的错误。此处还有校验,用户名、电话等都不能为空,选择用红色比较显眼。图5-4添加学生信息界面5.2.3添加楼宇信息界面实现当需要添加楼宇信息就点击楼宇信息管理,添加楼宇信息,或者在查看楼宇中点击添加楼宇信息就会得到图5-5的信息。图5-5楼宇信息添加界面5.2.4添加专业信息界面实现当学校有新的专业通过批准可以招生,这时就要对这个新的专业信息进行录入,点击专业信息管理中的添加专业信息就会显示5-6图。图5-6添加专业信息界面5.2.5添加班级信息界面实现在给学生分班前首先要确定班级的数量和名称,这就需要添加班级信息,点击班级信息管理中的添加班级信息,就会显示如图5-7的信息。图5-7添加班级信息界面5.2.6添加寝室信息界面当学校有新的寝室产生,这时就要录入寝室信息,点击寝室信息管理中的添加寝室信息,就会显示图5-8的信息。图5-8添加寝室信息界面5.3查看功能实现5.3.1查看用户信息界面设计如果想要查看用户的信息就点击用户信息管理下的查看用户信息,这样就能显示所有的用户信息,如图5-9所示,这里有分页,可以点击上页、下页、首页、尾页等来查看用户的信息。还可以对用户的信息进行编辑和删除及多条删除,还能进行模糊搜索,在条件那里相应的文本框里输入条件就能进行模糊查询了。图5-9查看用户信息界面5.3.2查看学生信息界面实现当要查看、编辑、删除学生信息时,就点击学生信息管理,查看学生信息就会出现图5-10的界面,在这里能够全选,多条删除,编辑,删除等,还可以先对学生信息按照姓名、性别、出生日期、籍贯等进行模糊搜索,然后将得到的结构进行操作也可。图5-10查看学生信息界面在上面的搜索条件的性别中选择男,则得到所有的男生的信息如图5-11。图5-11模糊搜索男生得到的结果的界面在上面的搜索中选择女,进行搜索得到女生信息如图5-12.图5-12模糊搜索女生得到的结果的界面5.3.3查看楼宇信息界面实现需要查看楼宇信息、编辑楼宇信息、删除楼宇信息就点击楼宇信息管理中的查看楼宇信息,然后选择相应的选项就行了。图5-13查看楼宇信息界面5.3.4查看寝室信息界面实现如果要查看寝室信息,比如容纳人数、已住人数等信息,点击寝室信息管理中的查看寝室信息就会显示图5-14的信息,这里可以对寝室进行编辑和删除。图5-14查看寝室信息界面5.3.5查看专业信息界面实现如果想要查看专业信息,只要点击专业信息管理中的查看专业信息,就会显示图5-15的信息。图5-15查看专业信息界面5.3.6查看班级信息界面实现如果想要查看班级信息,只要点击班级信息管理中的查看班级信息,就会显示图5-16的信息。图5-16查看班级信息界面5.3.7查看用户信息界面实现当点击用户信息管理查看用户详细信息后,就会显示如图5-17的界面。图5-17查看用户详细信息界面5.3.8直接浏览学生信息界面实现当学生直接浏览系统时,点的学生信息管理,查看学生信息后,就会显示图5-18的界面。图5-18查看学生信息界面5.3.9直接浏览班级信息界面实现当学生直接浏览系统时,点的班级信息管理,查看班级信息后,就会显示图5-19的界。图5-19查看班级信息界面5.4分配功能实现5.4.1给学生分班界面实现当需要给学生分班时就点击学生信息管理中的给学生分班,然后就会显示图5-20的信息,选择您要分班的专业点击分班就行了。图5-20给学生分班界面5.4.2给学生分寝室界面实现当需要给学生分寝室时就点击学生信息管理中的给学生分寝室,然后就会显示图5-21的信息,选择您要分寝室的专业和班级点击分寝室就行了。图5-21给学生分寝室界面5.5修改用户密码界面实现当普通管理员登录后可以修改密码,修改密码后如果输入的密码前后不一致就会提示,直到一致后才能合如图5-22.图5-22修改密码界面
第六章系统测试6.1系统测试概述软件测试是为了发现程序中的错误而执行程序的过程。一个好的测试用例能够发现至今尚未发现的错误;一个成功的测试应该能发现至今为止尚未发现的错误[10]。软件测试方法一般分为两大类:动态测试法和静态测试法,而动态测试法中有根据测试用例的设计方法不同,分为黑盒测试与白盒测试。由于毕业设计提交的系统只是为需求服务的原型,因此其系统测试相对简单,采用的是软件工程中的白盒测试与黑盒测试相结合的方式。即首先进行黑盒测试,出现错误后再进行白盒测试。6.2功能测试(1)用例编号:测试_01测试项:用户登录测试标题:输入正确信息,测试用户登录功能。预置条件:进入系统欢迎页。测试步骤:1.在输入框中输入真实存在的用户名和密码。2.点击登录。预期结果:显示登录成功提示。实际结果:显示登录成功提示,如图6-1所示。图6-1登录成功页面(2)用例编号:测试_02测试项:用户登录测试标题:输入不正确的用户名,测试用户登录功能。预置条件:进入系统欢迎页。测试步骤:1.在输入框中输入不存在用户名,或不正确的密码。 2.点击登录。 预期结果:提示用户名错误,返回登录首页。 实际结果:出现提示错误页面,点击确定出现首页。如图6-2,6-3。图6-2提示用户名错误页面图6-3系统首页(3)用例编号:测试_03测试项:修改个人密码测试标题:输入新密码和确认密码,测试修改个人密码功能。预置条件:进入修改个人密码页面。测试步骤:1.在输入框中输入新密码和确认密码。 2.点击提交。预期结果:出现密码修改成功页面。实际结果:出现密码修改成功页面。图6-4密码修改成功页面(4)用例编号:测试_04测试项:修改个人密码测试标题:输入新密码和确认密码,测试修改个人密码功能。预置条件:进入修改个人密码页面。测试步骤:1.在输入框中输入新密码和确认密码。2.点击提交。预期结果:当新密码输入前后不一致时出现密码修改错误页面。实际结果:出现密码修改错误页面,如图6-5。图6-5密码修改错误页面(5)用例编号:测试_05测试项:录入学生信息测试标题:输入学生的姓名、性别、出生年月、生源地、入学分数等信息,测试录入学生信息功能。预置条件:进入录入学生信息页面。测试步骤:1.在输入框中输入学生的姓名、性别、出生年月、生源地、入学分数等信息。 2.点击提交。预期结果:提示录入学生信息成功。实际结果:显示成功提示页。添加信息时会有必填项进行校验,当一些项目为空时,信息会添加失败,显示界面如图6-6信息。图6-6添加学生信息界面当上面的空都填上了,则点击提交,学生的信息如果添加成功就会出现图6-7的界面。图6-7添加学生成功提示(6)用例编号:测试_06测试项:录入寝室测试标题:输入寝室名称、容纳人数,测试录入寝室功能。预置条件:进入录入寝室页面。测试步骤:1.在输入框中输入寝室名称、容纳人数。 2.点击提交。预期结果:提示寝室录入成功。实际结果:出现提示寝室录入成功页面,如图6-8界面。图6-8添加寝室页面图6-9寝室添加成功页面(7)用例编号:测试_07测试项:分班测试标题:选择要分班的专业,测试分班功能。预置条件:进入分班页面。测试步骤:1.下来框中选择要分班的专业。 2.点击分班按钮。预期结果:显示分班成功提示页面。实际结果:显示分班成功提示页面,如图6-10。 图6-10分班页面图6-11分班成功页面(8)用例编号:测试_08测试项:分寝室测试标题:选择要分寝室的专业和班级,测试分寝室功能。预置条件:进入分寝室页面。测试步骤:1.选择要分寝室的专业、班级。 2.点击分寝室按钮。预期结果:提示分寝室成功。实际结果:提示分寝室成功页面,如图6-12。 图6-12分寝室页面 图6-13寝室分配成功页面6.3安全性分析安全性是系统设计、实现和管理的一部分,其作用是保证系统可以完全按照人们想要的方式运行。从另一个角度来说,安全性的作用是防止以我们不希望出现的方式使用系统[10]。我们永远不能保证一个系统是完全安全的。这就是说,"安全"并不意味着"百分之百的安全"。使用"安全"一词时,实际上是说,如果要凭借现有的知识基础以我们不希望的方式使用系统,那是基本不可能的,进而不必考虑这种情况的发生概率。个人理解这句话是,安全性的提高是减少发生不安全行为的概率。如果当概率足够小的时候,就可以认为是安全的。本网站中使用权限管理和session来加强系统的安全性。(1)对系统用户进行分类,登录后分别导入不同的操作界面,以防止越权操作。权限管理的范畴:1.功能级权限,可以让最终用户设置。(用户--角色--权限模型)。2.细粒度权限,根据用户需求,软件开发者开发在系统里面的。比如网站的管理员登录后可以对全部用户的信息进行操作,普通用户登录后只可以对自己的信息进行操作和查看别人的信息。权限应用场景:1.业务方法,比如向数据库插入、删除、修改数据,不要考虑权限,就是简单的SQL语句;2.在控制层需要权限的地方,执行权限判断。一个安全设计完善的系统需要在物理、网络、主机、应用、数据等几方面综合考虑,不是简单的权限控制就能实现的。(2)使用session,限制未经登录的访问。当用户从登录界面登录,JSP程序进行帐号和密码的检查后,如果数据符合则成功登录,将用户的ID值写入session对象,对以后的页面都会先检查session对象保存的数据,从而判断用户是否可浏览页面,以达到安全控制。如果检查失败都会返回登录界面,要求用户重新登录。
第七章算法介绍7.1新生分班问题背景新生分班是高校招生工作的延续,由于当前招生规模扩大,新生人数大幅增加,至少都是上千人,新生分班工作量非常大,编制分班程序,实现自动分班成为必然选择。由于高等学校分班目的重在学生管理,要求班级间状态平衡,即不同性别、生源地等人数各班要基本一致。班级人数、性别人数、生源地人数等属性,在分班过程相互交错影响,加之学生数量较多,因此,寻求一种高效的实现算法,就成为程序设计的关键。笔者在进行分班程序设计过程中,对分班问题的实质、分班过程的实现,取得了一些新的认识与体会,拓宽了分班程序设计思路,提高了程序的执行效率,取得了较为理想的分班结果。7.2分班程序设计的原则分班就是分学生,学生情况决定分班结果是人们对分班的普遍看法。这是因为在实际工作中,分班的对象是学生,分班需要满足的条件,也是学生统计数据,如班级人数,男、女生数,各省人数等等。以上看法,作为实际工作对待无可厚非,但是,如果以此为出发点,即按学生情况统计数据进行分班,作为程序设计分析却不尽然。首先,看一看分班目的。理想的分班目的如下:一、各班人数基本一致二、各班男、女比例基本一致三、各班同一生源地男、女比例基本一致也就是说,分班结果是尽可能使各班级间相同类型的的人数基本相同。无法相同时,班级间数量差别要尽可能小。再回想现实中一名新生的插班过程。一名新生到来,首先明确那个省的?性别?(性别就不需额外查询了,但是在我们脑海里是有这个概念的)。假设为A省,男生。然后,查询哪个班级人数最少?哪个班级男生最少?哪个班级A省人最少?综合以上条件,新生分配到一个恰当的班级中,使各班级状况基本一致。进一步细想,就会发现,即使每次分配多名新生,细化分班过程,本质上也是按上述方式进行的。所以,笔者认为:分班本质上是班级“瓜分”学生,学生加入那个班级,依赖班级间的比较关系。学生是加入人数“少”的班级,达到班级间各种状况的基本一致,实现最终分班目的的。对于班级的个数,一方面,对于高等院校而言,是以满足招生计划来进行的,是预先确定的;另一方面,学生总人数只是班级个数确定的一个条件,它还受到高校其他方面的影响,所以,班级个数是分班的一个先决条件,是由分班人员综合实现多方面情况确定的。因此,分班程序设计中只需明确两点:第一:学生自身属性。第二:班级间状态。第一点的要求显而易见。对于第二点,此时仍需注意:对于分班时刻的班级而言,只有多与少的状态。班级中的学生情况的统计数据,只是分班的结果状态,并不是分班时刻的班级状态,统计数据最终反映的也是班级间多少关系。因此,如能够明确班级间的比较关系,就不需要学生属性的统计数据,也就是说,分班与学生统计数据无关,仅仅依赖于班级间状态;如能够保证分班过程,每一位新生分配,都能使得各班级状态平衡,那么,就可以实现分班目的。进一步分析,设班级间状态为t1,t2,⋯,tn,分班也就是为每个学生,找到一个满足多个限制条件的解。至此,我们对问题的分析更加清楚、严格,更加一般,更加符合程序设计的算法要求。7.3分班的实现由以上分析看出,分班问题可以归类于算法设计中寻求最优解问题,但对于具体的分班而言,比之于最优解问题要简单——班级可能的状态情况有限。笔者的做法是:列出所有状态,然后直接进行组合状态判断,确定结果。下面是详细的说明。7.3.1班级间状态表示用“0”与“1”表示班级状态,“0”表示“多”,不允许加入新生;“1”表示少,允许加入新生。班级间状态组成一个长度为班级个数的字符串,称其为状态码。状态码位数与班级编号对应。如第一位,就对应1班。第二位对应2班,依次类推。每个条件均设一个状态码,状态码初始状态为全“1”。7.3.2分班过程逐一对新生进行班级分配。新生加入时,与新生属性相关状态码相“与”,所得结果码中为“1“的位数所对应班级,即为新生所需分配班级。如果有多位为1”,随机选择一位。分配完毕后,所有相关状态码对应位置“0”,然后进行下一名新生分配,如此循环直至所有新生分配完毕。当状态码各位均为“0”时,将状态码全部置“1”。7.3.3人工模拟分班例:某一时刻,某专业需要进行分班的新生情况,如表7-1所示:表7-1某专业需要分班的新生情况班级个数总计人数男女A省B省A省B省男女男女3158710555325名A省男生分配过程及状态码变化情况,如表7-2所示:表7-25名A省男生分配过程及状态码变化新生状态码类别12345班级人数111011001111(000)011班级男生数111011001111(000)011A省男生数111011001111(000)011相“与”111011001111011加入班级1班2班3班1班2班“111(000)”,表示状态码因全“0”而置为全“1”,以下各表中表示与此相同。1名A省女生分配过程及状态码变化情况,如表7-3所示:表7-35名女生分配过程及状态码变化新生状态码类别12345班级人数001111(000)011001111(000)班级女生数111110010111(000)110A省女生数111110010111(000)110相“与”001110010001110加入班级3班1班2班3班1班3名B省男生分配过程及状态码变化情况,如表7-4所示:表7-43名B省男生分配过程及状态码变化新生状态码类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 精量播种机调试校准操作指南
- 农机合作社管理服务制度
- 员工绩效考核管理制度方案
- 杂草抗性治理化学除草方案
- 危化品储存场所隐患排查标准
- 拔罐留罐时间控制规范指南
- 柑橘黄龙病阻断防控管理办法
- 家政员月度服务绩效考核标准
- 风力发电场内道路方案
- 肉鸭育雏期通风换气管理制度
- 2026广东清远市清城区统计局招聘清城区第四次全国农业普查专项工作人员5人考试备考试题及答案解析
- 2026中国低空经济白皮书
- 2026-2030中国膳食纤维行业运行现状及发展趋势研究报告
- 中国烟草总公司辽宁省公司招聘笔试真题2025
- 2026年注册土木工程师(水利水电工程水土保持)考试题库【综合卷】附答案详解
- 2026年二级建造师《机电工程管理与实务》考前模拟卷(二)
- 国开2026年《新媒体产品策划》形考作业1-5答案
- 企业清洁生产培训课件
- 人工智能赋能民族音乐创新传播路径研究
- 医院学科带头人考核制度详解
- csco结直肠癌诊疗指南(2025版)
评论
0/150
提交评论