学生档案管理系统毕业设计论文

发布时间:2020-05-05 15:15:11   来源:文档文库   
字号:

重庆三峡学院

计算机科学与工程学院

设计题目:学生档案管理系统

系 别: 计算机工程系

专业班级: 软件工程(测试)

学生学号

学生姓名:胥炼 周德华 崔婷婷 李清玲 王茜

指导教师: 方刚

2013 11 25日

学生档案管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强,数据安全性好的数据库。而对于后者则要求应用程序功能完备,清晰明了又易操作等特点。本系统实现了查询学生档案管理系统的主要功能,以无纸化的管理及应用不但可以提高工作效率、减少学校的投资成本,而且可以实现学校或企业高效率办公的宗旨。

学生档案管理系统,它包括用户及用户管理员有效身份登录、新用户注册、用户找回遗忘的密码、成绩查询、课程及课表的查询、学生个人基本信息查询、在线留言等功能。该系统主要介绍系统总体设计以及管理模块、查询模块的实现,并建立了有效的数据库。本系统主要采用Visual Studio + Access 2003方式开发设计以及采用B/S模式进行开发系统从安全性易维护性等方面着手实现了后台管理端和前台客户端的分离,并利用其提供的各种面向对象的开发工具,方便简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。

关键字:档案信息查询,控件,窗体,数据库

Abstract

The system of managing student a typical application of Managing Information System (MIS), which mainly include the development of the database construction and maintenance and development of front application program of two aspects. The former required set up data consistency and integrality, data security good database. For the latter requires the application program function complete, clear and easy to operate etc. The system of managing student inquires the main functions of the system, the management and application to paperless can not only improve work efficiency, reduce the school cost of investment, and can realize the school or the tenet of enterprise high efficiency office.

The system of managing student file, it includes the user and user manager valid identity login, new user registration, users find forgotten passwords, results, schedule and of course inquiry, students basic information query online messages, and other functions, and inquires. This system mainly introduce the general design and system management module, inquires the realization of the module, and set up effective database. This system mainly using Visual Studio + Access 2003 development design and the way of B/S model of development, system from safety and easy to maintenance from the aspects such as the background management and realize the front desk client separation, and use it to provide all kinds of object-oriented development tools, convenient and simple database of intelligent control object, the first in a short time application prototype system is established, and then, on the basis of the prototype system needs iteration, revise and improve, until customer satisfaction of feasible system formed.

Key Word: Query the , Control, Form, Database.



1

1.1 开发背景

随着科技的发展,计算机本身经历了巨大的变化。计算机的概念也由原始的分立式走向今天的网络式。网络技术已逐渐成为现代信息技术的主流,网络的概念也随着 Internet 技术和应用的发展而渐入人心。 Internet的作用正为越来越多的人所认识,通过网络共享信息正成为科学研究的一种重要手段。可以这么说,谁拥有信息,谁就能在科技信息革命的大潮中获得主动权,就能获取成功。

面对信息时代的挑战,网络的功能越来越强,国内教育系统也在积极建设或升级计算机网络,并已建成了规模较大的中国教育科研网,全国许多学校也纷纷建立或升级自己的校园网络系统,许多高校还提出了办公无纸化的口号。校园网是实现办公自动化、管理科学化、教学手段现代化和图书情报信息网络化最有利的支撑环境。

 但是,目前校园网的利用率却不是很高,主要原因是缺少好的网络应用平台。以前开发的 MIS 系统往往是在单机上运行,或者采用 C/S 技术开发出来的,对于今天因特网时代来说,这些系统很大程度上已经不能满足用户随时随地获取信息的需要。学校学生档案管理最初是人工方式进行,显然在信息化发展的今天,这远远不能满足人们对档案管理机械化的需要。后来,随着单机板档案管理系统的开发,这在很大程度上解决了上述矛盾,但是,这种系统如今也不能满足档案管理的要求了,这主要是由于高校的扩招,在校学生人数的增加。因此,开发 B/S 结构的 MIS 是势在必行。

本文正是在这种背景下提出的,目的是为了开发出一套功能完善、操作便捷、及时性好、适用面广的学生档案管理系统,以便提高学校学生档案信息管理的效率。

1.2目的和意义

随着Web技术在各行各业的广泛应用,网络技术在教学管理中已充当重要的角色。学生档案管理系统的设计就是实现档案查询网络化的解决方案。传统查询方式在学生档案管理的查阅和修改等方面上很浪费时间,且不易维护和管理。基于目前校园网建设逐步完善,大多数院校也已具备利用网络进行创建、查询等的条件,实现网上处理学生档案是一个发展趋势。开发学生档案管理系统就是希望充分利用网络资源,提高教学管理水平,减轻对学生档案管理的负担,提高工作效率等。

1.3 系统运行环境

1.3.1 软件平台

1、软件平台:Windows 2003 Server/Windows XP/Windows 2008 Server/ Windows Vista

2、数据库:Access 2003

3、开发技术:.NET FrameWork3.5、ASP.NET

4、辅助开发工具:Microsoft Visual Studio 2008、Rational Rose、Access 2003

1.3.2 硬件平台

1、 CPU:Pentium Ⅲ 500Hz或更高速的CPU

2、 磁盘:系统驱动器为500MB,安装驱动为2.5GB

3、 内存:512MB以上

4、 其他:鼠标、键盘

1.4 开发工具简介

1.4.1 .NET Framework简介

Microsoft .NET Framework(简称.NET)是一种新的开发平台,是美国微软公司为适应Internet发展的需要而推出的特别适合网络编程和网络服务开发的平台。对于软件开发人员来说,.NET是继DOS开发平台(如BASIC、FORTRAN、PASCAL等)、Windows开发平台(Visual Basic、Visual FoxPro等)之后,以计算机网络为背景的新一代开发平台。

1.4.2 Visual Studio 2008简介

Visual Studio 2008是一套完整的集成开发工具,用于设计ASP.NET Web应用程序(包括ASP.NET AJXA)、XML Web Services、桌面应用程序和移动应用程序。Visual Studio 2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用程序。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了AJAX 1.0,包含AJAX项目模板,它还可以高效开发Office应用和Mobile应用

1.4.3 ASP.NET简介

ASP.NET是一种用于创建动态Web页的强大的服务器端新技术,它可以为WWW站点或企业内部互联网创建动态的可交互的HTML页面。ASP.NET是微软.NET体系结构的一部分,并不是ASP的升级版本。ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。

ASP.NET 可以无缝地与 WYSIWYG HTML 编辑器和其他编程工具(包括 Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。而且ASP.NET易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。

1.4.4 Access 2003简介

Access 2003是Microsoft(微软)公司推出的Office 2003办公系列软件的主要组件之一,是一个基于关系模型的数据库管理系统。它给用户提供了一个强大的数据处理的平台,帮助用户组织和共享数据库信息。本章介绍Access 2003的特点、安装、启动与退出,Access 2003的基本工作界面以及组成Access 2003数据库的七个对象。Access 2003同所有的数据库管理系统一样,用于构造数据库应用程序并实行对数据库的统一管理。

1.4.5 UML简介

UMLUnified Modeling Language,统一建模语言)是一种建模语言,是第三代用来为面向对象系统的产品进行说明、可视化和编制文档的方法。它是由信息系统和面向对象领域的三位著名的方法学CradyBooch、James Runbaugh和Ivar Jacobson(俗称“三个好朋友”)在20世纪90年代中期提出的。UML这种建模语言得到了“UML合作伙伴”的应用和反馈,并得到工业界的广泛支持,有OMG组织(Object Management Group对象管理组织)采纳作为业界标准。最终,UML取代了当时软件业众多的分析和设计方法,成为一种标准,软件界第一次有了统一的建模语言,UML最终正式成为信息技术的国际标准。

1.4.6 Rational Rose简介

Rational Rose 是一个完全的具有能满足所有建模环境(Web开发,数据建模Visual Studio和 C++ )需能力和灵活性的一套解决方案。Rational Rose模型分四个图,分别Use Case、Logical ComponentDeploymentRationalRose是分析和设计面向对象软件系统的强大工具,可以帮助先建模系统再编写代码,从而一开始就保证系统结构合理。利用模型可以更方便地捕获设计缺陷,从而以较低的成本修正这些缺陷。Rose允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对需求和系统的体系架构进行可视化,理解和精练。通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统。

2 需求分析

2.1 可行性研究

目前在不少初高级中学学生案管理系统都是单机MIS甚至有的还是手工方式。这单机的管理系统工作方式不仅效率极低而且存在许多弊端主要包括:

1档案录入效率低:例如每学期开学数以千计的学生档案都由学生处负责录入,这个工程量之大可想而知

2查询不便:例如要调出某个学生的档案或其他关乎到学生的信息,由于学生没有管理档案的权限他就必须到学生处去调这个学生的档案来查询得知自己的信息

3 、毕业生转档不便:例如,每年大量毕业生都要转走自已的档案。在这个过程中,若没有管理信息系统的参与工作繁重不可言喻。

4、更正信息不便:例如,某位学生的个人信息录入与本人的信息不一致而导致无法查得该学生的某项信息,以便及时更正错误信息,避免带来不必要的麻烦,因此开发本系统对于学校管理学生档案来说尤为重要。

2.1.1 技术可行性

随着科技的不断发展,这也带动了计算机网络的发展以及通信平台技术的提高。计算机网络技术的发展和计算机硬件性价比的不断提升,使得计算机全面应用于学校或企业对于学生档案或员工档案管理的各个环节成为可能。B/S模式、动态的、个性化的Web应用程序以及采用ASP.NET(C#版)技术开发内容丰富等技术在国内各行各业的信息管理系统开发中已经被广泛应用,再加上使用Access 2003作为系统开发后台数据库,能有效储存和管理数据。因此,基于这些技术完成本系统(学生档案管理系统)是完全可行的。

2.1.2 经济可行性

计算机不仅价格低廉还可以代替人工进行许多繁琐复杂的劳动,不但节约了许多资源,更大大提高了人们的工作效率,同事本系统开发时间短、成本低。所以,在信息化时代的今天,传统的查阅方法必然被计算机为基础的在线查询所取代。

2.1.3 操作可行性

作为计算机应用的一部分,使用计算机对学生档案信息进行查阅,具有手工查阅所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好等。且本系统的开发六周时间即可完成。前两周主要是对图书馆运作流程的熟悉和公众对在线查阅要求的了解,接下来就是运用ASP.NET(C#版)编程即可完成整个系统工作。

2.2 系统功能需求分析

本学生档案管理系统的主要任务就是对学生的档案进行管理,即查询、添加、删除等功能。使得用户能方便明了的得到自己想要查询的信息,使学生的档案管理更加系统化、自动化、规范化,从而提高管理的效率

2.2.1 系统功能模块概述

现在对本系统的功能进行详细的分解:

1、用户登录模块:该模块用于登录本学生档案管理系统,这是进入本系统最主要的途径。同时也可以根据自己在登录时的需要选择“新用户注册”或者“找回密码”,以便顺利登录本系统查得所需信息,选择“安全退出”则结束对本系统的访问。

2、学生档案管理查询模块:用户通过此模块可以查询任何一个在校学生的档案信息,例如输入学生学号就可以查询某个学生的详细档案信息。

3、学生档案处理模块:学生档案处理模块:该模块可以实现对学生档案信息的添加、修改、删除等操作,而且除用户管理员之外,任何用户都是没有权限对其进行更改的。

4、学生课表信息查询模块:用户可以通过此模块根据学号查询课表信息。

5、学生课表信息处理模块:用户管理员可以通过此模块添加、删除、修改或更新并查询学生课表信息,用户则不能。

6、学生课程信息查询模块:用户可以通过此模块根据课程代码查询课程信息。

7、学生课程信息处理模块:用户管理员可以通过此模块添加、删除、修改或更新并查询学生课表信息,仅用户管理员可操作。

8、学生成绩查询模块:用户通过该模块可以根据自己的学号查询自己所有科目的考试成绩。

9、学生成绩信息处理模块:用户管理员可以通过此模块添加、删除、修改或更新并查询学生成绩信息,非用户管理员不能操作此项。

10、用户模块:主要介绍下新用户注册模块和找回密码模块,首先在新用户首次登录本系统需注册新用户名方可登录,注册内容包括:用户名、密码、密码提示的问题和提示问题的答案,只要都符合注册要求即可注册成功。如若用户在使用过程中忘记了注册时用的密码而导致无法登录本系统,就可以通过找回密码模块找回遗忘的密码,从而继续访问本系统查询相关信息。

11、用户管理员管理模块:只有用户管理员才可以通过此模块处理学生成绩、学生档案、学生回馈档案中的错误而留下的留言以及课表中的信息,主要表现在对数据的添加、修改、删除等操作。

12、学生更正信息留言板模块:可以查看哪些学生的信息有误,以便通过此模块用户管理员及时更正错误信息,避免发生学生信息错误的现象。

2.2.2 系统数据流图

数据流图(Data Flow Diagram,DFD)是系统的一种图形表示,其中表示出数据源、数据汇集、数据存储和以结点形式对数据执行的处理及在节点间作为连接部分的逻辑数据流。数据流图是用来描述信息在软件系统中流动情况和系统处理过程的图形工具,简单地说,就是以图形的形式刻画出数据流从输入到输出的移动变换过程

图 2-1 系统顶层数据流图

图 2-2 数据流图

2.3 系统数据需求分析

学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理的效率

最后主要说明下该系统用到的数据库:

用Microsoft Access2003创建一个数据库fxh.mdb,含有7个主要数据表:userinfo、message、学生基本信息表、课程信息表、班级信息表、课表信息表和成绩信息表。这7个表的结构如表3-1表3-7所示。这几个表中,u_name、m_user、学号和课程代码内容都是唯一的,分别是userinfo、message、学生基本信息表、班级信息表课程信息表中的主关键字班级信息表中的学号成绩信息表中的同名字段相对应,字段课程名称成绩信息表中的课程名称字段相对应。

3 总体设计

3.1 系统设计

3.1.1 系统功能模块图

图3-1 系统功能模块图

3.1.2 模块详细说明

学生档案管理系统需要以下功能:

(1) 系统管理(登录、注册、修改密码、安全退出)

(2) 学生档案管理(查询、修改、添加、删除)

(3) 学生成绩管理(查询、修改、添加、删除)

(4) 学生成绩管理(查询、修改、添加、删除)

(5) 学生班级管理(查询、修改、添加、删除)

(6) 学生课表管理(查询、修改、添加、删除)

(7) 学生课程管理(查询、修改、添加、删除)

(8) 学生在线留言管理(查询、删除)

3.2 数据库设计

设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下两个步骤:

(1) 数据库概念结构设计

(2) 数据库逻辑结构设计

3.2.1 概念数据设计

概念结构既独立于数据库的逻辑结构,也独立与所使用的具体的数据库管理系统。用来描述概念结构设计的有力工具是E-R模型,E-R模型用E-R图表示。本系统所涉及的E-R图用户信息E—R图、学生信息E—R、成绩信息E—R图,下面分别对各个E-R做介绍。

3.2.1.1 用户信息E-R图

实体集用户信息属性有:用户名、密码、密码提示的问题和提示问题的答案word/media/image1.gif

图3-2 用户信息表E-R图

3.2.1.2 学生基本(档案)信息E-R图

实体集学生档案信息属性有:姓名、学号、性别、系部、专业、民族、家庭住址、身份证号码、籍贯、入学年份、出生年月、E-mail、联系电话、政治面貌、家长姓名

word/media/image2.gif

3-3图 学生档案信息E-R图

3.2.1.3 学生成绩信息E-R图

实体集学生成绩信息属性有:姓名、学号、课程代码、班级、学分、成绩、课程名称、重修标记

word/media/image3.gif

3-4图 学生成绩信息E-R图

3.2.1.4 学生课表信息E-R图

实体集学生课表信息属性有:姓名、学号、课程代码、课程名称、任课老师、上课地点

word/media/image4.gif3-5图 学生课表信息E-R图

3.2.1.5 学生message(留言)信息E-R图

实体集学生message(留言)信息属性有:m_user(留言者)、m_time(留言时间)、m_content(留言内容)

word/media/image4.gif3-6图 学生message(留言)信息E-R图

3.2.1.6 学生班级信息E-R图

实体集学生班级信息属性有:姓名、学号、系部、专业、班级、辅导员、联系电话、E-mail

word/media/image5.gif

3-7 图 学生班级信息E-R图

3.2.1.7 学生课程信息E-R图

实体集学生班级信息属性有:课程名称、课程代码、任课老师、上课地点、学分、班级、课时

3-8 图 学生课程信息E-R图

3.2.2 逻辑结构设计

逻辑设计在数据库概念设计的基础上进行。其主要任务是将概念模型转换为数据库的逻辑模型,并与选用的DBMS相结合,产生具体的DBMS所支持数据模型的逻辑模式

表3-1 用户信息表(userinfo)

表3-2 留言信息表(message)

表3-3 班级信息表

表3-4 成绩信息表

表3-5 学生基本(档案)信息表

表3-6 学生课程信息表

表3-7 学生课表信息表

4 详细设计

本系统能在接下来的设计运用中正常运行,不会出现不必要的错误,首先要修改web.config文件,在标记的上方添加如下的内容

(1)标准安全连接采用的连接字符串为:

providerName="System.data.Oledb" />

providerName="System.Data.OleDb" />

(2)引用支持ADO.NET对象和MD5加密的命名空间

在命名空间引用区域添加如下代码:

using System.Data;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Web.Security; //支持MD5加密算法;

(3)在整个系统中“查询”和“处理”模块都用到了“FormView”控件,无需编写代码,主要配置好数据源就完成对各个信息的查询或处理,这样既方便又简单,而且在整个系统设计与开发过程中不但省时,更能体现系统的简洁明了,又不易出错,同时也解决了在所有学生中查询同名同姓的学生时不能及时得到准确消息的弊端,将“学号”作为准确且唯一的“查询”及“处理”时获取信息的条件,以便系统得到进一步的准确性和实用性,除此之外,在查询或处理课程模块时特别用到了以“课程代码”为条件来查询或处理课程信息,体现了“课程代码”的唯一性。

4.1 系统首页登录模块功能设计

图 4-1 系统首页登录界面

代码如下:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

NowDataTime.Text = System.DateTime.Now.ToLongTimeString();

}

this.Title = "学生档案管理系统";

}

protected void Login_Click(object sender, EventArgs e)

{

if (Username.Text == "" || Password.Text == "")

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string SecPwd=

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string StrinSQL="select * from userinfo where u_name='"+

Username.Text+"'and u_password='"+SecPwd+"'";

OleDbCommand SelectCom = new OleDbCommand(StrinSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

}

else

{

Session["Pass"] = dr["u_name"];

Response.Redirect("系统主页.aspx");

}

dr.Close();

Conn.Close();

}

protected void Register_Click(object sender, EventArgs e)

{

Response.Redirect("新用户注册.aspx");

}

protected void Repassword_Click(object sender, EventArgs e)

{

if (Username.Text == "")

{

Response.Write("");

}

else

{

Session["Username"] = Username.Text;

Response.Redirect("找回密码.aspx");

}

}

protected void Manager_Click(object sender, EventArgs e)

{

if (Username.Text != "fxh")

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string SecPwd =

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string StrinSQL = "select * from userinfo where u_name='fxh'and u_password='" +

SecPwd + "'";

OleDbCommand SelectCom = new OleDbCommand(StrinSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

}

else

{

Session["Pass"] = "succeed";

Response.Redirect("用户管理.aspx");

}

dr.Close();

Conn.Close();

}

protected void quit_Click(object sender, EventArgs e)

{

Response.Write("");

}

}

4.1.1 用户登录

主要代码如下

protected void Login_Click(object sender, EventArgs e)

{

if (Username.Text == "" || Password.Text == "")

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string SecPwd=

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string StrinSQL="select * from userinfo where u_name='"+

Username.Text+"'and u_password='"+SecPwd+"'";

OleDbCommand SelectCom = new OleDbCommand(StrinSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

}

else

{

Session["Pass"] = dr["u_name"];

Response.Redirect("系统主页.aspx");

}

dr.Close();

Conn.Close();

}

4.1.2 进入系统主页面

4-2 进入系统界面

该页面主要用到HyperLink控件(超链接控件),“源”视图中相关的连接代码如下:

<asp:HyperLink ID="HyperLink7" runat="server" NavigateUrl="~/系统主页.aspx">asp:HyperLink>

<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/档案查询.aspx">学生档案查询asp:HyperLink>

<asp:HyperLink ID="HyperLink3" runat="server" NavigateUrl="~/成绩查询.aspx">学生成绩查询asp:HyperLink>

<asp:HyperLink ID="HyperLink4" runat="server" NavigateUrl="~/课表查询.aspx">学生课表查询asp:HyperLink>

<asp:HyperLink ID="HyperLink5" runat="server" NavigateUrl="~/班级查询.aspx">学生班级查询asp:HyperLink>

<asp:HyperLink ID="HyperLink8" runat="server" NavigateUrl="~/课程查询.aspx">学生课程查询asp:HyperLink>

<asp:HyperLink ID="HyperLink6" runat="server" NavigateUrl="~/留言板.aspx">学生信息互动asp:HyperLink>

<asp:Button ID="Button1" runat="server" ForeColor="Blue" onclick="Button1_Click" Text="安全退出" />

主要代码有:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

public partial class 系统主页 : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

this.Title = "学生档案管理系统";

}

protected void Button1_Click(object sender, EventArgs e)

{

Response.Write("");

} //系统安全退出

}

4.1.3 新用户注册

图 4-3 新用户注册界面

代码如下:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

public partial class register : System.Web.UI.Page

{

static bool PassCheck;

void CheckUserName()

{

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string strSQL = "select * from [userinfo] where u_name='"+UserName.Text+"'";

OleDbCommand Com = new OleDbCommand(strSQL, Conn);

OleDbDataReader dr = Com.ExecuteReader();

if (dr.Read())

{

PassCheck = false;

}

else

{

PassCheck = true;

}

dr.Close();

Conn.Close();

}

protected void Page_Load(object sender, EventArgs e)

{

this.Title = "学生档案管理系统——新用户注册";

}

protected void CheckName_Click(object sender, EventArgs e)

{

if (UserName.Text == "")

{

Response.Write("");

return;

}

CheckUserName();

if (PassCheck)

{

Response.Write("");

}

else

{

Response.Write("");

}

}

protected void SubmitBtn_Click(object sender, EventArgs e)

{

if (UserName.Text == "")

{

Response.Write("");

}

CheckUserName();

if (!PassCheck)

{

Response.Write("");

return;

}

if (UserPwd.Text == "" || ReUserPwd.Text == "" || SecQuestion.Text == "" || SecAnswer.Text == "")

{

Response.Write("");

return;

}

if (UserPwd.Text != ReUserPwd.Text)

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

string PwdMD5 =

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string AnswerMD5 =

FormsAuthentication.HashPasswordForStoringInConfig,"MD5");

string Val = "'" + UserName.Text + "','" + PwdMD5 + "','" + SecQuestion.Text + "','" + AnswerMD5 + "'";

string SqlIns = "insert into userinfo(u_name,u_password,u_question,u_answer)values("+Val+")";

OleDbCommand InsCom = new OleDbCommand(SqlIns, Conn);

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

da.InsertCommand = InsCom;

da.InsertCommand.ExecuteNonQuery();

Response.Write("");

UserName.Text = "";

UserPwd.Text = "";

SecQuestion.Text = "";

SecAnswer.Text = "";

}

protected void BackBtn_Click(object sender, EventArgs e)

{

Response.Redirect("登录界面.aspx");

}

}

4.1.4 找回密码

图 4-4 找回遗忘密码界面

代码如下:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

public partial class recover : System.Web.UI.Page

{

string StringAnswer;

protected void Page_Load(object sender, EventArgs e)

{

this.Title = "学生管理系统";

Panel1.Visible = false;

if (Session["UserName"] == null)

{

Response.Redirect("登录界面.aspx");

}

else

{

UserNameLab.Text = Session["UserName"].ToString();

}

string ConnSql=

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string StringSQL = "select * from userinfo where u_name='"+UserNameLab.Text+"'";

OleDbCommand SelectCom = new OleDbCommand(StringSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

return;

}

Question.Text = dr["u_question"].ToString();

StringAnswer = dr["u_answer"].ToString();

dr.Close();

Conn.Close();

}

protected void SubmitBtn_Click(object sender, EventArgs e)

{

if (Answer.Text=="")

{

Response.Write("");

return;

}

string SecAnswer =

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

if (SecAnswer != StringAnswer)

{

Response.Write("");

return;

}

else

{

Panel1.Visible = true;

}

}

protected void BackBtn_Click(object sender, EventArgs e)

{

Response.Redirect("登录界面.aspx");

}

protected void UpdateBtn_Click(object sender, EventArgs e)

{

if (NewPwd.Text == "" || ReNewPwd.Text == "")

{

Response.Write("");

return;

}

if (NewPwd.Text != ReNewPwd.Text)

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

OleDbCommand com = new OleDbCommand("select * from userinfo", Conn);

DataSet ds=new DataSet();

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

string SecPwd=

FormsAuthentication.HashPasswordForStoringInConfig,"MD5");

string SqlUpdate="updata userinfo set u_password='" +SecPwd+"'"+"where u_name='"+UserNameLab.Text+"'";

da.SelectCommand=com;

da.Fill(ds,"UserName");

OleDbCommand UpdateCom = new OleDbCommand(SqlUpdate, Conn);

da.UpdateCommand=UpdateCom;

da.UpdateCommand.ExecuteNonQuery();

Conn.Close();

Response.Write("");

}

}

4.1.5 用户管理

图 4-5 用户管理界面

代码如下:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

public partial class users : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Pass"] != "succeed")

{

Response.Redirect("用户管理.aspx");

}

}

protected void DelUser_Click(object sender, EventArgs e)

{

if (UserNameDrop.Text == "fxh")

{

Response.Write("");

return;

}

string ConnSql = System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

string DelUser = "delete from userinfo where u_name='" + UserNameDrop.Text + "'";

OleDbCommand DelCom = new OleDbCommand(DelUser, Conn);

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

da.DeleteCommand = DelCom;

da.DeleteCommand.ExecuteNonQuery();

Conn.Close();

if (DelSelect.SelectedIndex == 1)

{

string DelUserMsg = "delete from message where m_user='" + UserNameDrop.Text + "'";

OleDbCommand DelCom1 = new OleDbCommand(DelUserMsg, Conn);

OleDbDataAdapter da1 = new OleDbDataAdapter();

Conn.Open();

da1.DeleteCommand = DelCom1;

da1.DeleteCommand.ExecuteNonQuery();

Conn.Close();

}

Response.Write("");

UserNameDrop.DataSourceID = "AccessDataSource1";

UserNameDrop.DataBind();

}

protected void ChangePwd_Click(object sender, EventArgs e)

{

if(NewPassword.Text!=ReNewPassword.Text)

{

Response.Write("alert('两次输入的密码不同,请重新输入!');");

return;

}

string ConnSql= System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

OleDbCommand SelectCom = new OleDbCommand("select * from userinfo", Conn);

DataSet ds=new DataSet();

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

string SecPwd=

FormsAuthentication.HashPasswordForStoringInConfig,"MD5");

string UpdateSql = "update userinfo set u_password='" + SecPwd + "'" + "where u_name='" + UserNameDrop.Text + "'";

da.SelectCommand = SelectCom;

da.Fill(ds,"username");

OleDbCommand UpdateCom = new OleDbCommand(UpdateSql, Conn);

da.UpdateCommand = UpdateCom;

da.UpdateCommand.ExecuteNonQuery();

Conn.Close();

Response.Write("");

}

protected void BackHome_Click(object sender, EventArgs e)

{

Session["Pass"] = null;

Response.Redirect("登录界面.aspx");

}

protected void Button2_Click(object sender, EventArgs e)

{

Response.Write("");

}

4.2 学生档案模块功能设计

4.2.1 查询档案

图 4-6 档案查询界面

在“源”视图中,“查询”的主要代码如下:

<SelectParameters>

<asp:ControlParameter ControlID="TextBox16" Name="学号" PropertyName="Text" Type="Int32" />

SelectParameters>

4.2.2 档案处理

图 4-7 档案处理界面

在“源”视图中,“删除”的代码如下:

<DeleteParameters>

<asp:Parameter Name="original_学号" Type="Int32" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_性别" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_民族" Type="String" />

<asp:Parameter Name="original_身份证号码" Type="Int32" />

<asp:Parameter Name="original_家庭住址" Type="String" />

<asp:Parameter Name="original_家长姓名" Type="String" />

<asp:Parameter Name="original_籍贯" Type="String" />

<asp:Parameter Name="original_入学年份" Type="DateTime" />

<asp:Parameter Name="original_联系电话" Type="Int32" />

<asp:Parameter Name="original_出生日期" Type="DateTime" />

<asp:Parameter Name="original_政治面貌" Type="String" />

<asp:Parameter Name="original_QQ" Type="Int32" />

<asp:Parameter Name="original_系部" Type="String" />

DeleteParameters>

图 4-8 档案处理——编辑更新界面

“更新”的代码如下:

<UpdateParameters>

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="性别" Type="String" />

<asp:Parameter Name="专业" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="民族" Type="String" />

<asp:Parameter Name="身份证号码" Type="Int32" />

<asp:Parameter Name="家庭住址" Type="String" />

<asp:Parameter Name="家长姓名" Type="String" />

<asp:Parameter Name="籍贯" Type="String" />

<asp:Parameter Name="入学年份" Type="DateTime" />

<asp:Parameter Name="联系电话" Type="Int32" />

<asp:Parameter Name="出生日期" Type="DateTime" />

<asp:Parameter Name="政治面貌" Type="String" />

<asp:Parameter Name="QQ" Type="Int32" />

<asp:Parameter Name="系部" Type="String" />

<asp:Parameter Name="original_学号" Type="Int32" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_性别" Type="String" />

<asp:Parameter Name="original_专业" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_民族" Type="String" />

<asp:Parameter Name="original_身份证号码" Type="Int32" />

<asp:Parameter Name="original_家庭住址" Type="String" />

<asp:Parameter Name="original_家长姓名" Type="String" />

<asp:Parameter Name="original_籍贯" Type="String" />

<asp:Parameter Name="original_入学年份" Type="DateTime" />

<asp:Parameter Name="original_联系电话" Type="Int32" />

<asp:Parameter Name="original_出生日期" Type="DateTime" />

<asp:Parameter Name="original_政治面貌" Type="String" />

<asp:Parameter Name="original_QQ" Type="Int32" />

<asp:Parameter Name="original_系部" Type="String" />

UpdateParameters>

图 4-9 档案处理——插入(新建)界面

新建(插入)的代码如下:

<InsertParameters>

<asp:Parameter Name="学号" Type="Int32" />

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="性别" Type="String" />

<asp:Parameter Name="专业" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="民族" Type="String" />

<asp:Parameter Name="家庭住址" Type="String" />

<asp:Parameter Name="家长姓名" Type="String" />

<asp:Parameter Name="籍贯" Type="String" />

<asp:Parameter Name="联系电话" Type="Int32" />

<asp:Parameter Name="出生日期" Type="DateTime" />

<asp:Parameter Name="政治面貌" Type="String" />

<asp:Parameter Name="QQ" Type="Int32" />

<asp:Parameter Name="系部" Type="String" />

InsertParameters>

4.3 学生课表模块功能设计

4.3.1 查询课表

图 4-10 课表查询界面

在“源”视图中,“查询”的主要代码如下:

<SelectParameters>

<asp:ControlParameter ControlID="TextBox16" Name="学号" PropertyName="Text" Type="Int32" />

SelectParameters>

4.3.2 处理课表

图 4-11 课表处理界面

在“源”视图中,“删除”的主要代码如下:

<DeleteParameters>

<asp:Parameter Name="original_上课地点" Type="String" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_学号" Type="String" />

<asp:Parameter Name="original_任课老师" Type="String" />

<asp:Parameter Name="original_课程名称" Type="String" />

<asp:Parameter Name="original_课程代码" Type="String" />

DeleteParameters>

图 4-12 课表处理——编辑更新界面

“更新”的代码如下:

<UpdateParameters>

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="学号" Type="String" />

<asp:Parameter Name="任课老师" Type="String" />

<asp:Parameter Name="课程名称" Type="String" />

<asp:Parameter Name="课程代码" Type="String" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_学号" Type="String" />

<asp:Parameter Name="original_任课老师" Type="String" />

<asp:Parameter Name="original_课程名称" Type="String" />

<asp:Parameter Name="original_课程代码" Type="String" />

UpdateParameters>

图 4-13 课表处理——插入(新建)界面

“插入”的代码如下:

<InsertParameters>

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="学号" Type="String" />

<asp:Parameter Name="任课老师" Type="String" />

<asp:Parameter Name="课程名称" Type="String" />

<asp:Parameter Name="课程代码" Type="String" />

<asp:Parameter Name="上课地点" Type="String" />

InsertParameters>

4.4 学生成绩模块功能设计

4.4.1 查询成绩

图 4-14 学生成绩查询界面

在“源”视图中,“查询”的主要代码如下:

<SelectParameters>

<asp:ControlParameter ControlID="TextBox1" Name="学号" PropertyName="Text" Type="String" />

SelectParameters>

4.4.2 处理成绩

图 4-15 学生成绩处理界面

在“源”视图中, “删除”的主要代码如下:

<DeleteParameters>

<asp:Parameter Name="original_学号" Type="String" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_系部" Type="String" />

<asp:Parameter Name="original_专业" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_辅导员" Type="String" />

<asp:Parameter Name="original_联系电话" Type="Int32" />

<asp:Parameter Name="original_column1" Type="String" />

DeleteParameters>

图 4-16 学生成绩处理——编辑更新界面

“更新”的代码如下:

<UpdateParameters>

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="系部" Type="String" />

<asp:Parameter Name="专业" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="辅导员" Type="String" />

<asp:Parameter Name="联系电话" Type="Int32" />

<asp:Parameter Name="column1" Type="String" />

<asp:Parameter Name="original_学号" Type="String" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_系部" Type="String" />

<asp:Parameter Name="original_专业" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_辅导员" Type="String" />

<asp:Parameter Name="original_联系电话" Type="Int32" />

<asp:Parameter Name="original_column1" Type="String" />

UpdateParameters>

图 4-17 学生成绩处理——插入(新建)界面

“插入”的主要代码如下:

<InsertParameters>

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="学号" Type="String" />

<asp:Parameter Name="系部" Type="String" />

<asp:Parameter Name="专业" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="辅导员" Type="String" />

<asp:Parameter Name="联系电话" Type="Int32" />

<asp:Parameter Name="column1" Type="String" />

InsertParameters>

4.5 学生班级模块功能设计

4.5.1 查询班级

图 4-18 学生班级查询界面

在“源”视图中,“查询”的主要代码如下:

<SelectParameters>

<asp:ControlParameter ControlID="TextBox1" Name="学号" PropertyName="Text" Type="String" />

SelectParameters>

4.5.2 处理班级

图 4-19 学生班级处理界面

在“源”视图中,“删除”的主要代码如下:

<DeleteParameters>

<asp:Parameter Name="original_学号" Type="String" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_系部" Type="String" />

<asp:Parameter Name="original_专业" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_辅导员" Type="String" />

<asp:Parameter Name="original_联系电话" Type="Int32" />

<asp:Parameter Name="original_column1" Type="String" />

DeleteParameters>

图 4-20 学生班级处理——编辑更新界面

“更新”的主要代码如下:

<UpdateParameters>

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="系部" Type="String" />

<asp:Parameter Name="专业" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="辅导员" Type="String" />

<asp:Parameter Name="联系电话" Type="Int32" />

<asp:Parameter Name="column1" Type="String" />

<asp:Parameter Name="original_学号" Type="String" />

<asp:Parameter Name="original_姓名" Type="String" />

<asp:Parameter Name="original_系部" Type="String" />

<asp:Parameter Name="original_专业" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_辅导员" Type="String" />

<asp:Parameter Name="original_联系电话" Type="Int32" />

<asp:Parameter Name="original_column1" Type="String" />

UpdateParameters>

图 4-21 学生班级处理——插入(新建)界面

“插入”的主要代码如下:

<InsertParameters>

<asp:Parameter Name="姓名" Type="String" />

<asp:Parameter Name="学号" Type="String" />

<asp:Parameter Name="系部" Type="String" />

<asp:Parameter Name="专业" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="辅导员" Type="String" />

<asp:Parameter Name="联系电话" Type="Int32" />

<asp:Parameter Name="column1" Type="String" />

InsertParameters>

4.6 学生课程模块功能设计

4.6.1 查询课程

图 4-22 学生课程查询界面

在“源”视图中,“查询”的主要代码如下:

<SelectParameters>

<asp:ControlParameter ControlID="TextBox1" Name="课程代码" PropertyName="Text" Type="String" />

SelectParameters>

4.6.2 处理课程

图 4-23 学生课程处理界面

在“源”视图中,“删除”的主要代码有:

<DeleteParameters>

<asp:Parameter Name="original_任课老师" Type="String" />

<asp:Parameter Name="original_课程代码" Type="Int32" />

<asp:Parameter Name="original_课程名称" Type="String" />

<asp:Parameter Name="original_上课地点" Type="String" />

<asp:Parameter Name="original_学分" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_课时" Type="String" />

</DeleteParameters>

图 4-24 学生课程处理——编辑更新界面

“更新”主要代码如下:

<UpdateParameters>

<asp:Parameter Name="课程代码" Type="Int32" />

<asp:Parameter Name="课程名称" Type="String" />

<asp:Parameter Name="上课地点" Type="String" />

<asp:Parameter Name="学分" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="课时" Type="String" />

<asp:Parameter Name="original_任课老师" Type="String" />

<asp:Parameter Name="original_课程代码" Type="Int32" />

<asp:Parameter Name="original_课程名称" Type="String" />

<asp:Parameter Name="original_上课地点" Type="String" />

<asp:Parameter Name="original_学分" Type="String" />

<asp:Parameter Name="original_班级" Type="String" />

<asp:Parameter Name="original_课时" Type="String" />

UpdateParameters>

图 4-25 学生课程处理——插入(新建)界面

“插入”的主要代码如下:

<InsertParameters>

<asp:Parameter Name="课程代码" Type="Int32" />

<asp:Parameter Name="课程名称" Type="String" />

<asp:Parameter Name="任课老师" Type="String" />

<asp:Parameter Name="上课地点" Type="String" />

<asp:Parameter Name="学分" Type="String" />

<asp:Parameter Name="班级" Type="String" />

<asp:Parameter Name="课时" Type="String" />

InsertParameters>

4.7 学生留言模块功能设计

4.7.1 在线留言

图 4-26 学生在线留言界面

主要代码如下:

using System;

using System.Collections;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Data.OleDb;

using System.Linq;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.HtmlControls;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Xml.Linq;

public partial class msg : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

this.Title = "学生档案管理系统";

if (Session["Pass"] == null)

{

Response.Redirect("系统主页.aspx");

}

if (!IsPostBack)

{

string ConnSql = System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

string SelectSql = "select * from message order by m_time DESC";

OleDbCommand SelectCom = new OleDbCommand(SelectSql, Conn);

OleDbDataAdapter da = new OleDbDataAdapter();

da.SelectCommand = SelectCom;

DataSet ds = new DataSet();

da.Fill(ds,"message");

GridView1.DataSource = ds.Tables["message"].DefaultView;

GridView1.DataBind();

}

UserNameLab.Text = Session["Pass"].ToString();

}

protected void Submit_Click(object sender, EventArgs e)

{

if (MsgTextBox.Text == "")

{

Response.Write("");

return;

}

string ConnSql = System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

string Val = "'" + UserNameLab.Text+"','"+

MsgTextBox.Text+"','"+System.DateTime.Now.ToString()+"'";

string InsSql="insert into message(m_user,m_content,m_time)values("+Val+")";

OleDbCommand InsCom = new OleDbCommand(InsSql, Conn);

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

da.InsertCommand=InsCom;

da.InsertCommand.ExecuteNonQuery();

string SelectSql = "select * from message order by m_time DESC";

OleDbCommand selcom = new OleDbCommand(SelectSql, Conn);

da.SelectCommand=selcom;

DataSet ds=new DataSet();

da.Fill(ds,"message");

GridView1.DataSource=ds.Tables["message"].DefaultView;

GridView1.DataBind();

MsgTextBox.Text="";

Conn.Close();

}

protected void Cancel_Click(object sender, EventArgs e)

{

Session.Clear();

Response.Redirect("登录界面.aspx");

}

protected void Quit_Click(object sender, EventArgs e)

{

Response.Write("");

}

protected void Button1_Click(object sender, EventArgs e)

{

Response.Redirect("系统主页.aspx");}

5 系统测试与性能分析

5.1 软件测试概念

软件测试是为了发现错误而执行程序的过程,是根据软件开发个阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例去执行程序,以发现程序错误的过程。

5.1.1 测试的目的

软件测试的目的,就是要发现软件中存在的缺陷和系统的不足,定义系统的能力和局限性,提供组件、工作产品和系统的质量信息;提供预防或减少可能错误的信息,在软件开发过程中尽早检测错误以防止错误传递到下一阶段,提前确认问题和识别风险;最终获取系统在可接受风险范围内可用的信息,确认系统在非正常情况下的功能和性能,保证一个工作产品是完整的并且是可用或者可被集成的。

5.1.2 测试的内容

软件测试主要工作内容是验证和确认,下面分别给出两方面的概念及分析。

验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。

(1) 确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;

(2) 程序正确性的形式证明,即采用形式理论证明程序符号设一计规约规定的过程;

(3) 、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。

确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做这个事件

(1) 静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;

(2) 动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。

软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序

5.2 软件测试计划

测试计划是为了测试一个项目而制定的计划。该项目测试流程需要按照计划来执行。

测试计划应包括:产品基本情况调研、测试需求说明、测试策略和记录、测试资源配置、计划表、问题跟踪报告、测试计划的评审、结果等等。

测试计划描述了要进行的测试活动的范围、方法、资源和进度的文档。它确定测试项、被测特性、测试任务、谁执行任务、各种可能的风险。

5.2.1 测试步骤

测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试。

(1) 单元测试,单元测试即集中对用源代码实现的每一个程序单元进行测试, 检查各个程序模块是否正确地实现了规定的功能。

(2) 集成测试,集成测试是把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。

(3) 确认测试,确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。

(4) 系统测试,系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。

5.2.2 测试方法与技术

软件测试的方法和技术是多种多样的。对于软件测试方法与技术,可以从不同的角度加以分类例如:

第一,从是否需要执行被测软件的角度,可分为静态测试和动态测试。

第二,从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试

其中:

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,在测试时,把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息的完整性。黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等,主要用于软件确认测试。

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

5.3 系统测试结果分析

5.3.1 功能测试

A.链接测试

现在,虽然链接测试可以自动进行,并且已经有许多工具可以采用但是因为环境的原因,依然采用手工测试的策略对每个链接进行测试,因为这个测试完全可以穿插于其它测试之中进行。测试结果表明模块的链接均正常。

B.表单测试

在此项测试中,测试的内容包括用户登录,以及系统中各个子系统中含有表单提交项的所有页面。如对档案信息、学生成绩信息、课表课程信息、班级信息等的添加、删除、修改等操作。在测试过程中,对全部提交表单进行了测试,在反复测试之后,能够正常运行,实现所需功能。

5.3.2 性能测试

软件性能测试,英文是Performance Testing。

软件性能测试是在交替进行负荷和强迫测试时常用的术语。理想的软件性能测试(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。软件性能测试一般包括负载测试和软件压力测试。

通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。其目的是为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。

5.3.3 可用性测试

(1)操作方便,跳转容易,可以方便用户及管理员查看信息,实现了系统的精确性、实用性的特点,而且操作简便。

(2)内容测试,即对于用户提交的数据,未出现不正确显示的情况。

(3)整体界面测试,即布局比较合理、界面简洁明了。

6

经过这断时间的设计和开发,学生档案管理系统基本开发完毕。其功能基本符合用户需求,能够完成学生学籍档案、成绩、课程、课表、班级等的查询以及处理管理。并提供部分系统维护功能,使管理员方便进行数据添加、修改和数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。

但是由于毕业设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。

毕业设计作为高校教学环节的一个重要组成部分是对我们动手实践能力的检验指导老师的细心指导下使我不仅在知识水平和解决实际问题的能力上有了很大的提高而且深切的体会到理论联系实际的重要性认识到提高运用知识、解决实际问题的能力是十分重要的。

在此我要深深感谢我的指导老师对我的关心与帮助以后无论身在何处都不会忘记每一位老师。还要感谢在大学年里不辞辛苦传授我知识的所有老师们。还有那些关心我支持我的同学们,正是有你们的支持,我才有了足够的信心做好这次毕业设计。最后感谢重庆航天职业技术学院——我的母校年来对我的大力栽培

[1] 张瑾、孙士保、张鸣.《ASP.NET数据库网站设计教程》.電子工业出版社

[2] 刘志成、宁云智.《Web项目开发教程(ASP.NET)》.電子工业出版社

[3] 陆惠恩.《软件工程》.人民邮电出版社

[4] 李禹生、贾瑜、欧阳峥峥、廖明潮.《Access 2003应用技术》.中国水利水电出版社

[5] 刘志成.《UML建模实例教程.電子工业出版社

[6] 吕云翔、王洋、肖东.《软件测试案例教程》.机械工业出版社

主界面部分代码:

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

NowDataTime.Text = System.DateTime.Now.ToLongTimeString();

}

this.Title = "学生档案管理系统";

}

protected void Login_Click(object sender, EventArgs e)

{

if (Username.Text == "" || Password.Text == "")

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string SecPwd=

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string StrinSQL="select * from userinfo where u_name='"+

Username.Text+"'and u_password='"+SecPwd+"'";

OleDbCommand SelectCom = new OleDbCommand(StrinSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

}

else

{

Session["Pass"] = dr["u_name"];

Response.Redirect("系统主页.aspx");

}

dr.Close();

Conn.Close();

}

protected void Register_Click(object sender, EventArgs e)

{

Response.Redirect("新用户注册.aspx");

}

protected void Repassword_Click(object sender, EventArgs e)

{

if (Username.Text == "")

{

Response.Write("");

}

else

{

Session["Username"] = Username.Text;

Response.Redirect("找回密码.aspx");

}

}

protected void Manager_Click(object sender, EventArgs e)

{

if (Username.Text != "fxh")

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string SecPwd =

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string StrinSQL = "select * from userinfo where u_name='fxh'and u_password='" +

SecPwd + "'";

OleDbCommand SelectCom = new OleDbCommand(StrinSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

}

else

{

Session["Pass"] = "succeed";

Response.Redirect("用户管理.aspx");

}

dr.Close();

Conn.Close();

}

protected void quit_Click(object sender, EventArgs e)

{

Response.Write("");

}

}

用户登录主要代码如下:

protected void Login_Click(object sender, EventArgs e)

{

if (Username.Text == "" || Password.Text == "")

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string SecPwd=

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string StrinSQL="select * from userinfo where u_name='"+

Username.Text+"'and u_password='"+SecPwd+"'";

OleDbCommand SelectCom = new OleDbCommand(StrinSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

}

else

{

Session["Pass"] = dr["u_name"];

Response.Redirect("系统主页.aspx");

}

dr.Close();

Conn.Close();

}

新用户注册主要代码:

public partial class register : System.Web.UI.Page

{

static bool PassCheck;

void CheckUserName()

{

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string strSQL = "select * from [userinfo] where u_name='"+UserName.Text+"'";

OleDbCommand Com = new OleDbCommand(strSQL, Conn);

OleDbDataReader dr = Com.ExecuteReader();

if (dr.Read())

{

PassCheck = false;

}

else

{

PassCheck = true;

}

dr.Close();

Conn.Close();

}

protected void Page_Load(object sender, EventArgs e)

{

this.Title = "学生档案管理系统——新用户注册";

}

protected void CheckName_Click(object sender, EventArgs e)

{

if (UserName.Text == "")

{

Response.Write("");

return;

}

CheckUserName();

if (PassCheck)

{

Response.Write("");

}

else

{

Response.Write("");

}

}

protected void SubmitBtn_Click(object sender, EventArgs e)

{

if (UserName.Text == "")

{

Response.Write("");

}

CheckUserName();

if (!PassCheck)

{

Response.Write("");

return;

}

if (UserPwd.Text == "" || ReUserPwd.Text == "" || SecQuestion.Text == "" || SecAnswer.Text == "")

{

Response.Write("");

return;

}

if (UserPwd.Text != ReUserPwd.Text)

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

string PwdMD5 =

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

string AnswerMD5 =

FormsAuthentication.HashPasswordForStoringInConfig,"MD5");

string Val = "'" + UserName.Text + "','" + PwdMD5 + "','" + SecQuestion.Text + "','" + AnswerMD5 + "'";

string SqlIns = "insert into userinfo(u_name,u_password,u_question,u_answer)values("+Val+")";

OleDbCommand InsCom = new OleDbCommand(SqlIns, Conn);

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

da.InsertCommand = InsCom;

da.InsertCommand.ExecuteNonQuery();

Response.Write("");

UserName.Text = "";

UserPwd.Text = "";

SecQuestion.Text = "";

SecAnswer.Text = "";

}

protected void BackBtn_Click(object sender, EventArgs e)

{

Response.Redirect("登录界面.aspx");

}

}

找回密码主要代码:

public partial class recover : System.Web.UI.Page

{

string StringAnswer;

protected void Page_Load(object sender, EventArgs e)

{

this.Title = "学生管理系统";

Panel1.Visible = false;

if (Session["UserName"] == null)

{

Response.Redirect("登录界面.aspx");

}

else

{

UserNameLab.Text = Session["UserName"].ToString();

}

string ConnSql=

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

Conn.Open();

string StringSQL = "select * from userinfo where u_name='"+UserNameLab.Text+"'";

OleDbCommand SelectCom = new OleDbCommand(StringSQL, Conn);

OleDbDataReader dr = SelectCom.ExecuteReader();

if (!dr.Read())

{

Response.Write("");

return;

}

Question.Text = dr["u_question"].ToString();

StringAnswer = dr["u_answer"].ToString();

dr.Close();

Conn.Close();

}

protected void SubmitBtn_Click(object sender, EventArgs e)

{

if (Answer.Text=="")

{

Response.Write("");

return;

}

string SecAnswer =

FormsAuthentication.HashPasswordForStoringInConfig, "MD5");

if (SecAnswer != StringAnswer)

{

Response.Write("");

return;

}

else

{

Panel1.Visible = true;

}

}

protected void BackBtn_Click(object sender, EventArgs e)

{

Response.Redirect("登录界面.aspx");

}

protected void UpdateBtn_Click(object sender, EventArgs e)

{

if (NewPwd.Text == "" || ReNewPwd.Text == "")

{

Response.Write("");

return;

}

if (NewPwd.Text != ReNewPwd.Text)

{

Response.Write("");

return;

}

string ConnSql =

System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

OleDbCommand com = new OleDbCommand("select * from userinfo", Conn);

DataSet ds=new DataSet();

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

string SecPwd=

FormsAuthentication.HashPasswordForStoringInConfig,"MD5");

string SqlUpdate="updata userinfo set u_password='" +SecPwd+"'"+"where u_name='"+UserNameLab.Text+"'";

da.SelectCommand=com;

da.Fill(ds,"UserName");

OleDbCommand UpdateCom = new OleDbCommand(SqlUpdate, Conn);

da.UpdateCommand=UpdateCom;

da.UpdateCommand.ExecuteNonQuery();

Conn.Close();

Response.Write("");

}

}

用户管理主要代码:

public partial class users : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

if (Session["Pass"] != "succeed")

{

Response.Redirect("用户管理.aspx");

}

}

protected void DelUser_Click(object sender, EventArgs e)

{

if (UserNameDrop.Text == "fxh")

{

Response.Write("");

return;

}

string ConnSql = System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

OleDbConnection Conn = new OleDbConnection(ConnSql);

string DelUser = "delete from userinfo where u_name='" + UserNameDrop.Text + "'";

OleDbCommand DelCom = new OleDbCommand(DelUser, Conn);

OleDbDataAdapter da = new OleDbDataAdapter();

Conn.Open();

da.DeleteCommand = DelCom;

da.DeleteCommand.ExecuteNonQuery();

Conn.Close();

if (DelSelect.SelectedIndex == 1)

{

string DelUserMsg = "delete from message where m_user='" + UserNameDrop.Text + "'";

OleDbCommand DelCom1 = new OleDbCommand(DelUserMsg, Conn);

OleDbDataAdapter da1 = new OleDbDataAdapter();

Conn.Open();

da1.DeleteCommand = DelCom1;

da1.DeleteCommand.ExecuteNonQuery();

Conn.Close();

}

Response.Write("");

UserNameDrop.DataSourceID = "AccessDataSource1";

UserNameDrop.DataBind();

}

protected void ChangePwd_Click(object sender, EventArgs e)

{

if(NewPassword.Text!=ReNewPassword.Text)

{

Response.Write("alert('两次输入的密码不同,请重新输入!');");

return;

}

string ConnSql= System.Configuration.ConfigurationManager.ConnectionStrings["fxh"].ConnectionString;

本文来源:https://www.2haoxitong.net/k/doc/a72fb014393567ec102de2bd960590c69ec3d8fc.html

《学生档案管理系统毕业设计论文.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式