学生信息管理系统

摘  要

本文着重阐述了“学生信息管理系统”-“学生模块”的开发过程。介绍了系统的开发环境以及开发工具,对于设计思想和设计流程也做出了全面的叙述,在数据库创建思想以及各个数据表之间的具体关联等方面也做出了详细说明,并且具体剖析了系统各个功能的实现过程以及详细设计过程,在绘制简单系统功能模块图的同时,力求更加清晰地表明设计思想以及对整个学生模块程序设计的规划及具体实现。

根据实际需求,“学生信息管理系统”-“学生模块”这个项目采用模块化的设计思想,在Windows XP操作系统环境下,搭建JSP运行环境JDK+TOMCAT,通过使用JAVA脚本语言完成动态的、交互的web服务器应用程序,实现学生个人信息查询、个人成绩查询、课表查询、选课及用户密码修改功能。

本系统具有多方面特点:系统功能完备,用户使用方便简捷,人性化的用户界面,安全保密设置齐全,大大减少了操作人员和用户的工作负担,提高了学生管理的工作效率和学校的信息化的水平。

关键词:  管理系统;数据库;模块化

Student Information Management System---Student Module

Abstract

This article focuses on the student information management system---student module for the  development process. Introduced a system for environment and development tools, the design concept and design process has also made a comprehensive narrative, in the database to create ideological and various data tables specific links between the areas has also made detailed and specific analysis of the The various functions of the system to achieve process and detailed design process, drawing a simple system function modules map at the same time, to more clearly show that design thinking and the whole process of planning and design of concrete realization.

According to actual demand, student information management system--- student module for this project is modular in design, in the Windows XP operating system environment, the structures JSP operating environment JDK + TOMCAT, through the use of scripting language JAVA complete dynamic, interactive web server applications, management system, and students of information management, information management classes, teachers of information management, curriculum information and results of information management.

This system has many features: system fully functional, easy to use simple user-friendly user interface, complete security settings, greatly reducing the operators and users of the burden and improve the efficiency of the management of students and school information Level.

Keywords:  Management System; Database; Modulation  

目  录

第1章 绪论

1.1 引言

1.2 问题的定义

1.3 系统介绍

1.3.1 系统目标

1.3.2 业务流程图

第2章 可行性研究

2.1 技术可行性

2.2 经济可行性

2.3 操作可行性

2.4 法律可行性

第3章 需求分析

3.1 系统需要解决的主要问题

3.2 系统具备的基本功能

3.3 数据流图

3.4 数据字典

3.4.1 数据存储

3.4.2 数据流

3.4.3 数据处理

第4章 总体设计

4.1 概述

4.2 系统学生子功能划分

4.3 学生子系统功能描述

4.4 数据库概念结构设计

4.5 数据库设计

4.6 安全保密设计

4.6.1  登陆用户的安全性

4.6.2  数据安全性

第5章 详细设计

5.1 概述

5.2 程序流程图

5.3 学生子系统的实施

第6章 测试与维护

6.1 测试的任务及目标

6.1.1 测试的任务

6.1.2 测试的目标

6.2 测试方案

6.2.1 模块测试:

6.2.2 集成测试:

6.2.3 验收测试:

6.2.4 平行运行

6.3 系统维护

  

  

   

附录X  译文

第二章一切都是对象

附录Y  外文原文

  1. 绪论

1.1 引言

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。随着计算机网络技术发展,Web数据库技术已经成为应用最为广泛的网站架构基础技术在应用系统中,Web提供了与用户进行通信联络的有效手段,利用Web技术,实现Web服务器与数据库系统的连接,完成对数据的处理与查询,用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据。

1.2 问题的定义

学生信息的管理是学校日常工作中的重要组成部分。高校招生规模的逐步扩大和认识制度的改革,在校学生人数将不断增加,而学生管理人员则相对减少。加上我国高等学校基层学生管理工作的头绪多,内容杂,管理细,要求高,传统管理办法已基本不适应新形势的要求。在校生的基本信息的管理,选课及成绩的信息的管理,学生学籍的管理,稍有不慎就会出现错误。同时学生成绩的手工登录与查询,是一项非常繁重而枯燥的劳动,每年课程的变化都需要重新规划,耗费许多人力和物力,而且会因人的情绪烦燥而出现失误。因此在计算机飞速发展的今天,应用数据库技术实现学生信息的管理是可行而必要的工作,实现高校学生信息网上管理,既能够提高工作效率,又可以提高工作水平。

计算机具有运算速度快、精度高、能按照设计逻辑处理问题等特性,在学生信息的录入、统计中如采用一个计算机化的信息系统进行处理,就不会发生信息遗漏或者数据输入不正确的情形。

在学校,而长期以来,学生信息管理都是依赖人工进行的,面对如此众多的学生信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高的效率。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套学生信息管理系统学生模块为例,谈谈其开发过程和所涉及到的问题及解决方法。

1.3 系统介绍

本系统前台采用JSP技术,Jsp是基于Java Servlet以及整个Java体系的Web开发技术,利用这一技术可以建立安全的、跨平台的先进动态网站,这项技术还在不断地被更新和优化。后台数据库是MySQL,两者结合,为Web数据库技术提供了完美的实现体系. 学生信息管理系统就是在这种条件下开发出来的,通过网页的形式,完成学生个人成绩、信息查询及密码修改等功能。

学生信息管理系统是典型的信息管理系统,本系统采用B/S的设计结构,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起资料一致性和完整性强、资料安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。学生信息管理系统是一个学校信息化管理的重要组成部分,不但能实现学生网上成绩查询,同时也为学校管理者提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理学生信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间长了,将产生大量的文件和资料,这对于查找、更新和维护都带来了不少的困难。

1.3.1 系统目标

如今,计算机的价格已经十分低廉,性能却有了长足的进步。计算机已经成为我们学习和工作的得力助手。它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:

首先,计算机可以代替人工进行许多繁杂的劳动;

其次,计算机可以节省许多资源;

第三,计算机可以大大的提高人们的工作效率;

第四,计算机可以使敏感文档更加安全,等等。

现在我国的学校中学生信息的管理水平大多还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。

采用计算机来实现学生信息管理系统归纳起来,好处大约有以下几点:

 1. 可以存储历届的学生信息,安全、高效;

2. 只需一到二名信息录入员即可操作系统,节省大量人力;

 3. 可以迅速查到所需信息。

4. 为将来学校上网做好准备。

学校学生可以在任何一个角落查询自己的成绩信息,不受时间、地点限制。

根据要求,本系统模块具体实现如下的功能:

1. 实现学生网上成绩查询的功能。学生可以在网上查询自已每门课的成绩信息。

2. 实现对学生个人信息查询的功能。学生可以在网上查询自已的个人信息。

3. 实现对学生课表查询的功能。学生可以在网上查询自已的课表信息。

4. 实现对学生用户密码修改的功能。学生可以在网上修改自己的用户密码。

1.3.2 业务流程图

业务流程描述:用业务流程图描述现系统各项业务处理过程,并结合业务流程图详细准确地说明业务处理过程中数据的收集、输入、传递、存储、加工的方法、算法、输出的数量及形式等。

现行系统的业务流程图是分析和描述现行系统业务的重要工具之一。其主要作用是:描述现行系统的业务情况以便于与管理人员交流,它是系统设计的前提和保证。业务流程图使用的符号:

实体

输入/输出的报表

处 理

业务流向

文档

存储

 图1-1系统业务流程图

  1. 可行性研究

可行性研究的目的是用最小的代价,在尽可能短时间内确定问题是否能够解决,它的目的不是解决问题,而是确定问题是否值得去解决,可行性从以下四个方面来考虑:

2.1 技术可行性

“学生信息管理系统”学生模块是由网络和网页实现的。所以本系统使用JSP开发技术,应用界面友好且功能强大的由MX MyECplise软件,服务器端脚本用JAVA脚本来编写,客户端脚本也用JAVA来编写,数据库使用MySQL 数据库,服务器是TOMCAT  。在大学的学习中,已经学过这JAVA.,C#,C++几种语言,并且多次参加实训开发项目,有一定的实地开发经验。且热爱计算机科学,又刻苦钻研的精神,经过大学四年的学习,这些课程已基本熟练掌握,该模块是在学校开发,遇到问题可以与同学一起研究,再加上指导老师的指导。因此在技术上能够适应本系统的开发。

2.2 经济可行性

系统的经济可行性指的是对组织的经济状况和投资能力进行分析,对系统建设、运行和维护费用进行估算,对系统建成后可能取得的社会及经济效益进行估计。

本模块简单易开发,且开发需要资金少,系统开发运行后,可以实现学生信息管理的计算机化,节省了人力、物力,将人从繁重的工作业务中解脱出来,减少了信息管理中无意的错误,节省了大量的时间,管理效率也大幅度提高,因此,在经济上是可行的。所带来的效益远远大于系统软件的开发成本。在经济上完全可行

2.3 操作可行性

本系统直观易懂,使用非常方便,学生可以直接上手,只要经过简单的培训,操作本系统没有太大的问题。

2.4 法律可行性

本系统开发不会侵犯他人、集体或国家利益,不存在侵权等问题,不违反国家法律,因此具有法律可行性。

综上所述,从技术上、经济上、法律上、可操作性上都是可行的,而且要求不高,所以该系统的开发是可行的

  1. 需求分析

3.1 系统需要解决的主要问题

本系统要实现学生信息的网络化的查询与管理。能够实现学生在网上成绩查询的功能,使学生不分时间、地点,只要能上网即可以查询自己的成绩,并能够保存自己的几年的成绩,对自己的成绩信息一目了然。

3.2 系统具备的基本功能

“学生信息管理系统”学生模块的开发主要包括应用程序系统和后台数据库,应用程序系统要求界面友好,功能完备,易使用等特点。而后台数据库的数据要具有一致性、完整性、安全性。

学生操作前台——操作方便.

前台作为与学生直接交互的界面,在考虑功能的同时,也考虑了操作的简洁和方便性,目的是让大多数不在懂电脑操作的客户,也能轻松的享受计算机给他们带来的便利。前台系统主要学生成绩和个人信息的查询功能,学生可以查询自己的成绩和个人信息。

3.3 数据流图

数据流图(DFD):

  数据流图简称DFD图,数据流图有四种成分:源点或终点、处理、数据存储表和数据流。图中没有任何具体的物理元素,只是描述信息在系统中的流动和处理情况,即使不是专业的计算机技术人员也容易理解,是极好的理解工具。它能精确的描述系统的逻辑模型,描述数据在MIS中有输入经过存储、加工处理最后输出的全过程,是设计者和用户交流的很好的工具。

图 形 符 号

名    称

符 号 说 明

实体

记述系统之外的数据提供或数据获得组织机构或个人,框内为实体名称

处理

记述某种业务的手工或计算机处理

其中,PM区记述处理标号

      C区记述处理名称

      

          

数据存储

记述与处理有关的数据存储,DN区记述存储的标号,S区记述存储数据的名称

数据流

记述数据流的流动方向,FM记述数据流的名称

以下为本系统的数据流图

图 3-1学生信息管理系统TOP数据流图

图 3-2学生操作子系统一级细化(二)

3.4 数据字典

数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用是在软件的分析和设计过程中提供关于数据的描述信息[1]。一般说来,数据字典应该由下列四类元素构成:数据元素,数据流,数据存储和数据处理。

3.4.1 数据存储

数据存储是数据结构停留或保存的地方。也是数据流的来源和去向之一,可以是手工文档或手工凭单,也可以是计算及文档。一般而言,应包括如下内容:{数据存储名,说明,编号,输入的数据流,输出的数据流,组成(数据结构),数据量,存取频度,存取方式}。

3.4.2 数据流

数据流是数据结构在系统内传输的路径。对数据流的描述通常包括如下内容:{数据流名,说明,编号,数据流来源,数据流去向,组成(数据结构)}。

3.4.3 数据处理

处理过程的具体处理逻辑通常在详细设计过程中用判定表或判定树来描述。在数据字典中,只无原则描述处理过程的说明性信息,通常包括以下内容:{处理过程名,说明,输入数据流,输出数据流,处理}[1]。

  1. 总体设计

4.1 概述

本阶段设计的基本目标是解决系统如何实现问题,也叫做概要设计,本阶段主要任务是划分出系统的物理元素及设计软件的结构,完成软件定义时期的任务之后就应该对系统进行总体设计,即根据系统分析产生的分析结果来确定这个系统由哪些系统和模块组成,这些系统和模块又如何有机的结合在一起,每个模块的功能如何实现。系统设计的目标是使系统实现拥有所要求的功能,同时,力争达到高效率、高可靠性、可修改性,并且容易掌握和使用。

模块化的依据是:把复杂问题分解成许多容易解决的小问题。原来的问题也就变得容易解决。模块化设计是把大型软件按照一定的原则划分成一个较小的相对功能独立又相关联的模块。每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。完成指定的功能,满足问题的要求。采用模块化原理的优点在于可以使软件结构清晰,容易测试和调试。从而提高软件的可靠性,可修改性。有助于软件开发的组织管理。一个大型软件可分别编写不同的模块。模块化理论的几个重要概念如下:

  1. 抽象

抽象就是抽象出事物的本质特性而暂时不考虑它们的细节。处理复杂系统唯一有效的方法是用层次的方式构造和分析它。一个复杂的动态系统首先可以用一些高级的抽象概念构造和理解,这些高级概念又可以用一些较低级的理解,直到最低层次的具体元素。

  1. 信息隐蔽和局部化

信息隐蔽是指在设计和确定模块时,应使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问。

局部化是指把一些关系密切的软件元素物理的放得彼此靠近。局部化有助于实现信息隐蔽。

信息隐蔽原理和局部化有助于在测试期间以及软件维护期间修改软件。因为绝大多数数据和过程对于软件的其它部分而言是隐蔽的,从而由疏忽引入的错误就很少可能传播到软件的其它部分。

  1. 逐步求精的模块化概念

逐步求精和模块化的抽象是密切相关的。软件结构每一层中模块表示对软件抽象层次的次细化。用自顶向下,逐步求精的方法由抽象到具体的方式分配控制,简化了软件设计和实施,提高了软件的可理解性和可测试性,并使得软件更容易维护。

  1. 模块独立性

模块的划分要使模块间尽可能的相互独立,独立模块较易维护。度量模块的独立程度有两个标准:内聚和耦合。耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数。

在软件的设计中应追求尽可能松散的耦合。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐藏和局部化概念的自然扩展,理想内聚的模块只做一件事情。在设计时应力求做到高内聚。

4.2 系统学生子功能划分

经过对系统的需求分析,学生子系统比较简单,主要完成学生网上课程成绩及个人信息查询的功能及密码修改的功能。学生以学号及密码的身份进行登录,系统功能结构如图:

图4-1  学生子系统模块图

4.3 学生子系统功能描述

1. 学生信息查询模块

本模块完成学生成绩个人信息和选修课程的查询功能,进入本模块,学生可以查询自己课程到期末时所得的成绩的信息,个人基本信息及已经选修的课程。基本信息由系统教师或管理员在后台录入,学生只能查询自己的所需的信息。

2. 学生密码修改模块

学生的基本信息是由管理员从后台添加的,每个学生的基本信息添加后,系统会自动生成一个密码,所有同学的密码初使值是相同的,学生使用初使密码登录后,为保证自己信息的安全性,用户可以修改自己密码。

3. 课程管理模块

课程管理模块完成学校开设的课程的管理功能,包括课程的添加,课程的删除,课程的修改及课程的查询。

图4-2  课程信息管理模块

4.4 数据库概念结构设计

在系统设计的开始,我首先考虑的是如何用数据模型来数据库的结构与语义,以对现实世界进行抽象。目前广泛使用的数据模型可分为两种类型,一种是独立于计算机系统的“概念数据模型”,如“实体联系模型”;另一种是直接面向数据库逻辑结构的“结构数据模型”。在本系统中我采用“实体联系模型”(ER模型)来描述数据库的结构与语义,以对现实世界进行第一次抽象。ER模型直接从现实世界抽象出实体类型及实体间联系,然后用ER图来表示数据模型。它有两个明显的优点:接近于人的思维,容易理解;与计算机无关,用户容易接受。但ER模型只能说明实体间语义的联系,不能进一步说明详细的数据结构,它只是数据库设计的第一步。

E-R图是直观表示概念模型的工具,它有三个基本成分:

矩形框,表示实体类型(考虑问题的对象)。

菱形框,表示联系类型(实体间的联系)。

椭圆形框,表示实体的属性。

根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。本系统包括的实体有学生实体,教师实体,课程实体,班级实体等。 各实体属性图如下所示:

                            图4-3学生实体属性图

图4-4 课程实体属性图

4.5 数据库设计

本系统采用的数据库管理系统是MySQL。MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQLMySQL AB的注册商标。

MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。

MySQL是一个数据库管理系统

一个数据库是一个结构化的数据集合。它可以是从一个简单的销售表到一个美术馆、或者一个社团网络的庞大的信息集合。如果要添加、访问和处理存储在一个计算机数据库中的数据,你就需要一个像MySQL这样的数据库管理系统。从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。

MySQL是一个关系数据库管理系统

关系数据库把数据存放在分立的表格中,这比把所有数据存放在一个大仓库中要好得多,这样做将增加你的速度和灵活性。“MySQL”中的SQL代表“Structured Query Language”(结构化查询语言)。SQL是用于访问数据库的最通用的标准语言,它是由ANSI/ISO定义的SQL标准。SQL标准发展自1986年以来,已经存在多个版本:SQL-86,SQL-92,SQL:1999,SQL:2003,其中SQL:2003是该标准的当前版本。

MySQL是开源的

开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。如果你愿意,你可以研究其源代码,并根据你的需要修改它。MySQL使用GPL(GNU General Public License,通用公共许可),在hpt://www.fsf.org/licenses中定义了你在不同的场合对软件可以或不可以做什么。如果你觉得GPL不爽或者想把MySQL的源代码集成到一个商业应用中去,你可以向MySQL AB购买一个商业许可版本。

MySQL服务器是一个快的、可靠的和易于使用的数据库服务器

如果这是你正在寻找的,你可以试一试。MySQL服务器还包含了一个由用户紧密合作开发的实用特性集。你可以在MySQL AB的http://www.mysql.com/it-resources/benchmarks/上找到MySQL服务器和其他数据库管理系统的性能比较。

MySQL服务器原本就是开发比已存在的数据库更快的用于处理大的数据库的解决方案,并且已经成功用于高苛刻生产环境多年。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。它的连接性、速度和安全性使MySQL非常适合访问在Internet上的数据库。

MySQL服务器工作在客户/服务器或嵌入系统中

MySQL数据库服务器是一个客户/服务器系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(APIs)。

MySQL也可以是一个嵌入的多线程库,你可以把它连接到你的应用中而得到一个小、快且易于管理的产品。

4.6 安全保密设计

4.6.1  登陆用户的安全性

   系统设计了登陆界面,每个合法用户有一个密码,该密码由用户自行维护,从而实现对用户的身份验证。

4.6.2  数据安全性

客户端层和数据库层隔离,客户端无法接触本质的数据库,无法进行非法的修改和破坏,使得数据库得到有效安全的保护。

  1. 详细设计

5.1 概述

详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计的处理过程应该尽可能简明易懂。

5.2 程序流程图

程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。

学生子系统的程序流程图:

图 5-1学生子系统的程序流程图

5.3 学生子系统的实施

学生子系统是以学号及学生密码的身份进行登录,学生可以查询到自己的各科成绩的信息,可以对自己的登录密码进行更改,学生登录界面的设计如图5-18所示:

图5-2 学生登录子系统

图5-3 学生登录子系统

图5-4 查询成绩界面

图5-5 查询个人信息界面

图5-6 修改密码界面

图5-7 选报课程界面

部分代码:

  1.  选修科目:

<%@page language="java" contentType="text ml; charset=GBK"%>

<%@page import="java.sql.*,com.stuman.service.*"%>

<html>

<head>

<title>选报课程</title>

</head>

<%

String stuid = (String)session.getAttribute("stuid");

%>

<body>

<p align="center">

您可以选报的课程为

</p>

<table border="1" align="center">

<tr>

<td width="54">

课程号

</td>

<td width="54">

课程名

</td>

<td width="57">

预修课

</td>

<td width="58">

系别

</td>

<td width="59">

班级号

</td>

<td width="69">

教室号

</td>

<td width="88">

上课时间

</td>

<td width="88">

教师

</td>

<td width="83">

选择

</td>

</tr>

<%

ListCourseForStu courlist = new ListCourseForStu();

courlist.list(request, out, stuid);

%>

</table>

<p>

</p>

<p>

<a href="student.jsp"><<Back </a>

</p>

</body>

</html>

  1.  学生选择项页面

<%@page language="java" contentType="text ml; charset=utf-8"%>

<%@page import="java.sql.*,com.stuman.*" errorPage="errorpage.jsp" %>

<html>

<head>

</head>

<body>  

  <%

String stuid = (String)session.getAttribute("stuid");

if(stuid==null){response.sendRedirect("login.jsp");}                                 

%>

  <br>

  <br>

  <center>您已经成功通过验证! 您可以使用如下服务</center>

  <br>

  <br>

  <br>

<table width="58%"  border="0" align="center">

  <tr>

    <td><a href="DisplayCourse.jsp">选修课程 >></a></td>

    <td><a href="checkmark.jsp">察看成绩 >></a></td>

    <td><a href="updateinformation.jsp">更改信息 >></a></td>

  </tr>

</table>

<p>    <a href="login_confirm?action=logout"><<注销 </a></p>

</body>

< html>

  1.  修改项学生页面

<%@ page language="java" contentType="text ml; charset=gb2312"%>

<%@ page import="java.sql.*,com.stuman.domain.Student,com.stuman.dao.StudentDAO,com.stuman.dao.DAOFactory"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>

<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>

<html>

<head>

<title>修改学生信息</title>

</head>

<body>

<p>

<%

String stu_id = (String)session.getAttribute("stuid");

System.out.println("Student_id = " + stu_id);

String tel = "", id = "", password = "", email = "", dep = "", sex = "", mail = "", mark = "";

StudentDAO stuDao = DAOFactory.getInstance().createStudentDAO();

Student stu = stuDao.getStudentByID(stu_id);

password = stu.getPassword();

tel = stu.getTel();

email = stu.getEmail();

%>

</p>

<p align="center">

修改信息

</p>

<form method="post" action="/MyStuMan/editStudent2.do?student_id=<%=stu_id%>">

<table width="49%" height="50" border="1" align="center" cellpadding="0" cellspacing="0">

<tr>

<td>

密码

</td>

<td>

<html:password property="password" value="<%=password%>" />

</td>

</tr>

<tr>

<td>

确认密码

</td>

<td>

<html:password property="password1" value="<%=password%>" />

</td>

</tr>

<tr>

<td>

电话

</td>

<td>

<html:text property="tel" value="<%=tel%>" />

</td>

</tr>

<tr>

<td>

邮件地址

</td>

<td>

<html:password property="email" value="<%=email%>" />

</td>

</tr>

</table>

<p align="center">

<input type="submit" name="Submit" value="提交">

</p>

</form>

<p>

<a href="getStudent.jsp"><<Back</a>

</p>

</body>

< html>

  1.  用来表示更新成功还是发生错误的页面

<%@page language="java" contentType="text ml; charset=GBK"%>

<%@page import="java.sql.*,STUMAN.STUDENT" errorPage="errorpage.jsp" %>

<html>

<head>

<title>确认更新</title>

</head>

<jsp:setProperty name="student" property="*"/>

<body>

<p align="center">

  <%

  try{

String id=(String )session.getAttribute("id");

student.setId(id);

String a = student.getSex();

String c=student.getName();

String d=student.getJiguan();

String e = student.getDep();

String f=student.getPassword();

if(c==null || c.equals("")) throw new Exception("错误,学生姓名不能为空!");

if(f==null || f.equals("")) throw new Exception("错误,学生密码不能为空!");

out.print("    Id 为"+id+"的学生<br>");

out.print("更改性别为: "+a+"<br>");

out.print("更改姓名为"+c+"<br>");

out.print("更改籍贯为 "+d);

student.updateStudent();

} catch(Exception e){out.print(e.toString());}

%>

</p>

<p> </p>

<p><a href="admin.jsp"><<Back</a></p>

</body>

  1.  查看成绩

<%@page language="java" contentType="text ml; charset=GBK"%>

<%@page import="java.sql.*,com.stuman.service.*"%>

<html>

<head>

<title>查看成绩</title>

</head>

<%

String stuid = (String)session.getAttribute("stuid");

%>

<body>

<p align="center">

您所有的成绩

</p>

<table border="1" align="center" width='85%'>

<tr>

<td width="40%">

课程名称

</td>

<td width="30%">

学分

</td>

<td width="30%">

成绩

</td>

</tr>

<%

ListScore score = new ListScore();

score.list(request, out, stuid);

%>

</table>

<p>

</p>

<p>

<a href="student.jsp"><<Back </a>

</p>

</body>

< html>

  1. 测试与维护

6.1 测试的任务及目标

6.1.1 测试的任务

在软件投入生产性运行之前,尽可能多地发现软件中的错误。

6.1.2 测试的目标

  1. 测试的目的是为了发现程序中的错误而执行程序的过程。
  2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。
  3. 成功的测试是发现了到今为止尚未发现的错误的测试。

6.2 测试方案

设计测试方案是测试阶段的关键技术问题。所谓测试方案包括预定要测试的功能。应该输入的测试数据和预期的结果,目标是设计一组可能发现错误的数据。测试有两种方法:功能测试结构测试

功能测试,在程序接口进行,只检查程序功能是否能够按照规格说明书的规定正确使用,程序是否能适当地接收输入数据并发生正确的输出信息,而且要能够保持外部信息的完整性。

结构测试,完全了解程序的结构和处理过程,这种方法按照程序内部的逻辑测试程序,检验程序中每条通路是否都能按照预定要求正确工作。

本系统开发过程进行的测试步骤如下:

6.2.1 模块测试

也叫单元测试,目的是保证每一个模块作为一个单元能正确运行,本测试所发现的往往是编码和详细设计的错误,主要评价模块的下述五个特点:

      1.  模块接口;     2. 局部数据结构;

3. 重要的执行路径;  4. 出错处理通路;

5. 影响上述各方面特性的边界条件.

模块测试主要由代码审查和软件测试两部分组成。

6.2.2 集成测试:

包括系统测试和子系统测试。集成测试是组装软件的系统技术,主要目标是发现与接口有关的问题。集成测试有两种方法:非渐增式和渐增式,但比较而言,渐增式方法比较好,因为:

  1. 编写的测试软件较少,开销较小。
  2. 较早地发现模块间的接口错误。
  3. 错误位置容易判断。
  4. 测试更彻底。

因此,本系统集成测试采用渐增式测试中的混合法,即对软件结构中较上层使用自顶而下的测试方法,而对软件结构中较下层,使用的是自底向上方法,两者结合,这是对模块较多时测试的一种折衷方法。

6.2.3 验收测试:

这一步是验证软件的有效性。目的是向未来的用户表明系统能够象预定的那样工作,验收测试一般使用黑盒测试法,验收测试有两种可能的结果。

  1. 功能和特性与用户的要求有差距。
  2. 功能和性能与用户要求一致,软件是可以接受的。

这个阶段发现的问题往往和需求分析阶段的差距有关。

6.2.4 平行运行

所谓平行运行就是同时运行。新开发出来的系统和将被它取代的旧系统,以便比较新旧两个系统的处理结果。目的有:

          1. 可以在准生产环境中运行新系统而有不冒风险;
          2. 用户能有一段熟悉新系统的时间;
          3. 可以验证用户指南和使用手册之类的文档;
          4. 能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。

6.3 系统维护

软件维护是软件生命周期的最后一个阶段,处于系统投入生产性运行以后的时期中,所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。软件的维护有适应性维护;完善性维护;改正性维护;预防性维护。

本系统为适应维护的需要,采用如下措施:

  1. 软件配置程序源代码;
  2. 开发过程文档齐全;
  3. 设计过程中各模块均考虑或预留完整性和可维护性接口等部分。
  4. 本软件的模块化,详细设计的文档、源代码内部的文档有详细说明、注释均可提高可维护性;
  5. 尽量松散〈低偶合〉,高内聚。

  论

历时几个多月的紧张学习和工作,我的毕业设计终于如期、顺利的完成了。

经过本次的毕业设计,使我学习到了有关JSP的知识和MyECplise、Tomcat、MySQL的知识,使我了解脚本语言对JSP的重要。在这次设计过程中,培养了我的自学能力,在遇到技术困难的时候,能够认真的对待,永不放弃,无论是查看各种书籍还是到图书馆中查找各种资料,想尽一切办法将这个问题解决。我总结了很多的JSP编程经验,这将在以后的学习生活中有很大的帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值