• 710.90 KB
  • 2022-05-17 12:58:05 发布

课堂考勤管理系统的设计 优秀论文 定稿

  • 45页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
2012届本科生毕业论文学号:080501050102成绩:课堂考勤管理系统的设计院部:计算机科学与技术学院专业:计算机科学与技术姓名:王倩指导教师:陈强二〇一二年四月 毕业论文诚信声明本人郑重声明:所呈交的毕业论文《课堂考勤管理系统的设计》是本人在指导老师的指导下,独立研究、写作的成果。论文中所引用是他人的无论以何种方式发布的文字、研究成果,均在论文中以明确方式标明。本声明的法律结果由本人独自承担。毕业论文作者签名:王倩2012年月日 摘要本系统采用JAVA技术,以Tomcat为JAVA服务器、MicrosoftSQLServer2000为数据库系统,建立了一个基于B/S模式的三层体系的课堂考勤管理网站系统,以加强课堂考勤管理,提高课堂教学质量。本系统基于JAVA技术建立的课堂考勤管理毕业设计,其目标是完成高校教学中课堂考勤管理。系统主要包括未登录用户模块、学生模块、教师模块、教务员模块四个功能模块。其中未登录用户模块实现了信息查找等功能;学生模块实现了学生信息修改、考勤查看等功能;教师模块实现了教师修改信息、按教学班考勤等功能;教务员模块主要实现了密码修改,对学生、教师、课程、学生选课等。【关键词】JAVA;数据库;B/S模式;考勤 AbstractThesystemusingtheJAVAtechonlogy,takingTomcatastheJAVAserver,MicrosoftSQLServer2000asthedatabasesystem,hasestablishedthewebsitesystemofclassroomcheckingattendancemanageswhichisbasedonB/Spattern.Inordertoenhanceclassroomattendancemanagement,improvethequalityofclassroomteaching.TheclassroomcheckingattendancemanagementsystemisbasedonJAVAtechnology.Itsgoaliscompletingtheclassroomcheckingattendanceinuniversities.Thesystemmainlyincludesfourmodules.Theyaretheusernotregisteredmodule,studentmodule,teachermoduleandEducationaladministrationpersonnelmodule.Thesystemmainlyincludesfourmodules.Theyaretheusernotregisteredmodule,studentmodule,teachermoduleandEducationaladministrationpersonnelmodule.Inwhichhasnotregisteredtheusermodulehasmuchfunctions,suchassearchinginformationandsoon;Thestudentmodulerealizedfunctionssuchasmodifyingstudentinformationandobservingtheresultsofcheckingattendance;Theteachermodulerealizedtheteachertorevisetheinformationandcheckattendanceaccordingtotheclass;Thelastmodulemainlyrealizedthepasswordtoreviseandtheinformationofthestudent,theteacher,thecoursetomanage.【关键词】JAVA;database;B/Spattern;checkingattendant 目录第1章绪论1.1开发背景………………………………………………………………11.1.1课题研究内容和意义……………………………………………2    1.2可执行性分析…………………………………………………………21.3技术分析………………………………………………………………31.3.1B/S模式…………………………………………………………31.3.2JAVA技术………………………………………………………41.3.3HTML和CSS……………………………………………………61.3.4JavaScript技术………………………………………………7第2章系统设计2.1系统需求分析…………………………………………………………92.1.1需求概述…………………………………………………………92.1.2系统设计目标……………………………………………………92.1.3系统功能需求……………………………………………………102.1.4系统设计思想……………………………………………………112.2系统环境配置………………………………………………………11第3章数据库设计与实现3.1MicrosoftSQLServer2000简介…………………………………13   3.2数据库需求分析………………………………………………………133.3数据库逻辑设计………………………………………………………17 3.4数据库结构创建………………………………………………………173.4.1建立数据表………………………………………………………183.4.2数据表间关系……………………………………………………22第1章系统详细设计4.1用户登录………………………………………………………………234.1.1不访问服务JavaScript器函数验证……………………………254.1.2登陆服务器访问验证………………………………………………26   4.2学生功能模块设计……………………………………………………284.2.1学生信息修改………………………………………………………284.2.2考勤查看……………………………………………………………304.3教师功能模块设计……………………………………………………304.4教务员功能模块设计…………………………………………………334.4.1学生、教师、课程、学生选课管理………………………………33第5章结论………………………………………………………………………35致谢  ………………………………………………………………………………36参考文献 …………………………………………………………………………………37附录   ……………………………………………………………………………39 课堂考勤系统设计第一章绪论Internet是目前世界上最大的计算机互联网络,他遍布全球,将世界各地各种规模的网络连接成一个整体。作为internet上一种先进的,易于被人们所接受的信息检索手段。Java是由SunMicrosystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力:跨平台、动感的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet。另一方面,Java技术也不断更新。1.1开发背景目前社会上信息管理系统发展飞快,各个学校都引入了信息管理软件来管理自己日益增长的各种信息,考勤管理系统也是有了很大的发展,商业化得学校信息管理软件也不少。而目前学校的这项工作还处于半手工福安里阶段,信息资源的的数字化程度低,大部分历史积累的数据,尚未数字化。不利于科学福安里和决策。高校学生上课考勤管理都是以任课老师上课点名,记录学生上课出勤情况,学期末根据上课出勤表及作业登记表对学生平时成绩打分,然后把数据上交到各院系。学生请假以传统的写请假条的形式向各自班主任请假,时间长的请假,要班主任、院系领导都批准方能生效。这种的模式在目前高校管理中暴露出了许多弊端:一是学生请假不方便;二是学生请假对任课老师不透明,造成对学生上课出勤误记的情况;三是学生上课出勤表对班主任不透明,班主任很难知道本班学生上课的出勤情况,不便于与学生及时有效的沟通;四是学生对自己整个学期的上课出勤情况没有整体的统计信息。五是院系领导、学校领导更加把握不住学生上课的出勤情况。38 课堂考勤系统设计1.1.1课题研究内容和意义课堂是学生学习的主要场所,课堂学习是学生获取知识、培养能力、提高素质的主渠道。抓好课堂考勤是创造良好学习氛围,形成良好班风学风的必要条件。而在当前各高校学生上课较以前分散,课堂、教室的流动性使得班级概念相对弱化,班主任、辅导员、班干部对学生的上课情况的了解和掌握较弱,同时部分教师淡化课堂考勤,导致一些学生利用课堂考勤监控不严而长期旷课。课堂教学的新特点使传统的课堂考勤制度遇到严峻的挑战。作为计算机应用的一部分,使用计算机对学生课堂考勤信息进行管理,据有以下优点:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很必要的事情。1.2可执行性分析(1)技术可行性本系统仅需要一台装有MicrosoftSQLServer2000的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,采用B/S模式,利用JAVA技术,使用SQLServer2000中提供的数据库。所以在技术上完全可行。(2)经济可行性由于本系统是高校课堂考勤管理的系统,只要电脑联入互联网,即可使用系统,系统成本主要集中在系统开发上,当系统投入运行后可以为学校节约大量的人力,物力,提高学校的考勤效率。所带来的效益远远大于系统软件的开发成本,在经济上完全可行。(3)操作可行性界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。所以系统操作上完全可行。38 课堂考勤系统设计1.3技术分析本系统结构为B/S模式,采用JAVA技术。网页制作技术采用HTML,采用JavaScript和CSS技术,使得网页操作方便、快捷,而且界面美观、个性。1.3.1B/S模式 B/S(Browser/Server,浏览器/服务器)模式又称B/S结构。它是随着Internet技术的兴起,对C/S模式应用的扩展。在这种结构下,用户工作界面是通过IE浏览器来实现的。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据;最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。B/S模式最大特点是:用户可以通过WWW浏览器去访问Internet上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的Web服务器产生的,而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了WWW浏览器,一般无须任何用户程序,只需从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。B/S结构的优点:(1)具有分布性特点,可以随时随地进行查询、浏览等业务处理。  (2)业务扩展简单方便,通过增加网页即可增加服务器功能。  (3)维护简单方便,只需要改变网页,即可实现所有用户的同步更新。 (4)开发简单,共享性强38 课堂考勤系统设计1.3.2JAVA技术Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE,JavaEE,JavaME)的总称。Java技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。Java编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。  Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。Java的主要特性:(1)Java语言是简单的。Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,并提供了自动的废料收集,使得程序员不必为内存管理而担忧。  (2)Java语言是一个面向对象的。Java语言提供类、接口和继承等原语,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。  38 课堂考勤系统设计(3)Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(javanet),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。  (4)Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。  (5)Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。  (6)Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。  (7)Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSIC实现的。(8)Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。  (9)Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。  (10)Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable)38 课堂考勤系统设计的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。  (11)Java语言是动态的。Java语言的设计目标之一是适应于动态变化的环境。Java程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java中的类有一个运行时刻的表示,能进行运行时刻的类型检查。  Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。1.3.3HTML和CSS文本标记语言,即HTML(HypertextMarkupLanguage),是用于描述网页文档的一种标记语言。超文本标记语言在WWW上的一个超媒体文档称之为一个页面(page)。作为一个组织或个人在万维网上放置开始点的页面称为主页Homepage,或首页,主页中通常包括有指向其他相关页面或其他节点的指针(超级链接)。在逻辑上将视为一个整体的一系列页面的有机集合称为网站(Website或Site)。HTML是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。  HTML之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。所谓超级链接,就是一种URL指针,通过激活(点击)它,可使浏览器方便地获取新的网页。这也是HTML获得广泛应用的最重要的原因之一。38 课堂考勤系统设计HTML文档制作不是很复杂,且功能强大,支持不同数据格式的文件镶入,这也是WWW盛行的原因之一,其主要特点如下:  (1)简易性,HTML版本升级采用超集方式,从而更加灵活方便。  (2)可扩展性,HTML语言的广泛应用带来了加强功能,增加标识符等要求,HTML采取子类元素的方式,为系统扩展带来保证。 (3)平台无关性。虽然PC机大行其道,但使用MAC等其他机器的大有人在,HTML可以使用在广泛的平台上,这也是WWW盛行的另一个原因。CSS(CascadingStyleSheet)可译为“层叠样式表”或“级联样式表”,它定义如何显示HTML元素,用于控制Web页面的外观。通过使用CSS实现页面的内容与表现形式分离,极大提高了工作效率。样式存储在样式表中,通常放在部分或存储在外部CSS文件中。层叠式表的特点:(1)便于页面的修改。  (2)便于页面风格的统一。(3)减少网页的体积。1.3.4JavaScript技术Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司的BrendanEich设计,是一种动态、弱类型、基于原型的语言,内置支持类。JavaScript是Sun公司的注册商标。[1]Ecma国际以JavaScript为基础制定了ECMAScript标准。JavaScript也可以用于其他场合,如服务器端编程。完整的JavaScript实现包含三个部分:ECMAScript,文档对象模型,字节顺序记号。  38 课堂考勤系统设计 Netscape公司在最初将其脚本语言命名为LiveScript来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”[2],因此语法上有类似之处,一些名称和命名规范也借自Java。但JavaScript的主要设计原则源自Self和Scheme[3].JavaScript与Java名称上的近似,是当时网景为了营销考虑与Sun公司达成协议的结果。为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。现在两者都属于ECMAScript的实现。尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的编程语言来推广和宣传,但是JavaScript具有非常丰富的特性。38 课堂考勤系统设计第2章系统设计本章主要从系统的目标设计、功能设计和设计思想等几个方面阐述了系统的需求分析,最后通过需求分析给出了系统功能模块设计与开发的环境。2.1系统需求分析系统需求分析是系统分析和设计的一个重要阶段,他对系统提出了完整、准确、清晰、具体的要求。2.1.1需求概述系统主要完成高校教学中的课堂考勤管理功能。教师对自己授课的教学班学生进行考勤,学生可以查看自己的考勤记录,教务员可以管理系统中的所有数据。(1)运行环境:系统基本运行环境为Windows环境,安装Tomcat(WindowsXP/2000),安装MicrosoftSQLServer2000,配置好ODBC,即可在浏览器下可以浏览。(2)条件与限制:由于系统较小,且在windows系统下开发,故在windows环境下基本没有什么限制,只要运行环境配置正确即可。2.1.2系统设计目标本系统主要完成以下功能:(1)未登录用户模块实现了信息查找等功能;38 课堂考勤系统设计(2)学生模块实现了学生信息修改、考勤查看等功能;(3)教师模块实现了教师修改信息、按教学班考勤等功能;(4)教务员模块主要实现了密码修改,对学生、教师、课程、学生选课等。2.1.3系统功能需求根据系统设计目标,本系统有四种角色:未登录用户、学生、教师、教务员。每个角色对应一个模块,因此从功能上可以分为对应的四个模块,每个模块实现对应角色的功能。具体功能模块图如图2-1示。课堂考勤管理系统未登录用户教务员模块学生模块教师模块密码修改教师信息管理课程信息管理学生信息管理选课信息管理信息查找学生信息修改考勤查看教师修改信息考勤图2-1系统功能模块图38 课堂考勤系统设计2.1.4系统设计思想毕业设计采用JAVA技术,以Tomcat为JAVA服务器、MicrosoftSQLServer2000为数据库系统毕业设计,建立了一个基于B/S模式的三层体系的课堂考勤管理网站毕业设计。B/S本系统应用主要针对大学生校园的教学设计,考虑到大学生学生人数比较多,上课时间地点非常分散,而B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据,因此系统更适合用B/S模式构建,而不去考虑它对校园外部网络环境依赖性太强的缺点,因为大学校园网络条件很好,即使偶有网络中断,考勤也不是非常重要,考勤也可暂停。另外从投入成本比较、硬件投资保护比较、数据安全性比较、数据一致性比较、服务响应及时性比较、网络应用限制比较等方面也很容易得出就此系统而言B/S模式比较优越。选用java的原因:(1)类型安全。泛型的主要目标是提高Java程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者如果幸运的话,还存在于代码注释中)。(2)消除强制类型转换。泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,并且减少了出错机会。(3)潜在的性能收益。泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为未来版本的JVM的优化带来可能。由于泛型的实现方式,支持泛型(几乎)不需要JVM或类文件更改。所有工作都在编译器中完成,编译器生成类似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。38 课堂考勤系统设计2.2系统环境配置做好系统需求分析之后,我们应该选择系统开发的环境去实现系统的功能。下载安装SysdeoTomcat插件,用来管理Tomcat服务器,提供断点调试功能,并且能自动建立Tomcat环境,修改其配置文件,是一个不错的Tomcat开发插件。网页开发离不开HTML技术,HTML制作静态的网页的框架和页面,再加上CSS技术和JavaScript这样的脚本语言,使得网页漂亮、个性。因为系统采用B/S模式,因此必须选择一个网页编程技术,像JSP,PHP,JAVA这样的技术。38 课堂考勤系统设计第2章数据库设计与实现本章简单介绍了MicrosoftSQLServer2000,然后着重阐述了数据库的需求分析,逻辑设计及优化和数据库表的创建,详细地介绍了系统数据库的分析、设计及其实现的过程。3.1MicrosoftSQLServer2000简介MicrosoftSQLServer2000是由微软Microsoft出品,基于关系型数据库的大型数据库系统。它具有独立于硬件平台、对称的多处理器结构、抢占式多任务管理、完善的安全系统和容错功能,并具有易于维护的特点。同时又比它的增加了许多更先进的功能、具有使用方便、可伸缩性好与相关软件集成程度高等优点。MicrosoftSQLServer2000有如下主要特点:(1)具有丰富的图形管理工具。(2)动态自动管理和优化。系统在运行过程中可根据运行时的状态自动配置参数。(3)支持XML、HTTP。通过XML可访问MicrosoftSQLServer服务器。(4)丰富的编程接口。Transact-SQL、DB-LibraryforC、嵌入式SQL。(5)具有良好的伸缩性和可靠性。可运行在多种操作系统下;可运行在鄲CPU或对称多CPU环境下。(6)简单的管理方式。SQLServer具有较好的管理工具外,还可与操作系统有机集成,利用操作系统提供的服务和功能管理SQLServer系统。3.2数据库需求分析系统中的实体有:学生、教师、课程、教务员。关系有:学生修课,教师授课。38 课堂考勤系统设计(1)校园风景实体E-R图如图3-1示校园风景文件名名编号名称图3-1校园图片实体E-R图(2)教务员实体E-R图如图3-2示教务员用户名密码性别姓名图3-2教务员实体E-R图(3)学生实体E-R图如图3-3示学生密码班级学号姓名专业性别出生年月学院电话图3-3学生实体E-R图38 课堂考勤系统设计(1)教师实体E-R图如图3-4示教师密码编号学院姓名电话性别图3-4教师实体E-R图(2)课程实体E-R图如图3-5示课程编号上课地点课程名学分上课时间图3-5课程实体E-R图(6)学院实体E-R图如图3-6示学院专业名学院名图3-6课程实体E-R图38 课堂考勤系统设计(7)教师、学生、课程之间关系的E-R图。教师和课程之间是1对n的讲授关系,,也就是说一名老师可以讲授多门课程;学生修课既和老师有关又和课程有关,即学生和讲授关系有关,将讲授和其对应的实体-教师和课程作为一个聚集。学生与此聚集之间有1对M的修课关系,即一名学生可以修多门课程。E-R图如图3-7示。编号课程名代码编号姓名学分性别教师教师n1讲授上课时间电话学院上课地点密码开课时间教学班号m出勤早退缺勤请假修课迟到成绩1学生班级学号专业姓名学院性别电话出生年月图3-7教师、学生、课程之间关系E-R图38 课堂考勤系统设计3.3数据库逻辑设计数据库的逻辑设计就是把E-R图转化为所选用地数据模型。本系统数据库系统为SQLServer2000,因此将E-R模型转化为关系数据模型即可。学生(学号,学生名,性别,出生年月,电话,学院,专业,班级);教师(教师编号,教师名,性别,电话,院系,密码);课程(课程编号,课程名,学分,上课时间,上课地点);学院(学院名称,系别名称);教授(课程代码,教师编号,课程编号,教学班号,开课时间);修课考勤(课程代码,学号,课程编号,教师编号,教学班号,早退,迟到,旷课,请假)。3.4数据库结构创建数据库采用MicrosoftSQLServer2000,利用SQL语言,通过查询分析器可以创建数据库和建立数据表,通过企业管理器也可以方便的管理数据库。38 课堂考勤系统设计3.4.1建立数据表通过SQL语句在查询分析器下边可以方便的建立数据库以及数据表。在查询分析器中分别建立教务员信息表(ADMIN)、学生信息表(STU_INF)、教师信息表(TEA_INF)、课程信息表(COU_INF)、学生修课考勤表(ATT_INF)。下边仅以创建修课考勤表为例:CREATETABLEATT_INF--修课考勤表(idINTIDENTITY(1,1)PRIMARYKEY,--自动编号cou_codINTNOTNULL,--课程代码cou_numCHAR(8)NOTNULL,--课程编号cou_namVARCHAR(20)NOTNULL,--课程名称tea_numCHAR(8)NOTNULL,--教师编号tea_namVARCHAR(8)NOTNULL,--教师姓名stu_numCHAR(8)NOTNULL,--学生编号stu_namVARCHAR(8)NOTNULL,--学生姓名cla_numSMALLINTNOTNULL,--教学班号cou_creNUMERIC(2,1)NOTNULL,--课程学分leave_earlyTINYINTNOTNULL,--早退次数lateTINYINTNOTNULL,--迟到次数absentTINYINTNOTNULL,--缺席次数attTINYINTNOTNULL,--到勤次数leaveTINYINTNOTNULL,--请假次数CONSTRAINTFK_atea_con--创建FK_atea_con外键约束FOREIGNKEYtea_num--tea_num参考表TEA_INF(教师信息表)REFERENCEStea_inf(tea_num)--中的tea_num项38 课堂考勤系统设计ONUPDATECASCADE--更新时级联更新ONDELETENOACTION,--删除时没有动作CONSTRAINTFK_astu_con--创建FK_astu_con外键约束FOREIGNKEYstu_num--stu_num参考STU_INF(学生信息表)REFERENCESstu_inf(stu_num)--中的stu_num项ONUPDATECASCADE--更新时级联更新ONDELETENOACTION,--删除时没有动作CONSTRAINTFK_acou_con--创建FK_acou_con外键约束FOREIGNKEYcou_cod--cou_num参考表TEA_INF(学生信息表)REFERENCEScou_inf(cou_cod)--中的cou_num项ONUPDATENOACTION--更新时没有动作ONDELETENOACTION,--删除时没有动作)教务员信息表存贮教务员的用户名、姓名还有密码,因为密码要经过MD5加密,所以密码长度为50。表结构如表3-1示。表3-1教务员信息表ADMIN教师信息表存贮教师的基本信息,主要包括教师编号、教师姓名、性别、所在学院、电话、登录密码。表结构如表3-2所示。表3-2教师信息表TEA_INF38 课堂考勤系统设计学生信息表记录了学生的基本信息,包括学号、学生姓名、性别、出生年月、电话、学院、专业、年级,还有密码。表的详细结构如表3-3所示。表3-3学生信息表 STU_INF学院专业信息表主要记录学院和对应的专业,包括学院名和专业名。因为记录数量比较少,所以不设主键。表结构如图3-4所示。表3-4学院专业信息表MAJOR程信息表记录了课程的基本信息,包括课程代码、课程编号、授课教师编号、姓名、教学班号、学分、开课院系、开课周,上课时间。表结构如表3-5所示。表3-5课程信息表COU_INF38 课堂考勤系统设计校园风景信息表主要是记录校园风景图片的信息,主要包括图片编号,图片名称和图片上传的时间。表的结构如表3-6所示。表3-6校园风景信息表PIC_INF学生修课信息表是整个系统的关键表,记录了学生的考勤记录。主要字段有学号、学生姓名、课程编号、课程名称、教师编号、教师姓名、教学班号、学分、早退次数、迟到次数、旷课次数、请假次数、出勤次数。表结构如图3-7所示。表3-7学生修课考勤表ATT_INF38 课堂考勤系统设计3.4.2数据表间关系数据表建立好之后,我们可以在企业管理器中查看表之间的关系。本系统数据库建立好之后,可以看见数据库间的关系如图3-8所示。由图可知:pic_inf(校园风景表)、admin(教务员信息表)是2个独立的表,他们各自和其他的表没有直接的关系,而tea_inf(教师信息表)、cou_inf(课程信息表)、stu_inf(学生信息表)、att_inf(修课考勤信息表)之间有关系存在。图3-8数据表间关系图38 课堂考勤系统设计第4章系统详细设计本章详细介绍了系统的编码实现过程。按照功能模块分别介绍了未登录用户、学生用户、教师用户、教务员用户等四个功能模块设计,着重介绍了系统编码实现中的难点和重点。4.1用户登录登陆界面主要是2个文本框分别输入用户名和密码,一个下拉框选择登陆类型。界面如图4-1所示,程序如下示。用户名:密码:类型:学生action="login_check.asp":数据后login_check.asp处理数据;onSubmit="returncheck(this)":点击提交按钮之后,返回check()函数值38 课堂考勤系统设计name="username":设置文本框或下拉框的名字;maxlength="8":设置可输入的最大长度为8;tabindex="2":设置tab键的顺序为2;class="samllInput"设置文本框的样式位samllInput,samllInput是css文件中设置的一个文本框的样式类。图4-1用户登录界面用户登录先经过javascript函数验证,验证成功则进行服务器验证,否则就提示用户有错误。用户登录流程如图4-2示。图4-2用户登录流程38 课堂考勤系统设计4.1.1不访问服务JavaScript器函数验证JavaScript语言可以实现不用访问服务器就可以对从用户提交来的数据进行有效性验证。登陆的验证通过以下check(form)函数进行验证。OnSubmit="returncheck(this)"实现当用户点击提交之后,调用check(form)进行数据验证,验证错误,返回false,弹出一个信息框,提示用户数据输入有误,用户输入的数据不会提交给服务器,这样可以节约用户上网效率,减少WEB服务器的负担。具体check(form)函数程序如下。Functioncheck(form){varuser=login.username.value.replace(/(^s+|s+$)/g,"");//定义user变量,利用正则去空格varpwd=login.password.value.replace(/(^s+|s+$)/g,"");//定义pwd变量,利用正则去空格if(user==""|pwd=="")//如果用户名或者密码为空{alert("用户名或密码不能为空!");//提示错误信息returnfalse;//返回false}elseif(user.length!=8|user.search(/[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/gi)==-1){//如果用户名长度不为8,或者不为9个数字alert("用户名格式不正确,只能为8位数字");//提示错误信息returnfalse;//返回false}elsereturntrue;//数据符合,返回true,数据提交给web服务器38 课堂考勤系统设计}运行过程中,当用户没有输入信息、或输入信息不全、或者用户名或空格输入的都是空格,提示如图4-3示。图4-3用户提示当用户名不为8位数字(教师编号和学号只能为8位数字),提示如图4-4示。图4-4用户提示4.1.2登陆服务器访问验证先读取用户提交的用户名、密码和用户类型,并且去掉空格,然后对密码进行MD5加密。根据用户类型在对应的表中查找是否有符合的数据,没有查找到就给用户提示,返回首页,以便用户重新登陆。如果找了符合的数据,设置session(“username”)为用户名,session("user")为用户姓名,根据用户登录类型设置session("pass")。<%‘conn.asp为数据库连接文件,md5.asp为MD5加密文件38 课堂考勤系统设计username=trim(request("username"))‘读取用户提交的用户名,trim去空格password=md5(trim(request("password")))‘读取用户提交的密码,去空格,MD5加密kind=request("kind")‘读取用户类型ifkind="学生"then‘如果用户类型为学生SQLstr="selectstu_nam,Stu_num,Stu_pasfromStu_infwhereStu_num=""&username&""andStu_pas=""&password&"""‘在学生信息表中查找用户名和密码else‘如果用户类型为教师,同上设置不同SQL查询语句,省略代码……endifOpenDataBase(SQLstr)‘调用Opendatabase()执行SQL查询语句ifobjRS.EOFthen‘如果没有找到response.write"alert("用户名不存在请注意用户类型!");document.location="index.asp";"‘提示错误信息,返回到首页else‘如果找到session("username")=username‘设置session("username")为用户名ifkind="学生"then‘如果登陆类型为学生session("pass")="pass1"‘设置session("pass")session("user")=objrs("stu_nam")‘设置session("user")为学生姓名response.redirect"index.asp"‘返回首页else‘如果用户类型为教师,同上设置不同值,省略……38 课堂考勤系统设计endifendif%>使用Session对象存储特定的用户会话所需的信息。当用户在应用程序的页之间跳转时,存储在Session对象中的变量不会清除;而用户在应用程序中访问页时,这些变量始终存在。也可以使用Session方法显式地结束一个会话和设置空闲会话的超时期限。系统中利用session("pass")设置权限,pass1为学生,pass2为教师,pass3为教务员,可以很容易根据session("pass")的值确定用户的登陆状态,根据用户状态可以设定用户可以访问那些页面,禁止访问那些页面。4.2学生功能模块设学生模块的主要功能有信息修改、考勤察看。下边主要讨论这些功能实现的关键和难点。4.2.1学生信息修改此功能是把用户的信息显示在网页上,当用户想修改数据的时候,填写新数据,验证、提交即可。网页界面如图4-5示。查找代码如下。<%SQLstr="select*fromstu_infwherestu_num=""&session("username")&"""OpenDataBase(SQLstr)‘调用OpenDataBase()函数,执行SQL查找语句。%>38 课堂考勤系统设计图4-5修改信息界面">:在文本框中输出学生电话,其他从数据库中查询到的数据同样可以很方便的显示在网页上。:点击提交按钮调用check()函数,如果验证失败,返回false,提示错误信息;否则将数据提交给数据处理页mod_stu1.asp,将它写入数据库。Check()函数使用JavaScript脚本语言编写。处理数据页mod_stu1.asp核心程序如下。<%stu_pho=request("phone")‘读提交的phone值。省略读取其它提交的数据……SQLstr="select*fromstu_infwherestu_num=""&session("username")&"""OpenDataBase(SQLstr)‘执行查询SQL语句,找到用户信息所在的ifstu_pas<>""thenobjRS("stu_pas")=md5(trim(stu_pas))‘密码去空格,加密endifobjRS("stu_pho")=trim(stu_pho)……省略其他38 课堂考勤系统设计objRS.update‘提交入数据库%>4.2.2考勤查看这个模块很简单,只是从数据库中把和用户有关的考勤数据读取出来,以表格形式显示在网页上即可。使用SQL查询语句,调用OpenDataBase()函数即可很容易把学生的考勤数据读取出来,以表格形式按学生所选的课程显示考勤状况。为了方便用户的查询和留言,在教师编号、教师姓名、留言处有超链接。网页界面如图4-6示。图4-6查看考勤界面程序中onclick事件打开一个窗口,窗口宽、高、是、否有工具栏等为程序控制。window.open后是要打开的网页地址,为目录book下的book_add.asp,“?”后边传递了几个变量的值,用来确定book_add.asp中的数据处理的目标。课程编号,课程名,教师名处的超链接都同理可以实现。4.3教师功能模块设计38 课堂考勤系统设计教师功能中信息修改和学生模块中设计及实现基本相同。教师模块的核心功能是考勤。系统的设计思想是读取要考勤班级的所有学生考勤状态,利用分页技术显示,教师逐个选择每个学生考勤状态,提交即可。网页界面如图4-7示。点击网页中的修改弹出修改考勤的窗口,程序控制其窗口大小,是否有工具栏等,并且给修改页面传递参数,程序如下。&course=<%=course%>&cla_num=<%=cla%>","windowname","menubar=no,resizable=no,top=250,left=250,width=600,height=150")">修改图4-7考勤界面38 课堂考勤系统设计考勤修改界面如图示4-8示。点击图中某学生后的修改可以对此学生的考勤进行修改。向数据库中提交考勤状况程序如下。<%dimkq(15)‘定义考勤状态数组dimstu_num(15)‘定义学号数组kq(0)=request("kq0")……读考勤状态kq(1)、kq(2)……kq(14)stu_num(0)=request("stu_num0")‘读数据……读考勤状态stu_num(1)、stu_num(2)……stu_num(14)cou_num=request("course")cla=request("cla")fori=0to14‘循环判断ifstu_num(i)=""then‘如果为空,退出exitforendififkq(i)=1then‘kq(i)为1,表示出勤SQLstr="updateatt_infsetatt=att+1wherecou_num=""&cou_num&""andstu_num=""&stu_num(i)&""andcla_num="&cla&"andtea_num=""&session("username")&"""OpenDataBase(SQLstr)‘执行出勤数加1的SQL语句endififkq(i)=2then……’其他可能,执行对应的SQL语句Next……提示考勤成功%>38 课堂考勤系统设计图4-8修改考勤界面4.4教务员功能模块设计教务员主要功能有:校园风景管理、学生、教师、课程、学生选课信息管理、用户密码修改、安全退出等功能。下文从设计和实现做具体讨论。4、4、1学生、教师、课程、选课信息的管理学生教师信息管理数据的查询,增加,删除,编辑本身并没有难度,关键是这些数据之间有关系,在数据操作之前要对操作的数据进行检测。例如添加一个学生,如果学号已经存在,那么提示用户不能添加重复信息,以免破坏数据库的完整性。再如删除一个老师信息,先要检测是否这个老师是否有授课,如果没有才可以删除此教师的信息。下边以删除一个教师的信息,讨论一下管理教师信息,其他类似。删除教师信息流程如图4-11示。程序实现和文件删除相似。现在课程表中查找是否有教师授课信息,如果有,则提示用户不能删除;如果没有,才可以删除。38 课堂考勤系统设计图4-11教师信息删除流程图38 课堂考勤系统设计第4章结论本系统采用JAVA技术,以Tomcat为JAVA服务器、MicrosoftSQLServer2000为数据库系统,建立了一个基于B/S模式的三层体系的课堂考勤管理网站系统。系统实现了课堂考勤管理的功能,还包括了校园风景、信息速查、信息修改、教务管理员对数据库信息的管理等功能。系统总体令我满意,但也有许多需要改进的地方。比较满意的地方有:系统功能比较全面,不仅满足了课堂考勤的需要,而且扩展了其它实用的功能;系统界面美观,操作方便。完成这个完整的系统对我有很大的锻炼,从网站的需求分析,到架构分析和设计,全是由我一人完成。通过毕业设计学习了很多的更深的知识,深刻感觉到自己知识的不足,也促使了我不断地学习,现在已经能够不叫灵活的运用这些技术。通过本次毕业设计,我学到了很多的东西,例如:JAVA技术,数据库设计及实现,软件开发流程等等。这次毕业设计是对我大学本科四年学习的知识一次综合应用。使我实践了以前课堂和书本上的知识,并不断的加强改进,在不断的改进中学习了很多新的知识。同时,也让我认识到了自己不足的方面,让我受益匪浅,也对我以后的工作很很大的帮助。38 课堂考勤系统设计致谢这次毕业论文能够得以顺利完成,并非我一人之功劳,是所有指导过我的老师,帮助过我的同学对我的教诲、帮助的结果。我要在这里对他们表示深深的谢意。本课题在选题及研究过程中得到陈强老师的悉心指导。陈老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路、精心点拨、热忱鼓励。陈老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽时间短暂,却给以终生受益无穷之道。对陈老师的感激之情是无法用言语表达的。他细心指导我的学习与研究,在此,我要向陈老师深深地鞠上一躬。38 课堂考勤系统设计参考文献【1】赵文靖.Java程序设计基础与上机指导[M].北京:清华大学出版社,2006【2】王路群.Java高级程序设计[M].北京:中国水利水电出版社,2006【3】吴其庆.Java程序设计实例教程[M].北京:冶金工业出版社,2006【4】柳西玲,许斌.Java语言应用开发基础[M].北京:清华大学出版社,2006【5】郑莉,王行言,马素霞.Java语言程序设计[M].北京:清华大学出版社,2006【6】王路群.Java高级程序设计[M].北京:中国水利水电出版社,2006【7】聂庆亮.Java应用开发指南[M].北京:清华大学出版社,2010【8】[美]RogersCadenhead,梅兴文译.Java编程入门经典[M].北京:人民邮电出版社,2007第4版【9】贝佳,陶列骏,郑康,潘金贵.程序Java化过程中的软件工程策略[J].计算机工程,2003,(7)【10】周毅.软件工程之Java实现策略[J].甘肃科技,2005,(3)【11】施伯乐.数据库技术[M].北京:科学出版社,2002【12】苗雪兰,刘瑞新,宋会群.数据库技术及应用[M].北京:机械工业出版社,2004第二版38 课堂考勤系统设计【13】钱雪忠.数据库原理及应用[M].北京:北京邮电大学出版社,2007第二版【14】袁鹏飞.SQLServer2000数据库系统管理[M].北京:人民邮电出版社,2001【15】张志梅.一种基于JAVA平台向SQLSERVER写长数据的方法[J].青岛大学学报(工程技术版),2003,(3)【16】祁新安,侯清江.SQLServer数据库的运用研究[J].制造业自动化,2010,(12)【17】刘阿云.数据库访问安全性研究及实现[J].科技创新导报,2009,(4)【18】刘勇,石涛,徐从富.基于UML的面向对象软件设计[J].计算机应用研究,2004,(11)【19】王瑞金,段会川,MartinGogolla.统一建模语言UML及其建模实例[J].计算机应用研究,2002,(8)【20】陈玲.数据加密技术探究[J].电脑编程技巧与维护,2009,(10)【21】叶红,李素,郝建强.组合数据加密算法的研究与实现[J].北京工商大学学报:自然科学版,2007,(6)38 课堂考勤系统设计附录38