(JAVA SQL)学生成绩管理系统_第1页
(JAVA SQL)学生成绩管理系统_第2页
(JAVA SQL)学生成绩管理系统_第3页
(JAVA SQL)学生成绩管理系统_第4页
(JAVA SQL)学生成绩管理系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE31黑龙江大学毕业设计论文学生信息管理系统的设计与实现THEDESIGNANDIMPLEMENTATIONOFSTUDENTINFORMATIONMANAGEMENTSYSTEM学生姓名:孙艺玮学号:20106946年级专业:2010级计算机科学与技术指导老师:刘东辉老师学院:黑龙江大学(伊春分校)提交日期:2014年4月目录摘要 3开发平台及工具简介 51)开发的意义 6(一)学生信息管理系统概述 7(二)需求分析 81)功能需求分析 82)性能需求分析 93)数据库需求分析――数据流图 94)数据结构分析――数据流图 10(三)系统功能结构设计 12三、系统设计 13(一)设计目标 13(二)开发及运行环境 13(三)数据库设计 14四、系统的实现 17(一)学生信息系统部分 17(二)后台管理信息部分 19登陆模块 19年纪班级管理模块 20查询管理模块 24添加修改模块 24学生信息管理模块 27管理员模块 29五、系统存在的问题及前景展望 30(一)系统存在问题 30(二)前景展望 30参考文献 31摘要学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的关键词:java,SQL,学生成绩管理AbstractStudentinformationmanagementsystemisanimportanttoolforschoolmanagementisanintegralpartoftheschool.withtheincreaseinthenumberofcollegestudents,thenumberofeducationalsystemisalsoconstantlyrising.Schoolworkcomplicated,manymaterials,thedifficultofmanualmanagementinformationisalsogrowing,apparentlycannotmeettheactualneeds,efficiencyisverylow.Andthistraditionalapproach,therearealotofdrawbacks,suchas:poorsecurity,checktheinconvenience,inefficiency,andsodifficulttomaintainandupdate.However,thesystemfortheaboveshortcomingscangreatlyimprovethesystemfortheaboveshortcomingscangreatlyimproveefficiencyofinformationmanagementstudents,butalsoscientific,Standardizedmanagement,importantconditionwiththeworld.Sohowinformationisautomaticallywiththeworld.Sohowinformationisautomaticallyandefficientlymanagetheseyearsmanypeoplestudied.Keywords:java,SQL,Studentinformationmanagement一、开发平台及工具简介1、Java概述Java包括Java编程语言、开发工具和环境、Java类库等。Java语言是美国SUN公司开发的一种完全面向对象的程序设计语言。Java语言由C++语言发展而来,但比C++语言简单。Java语言具有简单、与平台无关、高效、健壮、安全、多线程等特点,它是当前网络编程中的首选语言。JDK提供了Java程序的编译和运行方式,并且编译和运行都是命令行方式。JDK本身没有提供源程序编辑环境,没有提供可视化的集成开发环境(IntegratedDevelopmentEnvironment,IDE)。有一些其他Java开发工具提供集成开发环境,如Eclipse、JCreator、JBuilder等,它们都是建立在JDK的运行时环境之上的。Java是一门编译语言(compiledlanguage),但它不直接生成硬件处理器指令,而是生成一种字节码(bytecodes)这种字节码由Java虚拟机解释执行。Java虚拟机(JavaVirtualMachine,JVM)实际上是一个程序,它定义了指令集、寄存器集、类文件结构栈、垃圾收集堆、内存区域等,提供了跨平台能力的基础框架。Java虚拟机实现了一台理想的计算机,并可以优化运行Java程序。因此,一个Java程序其实是被Java虚拟机执行的,而Java虚拟机运行于实际的处理器之上。Java虚拟机执行应用程序具有以下三个典型特点:1)JavaJava2、SQLServer2005SQLServer2005是Microsoft公司推出的SQLServer数据库管理系统的最新版本该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。它的优点有:1)上手容易,学习SQLServer是掌握其他平台及大型数据,如Oracle,Sybase,DB/2的基础。因为这些大型数据库对于设备、平台、人员知识的要求往往较高,而并不是每个人都具备这样的条件,且有机会去接触它们。但有了SQLServer的基础,再去学习和使用它们就容易多了。IT行业的实践经验充分证明了这一点。2)兼容性良好,由于今天Windows操作系统占领着主导地的位,选择SQLServer一定会在兼容性方面取得一些优势。另外,SQLServer2000除了具有扩展性,可靠性以外,还具有可以迅速开发新的因特网系统的功能。尤其是它可以直接存贮XML数据,可以将搜索结果以XML格式输出等特点,有利于构建了异构系统的互操作性,奠定了面向互联网的企业应用和服务的基石。这些特点在.NET战略中发挥着重要的作用。3)相对于7.0的忧越性,MicrosoftSQLServer2005是在SQLServer7.0的基础上对性能、可靠性、质量以及易用性进行了扩展。SQLServer2000中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。其增强的特性包括对丰富的扩展标记语言(XML)的支持、综合分析服务以及便捷的数据库管理。4)电子商务,在使用由MicrosoftSQLServer2005关系数据库引擎的情况下,XML数据可在关系表中进行存储,而查询则能以XML格式将有关结果返回。此外,XML支持还简化了后端系统集成,并实现了跨防火墙的无缝数据传输。你还可以使用HypertextTransferProtocol(超文本传输协议,HTTP)来访问SQLServer2005,以实现面向SQLServer2005数据库的安全Web连接和无须额外编程的联机分析处理(OLAP)多维数据集。5)数据仓库,MicrosoftSQLServer2005非常明显的改进就是增加了OLAP(联机分析处理)功能,这可以让很多中小企业用户也可以使用数据仓库的一些特性进行分析。OLAP可以通过多维存储技术对大型、复杂数据集执行快速、高级的分析工作。数据挖掘功能能够揭示出隐藏在大量数据中的倾向及趋势,它允许组织或机构最大

限度的从数据中获取价值。通过对现有数据进行有效分析,这一功能可以对未来的趋势进行预测。6)增强的在线商务,MicrosoftSQLServer2005简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。其中,用以提高可靠性的特性包括日志传送、在线备份和故障切换群集。在伸缩性方面的改进包括对多达32颗CPU和64GBRAM的支持。通过自动优化和改进后的管理特性--诸如数据文件尺寸的自动管理、基于向导的数据库拷贝、自动内存管理和简化的故障切换群集安装与管理,在线商务应用程序能够被迅速部署并有效管理。7)利于构筑"敏捷性商务",所谓"敏捷性商务"就是能够打破内部和外部的商业界限,对迅速改变的环境做出快速反应。。微软已经与关键的合作伙伴建立起了战略关系,创造出了能够与许多供应商的产品实现整合的解决方案,因而企业用户并不需要做出"要么完全接受,要么全部不要"的承诺。在部署解决方案的过程中,企业用户不一定要拆除原有的设备从头。敏捷商务让企业用户能够充分利用现有的系统,自主决定所需的硬件和软件解决方案以及由谁来提供,伸缩自如、游刃有余。1.1开发意义随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。系统分析学生成绩管理系统概述1)学生成绩管理系统的发展背景学生信息管理是各大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,学生成信息日常管理工作及保存管理日趋繁重、复杂。迫切需要研制开发一款功能强大,操作简单,具有人性化的学生信息管理系统。目前研究的现状在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。因此,教务管理软件应充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势2)方案论证系统主要功能:对学生的信息进行管理,如:插入学生信息、删除学生信息、修改学生信息、查询学生信息。技术背景:本项目使用JavaSwing技术,数据库采用SQLServer2000,本项目的开发和测试都是在Windows平台下进行的,但由于Java的跨平台性,本系的移植性很强,也适用于其它主流的操作系统。3)开发工具的选择本系统开发工具:Java,SQL2005.需求分析1)功能需求分析该学生成绩管理系统具备三方面的功能:一方面是学生用户,学生通过输入学号和密码进下该系统后,可以进行一些学生信息基础查询(院系信息查询、班级信息查询、)、重新登陆系统;具体功能的详细描述如下1选择[管理员]菜单命令,即可进入[学生信息管理]功能窗体,在其中输入学生的相关信息,如果需要添加或修改学生信息,则单击相应的按纽,输入新信息后单击[添加]就可以了。需要删除一条信息,则只要选择这条信息再点击[删除]。在搜索条件中输入相关的条件,单击[查询]就可查找信息。2选择[学生信息查询]菜单命令,即可进入[学生信息查询]功能窗体,在其中的下拉列表中选择你要看的信息,则在下面的表格中显示你要的信息。用户所有。3选择[登陆][重新登陆]则会返回登陆界面,为用户提供方便。4选择[退出]将退出整个系统。2)性能需求分析时间特性要求:在软件方面,响应时间有点慢。安全性:设立口令号和密码验证方式,防止非法用户登录进行操作。也就是用户只有管理员、学生和教师才能进入这个系统,用户凭口令号和密码进入此系统,系统会自动判断用户是那种类型,分别拥有不同的权限。3)数据库需求分析――数据流图在教务系统中功能模块主要牵涉到的信息包括:是学生信息(base_info)、班级信息(class_info)、院校信息(class_info)、选课表(xuankebiao)、登陆表(stu)。学生信息:包含学号(id)、姓名(name)、班级(class)、班级(grade)、性别(sex)班级信息:班级编号(bjbh)、学号(id)、姓名(name)、班级名称(bjmc)。登陆表:口令号(id)、密码(password)。寻找信息登陆信息用户数据库账号信息2寻找信息登陆信息用户数据库账号信息2开发环境与工具介绍前端客户端我用的是MacromediaDreamweaver8来编写JSP文件。中间业务逻辑层的JavaBeans用的是JBuilderXEnterpriseX版。数据库的编写是采用MYSQL数据库。2.1开发环境由于我用的是JBuilderXEnterprise版开发的这个系统,这个开发软件功能十分强大,所以自然对开发环境要求相对来说比较高。1.对系统硬件的要求:最小512MRAM,推荐786MBRAM。2.对系统平台的要求:Windows平台CPU:IntelPentiumIII及以上兼容系列500MHz以上。操作系统:MicrosoftWindows2000(SP4)、WindowXP或者WindowsServer2003。Linux平台CPU:IntelPentiumIII及以上兼容系列500MHz以上。操作系统:SunJavaDesktopSystemRelease2或者RedHatEnterpriseLinux3.02.2运行环境:硬件:适用于数据吞吐量较大的不同服务器;软件:服务器端:WINDOWSXP+MySQL用户端:WindowXP+IE操作登操作登录错误信息错误信息4)数据结构分析学生信息={组成:{学号(id)、姓名(name)、班级(class)、性别(sex)、地址(address)}}(teacher)}}班级信息={组成:班级编号(bjbh)、年级(nj)、班级名称(bjmc)、人数(rs)、班主任(bzr)}}登陆表={组成:口令号(id)、密码(password)、权限(rightlimit)1、对图中所涉及的数据流描述如下:数据流来源:信息输入、修改、添加等界面用户输入包含课编号、姓名、班级、院校。数据流去向:学号、班级编号、课程编号将存在整个操作,其它的存入数据库。数据流名:返回信息说明:根据用户在学生信息维护的时候所填写的信息存入了数据库之后。数据流来源:由学生信息维护界面学生输入的包含学号、姓名、性别等存入数据库的。数据流去向:学生信息维护界面。数据流组成:学号(文本)、姓名(文本)、班级名称(文本)、性别(文本)等。数据流名:返回信息说明:根据用户在信息管理的时候所填写的信息存入数据库后。数据流来源:由信息管理输入的包含班级名称、教师、院系名、存入数据库的。数据流去向:成绩信息的各子界面。数据流组成:班级编号(文本);班级名称(文本);教师(文本)等2.对图1.1中所涉及的处理过程描述如下:处理过程名:登陆输入数据流:口令号、密码输出数据流:不符合输入条件的错误信息处理过程逻辑:用IF条件进行判断。处理过程名:班级信息维护输入数据流:班级编号、班级名称、教师等输出数据流:班级编号、班级名称等,其中班级编号将存在整个操作。处理过程号:班级编号,其中班级编号将存在整个操作。处理过程名:学生信息维护输入数据流:学号、姓名、班级编号、性别等。输出数据流:学号、姓名、班级编号、性别等。其中学号将存在整个操作。(三)系统功能结构设计根据需求分析阶段得到的功能需求,管理员、学生和教师用户通过输入口令号和密码进下该系统后,可以进行一些学生基础信息查询(学生信息查询、班级信息查询、课程信息查询)、学生信息维护、成绩管理(成绩查询、计算平均分)重新登陆系统、退出。模块功能大概可以分为如下4个方面:这几个模块学生基础维护、成绩管理、登陆、退出。其中基础维护还要包括学生信息维护、班级信息维护、课程信息维护。成绩管理包括成绩查询、添加成绩、成绩输入等。综上所述,得到客户端功能模块图如下2.1所示。学生信息管理系统学生信息管理系统登陆信息查询学生模块管理员模块学生基本信息退出退出登陆信息查询学生模块管理员模块学生基本信息退出退出学生姓名学生学号学生班级学生院系学生姓名学生学号学生班级学生院系描述项说明用例名称添加学生信息用例简述管理员添加学生的基本信息用例图前置条件管理员已成功登入后置条件学生信息被添加基本操作流程1输入“学生姓名”,“学生学号”,“学生年龄”,选择“学生性别”2点击“提交”按钮3“成功添加”点击“确定”或关闭窗口则返回主页面替代流程无描述项说明用例名称查询学生信息用例简述管理员查询学生的基本信息用例图前置条件管理员已成功添加学生信息并成功登入查询页面后置条件学生信息被查询基本操作流程1输入需查找的“学生学号”2点击“确定”按钮3点击“返回”或关闭窗口则返回主页面替代流程无功能级用例描述——修改学生信息描述项说明用例名称修改学生信息用例简述管理员修改学生的基本信息用例图前置条件管理员已成功查询所需修改学生信息后置条件学生信息被修改基本操作流程1输入需修改的“学生学号”2点击“修改”按钮3点击“返回”或关闭窗口则返回主页面替代流程无功能级用例描述——删除学生信息描述项说明用例名称删除学生信息用例简述管理员删除学生的基本信息用例图前置条件管理员已成功查询所需修改学生信息后置条件学生信息被删除基本操作流程1输入需删除的“学生学号”2点击“删除”按钮3“删除成功”点击“确定”或关闭窗口则返回主页面替代流程无二、系统设计(一)设计目标通过对学生信息工作的调查和研究,要求系统设计完成后将达到以下目标:界面设计友好、美观,方便管理员的日常操作。基本信息的全面设置,数据录入方便、快捷。具有用户维护功能。最大限度地实现了易维护性和易操作性。(二)开发及运行环境硬件平台:CPU:P41.8GHz;内存:256MB以上。软件平台:操作系统:Windows7;数据库:SQLServer2005;开发工具包:JDKVersion1.5建立环境,这个过程如下:在/jdk/处下载JDK(Java2SDK、StandardEdition、v6.0)。JDK的安装是首先运行下载得到的jdk-6u5-windows-i586-p.exe,然后修改系统环境变量,新建JAVA_HOME=[x:]\jdk6.0,并在PATH参数中加入%JAVA_HOME%\bin;,其中[x:]是安装JDK的硬盘符(c:、d:等)。在/处下载Tomcat6.0。tomcat的安装仅需将apache-tomcat-5.5.26.zip带目录释放到硬盘根目录下(c:\、d:\等),然后就可以在硬盘上找到apache-tomcat-5.5.26目录。启动则在apache-tomcat-5.5.26/bin目录下执行startup.bat,就可启动tomcat中一个支持JSP网页技术的Web服务器。为了不与现有的Web服务器(例如IIS、PWS等)冲突,tomcat的Web服务器使用了8080端口。在浏览器的地址栏中键入http://localhost:8080或者:8080后,如果能看到tomcat的欢迎页就说明JSP实验环境已经建成,可进入下一步实验。要关闭Web服务器则运行shutdown.bat。(三)数据库设计数据库连接数据库连接对动态网站来说是最为重要的部分,从JSP中访问数据通常是通过JavaBean来实现的。Java中连接数据库的技术是JDBC(JavaDatabaseConnectivity)。很多数据库系统带有JDBC驱动程序,Java程序就通过JDBC驱动程序与数据库相连,执行查询、提取数据等等操作。Sun公司还开发了JDBC-ODBCbridge,用此技术Java程序就可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。JavaBeanJavaBeans是基于java的组件模型,由属性,方法和事件3个部分组成。在该模型中,Javabeans可以被修改或与其他组件结合生成新组件或完成的程序。它是一种Java类,通过封装成为具有某种功能或者处理某个业务的对象。因此,也可以通过嵌在JSP页面内的Java代码访问Bean及其方法。Bean的含义是可重复使用的Java组件。所谓组件就是一个由可以自行进行内部管理的一个或几个类所组成,外界了解其内部信息和运行方式的群体。使用它的对象只能通过接口来操作。Bean实际上是根据JavaBeans技术标准所指定的Bean的命名和设计规范而编写的Java类。Bean并不需要继承特别的基类(baseclass)或事项特定的接口(Interface)。JavaBeans1.01-A规范定义了该组件的5种重要的机制:内省(Introspection):组件可发表其支持的操作和属性,同时也支持在其他组件中发现重复利用的对象库,例如用户权限和电子自动回复等。通信(Communication):生成和收集组件的消息事件持续(Persistence):存放组件的状态。属性(Properties):支持组件布局的控制,包括组件占用的空间和组件的相对位置。定制(Customization):开发者可控制组件所需的改变机制。Javabeans可实现在设计平台被规定的操作,一般可表示为简单的图形界面,如按钮,光标和菜单等,也可以是不可见的接受并处理事件的操作,如数据库连接Bean。JSP吸引人之处很大程度上在于它使用了Javabeans组件技术,但JSP中只支持不可见的Javabeans。jdbc创建一个简单的数据库连接Bean需要5个步骤:导入JDBC标准类库,注册数据库驱动程序,建立数据库连接,数据库操作和关闭。1)导入JDBC标准类库JDBC(JavaDataBaseConnectivity,Java数据库连接)是一种可用于执行SQL(StructuredQueryLanguage,结构化查询语言)语句的应用程序接口,为了将服务器从客户端接受信息存入数据库,需要使用JDBC标准类库,所以需要在程序的开始加入以下import语句:Importjava.sql.*;2)注册数据库驱动程序在一个JDBC的驱动程序被用来建立数据库连接之前,必须向数据库驱动程序管理器注册该驱动程序。管理器的主要职责是保证所有的驱动程序对象可被JDBC的用户程序访问。当一个JDBC驱动程序被载入时,它将自动地在驱动程序管理器上注册。可以调用Class.forName()方法载入一个JDBC驱动程序:StringstrDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";Class.forName(“strDBDriver”);Class.forName()是Java的Class类的静态方法,它使Java虚拟机动态的寻找,载入并连接指定的类。一个JDBC的驱动程序就是一个可以通过classpath找到一个Java类。这里载入的JDBC_ODBC桥驱动程序就在sun.jdbc.odbc包中3)建立数据库连接载入一个正确的驱动程序后,就可以用它来建立与数据库的连接了。一个JDBC的数据库连接是用数据库URL来标记的。连接标记将告诉驱动程序管理器使用哪个驱动程序和连接哪个数据库。数据库URL的基本形式:jdbc:<JDBC驱动程序名>:<数据源标记>URL的第一部分表示使用JDBC建立数据库连接。第2部分表示所使用的JDBC驱动程序名或网络协议名。第3部分是数据源标记,它映射所需连接的数据库。例如数据库的数据源标记是firm则同JDBC-ODBC桥连接该数据库所用的数据库URL为jdbc:odbc:firm.可以通过DriverManager类的静态方法getConnection()来建立一个数据库连接:StringstrDBUrl="jdbc:odbc:firm";conn=DriverManager.getConnection(strDBUrl,"sa","");一旦建立数据库连接,就可以打开该目标数据库,并通过该连接向目标数据库SQL指令。SQL指令通常会执行查询,插入,更新和删除等数据库操作。要执行SQL指令,必须通过Connection对象的createStatement()方法来创建一个STMT对象。STMT对象提供了许动方法来执行不同的数据库操作。可以通过以下方式创建STMT对象:privateConnectionconn=null;privateStatementstmt=null;ResultSetrs=null;stmt=conn.createStatement();4)数据操作与数据库建立了连接后,接着就要进行数据操作了。数据操作包括查询,插入,更新和删除等操作。要对数据库精心操作可以使用STMT对象的executeQuery()方法。executeQuery()方法接受一个SQL指令字符串作为参数,返回结果信息是ResultSet对象。具体如下:rs=stmt.executeQuery(sql);5)关闭因为数据库连接是宝贵和有限的资源,因此必须在数据库操作完毕后即使释放数据库连接。Connection对象提供了一个简单的关闭数据库连接的方法close()。例如:conn.close();stmt.close。利用数据库原理相关知识,对数据库设计和每个模块、每个界面的具体设计。此系统采用的数据库软件是sqldb。以下是系统需要的六张主要数据表的结构。字段名字段类型nulldefault描述主键外键idbigint主键incrementcodevarchar(100)年级代码namevarchar(200)年级名称School_grade年级字段名字段类型nulldefault描述主键外键idbigint主键incrementcodevarchar(100)班级代码namevarchar(200)班级名称school_gradebigint所在年级school_gradeSchool_class班级字段名字段类型nulldefault描述主键外键idbigint主键incrementcodevarchar(50)课程编码namevarchar(200)课程名称credit_hourfloat学分passfloat及格线school_gradebigint所在学期school_gradeLesson课程字段名字段类型nulldefault描述主键外键idbigint主键incrementusernamevarchar(200)用户名passwordvarchar(200)密码truenamevarchar(200)真实姓名sexinteger性别school_classbigint所在班级school_classStudent学生字段名字段类型nulldefault描述主键外键idbigint主键incrementusernamevarchar(200)用户名passwordvarchar(200)密码Admin管理员系统的实现(一)学生信息查询部分访问http://localhost:8080/ST/index.html。测试密码:test学生需要先登录才能进入查询程序的界面,进入系统前要对用户和密码进行校验,即用户名和密码正确才能进入系统。并且若用户连续三次密码输入错误,则不能再次输入。用户登陆界面。该界面可以选择使用者的身份,“管理员,教师,学生”。不同的身份有不同的操作界面和功能权限。ID号和密码输入正确即可登录。学生管理界面。提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等功能。教师管理界面。提供了对学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名。修改密码等功能。管理员管理界面。拥有最高的权限。允许添加教师信息和课程信息等。登录的用户信息分别存储在SQL数据库的“管理员信息表”,“教师信息表”,“学籍信息表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。保证了本学生管理系统的安全性。后台信息管理部分输入用户ID之后,按<Enter>键,系统校验该用户是否存在。在公共方法jTuser_keyPressed()中,定义一个String类型变量sqlSelect用来生成SQL查询语句,再定义一个公共类RetrieveObject类型变量retrieve,然后调用retrieve的getObjectRow()方法,其参数为sqlSelect,用来判断该用户是否存在。该方法的详细代码如下:PublicvoidjTextField1_keyPressed(KeyEventkeyEvent){If(keyEvent.getKeyCode()==KeyEvent.VK_ENTER){StringsqlSelect=null;Java.util.Vectorvdata=null;sqlSelect=”selectusernamefromtb_userwhereuserid=”’+jTextField1.getText().trim()+””’;appstu.util.RetrieveObjectretrieve=newappstu.util.RetrieveObject();vdata=retrieve.getObjectRow(sqlSelect);if(vdata.size()>0){jPasswordField1.requestFocus();}else{Javax.swing.JOptionPane.showMessageDialog(null,”该用户不存在”,”错误”,javax.swing.JOptionPane.ERROR_MESSAGE);jTextField1.requestFocus();}}}如果用户存在,再输入对应的口令,输入的口令正确时,单击“登录”按钮,进入系统。公共方法jTuser_keyPressed()的设计与jTextField1_keyPressed的设计方法相似,其关键代码如下:PublicvoidjBlogin_actionPerformed(ActionEvente){…StringsqlSelect=null;sqlSelect=”selectcount(*)fromtb_userwhereuserid=”’+jTextField1.getText().trim()+”’andpass=”’+pass+””’;Java.util.Vectorvdata=null;appstu.util.RetrieveObjectretrieve=newappstu.util.RetrieveObject();vdata=retrieve.getObjectRow(sqlSelect);if(Integer.parseInt(String.valueOf(vdata.get(0)))>0){AppMainframe=newAppMain();This.setVisible(false);}else{Javax.swing.JOptionPane.showMessageDialog(null,”密码错误”,”错误”,Javax.swing.JOptionPane.ERROR_MESSAGE);jPasswordField1.requestFocus();return;}}登录成功可以选择功能模块进行操作。其中包括有年级班级管理模块、课程管理模块、学生管理模块、系统管理模块。这些模块都只有管理人员才能使用。管理年级信息,年级管理模块可以添加、修改、删除各年级的ID、年级编码及年级名称。管理班级信息,班级信息设置用来维护班级的基本情况,包括对班级信息的添加、修改和删除等操作。通过调用Jdbcadapter,完成对班级表的相应操作。执行该模块程序,首先从数据表中检索出班级的基本信息,如果存在数据用户单击某一条数据之后可以对其进行修改、删除等操作。单击jf_view_sysset_class.java文件的source代码,编辑窗口首先导入UTIL公共包下的相应类文件;定义一个BOOLEAN实例变量INSERTFLAG,用来标志操作数据库的类型,然后定义一个私有方法BUILDTABLE(),用来检索班级数据。代码如下: privatevoidbuildTable(){DefaultTableModel=null;String[]name={“班级编号”,”年级编号”,”班级名称”};Stringsqlstr=”select*fromtb_classinfo”;Appstu.util.retrieveObjectbdt=newappstu.util.RetrieveObject();Tabemodel=bdt.getTableModel(name,sqlstr);jTable.setModel(tablemodel);jTable.setRowHeight(24);}单击“新增”按钮,用来增加一条新的数据信息。在公共方法jBadd_actionPerformed()中定义局部字符串变量sqlgrade,用来生成年级sql的查询语句,然后调用公共类RetrieveObject的getObjectRow()方法,其参数为sqlgrade,将返回结果数据解析后添加到jComboBox1组件中。其jBadd_actionPerformed()方法的代码如下:PublicvoidjBadd_actionPerformed(ActionEvente){//获得年级名称//if(jComboBox1.getItemCount()<=0){Insertflag=true;RetrieveObjectbdt=newRetrieveObject();Stringsqlgrade=”selectgradeNamefromtb_gradeinfo”;Java.util.Vectorvdata=newjava.util.Vector();Vdata=bdt.getObjectRow(sqlgrade);jComboBox1.removeAllItems();for(inti=0;i<vdata.size();i++){jComboBox1.addItem(vdata.get(i));}}ItemEventitem=newItemEvent(jComboBox1,0,jComboBox1,jComboBox1.getSelectedIndex());jComboBox1_itemStateChanged(item);jTextField2.setText(“”);jTextField2.requestFocus();}用户单击表格上的某条数据后,程序会将这条数据填写到jPanel2面板上的相应组件上,以方便用户进行相应的操作,在公共方法jTable1_mouseClicked()中定义一个string类型的局部变量sqlStr,用来生成sql查询语句,然后调用公共类RetrieveObject的getObjectPow()方法,进行数据查询,如果找到数据则将该数据解析显示给用户,代码如下:PublicvoidjTable1_mouseClicked(MouseEvente)Insertflag=false;Stringid=null;StringsqlStr=null;Intselectrow=0;Selectrow=jTable1.getSelectedRow();If(selectrow<0)return;Id=jTable1.getValueAt(selectrow,0).toSwing();sqlStr=”SELECTc.classID,d.gradeNameFROMtb_classinfocINNERJOIN”+”tb_gradeinfodONc.gradeID=d.gradeID”+“wherec.classID=”’+id+”’”;Java.util.Vectorvdata=null;RetrieveObjectretrive=newRetrieveObject();Vdata=retrive.getObjectRow(sqlStr);jComboBox1.removeAllItems();jTextField1.setText(vdata.get(0).toString());jComboBox1.addItem(vdata.get(1));jTextField2.setText(vdata.get(2).toString());},{id:'deleteMenu',text:'删除',iconCls:'delete',tooltip:'删除',disabled:true,handler:function(){if(this.filter.getValue()==''){Ext.Msg.alert('提示','请先选择课程');}else{Ext.Msg.confirm('信息','确定要删除?',function(btn){if(btn=='yes'){varsm=this.getSelectionModel();varcell=sm.getSelectedCell();varrecord=this.store.getAt(cell[0]);if(this.store.modified.indexOf(record)!=-1){this.store.modified.remove(record);}//记录删除了哪些idvarid=record.get('id');if(id==null&&this.insertedRecords.indexOf(record)!=-1){this.insertedRecords.remove(record);}elseif(id!=null&&this.removedRecords.indexOf(record)==-1){this.removedRecords.push(record);}this.store.remove(record);}},this);}}.createDelegate(this)},{id:'saveMenu',text:'提交修改',iconCls:'edit',tooltip:'提交修改',disabled:true,handler:function(){if(this.filter.getValue()==''){Ext.Msg.alert('提示','请先选择课程');}else{varm=this.store.modified.slice(0);vardata=[];Ext.each(m,function(item){data.push({id:item.get("id"),studentId:item.get("student.id"),score:item.get("score")});});varremovedIds=[];Ext.each(this.removedRecords,function(item){removedIds.push(item.get('id'));});if(data.length==0&&removedIds.length==0){//没有修改,不需要提交return;}学生信息管理模块,包括学生信息的添加、修改、删除、保存修改等功能。同时学生信息中包括了学生的登陆查询界面的用户名及相应的登陆密码。单击“学生管理”/“学生”选项,进入该模块,其运行结果如下图所示。单击“添加”按钮,进行学生的录入操作,其代码编写最大流水号的生成其中公共方法jBdel_actionPerfromed()的关键代码JF_view_student.java如下:PublicvoidjBadd_actionPerformed(ActionEvente){…Intindex=jComboBox2.getSelectedIndex();Classid=classID[index];StringsqlMax=”selectmax(stuid)fromtb_studentinfowhereclassID=”’+classid+”’”;ProduceMaxBhpm=newduceMaxBh();Stringstuid=unll;Stuid=pm.getMax,classid);…}单击“删除”按钮,删除学生信息,其中公共方法jBdel_actionPerformed()的关键代码如下:PublicviodjBdel_actionPerfromed(ActionEvente){…StringsqlDel=”deletetb_studentinfowherestuid=”’+jTexField1.getText().trim()+’””;JdbcAdapterjdbcAdapter=newJdbcAdapter();If(jdbcAdapter.DeleteObject(sqlDel)){jTextField1.setText(“”);jTextField2.setText(“”);jTextField3.setText(“”);jTextField4.setText(“”);jTextField5.setText(“”);jTextField6.setText(“”);jComBox1.removeAllItems();jComBox3.removeAllItems();ActionEventevent=newActionEvent(jBrefresh,0,null);jBrefresh_actionPerformed(event);}}五、系统存在问题及前景展望(一)系统存在问题经过1个多月的学习和实践,基本上完成了学生成绩管理系统体设计和开发,并具备一定的使用价值。但是由于时间、技术等各方面因素,本系统仍不完善,有很多问题需要解决,结合在系统开发过程中的思考和各方面的意见,发现以下3点尚不成熟需要改进和完善的地方:系统总体规划欠缺:系统在开发过程中就感到总体规划存在一定问题,如后台数据库表的冗余,导致对数据库的操作复杂。这个问题是开发到中后期发现的,发现的时候以及为时过晚,若当时改正,需要重新开发,这时才认识到软件开发过程的重要性。功能不够完善:规划时出现的功能现在由于时间,技术等原因不能实现。码中没有写注释。良好的写代码习惯是应该在代码中加入注释,以便以后维护更新系统的时候容易让人读懂,这个缺陷的产生是因为开发时偏重速度导致的。(二)前景展望“学海无涯”,学习和教育是无止境的,正是由于这种无限的需求,使得各种各样的基于网络形式的交流不断出现,诸如网上论坛、网上新闻组等等事物已不在是新鲜的事物了,它正在被人们广泛地接受和使用,网络强大的功能正在吸引着人们更进一步的探索。计算机技术和Internet技术的迅猛发展和广泛普及,使得基于Web的应用开发势在必行,数据库技术更是需要和Web技术相结合,才能有更为广阔的前景。具有简单易懂、开发效率高等特点的Java和RIA技术则正适应了这种潮流,在Web开发中发挥了十分重要的作用,成为流行的开发工具之一。可以预见,java和RIA将成为网上不可或缺的卓越技术,利用java和RIA技术开发的各种网络系统必将大行其道。参考文献:《JSP编程实践——动态网页的引擎》何川方兴陈渝齐畅清华大学出版社《深入JSP网络编程》雨阳隆春等清华大学出版社《JSP入门与提高》杨学瑜王志军刘同利编著清华大学出版社《JSP技术大全(1-1版)》(美)PhilHanna 机械工业出版社《JSP编程指南(第二版)》王军等译电子工业出版社《JSP站点设计编程指南》王军等译电子工业出版社《电子政务总体设计与技术实现》国家信息研究中心著电子工业出版社《电子政务基础知识读本》汪玉凯主编电子工业出版社《精通Java核心技术》刘晓华等编电子工业出版社《Java2编程指南(SDK1.4版)》李昭智等译电子工业出版社《JDK1.5类库大全》陈烨张蓓等编著清华大学出版社下面是赠送的经典语录和搞笑语录,不需要的朋友可以下载后不急删除!!!谢谢!!【感人的话】

要学会感恩、同情、宽容、忍耐、积极与真诚。希望是心灵的一种支持力量.逆境的回馈,使生命将更加精彩而富足.

【感人的话】

每个人的好运跟坏运都是分配好的,虽然我的好运没有别人多,所以只要是一点点好事,我就非常感恩了。

【祝福的话】

这里有一本你当年用过的笔记,它有点儿泛黄了,书页里夹着的话也早已没了香气,却还是谢谢你把它借给了我。今天的我们已经分开,却依然是朋友。还是要跟以前一样,我听着你的述说,看着你笑,看着你难过委屈去安慰你。我会把祝福写在这本笔记里,在那多枯黄的花的旁边,我会写下我的祝福:祝福你过得好!祝福你过得比我好!然后,将它寄给你。不要哭泣,你。【表白的话】

爱你是一个念头,爱你是一种冲动,爱你是一种宿命,只属于我的宿命。爱你是一段旅程,爱你是一场幸福的长跑,爱你是一路沐浴阳光,爱你是一径的花香。爱你,是睡觉呼吸一般的自然!请,给我你的爱。【有哲理的话】

世上有三种人:一是良心被狗吃了的人,二是良心没被狗吃的人,三是良心连狗都不吃的人.

【激励人的话】

如果你看到面前的阴影,别怕,那是因为你的背后有阳光。

【感人的话】

一身白衣为你洗尽铅华,白衣白发白胜雪,捧一卷古墨,盈袭暗香,我踏着平平仄仄的长长短短,款款步入风情万种的宋词里。溪边桃红青染,流水潺潺,柳丝随风絮,我在桃花下写着红笺小字,一抹嫣然回眸,惊落了桃花,也惊落了你的心。佛说千年一轮回,今生,你在哪里?

【有哲理的话】

母爱是一滴甘露,亲吻干涸的泥土,它用细雨的温情,用钻石的坚毅,期待着闪着碎光的泥土的肥沃;母爱不是人生中的一个凝固点,而是一条流动的河,这条河造就了我们生命中美丽的情感之景。【表白的话】

我深深地恳求你;不要把我逐出你的爱门之外,我一分一秒也不能缺少你的爱。只有赢得你的爱,我的生命才有光彩。

【表白的话】

爱你,却要无欲无求,好难!爱你,却要偷偷摸摸,好累!爱你,却让自己心碎,好惨!但竟然心甘情愿,好傻!但是我能肯定的是:我是真的很爱你!

【表白的话】

我扬一把散沙粒粒想念漫天纷飞带给我对你的祝福,我洒下一瓢涟水滴滴飘洋流到你的心海,爱你,今生无悔,牵了你的情,爱了你的人,我会努力呵护你,一生一世!【表白的话】

你的热情,温暖了我冰冻的心;你的大胆,鼓起了我爱的热忱;你的关怀,激起了我感激之情。新年伊始,愿我们透过那爱湖的波光水雾,一起憧憬美好的未来。情人节快乐!

【表白的话】

也许我的笑容不够灿烂,但足够为你扫清冬日里的阴霾;也许我的双手不够温柔,但还能为你拂去俗世尘埃!如果命运安排我们在一起,我会好好珍惜你!情人节快乐!

【甜言蜜语的话】

我们结婚吧,好不好?那样我们就可以不再对着电话诉说想念,就可以每天清晨起来看见你的睡脸,然后一起吃一顿不太丰盛却很温暖的早餐。我们结婚吧,好不好?那样我们就可以拿着民政局发的红色小本子四处炫耀,我们可以在房间里挂满结婚照,看着看着就会不自觉的微笑。我们结婚吧。【表白的话】

我需要你,就像冬天里的棉袄,夏天里的雪糕,黑暗中的灯泡,饥饿中的面包—–我不能没有你!

【有哲理的话】

用真理检验真理永远是真理,用错误掩饰错误将会一错再错。我们不能拥有真理,但是我们可以防止错误。【离别的话】

愿你作一滴晶亮的水,投射到浩瀚的大海;作一朵鲜美的花,组成百花满园;作一丝闪光的纤维,绣织出鲜红的战旗;作一颗小小的螺丝钉,一辈子坚守自己的岗位……

【离别的话】

我们曾经在一起欣赏过美丽的花;我们曾经在一起幻想过美丽的季节。同学啊,同学,分别后不要忘了我们曾经一起走过的日子。

【离别的话】

红叶纷飞的枫林里,我们曾拥有多少回忆。那飘舞着的枫叶,将我们带进一个无比美妙的境界。

【离别的话】

别离,是有点难舍,但不怅然;是有点遗憾,但不悲观。因为我们有相逢的希望在安慰。

【有哲理的话】

人活着,第一要紧的事情就是要有眼光。有了眼光,并相应确定应该为之努力的目的和目标,工作就会出现乐趣,这样才有希望最终成为一个事业和生活的成功者,生命就会丰富多彩。

【有哲理的话】

在真相肯定永无人知的情况下,一个人的所作所为能显示他的品格。有些事情的确没有人知道,除你之外,没有人知道,但是你必须对得住自己,最好能问心无愧。因为问心无愧可生自信,而自信会让你生活得更从容。

【有哲理的话】

没有任何的动物是比蚂蚁更勤奋,然而它却是最沉默寡言的。与其埋怨世界,不如改变自己。管好自己的心,做好自己的事,比什么都强。人生无完美,曲折亦风景。别把失去看得过重,放弃是另一种拥有;不要经常艳羡他人,人做到了,心悟到了,相信属于你的风景就在下一个拐弯处。

【有哲理的话】

有些人成就不大,不在于智力或能力不够,而在于没有克服自己心理上的弱点和谬见,没有充分发挥自己既有的潜力和才能。只有不断向自己挑战,向生活挑战,才能取得更大成功。

【有哲理的话】

面对别人的反对意见,如果你针锋相对地进行争执和批驳,对方很难从内心真正接受,在表达方式上委婉一些,效果就好多了。

【有哲理的话】

当我们放眼这个世界的时候,如果以自我为中心,很可能会以为自己了不起,可一旦我们把心歇下来,用赤子之心来观察,就会发现我们是多么渺小。我们什么时候都能看清自己不如人的地方,那就是对生命有真正信心的时候。

【有哲理的话】

胸有平常心,幸福自然来。人的心态如同琴上的弦,太紧则易断,太松则无音,只有松紧适度,才能弹出美妙之音。保持一颗平常心,才是人生的真谛。怀一颗平常心,看淡得失,超越成败,不为物欲所迷,不被烦恼所扰,明心见性,随缘自适。平常心,是一种人生态度,也是一种生活智慧。

【有哲理的话】

绝大多数人都喜欢嘲笑别人,而不愿意被别人嘲笑。在别人处于尴尬境遇时,你如果能通过自己出丑来减少他的难堪,他一定对你非常感激。

【有哲理的话】

对于胸怀大志的有志之士和勤奋努力的人来说,障碍是不会起什么作用的。他们会说:不会再有什么困难能拦得住我了。只要有百折不挠的信念,就会战胜许多强大的阻力。

【有哲理的话】

成功地推销自己是迈向成功的第一步。在推销自己的过程中,多动脑筋,设计一些小花样,就容易引起别人的兴趣和关注。

搞笑语录一次

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论