学位生成绩管理系统

目 录

绪 论 . ...................................................... 4

1课题概述 ..................................................... 5

1.1 课题的背景及意义 ......................................... 5

1.2 系统目标 . ................................................ 6

2可行性研究 ................................................... 8

2.1 技术可行性 . .............................................. 8

2.2 经济可行性 . .............................................. 8

2.3 操作可行性 . .............................................. 9

2.4 法律可行性 . .............................................. 9

3需求分析 .................................................... 10

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

3.2 系统具备的基本功能 . ..................................... 10

3.3 数据字典 . ............................................... 11

4 总体设计 . ................................................... 12

4.1 概述 . ................................................... 12

4.2 系统功能划分 . ........................................... 13

4.2.1 学生子系统功能划分 .................................. 13

4.2.2 教师子系统功能划分 .................................. 14

4.3 系统功能描述 . ........................................... 15

4.3.1 学生子系统功能描述 .................................. 15

4.3.2 教师子系统功能描述 .................................. 15

4.4数据库设计 . .............................................. 16

4.5 安全保密设计 . ........................................... 19

4.5.1 登陆用户的安全性 .................................... 19

4.5.2 数据安全性 .......................................... 19

5 详细设计与系统实现 ......................................... 20

5.1开发工具介绍 . ............................................ 20

5.2 教师子系统的实施 . ....................................... 22

5.3 数据库连接的设计 ........................................ 22

5.4 登录页面设计 . ........................................... 22

5.4.1 学生管理模块 ........................................ 24

5.4.2课程信息管理模块 ..................................... 27

5.4.3成绩信息管理模块 ..................................... 29

5.4.4成绩统计分析模块 ..................................... 35

5.4.5反馈信息查看模块 ..................................... 37

5.5学生子系统的实施 ......................................... 38

5.5.1学生成绩查询模块 ..................................... 38

5.5.1意见反馈模块 ......................................... 39

6 测试与维护 . ................................................. 41

6.1 测试的任务及目标 . ....................................... 41

6.1.1 测试的任务 .......................................... 41

6.1.2 测试的目标 .......................................... 41

6.2 测试方案 . ............................................... 41

6.2.1 模块测试: .......................................... 41

6.2.2 集成测试: .......................................... 42

6.2.3 验收测试: .......................................... 42

6.2.4 平行运行 . ........................................... 42

6.3 系统维护 . ............................................... 43

结 论 . ..................................................... 44

致 谢 . ..................................................... 45

参考文献 . ..................................................... 46

绪 论

随着计算机网络技术发展,Web 数据库技术已经成为应用最为广泛的网站架构基础技术在应用系统中,Web 提供了与用户进行通信联络的有效手段,利用Web 技术,实现Web 服务器与数据库系统的连接,完成对数据的处理与查询,用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据。

本系统前台采用ASP.NET 技术,利用这一技术可以建立安全的、跨平台的先进动态网站,这项技术还在不断地被更新和优化。后台数据库是SQL Server 2000, 而SQL Server 则是Microsoft 公司数据库系列中的旗舰产品,两者结合,为Web 数据库技术提供了完美的实现体系. 学生成绩管理系统就是在这种条件下开发出来的,通过网页的形式,完成学生信息的管理、课程的管理、成绩的管理以及学分统计的管理等功能。

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

1课题概述

1.1 课题的背景及意义

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

计算机具有运算速度快、精度高、能按照设计逻辑处理问题等特性,在学生成绩信息的录入、统计中如采用一个计算机化的信息系统进行处理,就不会发生信息遗漏或者数据输入不正确的情形。在学校,尤其是在各大高校,学生成绩信息是学校的一项重要的数据资源,信息的管理也是学校的一项常规性的重要工作。而长期以来,学生成绩信息管理都是依赖人工进行的,面对如此众多的学生信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大

地提高的效率,也是学校科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套学生成绩管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。

1.2 系统目标

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

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

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

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

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

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

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

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

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

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

4.可以快速的完成成绩的汇总功能,查看学生总的学分信息。

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

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

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

2. 实现对学生信息的管理。如学生信息的添加、删除和修改。

3. 实现对学校开设课程的管理。如添加、删除及修改课程等。

4. 完成学生成绩的管理。完成学生成绩的录入及修改的功能。

5. 完成学生成绩信息的统计及查询的功能,可以统计每班或每个系别的学生的成绩的信息等。

2可行性研究

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

2.1 技术可行性

所以本系统使用ASP.NET 开发技术,采用C#语言脚本来编写,数据库使用SQL Server 2000 数据库,服务器是IIS 5.1 。本人在大学的学习中,已经学过这几门课程,就本人能力而言,多次进行数据库开发实习,有一定的实地开发经验。本人热爱计算机科学,有一种奋发向上刻苦钻研的精神,经过大学的学习,这些课程已熟练掌握,本系统是本人在学校开发,遇到问题可以与同学一起研究,再加上导师的指导。因此在技术上能够适应本系统的开发。

2.2 经济可行性

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

本软件的开发费用可以忽略,由本人利用毕业设计的机会进行开发,目前中档办公用机每台在4000元左右。在加上一些其他设施的购买,预计一万元以内便可使系统投入运行。

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

本。在经济上完全可行

2.3 操作可行性

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

2.4 法律可行性

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

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

3需求分析

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

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

3.2 系统具备的基本功能

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

(1)、学生操作前台——操作方便

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

(2)管理后台

本系统后台管理在考虑学生成绩信息管理操作简便的同时,提供了强大的管理模式。实现学生基本信息添加、删除和修改,课程信息的添加、删除及修改,学生成绩的录入与管理,学生成绩统计与分析的管理功能,并可以查看学生的反馈信息。

3.3 数据字典

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

4 总体设计

4.1 概述

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

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

(1).抽象

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

(2).信息隐蔽和局部化

信息隐蔽是指在设计和确定模块时,应使得一个模块内包含的信息对

于不需要这些信息的模块来说,是不能访问。

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

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

(3).逐步求精的模块化概念

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

(4).模块独立性

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

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

4.2 系统功能划分

经过对系统的需求分析,根据系统的使用用户,将整个系统分为两部分:学生子系统、教师子系统。

4.2.1 学生子系统功能划分

学生子系统比较简单,主要完成学生网上课程成绩查询的功能、信息反馈及密码修改的功能。学生以学号及密码的身份进行登录,系统功能

结构如图4-1。

4.2.2 教师子系统功能划分

管理员子系统完成此系统的管理维护操作,主要包括学生信息管理模块,课程管理模块,班级信息的模块,成绩管理模块,教师管理模块,获奖人员生成,开课信息管理。管理员子系统的的功能图如图4-2所示:

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

图 4-2 教师子系统模块

4.3 系统功能描述

4.3.1 学生子系统功能描述 1.学生成绩查询模块

本模块完成学生成绩的查询功能,进入本模块,学生可以查询自己课程及所得的成绩的信息。该成绩由系统教师或管理员在后台录入,学生只能查询自己的成绩的信息。成成绩信息按学分进行汇总,学生可以查看自己所得的总的学分。

2.信息反馈模块

学生信息反馈模块,主要完成学生信息的反馈功能,学生查看自己的成绩信息,如果对成绩有异议,可以给老师进行留言。

3.学生密码修改模块

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

4.3.2 教师子系统功能描述 1.学生基本信息管理模块

此模块完成学生基本信息的管理,包括录入学生信息,删除学生信息,修改学生信息及查询学生信息。学生的信息主要包括学生的学号,姓名,性别,专业,班级等。

2.课程管理模块

课程管理模块完成学校开设的课程的管理功能,包括课程的添加,课程的删除,课程的修改及课程的查询。课程的信息的主要包手课程的类型,课程的名字以及课程的学分。课程主要分为必修课和选修课,必修课的学分一般为4分或6分,选修课的学分为2分。

3.成绩管理模块

学生成绩管理模块完成学生课程成绩的录入功能及管理功能,操作员可以录入学生的成绩情况。录入成绩时分为必修课录入和选修课录入,必修课根据录入的成绩计算得分的等级,再根据学分的等级计算所得的学分。选修课成绩的主要就是优、良、中、及格、不及格,再根据学生成绩计算学生的学分。

4.统计信息分析模块

统计分析模块完成学生量化成绩的统计功能,可以按学号统计,输入学生的学号,统计学生所得的学分,按班级统计,可以输入班级名称,计算班里的每个学生所得的学分及总学分,按专业统计,完成按专业统计学分的功能。

5.反馈信息管理模块

反馈信息管理模块完成学生反馈信息的查看功能,教师可以查看学生的反馈信息。

4.4数据库设计

本系统采用的数据库管理系统是Microsoft 公司的SQL Server 2000。该管理系统由一系列产品组成,不仅能够满足最大的数据处理系统和商业 Web 站点存储数据的需要,还能为个人或小企业提供易于使用的数据存储服务。

Microsoft SQL Server 2000 的特性包括: 1.Internet 集成。

SQL Server 2000 数据库引擎提供完整的 XML 支持。它还具有构成最大的 Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且 SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在 Web 应用程序中包含了用户友好的查询和强大的搜索功

能。

2.可伸缩性和可用性。

同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。

3.企业级数据库功能。

SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。

4.易于安装、部署和使用。

SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。

5.数据仓库。

SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理

(OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据。

本系统的数据库的名字为result.mdf ,在本数据库中包括如下几个表:

4.5.1 登陆用户的安全性

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

4.5.2 数据安全性

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

5 详细设计与系统实现

5.1开发工具介绍

Visual Studio.NET是Microsoft 公司推出的可视化开发工具,ASP.NET 作为Visual Studio.NET的组成部分之一,已经成为Internet 中Web 应用程序的新一代开发工具,并逐渐被广大程序员普遍采用。而C#是一个面向对象的编程语言, 我们可以使用我们可以使用C#开发控制台应用程序、.net windows 应用程序、asp.net 应用程序以及Web 服务等各种类型的应用程序。在实际开发过程中,我们可以使用像记事本一样的编辑器来编写代码,同样也可以借助开发工具来开发C#代码并且生成程序集合,微软推出的Visual Studio.NET 就是这样一个开发工具,借助这个强大的开发工具,开发者可以快速的编写.NET 语言程序代码。C#作为一门崭新的语言,它具有开发效率高,应用范围广等特点,成为当前程序开发领域的一大热门。 1.ASP.NET(C#)特点

在微软的.NET 战略中,ASP.NET 是非常重要的一环,它相对于以前的ASP 有了相当大的改进。相对于其他的Web 应用开发模型来讲,ASP.NET 具有更大的优势,其主要特点包括:

(1) ASP.NET 与其前版ASP 不同,它是在服务器上运行的编译好的公共语言运行时代码,可以更好地提高程序运行性能。

(2) ASP.NET 与语言无关,它可以采用C#、VB.NET 以及JavaScript 等支持.NET 框架的语言来进行开发,开发者可以根据自身的情况进行选择。

(3) ASP.NET 支持开发Web 服务,它对XML 技术提供了更好的支持,使得Web 应用程序的开发更具有可扩展性和跨平台性。

(4) ASP.NET 提供了许多功能强大的服务器端控件,使得程序的开发更

趋于简单化。并在后台代码开发中提供了强大的智能化支持,使得开发工作更具有条理性。

(5) ASP.NET 支持页面HTML 代码和C#代码分离模型,提高了开发效率、简化了代码的维护,提高了代码的重用性。

2. ASP.NET(C#)的应用技术

ASP.NET(C#)提供了许多强大的功能应用技术,如:数据库访问技术、数据验证技术、面向对象的设计方法等,还提供了一些图表处理,如GDI+技术。下面主要针对数据库访问和GDI+技术做一些主要分析:

ASP.NET 数据库访问-ASP.NET

数据库访问一直都是动态网站开发的一个重要方面。熟悉ASP 的人都知道,ASP 是和ADO 紧密结合在一起的,而ADO 就是ASP 中所采用的数据库访问技术。当前ASP.NET 独领风骚,作为ADO 的改进版—ADO.NET 的推出也可谓恰逢其时。和其前一个版本相比,ADO.NET 进行了相当多的改进,在平台互操作性以及可扩展性方面都做了很多有意义的创新。

ADO.NET 主要有以下几个特性:第一,可编程性;在Visual Studio.NET 中,ADO.NET 模型采用类型化的操作对象,程序员可以对自己定义的对象进行编程,而不是对某一个数据表或者数据列进行编程,采用这种类型化的变成模式,可以更好地表述业务对象。类型化的程序设计方式不仅使得程序员的编程思路更为清晰,也使得其他用户更能容易理解。第二,互操作性;在ADO.NET 中,XML 是和数据访问紧密连接在一起的,它使用XML 在组件间传达数据集。不管是不是ADO.NET 的组件,只要该组件具有处理XML 格式的能力,就都可以发送或者接收数据集。在.NET 框架中,XML 类集中使用于DataSet 对象。无论DataSet 对象数据源是什么,DataSet 都可以写成符合W3C 标准的XML 。由于DataSet 固有的序列化格式为XML ,所以它在以远程方式向XML Web Services发送和接收数据时成为首选。

5.2 教师子系统的实施

虽然系统是从学生的角度开始设计的,但是在学生成绩查询与管理系统中作为系统的设计者,首先面对的用户就是管理者。学生的需求实际上是系统需求的一部分,更重要的是应先解决管理者对系统管理的需求。在做好后台管理系统的基础上,再做前台系统,由于数据库里有了各种实际的资料,会更加直观。

后台系统主要是为教师服务的,主要由五个模块组成:学生信息管理模块、课程信息管理模块、成绩信息管理模块、成绩统计分析模块和留言信息反馈模块。

5.3 数据库连接的设计

在动态网页中,调用数据库中的数据是十分频繁的,为了避免编写重复的代码。编写一个数据库连接文件是非常重要的。本系统中BaseClass.cs 文件的内容包括连接数据库的信息。连接数据库的代码如下:

public static SqlConnection DBCon()

{

return

SqlConnection("server=.;database=Results;uid=sa;pwd=");

} new

5.4 登录页面设计

本页是学生成绩管理系统的入口,为了确保网站与数据库的安全,对进入的人进行身份验证是十分必要的,尤其是网站的后台管理系统。本页的主要功能就是对用户进行身份验证。只有用户名和密码都正确才可以进入后台系统。本系统的用户分为学生,教师两种,用户输入用户名、密码及验证码后,点击“登录”按钮完成登录的功能,本页面的设计如图5-3

所示:

图5-3登录页面

其中“登录”按钮的代码设计如下:

protected void btnlogin_Click(object sender, EventArgs e) { if (txtNum.Text.Equals(""))

{ Response.Write("");

return;

} else if (txtPwd.Text.Equals(""))

{ Response.Write("");

return;

} else if (txtCode.Text.Trim() != Session["verify"].ToString())

{Response.Write("");

return;

} else

{ if (BaseClass.CheckAdmin(txtNum.Text.Trim(),

txtPwd.Text.Trim()))

{ Session["admin"] = txtNum.Text;

Response.Redirect("Admin/Main.aspx");

} else if (BaseClass.CheckStudent(txtNum.Text.Trim(), txtPwd.Text.Trim()))

{ Session["student"] = txtNum.Text;

Response.Redirect("Student/Main.aspx");

} else

{ Response.Write("");

} } }

5.4.1 学生管理模块

学生管理模块主要由学生信息添加子模块和学生信息管理子模块来构成。

学生信息添加子模块,完成学生信息的添加,教师输入学生的基本信息,如学号,姓名,性别,专业及班级完成学生信息,点击添加按钮完成学生息 的添加功能。

其中“添加”按钮的代码设计如下:

protected void btnAdd_Click(object sender, EventArgs e)

{ if (TextBox1.Text == "" || TextBox2.Text == "" || TextBox3.Text == "" || TextBox4.Text == "")

{ Response.Write("");

return;

} else if (!validate.validateNum(TextBox1.Text) || !validate.validateMedian(TextBox1.Text))

{ Response.Write("");

return;

} else

{ int t= 0;

SqlConnection conn = BaseClass.DBCon();

conn.Open();

SqlCommand cmd = new SqlCommand("select count(*) from db_Student where StudentID='" + TextBox1.Text.Trim() + "'", conn);

t = Convert.ToInt32(cmd.ExecuteScalar());

if (t != 0)

{ MessageBox.Show("此学生号已经存在"); return;

}

else

{ studentid = TextBox1.Text;

string str = "insert into db_Student (StudentID,Password,StudentName,Sex,Professional,Classes)

values('" + TextBox1.Text.Trim() + "','" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + DropDownList1.SelectedValue + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "')";

BaseClass.OperateData(str);

string str1 = "insert into db_Sum (StudentID,StudentName,Professional,Classes,SumScore) values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','0')";

BaseClass.OperateData(str1);

MessageBox.Show("学生信息添加成功");

btnconcel_Click(sender, e);

}

}

}

2.学生信息管理子模块,完成学生信息的删除,修改及查询的功能,教师可以对已添加的学生的信息进行管理。可以修改学生的信息,可以按学号、姓名、班级等作为条件进行信息的查询,也可以删除学生的信息,

学生信息管理子模块的设计如图5-5所示:

图5-5 学生信息管理模块

其中“查看”按钮的代码设计如下:

protected void btnserch_Click(object sender, EventArgs e) { if (txtKey.Text == "")

{ string strsql = "select * from db_Student order by StudentID asc";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

} else

{ string stype = ddlType.SelectedItem.Text;

string strsql = "";

switch (stype)

{ case "学生号":

strsql = "select * from db_Student where StudentID like '%" + txtKey.Text.Trim() + "%'";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

break;

case "学生姓名":

strsql = "select * from db_Student where StudentName like '%" + txtKey.Text.Trim() + "%'";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

break;

case "学生班级":

strsql = "select * from db_Student where Classes like '%" + txtKey.Text.Trim() + "%'";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

break;

} } }

5.4.2课程信息管理模块

课程信息管理模块由课程信息添加子模块,课程信息管理子模块构成

1.课程信息添加子模块,主要完成课程信息的添加的功能,教师可以添加新的课程的信息,课程的信息主要包括,课程类型,课程名称,考试地点及课程的学分的信息。课程信息添加模块的设计如图5-6所示:

图5-6 课程信息添加模块

其中“添加”按钮的代码如下:

protected void btnAdd_Click(object sender, EventArgs e)

{ if (TextBox1.Text == "" || TextBox2.Text == "" || TextBox3.Text =="")

{ Response.Write("");

return;

} else

{ SqlConnection conn = BaseClass.DBCon(); conn.Open();

SqlCommand cmd = new SqlCommand("select count(*) from db_Course where CourseName='" + TextBox1.Text.Trim() + "'", conn);

int t = Convert.ToInt32(cmd.ExecuteScalar()); if (t > 0)

{ MessageBox.Show("此课程名称已经存在");

return;

}

else

{

string str = "insert into db_Course (CourseType,CourseName,ExamLocal,CourseScore) values('" + DropDownList1.SelectedValue + "','" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "')";

BaseClass.OperateData(str);

MessageBox.Show("课程信息添加成功");

btnconcel_Click(sender, e);

}

}

}

2.课程信息管理子模块,完成课程信息的管理功能,主要完成课信息的查询、修改及删除的功能,教师可修改已添加的课程的信息,可以删除课程的信息,也可以按课程类型及课程名称等作为条件进行查询。课程信

息管理模块的设计如图5-7所示:

图5-7 课程信息管理模块

其中“删除”按钮的代码设计如下:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

int id = (int)GridView1.DataKeys[e.RowIndex].Value; string str = "delete from db_Course where CourseID=" + id;

BaseClass.OperateData(str);

string strsql = "select * from db_Course order by CourseID desc";

BaseClass.BindDG(GridView1, "CourseID", strsql, "Course");

}

5.4.3成绩信息管理模块

成绩信息管理模块完成成绩信息的录入与管理的功能。由四个子模块构成:必修课成绩添加模块,必修课成绩管理模块,选修课成绩添加模块,

选修课成绩管理模块。

1.必修课成绩添加模块,完成学生必修课成绩的添加功能,在添加学生成绩时,输入学生的学号,选择课程名,输入成绩和考试日期。系统会根据输入的学生的成绩自动计算成绩的等级,计算方法如下90分以上为优,90-80分为良,80-70分为中,70-60分为及格,60分以下为不及格,并根据学生的成绩和课程的学分,计算学生所得的学分。必修课成绩录入模块的如图5-8所示:

图5-8 必修课成绩录入

其中“添加”按钮的代码设计如下:

protected void btnAdd_Click(object sender, EventArgs e)

{

if (type == "必修")

{ if (score > 100 || score

return;

} else if (score >= 90 && score

{ grade = "优";

} else if (score >= 80 && score

coursescore -= 1;

}

else if (score >= 70 && score

{

grade = "中";

coursescore -= 2;

} else if (score >= 60 && score

coursescore -= 3;

} else

{

grade = "不及格";

coursescore = 0;

}

} cmd = new SqlCommand("select count(*) from db_student where StudentID='" + TextBox1.Text.Trim() + "'", conn);

int s = Convert.ToInt32(cmd.ExecuteScalar()); if (s > 0)

{

cmd = new SqlCommand("select * from db_Student where StudentID='" + TextBox1.Text + "'", conn);

sdr = cmd.ExecuteReader();

sdr.Read();

studentName = sdr["StudentName"].ToString(); professional = sdr["Professional"].ToString(); classes = sdr["Classes"].ToString();

sdr.Close();

cmd = new SqlCommand("select *from db_Course where CourseType = '" + type + "' and CourseName = '" + DropDownList1.SelectedValue + "'", conn);

sdr = cmd.ExecuteReader();

sdr.Read();

examLocal = sdr["ExamLocal"].ToString();

sdr.Close();

cmd = new SqlCommand("select count(*) from db_Score where StudentID='" + TextBox1.Text.Trim() + "' and CourseName = '" + DropDownList1.SelectedValue + "'", conn);

int t = Convert.ToInt32(cmd.ExecuteScalar()); if (t > 0)

{

MessageBox.Show("该学生此门成绩已经录入");

return;

}

else

{

cmd = new SqlCommand("select *from db_Sum where StudentID = '"+ TextBox1.Text +"'", conn);

sdr = cmd.ExecuteReader();

sdr.Read();

int sscore = Convert.ToInt32(sdr["SumScore"].ToString());

sdr.Close();

string strsql1 = "update db_Sum set SumScore = '"+ (sscore+coursescore) +"' where StudentID ='" + TextBox1.Text + "'";

BaseClass.OperateData(strsql1);

string str = "insert into db_Score (StudentID,StudentName,Professional,Classes,CourseType,CourseName,Score,Grade,CourseScore,ExamLocal,ExamDate) values('" + TextBox1.Text.Trim() + "','" + studentName + "','" + professional + "','" + classes + "','" + type.Trim() + "','" + DropDownList1.SelectedValue + "','" + TextBox2.Text + "','" + grade

毕业设计

第 33 页

+ "','"+ coursescore +"','" + examLocal + "','" + TextBox3.Text + "')";

BaseClass.OperateData(str);

MessageBox.Show("成绩信息添加成功");

Session["studentid"] = TextBox1.Text;

Session["coursename"] = DropDownList1.SelectedValue;

Response.Redirect("StudentScoreDetail.aspx");

}

}

conn.Close();}

}

2.必修课成绩管理模块,完成必修课成绩信息的查看与修改的功能,可以按学生学号,学生姓名或者学生的班级作为查询条件进行查询,也可以对学生成绩信息进行修改或删除操作,必修课成绩管理模块的设计如图5-9所示:

图5-9 必修课成绩管理模块

其中“删除”按钮的代码设计如下:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

int id = (int)GridView1.DataKeys[e.RowIndex].Value; string str = "delete from db_Score where ScoreID=" + id; BaseClass.OperateData(str);

string strsql = "select * from db_Score where CourseType ='" + type + "' order by ScoreID desc";

BaseClass.BindDG(GridView1, "ScoreID", strsql, "Score");}

2. 选修课成绩添加,完成学生选修课成绩添加的功能,选修课的成绩为优,良,中,及格,不及格,为输入及统计方便,在输入时,用数字来代表成绩,90-优,80-良,70-中,60-及级,0-不及格,系统会根据学生的成绩等级计算学生的学分,优与良的等级选修课的学分为2分,中与及格的学分为1分,不及格的学分的学分为0分。选修课成绩添加模块页面设计如图5-10所示:

图5-10 选修课成绩添加

选修课成绩管理,用于查看与管理选修课的成绩信息,可以修改或删除选修课的生的成绩的信息。选修课成绩管理模块的设计如图5-11所示:

图5-11 选修课成绩管理页面

5.4.4成绩统计分析模块

成绩统计与分析模块主要完成学生学分的统计功能,可以按三种方式进行统计:按学生学号统计学生的总学分,学班级统计全班学生的学分,按专业统计某专业学生所得的学分。以按专业统计为例,输入班级的名称,点击统计按钮进行统计,统计的结果可以导出到EXCEL 中,也可以进行打印。统计模块的设计如图

图5-12 按专业统计模块

其中“统计”按钮的代码设计如下:

protected void btnAdd_Click(object sender, EventArgs e)

{ if (TextBox1.Text == "")

{ Label1.Text = "请输入专业名称!";

} else

{ SqlConnection conn = BaseClass.DBCon(); conn.Open();

SqlCommand cmd = new SqlCommand("select count(*) from db_Student where Professional='" + TextBox1.Text.Trim() + "'", conn);

int t = Convert.ToInt32(cmd.ExecuteScalar()); if (t > 0)

{ sid = TextBox1.Text;

cmd = new SqlCommand("select count(*) from db_Score where Professional='" + TextBox1.Text.Trim() + "'", conn);

int professional = Convert.ToInt32(cmd.ExecuteScalar());

if (professional > 0)

{

cmd = new SqlCommand("select sum(Score) from db_Score where Professional='" + TextBox1.Text.Trim() + "'", conn);

int s = Convert.ToInt32(cmd.ExecuteScalar());

cmd = new SqlCommand("select sum(CourseScore) from db_Score where Professional='" + TextBox1.Text.Trim() + "'", conn);

int c = Convert.ToInt32(cmd.ExecuteScalar());

Label1.Text = sid + " 的总成绩为 " + s.ToString() + "分 总学分为 " + c.ToString() + "分";

Button1.Visible = true;

Button2.Visible = true;

string strsql = "select * from db_Sum where Professional='" + sid + "' order by SumScore desc";

BaseClass.BindDG(GridView1, "SumID", strsql, "Sum");

}

else

{

Label1.Text = "该专业的成绩还没有录入!"; TextBox1.Text = "";

} } } }

5.4.5反馈信息查看模块

反馈信息查看模块主要用于查看学生反馈信息,学生对有异议的成绩信息可以进行反馈,教师可以查看反馈信息。反馈信息查看面面设计如图5-13所示:

图5-13 学生反馈信息查看模块

5.5学生子系统的实施

5.5.1学生成绩查询模块

学生成绩查询模块,用于查询学生的成绩的信息,学生以学号和密码进行登录,可以查看学生的全部成绩的信息,也可以选择选修课或必修课分别进行查看。学生成绩查询模块的页面设计如图5-14所示:

图5-14 学生成绩查询子系统页面

5.5.1意见反馈模块

学生对自己的成绩信息如果有异议,可以进行反馈,在反馈时学生输入学生的反馈信息进行反馈,在教师子系统中可以查看到反馈的信息。意见反馈模块的页面设计如图5-15所示:

图5-15 学生信息反馈

protected void btnAdd_Click(object sender, EventArgs e)

{

if (TextBox5.Text == "")

{

Response.Write("");

return;

}

else

{

string str = "insert into db_Feedback (StudentID,StudentName,Professional,Classes,Info,FeedDate)

values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','" + TextBox5.Text.Trim() + "','"+ DateTime.Now.ToString() +"')";

BaseClass.OperateData(str);

MessageBox.Show("信息反馈成功");

btnconcel_Click(sender, e);

}

}

6 测试与维护

6.1 测试的任务及目标

6.1.1 测试的任务

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

6.1.2 测试的目标

1. 测试的目的是为了发现程序中的错误而执行程序的过程。

2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

3. 成功的测试是发现了到今为止尚未发现的错误的测试。

6.2 测试方案

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

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

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

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

6.2.1 模块测试:

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

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

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

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

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

6.2.2 集成测试:

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

(1)编写的测试软件较少,开销较小。

(2)较早地发现模块间的接口错误。

(3)错误位置容易判断。

(4)测试更彻底。

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

6.2.3 验收测试:

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

(1)功能和特性与用户的要求有差距。

(2)功能和性能与用户要求一致,软件是可以接受的。

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

6.2.4 平行运行

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

a) 可以在准生产环境中运行新系统而有不冒风险;

b) 用户能有一段熟悉新系统的时间;

c) 可以验证用户指南和使用手册之类的文档;

d) 能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。

6.3 系统维护

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

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

(1)软件配置程序源代码;

(2)开发过程文档齐全;

(3)设计过程中各模块均考虑或预留完整性和可维护性接口等部分。

(4)本软件的模块化,源代码内详细说明、注释均可提高可维护性;

结 论

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

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

致 谢

在本次毕业设计中,感谢我的指导老师杨文, 她严谨细致、一丝不苟的作风一直是我工作、学习中的旁样;她循循善诱的教导和不拘一格的思路给予我无尽的启迪。我从指导老师杨文身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢您细心而又耐心的辅导。

参考文献

[1] 萨师煊,王珊. 数据库系统概论. 第3版. 北京:高等教育出版社,2000

[2] [美]Todd Cook. ASP.NET 信息系统概论. 北京:电子工业出版社,2003. 1-385.

[3] 周绍广《ASP.NET 编程基础与实例》2002年 机械工业出版社

[4] 贾佳 郝洪明.ASP.NET 与SQL Server网站架设. 第1版. 北京: 机械工业出版社,2001

[5]吴晨,孙少波《ASP.NET 数据库项目案例导航》清华大学出版社 2004-12月

[6]石磊《ASP.NET 数据库编程祥解(C#版)》高等教育出版社 2004-1月 37-90

[7]刘浩《ASP.NET+SQL Server 网络应用系统开发与实例》人民邮电出版社 2005-2月1-70

[8]张立科《ASP.NET 信息管理系统开发实例导航》人民邮电出版社 2005-4月

[9]刘荣华《SQL SERVER2005数据库管理与应用系统开发》人民邮电出版社 2005-10月7-61

[10]王斌,丘少东《C#.NET使用大全》高等教育出版社 2005-9月 16-27

[11]韩磊《深入研究.NET 框架》参考外文翻译书籍

[12]USA kate .d 《深入研究asp.net 》外文出版社 2005-1月1-24

[13]USA 吴千《深入学习Sql Server 2005》清华大学出版社 2005-7月1-129

[14]李小名,徐东《ASP.net 》铁路出版社 2006-1月

[15]徐东,唐国利《asp 速查手册》

目 录

绪 论 . ...................................................... 4

1课题概述 ..................................................... 5

1.1 课题的背景及意义 ......................................... 5

1.2 系统目标 . ................................................ 6

2可行性研究 ................................................... 8

2.1 技术可行性 . .............................................. 8

2.2 经济可行性 . .............................................. 8

2.3 操作可行性 . .............................................. 9

2.4 法律可行性 . .............................................. 9

3需求分析 .................................................... 10

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

3.2 系统具备的基本功能 . ..................................... 10

3.3 数据字典 . ............................................... 11

4 总体设计 . ................................................... 12

4.1 概述 . ................................................... 12

4.2 系统功能划分 . ........................................... 13

4.2.1 学生子系统功能划分 .................................. 13

4.2.2 教师子系统功能划分 .................................. 14

4.3 系统功能描述 . ........................................... 15

4.3.1 学生子系统功能描述 .................................. 15

4.3.2 教师子系统功能描述 .................................. 15

4.4数据库设计 . .............................................. 16

4.5 安全保密设计 . ........................................... 19

4.5.1 登陆用户的安全性 .................................... 19

4.5.2 数据安全性 .......................................... 19

5 详细设计与系统实现 ......................................... 20

5.1开发工具介绍 . ............................................ 20

5.2 教师子系统的实施 . ....................................... 22

5.3 数据库连接的设计 ........................................ 22

5.4 登录页面设计 . ........................................... 22

5.4.1 学生管理模块 ........................................ 24

5.4.2课程信息管理模块 ..................................... 27

5.4.3成绩信息管理模块 ..................................... 29

5.4.4成绩统计分析模块 ..................................... 35

5.4.5反馈信息查看模块 ..................................... 37

5.5学生子系统的实施 ......................................... 38

5.5.1学生成绩查询模块 ..................................... 38

5.5.1意见反馈模块 ......................................... 39

6 测试与维护 . ................................................. 41

6.1 测试的任务及目标 . ....................................... 41

6.1.1 测试的任务 .......................................... 41

6.1.2 测试的目标 .......................................... 41

6.2 测试方案 . ............................................... 41

6.2.1 模块测试: .......................................... 41

6.2.2 集成测试: .......................................... 42

6.2.3 验收测试: .......................................... 42

6.2.4 平行运行 . ........................................... 42

6.3 系统维护 . ............................................... 43

结 论 . ..................................................... 44

致 谢 . ..................................................... 45

参考文献 . ..................................................... 46

绪 论

随着计算机网络技术发展,Web 数据库技术已经成为应用最为广泛的网站架构基础技术在应用系统中,Web 提供了与用户进行通信联络的有效手段,利用Web 技术,实现Web 服务器与数据库系统的连接,完成对数据的处理与查询,用户可以通过操作简单易学的浏览器来查询处理所需要的各种数据。

本系统前台采用ASP.NET 技术,利用这一技术可以建立安全的、跨平台的先进动态网站,这项技术还在不断地被更新和优化。后台数据库是SQL Server 2000, 而SQL Server 则是Microsoft 公司数据库系列中的旗舰产品,两者结合,为Web 数据库技术提供了完美的实现体系. 学生成绩管理系统就是在这种条件下开发出来的,通过网页的形式,完成学生信息的管理、课程的管理、成绩的管理以及学分统计的管理等功能。

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

1课题概述

1.1 课题的背景及意义

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

计算机具有运算速度快、精度高、能按照设计逻辑处理问题等特性,在学生成绩信息的录入、统计中如采用一个计算机化的信息系统进行处理,就不会发生信息遗漏或者数据输入不正确的情形。在学校,尤其是在各大高校,学生成绩信息是学校的一项重要的数据资源,信息的管理也是学校的一项常规性的重要工作。而长期以来,学生成绩信息管理都是依赖人工进行的,面对如此众多的学生信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范。作为计算机应用的一部分,使用计算机对学生信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大

地提高的效率,也是学校科学化、正规化管理的重要条件。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套学生成绩管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。

1.2 系统目标

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

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

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

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

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

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

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

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

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

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

4.可以快速的完成成绩的汇总功能,查看学生总的学分信息。

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

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

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

2. 实现对学生信息的管理。如学生信息的添加、删除和修改。

3. 实现对学校开设课程的管理。如添加、删除及修改课程等。

4. 完成学生成绩的管理。完成学生成绩的录入及修改的功能。

5. 完成学生成绩信息的统计及查询的功能,可以统计每班或每个系别的学生的成绩的信息等。

2可行性研究

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

2.1 技术可行性

所以本系统使用ASP.NET 开发技术,采用C#语言脚本来编写,数据库使用SQL Server 2000 数据库,服务器是IIS 5.1 。本人在大学的学习中,已经学过这几门课程,就本人能力而言,多次进行数据库开发实习,有一定的实地开发经验。本人热爱计算机科学,有一种奋发向上刻苦钻研的精神,经过大学的学习,这些课程已熟练掌握,本系统是本人在学校开发,遇到问题可以与同学一起研究,再加上导师的指导。因此在技术上能够适应本系统的开发。

2.2 经济可行性

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

本软件的开发费用可以忽略,由本人利用毕业设计的机会进行开发,目前中档办公用机每台在4000元左右。在加上一些其他设施的购买,预计一万元以内便可使系统投入运行。

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

本。在经济上完全可行

2.3 操作可行性

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

2.4 法律可行性

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

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

3需求分析

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

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

3.2 系统具备的基本功能

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

(1)、学生操作前台——操作方便

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

(2)管理后台

本系统后台管理在考虑学生成绩信息管理操作简便的同时,提供了强大的管理模式。实现学生基本信息添加、删除和修改,课程信息的添加、删除及修改,学生成绩的录入与管理,学生成绩统计与分析的管理功能,并可以查看学生的反馈信息。

3.3 数据字典

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

4 总体设计

4.1 概述

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

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

(1).抽象

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

(2).信息隐蔽和局部化

信息隐蔽是指在设计和确定模块时,应使得一个模块内包含的信息对

于不需要这些信息的模块来说,是不能访问。

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

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

(3).逐步求精的模块化概念

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

(4).模块独立性

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

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

4.2 系统功能划分

经过对系统的需求分析,根据系统的使用用户,将整个系统分为两部分:学生子系统、教师子系统。

4.2.1 学生子系统功能划分

学生子系统比较简单,主要完成学生网上课程成绩查询的功能、信息反馈及密码修改的功能。学生以学号及密码的身份进行登录,系统功能

结构如图4-1。

4.2.2 教师子系统功能划分

管理员子系统完成此系统的管理维护操作,主要包括学生信息管理模块,课程管理模块,班级信息的模块,成绩管理模块,教师管理模块,获奖人员生成,开课信息管理。管理员子系统的的功能图如图4-2所示:

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

图 4-2 教师子系统模块

4.3 系统功能描述

4.3.1 学生子系统功能描述 1.学生成绩查询模块

本模块完成学生成绩的查询功能,进入本模块,学生可以查询自己课程及所得的成绩的信息。该成绩由系统教师或管理员在后台录入,学生只能查询自己的成绩的信息。成成绩信息按学分进行汇总,学生可以查看自己所得的总的学分。

2.信息反馈模块

学生信息反馈模块,主要完成学生信息的反馈功能,学生查看自己的成绩信息,如果对成绩有异议,可以给老师进行留言。

3.学生密码修改模块

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

4.3.2 教师子系统功能描述 1.学生基本信息管理模块

此模块完成学生基本信息的管理,包括录入学生信息,删除学生信息,修改学生信息及查询学生信息。学生的信息主要包括学生的学号,姓名,性别,专业,班级等。

2.课程管理模块

课程管理模块完成学校开设的课程的管理功能,包括课程的添加,课程的删除,课程的修改及课程的查询。课程的信息的主要包手课程的类型,课程的名字以及课程的学分。课程主要分为必修课和选修课,必修课的学分一般为4分或6分,选修课的学分为2分。

3.成绩管理模块

学生成绩管理模块完成学生课程成绩的录入功能及管理功能,操作员可以录入学生的成绩情况。录入成绩时分为必修课录入和选修课录入,必修课根据录入的成绩计算得分的等级,再根据学分的等级计算所得的学分。选修课成绩的主要就是优、良、中、及格、不及格,再根据学生成绩计算学生的学分。

4.统计信息分析模块

统计分析模块完成学生量化成绩的统计功能,可以按学号统计,输入学生的学号,统计学生所得的学分,按班级统计,可以输入班级名称,计算班里的每个学生所得的学分及总学分,按专业统计,完成按专业统计学分的功能。

5.反馈信息管理模块

反馈信息管理模块完成学生反馈信息的查看功能,教师可以查看学生的反馈信息。

4.4数据库设计

本系统采用的数据库管理系统是Microsoft 公司的SQL Server 2000。该管理系统由一系列产品组成,不仅能够满足最大的数据处理系统和商业 Web 站点存储数据的需要,还能为个人或小企业提供易于使用的数据存储服务。

Microsoft SQL Server 2000 的特性包括: 1.Internet 集成。

SQL Server 2000 数据库引擎提供完整的 XML 支持。它还具有构成最大的 Web 站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQL Server 2000 程序设计模型与 Windows DNA 构架集成,用以开发 Web 应用程序,并且 SQL Server 2000 支持 English Query 和 Microsoft 搜索服务等功能,在 Web 应用程序中包含了用户友好的查询和强大的搜索功

能。

2.可伸缩性和可用性。

同一个数据库引擎可以在不同的平台上使用,从运行 Microsoft Windows 98 的便携式电脑,到运行 Microsoft Windows 2000 数据中心版的大型多处理器服务器。SQL Server 2000 企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大 Web 站点所需的性能级别。

3.企业级数据库功能。

SQL Server 2000 关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQL Server 2000 分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是 SQL Server 2000 数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。

4.易于安装、部署和使用。

SQL Server 2000 中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用 SQL Server 的过程。SQL Server 2000 还支持基于标准的、与 Windows DNA 集成的程序设计模型,使 SQL Server 数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付 SQL Server 应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。

5.数据仓库。

SQL Server 2000 中包括析取和分析汇总数据以进行联机分析处理

(OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据。

本系统的数据库的名字为result.mdf ,在本数据库中包括如下几个表:

4.5.1 登陆用户的安全性

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

4.5.2 数据安全性

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

5 详细设计与系统实现

5.1开发工具介绍

Visual Studio.NET是Microsoft 公司推出的可视化开发工具,ASP.NET 作为Visual Studio.NET的组成部分之一,已经成为Internet 中Web 应用程序的新一代开发工具,并逐渐被广大程序员普遍采用。而C#是一个面向对象的编程语言, 我们可以使用我们可以使用C#开发控制台应用程序、.net windows 应用程序、asp.net 应用程序以及Web 服务等各种类型的应用程序。在实际开发过程中,我们可以使用像记事本一样的编辑器来编写代码,同样也可以借助开发工具来开发C#代码并且生成程序集合,微软推出的Visual Studio.NET 就是这样一个开发工具,借助这个强大的开发工具,开发者可以快速的编写.NET 语言程序代码。C#作为一门崭新的语言,它具有开发效率高,应用范围广等特点,成为当前程序开发领域的一大热门。 1.ASP.NET(C#)特点

在微软的.NET 战略中,ASP.NET 是非常重要的一环,它相对于以前的ASP 有了相当大的改进。相对于其他的Web 应用开发模型来讲,ASP.NET 具有更大的优势,其主要特点包括:

(1) ASP.NET 与其前版ASP 不同,它是在服务器上运行的编译好的公共语言运行时代码,可以更好地提高程序运行性能。

(2) ASP.NET 与语言无关,它可以采用C#、VB.NET 以及JavaScript 等支持.NET 框架的语言来进行开发,开发者可以根据自身的情况进行选择。

(3) ASP.NET 支持开发Web 服务,它对XML 技术提供了更好的支持,使得Web 应用程序的开发更具有可扩展性和跨平台性。

(4) ASP.NET 提供了许多功能强大的服务器端控件,使得程序的开发更

趋于简单化。并在后台代码开发中提供了强大的智能化支持,使得开发工作更具有条理性。

(5) ASP.NET 支持页面HTML 代码和C#代码分离模型,提高了开发效率、简化了代码的维护,提高了代码的重用性。

2. ASP.NET(C#)的应用技术

ASP.NET(C#)提供了许多强大的功能应用技术,如:数据库访问技术、数据验证技术、面向对象的设计方法等,还提供了一些图表处理,如GDI+技术。下面主要针对数据库访问和GDI+技术做一些主要分析:

ASP.NET 数据库访问-ASP.NET

数据库访问一直都是动态网站开发的一个重要方面。熟悉ASP 的人都知道,ASP 是和ADO 紧密结合在一起的,而ADO 就是ASP 中所采用的数据库访问技术。当前ASP.NET 独领风骚,作为ADO 的改进版—ADO.NET 的推出也可谓恰逢其时。和其前一个版本相比,ADO.NET 进行了相当多的改进,在平台互操作性以及可扩展性方面都做了很多有意义的创新。

ADO.NET 主要有以下几个特性:第一,可编程性;在Visual Studio.NET 中,ADO.NET 模型采用类型化的操作对象,程序员可以对自己定义的对象进行编程,而不是对某一个数据表或者数据列进行编程,采用这种类型化的变成模式,可以更好地表述业务对象。类型化的程序设计方式不仅使得程序员的编程思路更为清晰,也使得其他用户更能容易理解。第二,互操作性;在ADO.NET 中,XML 是和数据访问紧密连接在一起的,它使用XML 在组件间传达数据集。不管是不是ADO.NET 的组件,只要该组件具有处理XML 格式的能力,就都可以发送或者接收数据集。在.NET 框架中,XML 类集中使用于DataSet 对象。无论DataSet 对象数据源是什么,DataSet 都可以写成符合W3C 标准的XML 。由于DataSet 固有的序列化格式为XML ,所以它在以远程方式向XML Web Services发送和接收数据时成为首选。

5.2 教师子系统的实施

虽然系统是从学生的角度开始设计的,但是在学生成绩查询与管理系统中作为系统的设计者,首先面对的用户就是管理者。学生的需求实际上是系统需求的一部分,更重要的是应先解决管理者对系统管理的需求。在做好后台管理系统的基础上,再做前台系统,由于数据库里有了各种实际的资料,会更加直观。

后台系统主要是为教师服务的,主要由五个模块组成:学生信息管理模块、课程信息管理模块、成绩信息管理模块、成绩统计分析模块和留言信息反馈模块。

5.3 数据库连接的设计

在动态网页中,调用数据库中的数据是十分频繁的,为了避免编写重复的代码。编写一个数据库连接文件是非常重要的。本系统中BaseClass.cs 文件的内容包括连接数据库的信息。连接数据库的代码如下:

public static SqlConnection DBCon()

{

return

SqlConnection("server=.;database=Results;uid=sa;pwd=");

} new

5.4 登录页面设计

本页是学生成绩管理系统的入口,为了确保网站与数据库的安全,对进入的人进行身份验证是十分必要的,尤其是网站的后台管理系统。本页的主要功能就是对用户进行身份验证。只有用户名和密码都正确才可以进入后台系统。本系统的用户分为学生,教师两种,用户输入用户名、密码及验证码后,点击“登录”按钮完成登录的功能,本页面的设计如图5-3

所示:

图5-3登录页面

其中“登录”按钮的代码设计如下:

protected void btnlogin_Click(object sender, EventArgs e) { if (txtNum.Text.Equals(""))

{ Response.Write("");

return;

} else if (txtPwd.Text.Equals(""))

{ Response.Write("");

return;

} else if (txtCode.Text.Trim() != Session["verify"].ToString())

{Response.Write("");

return;

} else

{ if (BaseClass.CheckAdmin(txtNum.Text.Trim(),

txtPwd.Text.Trim()))

{ Session["admin"] = txtNum.Text;

Response.Redirect("Admin/Main.aspx");

} else if (BaseClass.CheckStudent(txtNum.Text.Trim(), txtPwd.Text.Trim()))

{ Session["student"] = txtNum.Text;

Response.Redirect("Student/Main.aspx");

} else

{ Response.Write("");

} } }

5.4.1 学生管理模块

学生管理模块主要由学生信息添加子模块和学生信息管理子模块来构成。

学生信息添加子模块,完成学生信息的添加,教师输入学生的基本信息,如学号,姓名,性别,专业及班级完成学生信息,点击添加按钮完成学生息 的添加功能。

其中“添加”按钮的代码设计如下:

protected void btnAdd_Click(object sender, EventArgs e)

{ if (TextBox1.Text == "" || TextBox2.Text == "" || TextBox3.Text == "" || TextBox4.Text == "")

{ Response.Write("");

return;

} else if (!validate.validateNum(TextBox1.Text) || !validate.validateMedian(TextBox1.Text))

{ Response.Write("");

return;

} else

{ int t= 0;

SqlConnection conn = BaseClass.DBCon();

conn.Open();

SqlCommand cmd = new SqlCommand("select count(*) from db_Student where StudentID='" + TextBox1.Text.Trim() + "'", conn);

t = Convert.ToInt32(cmd.ExecuteScalar());

if (t != 0)

{ MessageBox.Show("此学生号已经存在"); return;

}

else

{ studentid = TextBox1.Text;

string str = "insert into db_Student (StudentID,Password,StudentName,Sex,Professional,Classes)

values('" + TextBox1.Text.Trim() + "','" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + DropDownList1.SelectedValue + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "')";

BaseClass.OperateData(str);

string str1 = "insert into db_Sum (StudentID,StudentName,Professional,Classes,SumScore) values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','0')";

BaseClass.OperateData(str1);

MessageBox.Show("学生信息添加成功");

btnconcel_Click(sender, e);

}

}

}

2.学生信息管理子模块,完成学生信息的删除,修改及查询的功能,教师可以对已添加的学生的信息进行管理。可以修改学生的信息,可以按学号、姓名、班级等作为条件进行信息的查询,也可以删除学生的信息,

学生信息管理子模块的设计如图5-5所示:

图5-5 学生信息管理模块

其中“查看”按钮的代码设计如下:

protected void btnserch_Click(object sender, EventArgs e) { if (txtKey.Text == "")

{ string strsql = "select * from db_Student order by StudentID asc";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

} else

{ string stype = ddlType.SelectedItem.Text;

string strsql = "";

switch (stype)

{ case "学生号":

strsql = "select * from db_Student where StudentID like '%" + txtKey.Text.Trim() + "%'";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

break;

case "学生姓名":

strsql = "select * from db_Student where StudentName like '%" + txtKey.Text.Trim() + "%'";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

break;

case "学生班级":

strsql = "select * from db_Student where Classes like '%" + txtKey.Text.Trim() + "%'";

BaseClass.BindDG(GridView1, "SID", strsql, "Student");

break;

} } }

5.4.2课程信息管理模块

课程信息管理模块由课程信息添加子模块,课程信息管理子模块构成

1.课程信息添加子模块,主要完成课程信息的添加的功能,教师可以添加新的课程的信息,课程的信息主要包括,课程类型,课程名称,考试地点及课程的学分的信息。课程信息添加模块的设计如图5-6所示:

图5-6 课程信息添加模块

其中“添加”按钮的代码如下:

protected void btnAdd_Click(object sender, EventArgs e)

{ if (TextBox1.Text == "" || TextBox2.Text == "" || TextBox3.Text =="")

{ Response.Write("");

return;

} else

{ SqlConnection conn = BaseClass.DBCon(); conn.Open();

SqlCommand cmd = new SqlCommand("select count(*) from db_Course where CourseName='" + TextBox1.Text.Trim() + "'", conn);

int t = Convert.ToInt32(cmd.ExecuteScalar()); if (t > 0)

{ MessageBox.Show("此课程名称已经存在");

return;

}

else

{

string str = "insert into db_Course (CourseType,CourseName,ExamLocal,CourseScore) values('" + DropDownList1.SelectedValue + "','" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "')";

BaseClass.OperateData(str);

MessageBox.Show("课程信息添加成功");

btnconcel_Click(sender, e);

}

}

}

2.课程信息管理子模块,完成课程信息的管理功能,主要完成课信息的查询、修改及删除的功能,教师可修改已添加的课程的信息,可以删除课程的信息,也可以按课程类型及课程名称等作为条件进行查询。课程信

息管理模块的设计如图5-7所示:

图5-7 课程信息管理模块

其中“删除”按钮的代码设计如下:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

int id = (int)GridView1.DataKeys[e.RowIndex].Value; string str = "delete from db_Course where CourseID=" + id;

BaseClass.OperateData(str);

string strsql = "select * from db_Course order by CourseID desc";

BaseClass.BindDG(GridView1, "CourseID", strsql, "Course");

}

5.4.3成绩信息管理模块

成绩信息管理模块完成成绩信息的录入与管理的功能。由四个子模块构成:必修课成绩添加模块,必修课成绩管理模块,选修课成绩添加模块,

选修课成绩管理模块。

1.必修课成绩添加模块,完成学生必修课成绩的添加功能,在添加学生成绩时,输入学生的学号,选择课程名,输入成绩和考试日期。系统会根据输入的学生的成绩自动计算成绩的等级,计算方法如下90分以上为优,90-80分为良,80-70分为中,70-60分为及格,60分以下为不及格,并根据学生的成绩和课程的学分,计算学生所得的学分。必修课成绩录入模块的如图5-8所示:

图5-8 必修课成绩录入

其中“添加”按钮的代码设计如下:

protected void btnAdd_Click(object sender, EventArgs e)

{

if (type == "必修")

{ if (score > 100 || score

return;

} else if (score >= 90 && score

{ grade = "优";

} else if (score >= 80 && score

coursescore -= 1;

}

else if (score >= 70 && score

{

grade = "中";

coursescore -= 2;

} else if (score >= 60 && score

coursescore -= 3;

} else

{

grade = "不及格";

coursescore = 0;

}

} cmd = new SqlCommand("select count(*) from db_student where StudentID='" + TextBox1.Text.Trim() + "'", conn);

int s = Convert.ToInt32(cmd.ExecuteScalar()); if (s > 0)

{

cmd = new SqlCommand("select * from db_Student where StudentID='" + TextBox1.Text + "'", conn);

sdr = cmd.ExecuteReader();

sdr.Read();

studentName = sdr["StudentName"].ToString(); professional = sdr["Professional"].ToString(); classes = sdr["Classes"].ToString();

sdr.Close();

cmd = new SqlCommand("select *from db_Course where CourseType = '" + type + "' and CourseName = '" + DropDownList1.SelectedValue + "'", conn);

sdr = cmd.ExecuteReader();

sdr.Read();

examLocal = sdr["ExamLocal"].ToString();

sdr.Close();

cmd = new SqlCommand("select count(*) from db_Score where StudentID='" + TextBox1.Text.Trim() + "' and CourseName = '" + DropDownList1.SelectedValue + "'", conn);

int t = Convert.ToInt32(cmd.ExecuteScalar()); if (t > 0)

{

MessageBox.Show("该学生此门成绩已经录入");

return;

}

else

{

cmd = new SqlCommand("select *from db_Sum where StudentID = '"+ TextBox1.Text +"'", conn);

sdr = cmd.ExecuteReader();

sdr.Read();

int sscore = Convert.ToInt32(sdr["SumScore"].ToString());

sdr.Close();

string strsql1 = "update db_Sum set SumScore = '"+ (sscore+coursescore) +"' where StudentID ='" + TextBox1.Text + "'";

BaseClass.OperateData(strsql1);

string str = "insert into db_Score (StudentID,StudentName,Professional,Classes,CourseType,CourseName,Score,Grade,CourseScore,ExamLocal,ExamDate) values('" + TextBox1.Text.Trim() + "','" + studentName + "','" + professional + "','" + classes + "','" + type.Trim() + "','" + DropDownList1.SelectedValue + "','" + TextBox2.Text + "','" + grade

毕业设计

第 33 页

+ "','"+ coursescore +"','" + examLocal + "','" + TextBox3.Text + "')";

BaseClass.OperateData(str);

MessageBox.Show("成绩信息添加成功");

Session["studentid"] = TextBox1.Text;

Session["coursename"] = DropDownList1.SelectedValue;

Response.Redirect("StudentScoreDetail.aspx");

}

}

conn.Close();}

}

2.必修课成绩管理模块,完成必修课成绩信息的查看与修改的功能,可以按学生学号,学生姓名或者学生的班级作为查询条件进行查询,也可以对学生成绩信息进行修改或删除操作,必修课成绩管理模块的设计如图5-9所示:

图5-9 必修课成绩管理模块

其中“删除”按钮的代码设计如下:

protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)

{

int id = (int)GridView1.DataKeys[e.RowIndex].Value; string str = "delete from db_Score where ScoreID=" + id; BaseClass.OperateData(str);

string strsql = "select * from db_Score where CourseType ='" + type + "' order by ScoreID desc";

BaseClass.BindDG(GridView1, "ScoreID", strsql, "Score");}

2. 选修课成绩添加,完成学生选修课成绩添加的功能,选修课的成绩为优,良,中,及格,不及格,为输入及统计方便,在输入时,用数字来代表成绩,90-优,80-良,70-中,60-及级,0-不及格,系统会根据学生的成绩等级计算学生的学分,优与良的等级选修课的学分为2分,中与及格的学分为1分,不及格的学分的学分为0分。选修课成绩添加模块页面设计如图5-10所示:

图5-10 选修课成绩添加

选修课成绩管理,用于查看与管理选修课的成绩信息,可以修改或删除选修课的生的成绩的信息。选修课成绩管理模块的设计如图5-11所示:

图5-11 选修课成绩管理页面

5.4.4成绩统计分析模块

成绩统计与分析模块主要完成学生学分的统计功能,可以按三种方式进行统计:按学生学号统计学生的总学分,学班级统计全班学生的学分,按专业统计某专业学生所得的学分。以按专业统计为例,输入班级的名称,点击统计按钮进行统计,统计的结果可以导出到EXCEL 中,也可以进行打印。统计模块的设计如图

图5-12 按专业统计模块

其中“统计”按钮的代码设计如下:

protected void btnAdd_Click(object sender, EventArgs e)

{ if (TextBox1.Text == "")

{ Label1.Text = "请输入专业名称!";

} else

{ SqlConnection conn = BaseClass.DBCon(); conn.Open();

SqlCommand cmd = new SqlCommand("select count(*) from db_Student where Professional='" + TextBox1.Text.Trim() + "'", conn);

int t = Convert.ToInt32(cmd.ExecuteScalar()); if (t > 0)

{ sid = TextBox1.Text;

cmd = new SqlCommand("select count(*) from db_Score where Professional='" + TextBox1.Text.Trim() + "'", conn);

int professional = Convert.ToInt32(cmd.ExecuteScalar());

if (professional > 0)

{

cmd = new SqlCommand("select sum(Score) from db_Score where Professional='" + TextBox1.Text.Trim() + "'", conn);

int s = Convert.ToInt32(cmd.ExecuteScalar());

cmd = new SqlCommand("select sum(CourseScore) from db_Score where Professional='" + TextBox1.Text.Trim() + "'", conn);

int c = Convert.ToInt32(cmd.ExecuteScalar());

Label1.Text = sid + " 的总成绩为 " + s.ToString() + "分 总学分为 " + c.ToString() + "分";

Button1.Visible = true;

Button2.Visible = true;

string strsql = "select * from db_Sum where Professional='" + sid + "' order by SumScore desc";

BaseClass.BindDG(GridView1, "SumID", strsql, "Sum");

}

else

{

Label1.Text = "该专业的成绩还没有录入!"; TextBox1.Text = "";

} } } }

5.4.5反馈信息查看模块

反馈信息查看模块主要用于查看学生反馈信息,学生对有异议的成绩信息可以进行反馈,教师可以查看反馈信息。反馈信息查看面面设计如图5-13所示:

图5-13 学生反馈信息查看模块

5.5学生子系统的实施

5.5.1学生成绩查询模块

学生成绩查询模块,用于查询学生的成绩的信息,学生以学号和密码进行登录,可以查看学生的全部成绩的信息,也可以选择选修课或必修课分别进行查看。学生成绩查询模块的页面设计如图5-14所示:

图5-14 学生成绩查询子系统页面

5.5.1意见反馈模块

学生对自己的成绩信息如果有异议,可以进行反馈,在反馈时学生输入学生的反馈信息进行反馈,在教师子系统中可以查看到反馈的信息。意见反馈模块的页面设计如图5-15所示:

图5-15 学生信息反馈

protected void btnAdd_Click(object sender, EventArgs e)

{

if (TextBox5.Text == "")

{

Response.Write("");

return;

}

else

{

string str = "insert into db_Feedback (StudentID,StudentName,Professional,Classes,Info,FeedDate)

values('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "','" + TextBox4.Text.Trim() + "','" + TextBox5.Text.Trim() + "','"+ DateTime.Now.ToString() +"')";

BaseClass.OperateData(str);

MessageBox.Show("信息反馈成功");

btnconcel_Click(sender, e);

}

}

6 测试与维护

6.1 测试的任务及目标

6.1.1 测试的任务

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

6.1.2 测试的目标

1. 测试的目的是为了发现程序中的错误而执行程序的过程。

2. 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。

3. 成功的测试是发现了到今为止尚未发现的错误的测试。

6.2 测试方案

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

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

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

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

6.2.1 模块测试:

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

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

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

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

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

6.2.2 集成测试:

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

(1)编写的测试软件较少,开销较小。

(2)较早地发现模块间的接口错误。

(3)错误位置容易判断。

(4)测试更彻底。

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

6.2.3 验收测试:

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

(1)功能和特性与用户的要求有差距。

(2)功能和性能与用户要求一致,软件是可以接受的。

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

6.2.4 平行运行

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

a) 可以在准生产环境中运行新系统而有不冒风险;

b) 用户能有一段熟悉新系统的时间;

c) 可以验证用户指南和使用手册之类的文档;

d) 能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指标。

6.3 系统维护

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

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

(1)软件配置程序源代码;

(2)开发过程文档齐全;

(3)设计过程中各模块均考虑或预留完整性和可维护性接口等部分。

(4)本软件的模块化,源代码内详细说明、注释均可提高可维护性;

结 论

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

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

致 谢

在本次毕业设计中,感谢我的指导老师杨文, 她严谨细致、一丝不苟的作风一直是我工作、学习中的旁样;她循循善诱的教导和不拘一格的思路给予我无尽的启迪。我从指导老师杨文身上学到了很多东西。老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢您细心而又耐心的辅导。

参考文献

[1] 萨师煊,王珊. 数据库系统概论. 第3版. 北京:高等教育出版社,2000

[2] [美]Todd Cook. ASP.NET 信息系统概论. 北京:电子工业出版社,2003. 1-385.

[3] 周绍广《ASP.NET 编程基础与实例》2002年 机械工业出版社

[4] 贾佳 郝洪明.ASP.NET 与SQL Server网站架设. 第1版. 北京: 机械工业出版社,2001

[5]吴晨,孙少波《ASP.NET 数据库项目案例导航》清华大学出版社 2004-12月

[6]石磊《ASP.NET 数据库编程祥解(C#版)》高等教育出版社 2004-1月 37-90

[7]刘浩《ASP.NET+SQL Server 网络应用系统开发与实例》人民邮电出版社 2005-2月1-70

[8]张立科《ASP.NET 信息管理系统开发实例导航》人民邮电出版社 2005-4月

[9]刘荣华《SQL SERVER2005数据库管理与应用系统开发》人民邮电出版社 2005-10月7-61

[10]王斌,丘少东《C#.NET使用大全》高等教育出版社 2005-9月 16-27

[11]韩磊《深入研究.NET 框架》参考外文翻译书籍

[12]USA kate .d 《深入研究asp.net 》外文出版社 2005-1月1-24

[13]USA 吴千《深入学习Sql Server 2005》清华大学出版社 2005-7月1-129

[14]李小名,徐东《ASP.net 》铁路出版社 2006-1月

[15]徐东,唐国利《asp 速查手册》


相关内容

  • 水溶液全循环尿素生产技术研究
  • Yl212779 7li大学 工程硕士专业学位论文 题目丞渣澶全循巫屋苤生亡堇盎婴塞 作者蛋塞完成日期2QQ鱼生!Q旦 四川大学工程硕士论文 声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果.据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其它人已经发表或撰写 ...

  • 企业资源计划的应用
  • 华中科技大学 硕士学位论文 企业资源计划在东风乘用车公司的应用 姓名:雷建新 申请学位级别:硕士 专业:计算机技术 指导教师:欧阳星明 20050506 华中科技大学项士学位论文 摘要 企业资源计划(EnterpriseResourcesPlanning),简称ERP,是一套现代化的企业管理理念.其 ...

  • 河北工业大学2016年在职研究生招生简章
  • 河 北 工 业 大 学 2015年招收在职人员攻读工程硕士专业学位研究生 招 生 简 章 根据国务院学位办招收在职人员攻读工程硕士专业学位研究生的有关文件精神,我校在工业工程等18个工程领域招收工程硕士研究生,招考与录取按下述规定进行: 一.报考条件 在职工程技术.工程管理人员或在学校从事工程技术与 ...

  • 基于本体的语义标注工具比较与分析
  • 第Z 4卷Z 004年6月 计算机应用Co m p t er A pp 1i cati onS Vo1 Z4 J ne ,Z 004 文章编号21001-9081(Z 004) 06Z -03Z 8-03 基于本体的语义标注工具比较与分析 邹亮1 廖述梅Z C 湖北武汉430074; 江西南昌330 ...

  • 南京大学博士学位论文模板
  • 分类号UDC 密级学位论文南京大学学位论文 A T X 模板L (题名和副题名)杨文博 (作者姓名)指导教师姓名.职务.职称.学位.单位名称及地址 南京大学数学系申请学位级别博士专业名称概率论与数理统计2010年6月1日XXX 教授XXX 教授 XXX 教授 XXX 教授论文提交日期2010年5月1 ...

  • 学士学位论文统一格式自动生成模板
  • 毕 业 设 计 中文题目:[请在此键入中文论文题目] 英文题目:[请在此键入英文论文题目] 学生姓名 [请键入学生姓名] 系 别 [请键入系别] 专业班级 20[XX] 级[XX] 专业[XX] 班 指导教师 [请键入指导教师姓名] 成绩评定 20[键入年份] 年 6 月 目 录 [目录生成的操作: ...

  • 2015年武汉大学建筑与土木工程硕士研究生招生简介
  • 武汉大学城市设计学院 2014年在职研究生招生简章 一.学校简介 江城多山,珞珈独秀:山上有黉,武汉大学. 武汉大学是国家教育部直属重点综合性大学,是国家"985工程"和"211工程"重点建设高校. 项目优势: l 国家首批"985"&qu ...

  • 论文书写模板
  • 分类号: 单位代码:10220 密 级: 论文题目: 基于PLC的采油联合站控制系统研究 控制工程 □全日制 ■非全日制 生: 王 建 智 段玉波 教授 校外导师: 张 南 高级工程师 入学时间:20 年 月 论文完成时间:20 年 月 Thesis for the Graduate Candida ...

  • 论文中关于RETE算法的部分
  • 北京航空航天大学硕士学位论文 第四章 鉴别网络的设计 鉴别网络(discrimination network)是RETE 算法的基础.本章将从设计的具体细节着手,在介绍鉴别网络的基本结构后,阐述alpha 和beta 网络生成算法的设计.最后通过实例给出了利用所设计的算法,由规则对象建立鉴别网络的过 ...

  • 基于实例的产品设计知识获取方法及实现
  • 第14卷第1l期2002年11月 计算机辅助设计与图形学学报 JOURNALOFCOMPUTERAIDEDDESIGN&COMPUTERGRAPHICS V01.14.NO11 NOV..2002 基于实例的产品设计知识获取方法及实现 凌卫青赵艾萍谢友柏 西安交强大学润滑理论丝轴承母f究所 ...