基于asp.net固定资产管理系统设计与实现

news2024/11/11 5:46:49

博主介绍:专注于Java vue  .net  php phython  小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作

☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

3.1固定资产管理系统可行性分析

可行性研究的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决,可行性研究的目的不是解决问题,而是确定问题是否值得去解,主要从三个方面研究。

1.技术可行性

本系统采用Visual Studio 2005作为程序开发工具,后台使用SQL Server 2005来开发数据库。使用Visual Studio 2005来开发程序并不难,而SQL Server 2005也是熟悉的数据库开发工具,所以该系统在技术上是可行的。

2.经济可行性

随着互联网的广泛应用,信息管理已经在全球范围内形成了一系列的信息管理体系。新技术、新方案的提出和实践也使该体系向更完善、更高级的方向发展。同时,由于技术的不断发展,由广域到局域的分层次的系统开发也相应的不断发展,而这个开发系统的成本也由起初的高价逐渐趋于平缓,因此对于不断更新的新技术、新成本就可以应用在信息部门内部,所以本系统在经济上是可行的。

3.操作可行性

本系统可以在Windows的任何环境下运行,并且操作简单,即使是对计算机不太熟悉的使用者也很容易学会,因此,该系统在操作上是可行的。

综上所述,从技术可行性、经济可行性和操作可行性三方面来说固定资产管理系统系统的实现都是可行的[11]。

3.2固定资产管理系统需求分析

需求分析是软件定义时期的最后一个阶段,它的基本任务是回答“系统必须做什么?”这个问题。根据论文前面的可行性阶段的分析,我们已经可以得出固定资产管理系统的开发完全可行。根据可行性阶段的分析,我们已经基本上导出该系统应该具备的功能。可行性研究阶段产生的文档,特别是数据流图,是需求分析的出发点。数据流图中已经划分出系统必须完成的许多基本功能。在这个阶段结束时交出的文档中应该包括详细的数据流图,数据字典和一组简明的算法描述。

需求分析的结果是系统开发的基础,关系到工程的成败和软件产品的质量。因此,必须用行之有效的办法对软件需求分析进行严格的审查验证。

图3-1 需求分析过程

3.2.1固定资产管理系统的总体需求

固定资产管理系统主要是完成对系统用户管理、资产信息管理、资产变更管理、资产用途管理、资产类别管理和资产增减管理。因为利用本系统管理员可以直接录入信息,修改信息,删除信息,并且若在录入过程中发现错误,也可以通过修改界面及时更改其信息。这样就可以不受时间、地点的限制使录入、修改、删除、管理工作得以顺利进行。普通用户可通过查询界面对各个情况进行相应的查询。在本系统中管理员具有最高权限,为了保证数据库的安全及保密性,在进入该系统的时候,需要进行身份验证。本系统大大提高了工作效率,既方便了员工,也使管理人员从繁杂的劳动中解脱出来,为实现固定资产管理的合理化、效率化、可靠化、提供了强有力的技术手段。

3.2.2固定资产管理系统的数据需求

本系统是对学校、企业等固定资产信息管理进行设计,故该系统将会具体对系统中各模块的功能和应用流程进行分析和设计。在需求分析中将针对用户对系统功能的两种需求进行介绍;在系统功能描述中将会对系统中的各模块的应用进行介绍;在功能模块划分中将对系统的应用模块进行划分;在系统流程分析中将会对各模块的应用流程进行描述。

固定资产管理系统体现了系统管理员在固定资产整个使用活动过程中的关键流程。该系统可以有效地提高统计资产的效率,减少人力,节省时间,让固定资产的管理工作更加快捷和精确。用户对系统的需求功能如下:

现有资产查询:对资产的现有情况进行查询。

资产增减查询:对资产的增加和减少情况进行查询。

资产借出查询:对资产的借出和归还情况进行查询。

资产修理查询:对资产的送修和完修情况进行查询。

3.2.3功能模块需求分析

根据需求分析中的内容,根据用户的需求,下面对系统各模块的功能进行描述。

系统模块的描述主要是描述出系统模块的功能和处理。主要是用文字去描述,而不是用图形图描述[12]。

根据本系统的功能,管理员管理子系统主要设计如下模块:

1.系统管理模块:系统管理模块主要完成系统中的用户信息管理。系统中的用户主要分为管理员和用户。管理员拥有最大的权限,对系统中的所有数据拥有添加删除修改权限。用户的权限是查询资产的各种管理操作信息。

2.资产管理:资产管理模块完成实验室的固定资产信息的管理,及资产变更登记。

3.档案设置:对系统中的基础性数据进行管理。如:设备用途管理、设备类别管理、增加方式管理、减少方式管理。

4.查询与报表:查询资产信息和资产的各种操作管理信息。如:现有资产查询、资产增加查询、资产减少查询、资产借出查询、资产归还查询、资产送修查询、资产完修查询。

用户管理子系统只有查询与报表功能。

固定资产管理系统的功能模块流程图如图3-2所示。

图3-2 固定资产管理系统功能模块流程图


第4章 固定资产管理系统总体设计

4.1固定资产管理系统总体结构设计

总体设计是软件开发人员根据软件需求说明的要求,运用结构化程序设计思想,将软件自上而下逐层分解成多个软件模块,直到分解成每一个模块只具有单一的功能,能用一个或几个程序实现的树形结构为止。总体设计阶段还要定义各模块的数据传递关系,设计软件的编码方案、文件存储策略、输入输出格式,以及硬件和系统软件配置,最后编制概要设计说明书。

经过需求分析阶段的工作,固定资产管理系统必须“做什么”已经清楚了,现在是决定“怎样做”的时候了。总体设计的基本目的就是回答“概括的说,固定资产管理系统应该如何实现?”这个问题。具体任务就是进行概要设计,确定解决问题的策略和实现目标系统的各种功能的方案,确定软件的模块组成以及模块之间的相互关系[13]。

总体设计过程可分为两个主要阶段:功能设计,确定资产管理系统的实现方案;结构设计,确定该软件的结构。功能设计是在需求分析的基础上进行的,这里所说的“功能”是泛指的,不仅指问题定义中列出的功能,还包括软件定义时确定的任何一个独立的数据加工或处理步骤。结构设计,是将整个系统按照不同的功能和层次划分为一个个功能简单明确且相对独立的部分(模块),每个模块实现系统的一项具体功能,自顶向下,逐步细化。结构设计是确定程序由哪些模块组成,以及这些模块之间的关系。

根据软件工程原理,在利用模块进行结构设计时,我们应遵循如下原则:

1.模块之间的联系程度,各模块间的联系越弱,模块的独立性越高,该系统的整体结构越好。

2.模块之间应尽量以数据连接为主,以特征连接为辅。必要时可以建立控制连接。

3.模块内部的组合强度是高功能的组合。

4.模块的分解到合适的程度。

5.增强模块的扇入系数,减少模块的扇出系数,扇入系数指一个模块的直直接上级模块的个数,扇出系数指一个模块拥有的直接下级模块的个数,应控制在7以内。

6.高模块的信息隐蔽程度,软件设计是一个将信息需求转换成数据结构、程序结构和过程性的多步骤过程。常用的结构设计方法是基于模块化、自顶向下逐步细化,结构化程序设计等程序设计基础上发展起来的[14]。

4.2固定资产管理系统总体结构

固定资产管理系统的目标旨在改善和提高资产管理事务处理的计算机应用水平,实现基于计算机网络的管理能力,实现网络化的管理的工作流程,为资产的信息化管理平台提供信息基础。

系统应具备简单易用,高度灵活性与可自定义性,全面支持Internet/Intranet,严密的使用权限功能等特点。系统基于B/S结构,面向Internet/Intranet,能够通过该系统轻松的实现随时随地的移动办公,提高办公效率[15]。

模块层次图,是描述软件层次特性的工具,描述某个模块负责管理控制哪些模块以及上下级模块或同级模块之间的数据传递关系。模块层次图,能够清楚地表明系统的结构,并可用来粗略地估计系统的尺寸。它的优点就是图形清晰,缺点是不能表明程序的主要执行逻辑,尤其是没有表明模块之间的通讯情况。

4.3固定资产管理系统概念模型设计

概要设计基础是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互之间的关系。这种数据模型是与DBMS无关的、面向现实世界的、易于理解的数据模型。其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。

概念性数据模型关心的是如何完整、正确地反映客观实际情况,不关心在数据库中如何实现。这种数据模式能真实地反应用户要求的实际情况,是一种容易被人们理解的直观的数据库结构模式。同时也是一种相对稳定统一的数据模式,一般情况下很少变动。概念性数据在用户和设计者之间建立了桥梁,是设计数据库结构的基础。

概念设计中自顶向下的实体分析方法,即常用的实体联系模型(简称E-R模型),对具体数据进行抽象加工,将实体集合抽象成实体类型。用实体间联系反映现实世界事物间的内在联系。E-R模型是建立概念性数据模型的有力工具。

根据各数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包括各种信息,通过相互之间的作用形成数据的流动。

4.3.1系统E-R图

概念模型是对信息世界建模,所以概念模型能够方便、准确地表示出信息世界中的常用概念。概念模型的表示方法很多,其中最为著名最为常用的是P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称E-R模型。

E-R模型的关键元素是实体、属性和联系。实体是可以从用户的工作环境中标识出的事物,是用户想要跟踪的某个事物。实体在E-R图中,用矩形表示,矩形框内写明实体名。实体具有属性,有时也称作性质,是用来描述实体的特征的。属性可以是组合的或者多值的。在E-R图中,属性用椭圆形表示,并用无向边将其与相应的实体连接起来。实体可以通过联系相互关联。在一般的联系中,使用二元联系居多,二元联系主要有三种类型,1:1,1:n,m:n。在1:1(读做“1对1”)联系中,一种类型的单个实体实例与另一个类型的单个实体实例关联。在1:n(读做“1对N”或者“1对多”)联系中,一个类型的单个实体实例与另一个类型的多个实体实例相关联。在m:n(读做“N对M”或者“多对多”)联系中,一个类型的单个实例与另一个类型的多个实体实例相关联,同时地,后一类型的单个实体实例与前一类型的多个实体实例相关联。在E-R图中,联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或者m:n)。

在本系统中,资产,资产类别,资产变更是实体,编号,资产名称,资产类别,资产状态状态,资产用途,资产增加方式,资产说明,存放地址等信息为属性。

资产实体E-R图如图4-1所示。

图4-1 资产实体E-R图

资产类别实体E-R图如图4-2所示。

图4-2 类别实体E-R图

资产变更实体E-R图如图4-3所示。

图4-3 资产变更实体E-R图

本管理系统的实体及其联系图4-4。

图4-4 系统总体E-R图

4.3.2数据流图分析及数据描述

它是描述系统的逻辑模型的,图中没有任何具体的物理元素,只是描述信息在系统中流动和处理的情况,它比口头与文字的描述更直观地显示出来系统中数据的使用。

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

固定资产管理系统数据流图如图4-5所示。

图 4-5 固定资产管理系统数据流图

管理员操作子系统数据流图如图4-6所示。

图 4-6 管理员操作子系统数据流图

用户操作子系统数据流图如图4-7所示。

图 4-7 用户操作子系统数据流图

4.3.3数据描述(含数据字典)

数据字典是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。数据字典有以下四类条目:数据流、数据项、数据存储、处理逻辑。数据项是组成数据流和数据存储的最小元素。源点、终点不在系统之内,故一般不在字典中说明。

数据词典,既用于描述数据流和数据存储的详细逻辑内容,也可用于描述外部项和处理逻辑的某些数据特性。数据词典把数据的最小组成单位看作数据元素,若干个数据元素组成数据结构。它通过对数据元素和数据结构的定义,来描述数据流和数据存储的逻辑内容。

(1)数据元素

数据元素是数据的最小组成单位,也就是不可分的数据单位。在数据词典中,对数据元素的定义包括:数据元素的名称、在其他场合下的别名、取值的范围和取值的含义、数据元素的长度和在何处出现。

(2)数据结构

在数据词典中,数据结构是用来对数据之间的组合关系进行定义的,它完全是一种逻辑的描述。一个数据结构可以由若干个数据元素组成,也可以由若干个数据结构组成,还可以由若干个数据元素和数据结构混合组成。

在数据结构中,对数据结构的定义包括:数据结构名称和数据结构的组成。

(3)数据流

数据流是数据结构在系统内传输的路径。在数据词典中对数据流的定义要包括:数据流的来源、数据流的去向、数据流的组成、数据流的流通量和高峰时期的流通量。

(4)数据存储

数据存储也是数据流的来源或去向之一。在数据词典中,对数据存储定义的内容简单地给予描述。首先描述数据存储的名称及其编号,然后描述流入/流出的数据流,最后描述数据存储的组成:数据结构。

(5)处理逻辑

处理逻辑的表达工具有判断树、判定表、结构化语言等。在数据词典中,对处理逻辑的定义有以下的内容:处理逻辑在数据流图内的名称和编号,处理逻辑的名称应该反映它的逻辑功能;对处理逻辑简单的描述;处理逻辑的输入和输出;处理逻辑的主要功能描述,可用结构化语言简单地概括其逻辑功能。

处理逻辑在数据词典中的表达应该按“输入-处理-输出”的顺序排列。

(6)外部项

外部项的数量反映了系统的独立性程度,以及人机界面设计的合理性。外部项的个数应尽可能少。外部项在数据词典中的定义包括两项内容:外部项的名称和有关的数据流。

SQL Server 2005中包括析取和分析汇总数据以进行联机分析处理(OLAP)的工具。SQL Server中还包括一些工具,可用来直观地设计数据库并通过English Query来分析数据。

4.4固定资产管理系统数据库设计

本系统创建的SQL数据库名称为Labroom。包含如下几个表。

1.系统管理员基本信息表

系统管理员基本信息表包含了系统中管理员的信息,包括用户名、密码、真实姓名和联系电话描述4个部分,其中联系电话的字段类型设置为int。其结构如表4-1所示。

4-1 系统管理员基本信息表(ml_Admin)

字段名称

字段类型

字段说明

是否为空

其他说明

AdminID

nvarchar(50)

用户登陆帐号

主键

Password

nvarchar(50)

用户登陆密码

UserName

nvarchar(50)

真实姓名

Tel

int

联系电话

2.增加方式数据表

增加方式数据表包含了系统管理员对于资产增加方式的编辑操作,包括增加方式的编号和名称,其结构如表4-2所示。

表4-2 增加方式数据表(ml_AddType)

字段名称

字段类型

字段说明

是否为空

其他说明

AddTypeID

int

增加方式编号

主键 自动编号

AddTypeName

nvarchar(50)

增加方式名称

3.资产减少方式数据表

资产减少方式数据表包含了系统管理员对于资产减少方式的编辑工作,包括资产减少方式的名称和编号,其结果如表4-3所示。

表4-3 资产减少方式数据表(ml_ReduceType)

字段名称

字段类型

字段说明

是否为空

其他说明

ReduceTypeID

int

编号

主键 自动编号

ReduceTypeName

nvarchar(50)

资产减少方式

4.资产用途数据表

资产用途数据表包含了系统管理员对于资产用途的编辑操作,包括用途的名称和编号,其结构如表4-4所示。

表4-4 资产用途数据表(ml_Use)

字段名称

字段类型

字段说明

是否为空

其他说明

UseID

int

编号

主键 自动编号

UseName

nvarchar(50)

用途名称

5.资产类型数据表

资产类型数据表包含了系统管理员对于资产类型的编辑工作,包括资产类型的名称和名称的编号,其结构如表4-5所示。

表4-5 资产类型数据表(ml_DeviceType)

字段名称

字段类型

字段说明

是否为空

其他说明

DeviceTypeID

int

编号

主键 自动编号

DeviceTypeName

nvarchar(50)

资产类型名称

6.资产状态数据表

资产状态数据表包含了系统管理员对于资产状态的编辑操作,包括资产状态编号和状态说明,其结构如表4-6所示。

表4-6 资产状态数据表(ml_Status)

字段名称

字段类型

字段说明

是否为空

其他说明

StatusID

int

编号

主键 自动编号

StatusName

nvarchar(50)

状态说明

7.资产操作类型数据表

资产操作类型数据表包含了系统管理员对于资产操作类型的编辑操作,包括操作类别的名称和操作类别的编号,其结构如表4-7所示。

表4-7 资产操作类型数据表(ml_VaryType)

字段名称

字段类型

字段说明

是否为空

其他说明

VaryTypeID

int

编号

主键 自动编号

VaryTypeName

nvarchar(50)

资产操作类别名称

8.资产操作数据表

资产操作数据表是对资产具体操作信息的汇总表,包含了系统管理员对资产的具体操作信息,包括资产的名称、编号、资产的操作类型编号和说明,还有具体的操作时间,其结构如表4-8所示。

表4-8 资产操作数据表(ml_Vary)

字段名称

字段类型

字段说明

是否为空

其他说明

VaryID

int

编号

主键 自动编号

DeviceName

nvarchar(50)

资产名称

VaryTypeID

int

资产操作类型编号

Content

ntext

资产操作说明

InputDate

datetime

操作时间

9.用户数据表

用户数据表是用户信息的汇总表,包含了用户的登录账号、密码、用户的真实姓名、身份证号码和联系电话,其结构如表4-9所示。

表4-9 用户数据表(ml_Person)

字段名称

字段类型

字段说明

是否为空

其他说明

PersonID

nvarchar(50)

登录编号

主键

PersonName

nvarchar(50)

真实名称

Password

nvarchar(50)

登录密码

Card

nvarchar(50)

身份证号

Tel

nvarchar(50)

联系电话

10.资产数据表

资产数据表储存了资产的基本信息,其结构如表4-10所示。

表4-10 资产数据表 (ml_Device)

字段名称

字段类型

字段说明

是否为空

其他说明

DeviceID

int

编号

主键 自动编号

DeviceName

nvarchar(50)

资产名称

DeviceTypeID

int

资产类别编号

StatusID

int

资产状态编号

UseID

int

资产用途编号

AddTypeID

int

资产增加方式编号

Content

ntext

资产说明

Address

nvarchar(50)

存放地址

UserName

nvarchar(50)

保管人

InputDate

datetime

录入时间

4.5 固定资产管理系统功能模块

为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。如果一个处理的功能过分复杂,必须把它的功能适当的分解成一系列比较简单的功能。一般说来,经过分解之后应该使每个功能对大多数程序员而言都是明显易懂的。结构图是进行软件结构设计的一个有力工具。它是由模块组成的层次系统,一个方框代表一个模块,方框中注明模块的名字或主要功能,方框间的直线表示模块的调用关系。

根据系统的需求分析可以将固定资产管理系统分为管理员管理模块和普通用户管理模块。

1.管理员模块:该模块主要包含资产管理,查询与报表,档案设置管理三个子模块。

(1)资产管理管理模块:主要包含资产信息管理和资产的变更管理。

(2)查询与报表模块:主要包括现有资产查询,资产的借出和归还查询,资产的增加和减少查询,资产的送修和完修查询等功能。

(3)档案设置管理模块:主要包括设备用途方式、类别方式、增加方式和减少方式等管理。

2.用户模块:用户模块只能实现资产的查询和报表功能,主要包含现有资产查询,资产的借出和归还查询,资产的增加和减少查询,资产的送修和完修查询等功能。

管理员子系统的功能模块图4-8所示。

图4-8 管理员子系统功能模块图

用户子系统的功能结构图4-9所示。

图4-9 用户子系统功能模块图


第5章 固定资产管理系统详细设计

总体设计阶段完成了软件的结构设计,划分了模块,并规定了各模块的功能与它们之间的联系。在此之后,按照软件开发工程化的观点,应进入详细设计阶段。

详细设计阶段的根本目标是确定应该怎样实现所要求的系统,给出软件模块结构中各个模块的内部过程描述。经过这个阶段的设计工作,得出对目标系统的精确描述,这个描述在编码阶段可以由程序员直接翻译成用某种程序设计语言书写的程序。详细设计又被称作过程设计,对模块的内部过程描述就是模块内部的算法设计。

系统实现一般就是指的编码阶段。编码就是将软件详细设计的结果翻译成用某种程序设计语言书写的程序。软件的设计开发过程经过需求分析、总体设计和详细设计几个阶段之后,已经形成了基本变成框架,最后就是通过编码对设计进一步具体化,实现相应的功能。运用软件功能方法设计软件,主要是为了提高软件质量,软件质量在很大程度上取决于设计的质量,同时编码的好坏也是影响软件质量的十分重要的因素,如果编码中存在各种问题,那么再好的设计也无法体现出来。另外,编码质量的好坏,也直接影响了软件测试和软件维护工作的进行。但是系统实现是在系统设计的基础上的,基本上定下了系统设计,就基本上定下了系统实现。

5.1用户登录模块设计

5.1.1用户登录模块

系统登录模块负责对使用本系统的用户进行身份验证,只有通过验证的用户才可以使用本系统。登录界面同时包括用户注册界面。登录界面对应的磁盘文件为default.aspx,在登录模块中,需要输入用户名及密码,每个用户或者管理员只对应一个登录密码。在下拉列表中选择用户类型,登录时,如果输入错误的用户名和密码,则系统提示用户名或者密码错误。

登录模块的页面设计如图5-1所示。

图5-1 用户登录界面

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

protected void btnLogin_Click(object sender, ImageClickEventArgs e)

    {

        if (this.lstUserType.SelectedValue == "管理员")

        {

            AdminMgr aMgr = new AdminMgr();

            Admin admin = aMgr.GetAdmin(this.txtAdminID.Text.Trim());

            if (admin.AdminID == "")

            {

                this.SendMessage("没有找到该登录名称");

            }

            else if (admin.Password != this.txtPassword.Text)

            {

                this.SendMessage("管理员登录密码不正确");

            }

            else

            {

                this.eLoginName = this.txtAdminID.Text.Trim();

                this.eUserID = this.txtAdminID.Text.Trim();

                this.eUserName = this.txtAdminID.Text.Trim();

                this.eUserType = "管理员";

                Response.Redirect("MainFrame.aspx");

            }

        }

else

        {

            PersonMgr pMgr = new PersonMgr();

            Person person = pMgr.GetPerson(this.txtAdminID.Text.Trim());

            if (person.PersonID == "")

            {

                this.SendMessage("没有找到该登录名称");

            }

            else if (person.Password != this.txtPassword.Text)

            {

                this.SendMessage("管理员登录密码不正确");

            }

            else

            {

                this.eLoginName = this.txtAdminID.Text.Trim();

                this.eUserID = this.txtAdminID.Text.Trim();

                this.eUserName = this.txtAdminID.Text.Trim();

                this.eUserType = "用户";

                Response.Redirect("MainFrame.aspx");

            }

        }

    }

5.1.2修改密码页面

用户和管理员都可以修改自己的登录密码。修改新密码时要求先输入原始密码,防止登录用户的密码被他人篡改。

修改密码时,如果输入错误的原始密码,则提示“您输入的原始密码错误”。

为了防止修改新密码以后出现遗忘,系统规定需要输入两次新密码且两次新密码相同时才能修改成功。

该页面对应的磁盘文件为Password_Edit.aspx,页面设计如图5-2所示。

图5-2 修改密码页面

其中“提交”按钮的代码如下:

protected void btnOK_Click(object sender, EventArgs e)

    {

        if (this.eUserType == "管理员")

        {

            AdminMgr aMgr = new AdminMgr();

            Admin admin = aMgr.GetAdmin(this.eUserID);

            admin.Password = this.txtPassword1.Text;

            aMgr.UpdateAdmin(admin);

            this.SendMessage("密码修改成功");

        }

        else

        {

            PersonMgr pMgr = new PersonMgr();

            Person person = pMgr.GetPerson(this.eUserID);

            person.Password = this.txtPassword1.Text;

            pMgr.UpdatePerson(person);

            this.SendMessage("密码修改成功");

        }

    }

5.1.3注册新用户页面

任何人都可以注册用户,注册后就可以进入系统。

注册新用户时,登录名称,密码都不能为空,并且在输入联系电话时,需要输入纯数字号码,不然会提示“您输入的电话号码格式错误”。

该页面对应的磁盘文件为Person_Reg.aspx,页面设计如图5-3所示。

图5-3 注册用户页面

其中“提交”按钮的代码如下:

protected void btnOK_Click(object sender, EventArgs e)

    {

        if (this.ValidateData())

        {

            if (this.txtPassword1.Text != this.txtPassword2.Text)

            {

                this.SendMessage("两次密码不一致");

                return;

            }

            Person person = new Person();

            PersonMgr mgr = new PersonMgr();

            person.PersonID = this.txtPersonID.Text.Trim();

            person.PersonName = this.txtPersonName.Text;

            person.Card = this.txtCard.Text.Trim();

            person.Password = this.txtPassword1.Text;

            person.Tel = this.txtTel.Text;

         mgr.UpdatePerson(person);

            this.SendMessage("用户注册成功");

            this.WriteJavaScript("jumppage", "window.location='default.aspx'");

        }

    }

5.2管理员主页面

管理员用户输入正确的用户名和密码后进入管理员主页面。在主页面中提供了管理员的所有操作功能。主要是对系统用户的管理、资产信息的管理、资产变更的管理、基础数据的管理等。

该页面对应的磁盘文件为MainFrame.aspx,页面设计如图5-4所示。

图5-4 管理员主页面

5.2.1添加管理员页面

添加管理员用户帐号信息。帐号信息有:登录名称、姓名、密码、电话。只有管理员有添加管理员的操作权限。

该页面对应的磁盘文件为Admin_Edit.aspx,页面设计如图5-5所示。

图5-5 添加管理员界面

其中“提交”按钮的代码如下:

protected void btnOK_Click(object sender, EventArgs e)

    {

        if (this.ValidateData())

        {

            Admin admin = new Admin();

            AdminMgr mgr = new AdminMgr();

            if (this.txtAdminID.Enabled == false)

            {

                admin = mgr.GetAdmin(this.txtAdminID.Text.Trim());

            }

            else

            {

                admin.AdminID = this.txtAdminID.Text.Trim();

            }

            admin.UserName = this.txtUserName.Text;

            admin.Tel = this.txtTel.Text;

            admin.Password = this.txtPassword.Text;

            mgr.UpdateAdmin(admin);

            this.SendMessage("信息编辑成功");

            if (this.txtAdminID.Enabled)

            {

                this.ClearTextData(this);

            }

        }

    }

5.2.2管理员管理页面

对已经添加的管理员用户帐号信息进行删除或修改操作。

1.管理员管理主页面

主页面显示所有管理员帐号信息,点击删除按钮可以删除某个用户的帐号。

该页面对应的磁盘文件为Admin_List.aspx,页面设计如图5-6所示。

图5-6 管理员管理主界面

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

  protected void dgAdmin_RowDeleting

(object sender,GridViewDeleteEventArgs e)

    {

        AdminMgr mgr = new AdminMgr();

        mgr.DelAdmin(this.dgList.Rows[e.RowIndex].Cells[0].Text);

        this.initForm();

    }

2.编辑管理员信息页面

在主页面中点击编辑按钮进入编辑管理员信息页面。在编辑界面中可以修改和编辑管理员信息。

该页面对应的磁盘文件为Admin_Edit.aspx?AdminID=admin,页面设计如图5-7所示。

图5-7 编辑管理员信息界面

大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152115.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JZ2440开发板——S3C2440的UART

以下内容源于韦东山课程的学习与整理,如有侵权请告知删除。 一、UART硬件简介 UART,全称是“Universal Asynchronous Receiver Transmitter”,即“通用异步收发器”,也就是我们日常说的“串口”。 它在嵌入式中用途非常广泛&…

【计算机网络篇】物理层

本文主要介绍计算机网络第二章节的物理层,文中的内容是我认为的重点内容,并非所有。参考的教材是谢希仁老师编著的《计算机网络》第8版。跟学视频课为河南科技大学郑瑞娟老师所讲计网。 文章目录 🎯一.基本概念及公式 🎃基本概念…

力扣-1035不相交的线(Java详细题解)

题目链接:力扣-1035不相交的线 前情提要: 因为本人最近都来刷dp类的题目所以该题就默认用dp方法来做。 dp五部曲。 1.确定dp数组和i下标的含义。 2.确定递推公式。 3.dp初始化。 4.确定dp的遍历顺序。 5.如果没有ac打印dp数组 利于debug。 每一…

安全基础学习-AES128加密算法

前言 AES(Advanced Encryption Standard)是对称加密算法的一个标准,主要用于保护电子数据的安全。AES 支持128、192、和256位密钥长度,其中AES-128是最常用的一种,它使用128位(16字节)的密钥进…

充电宝什么品牌比较好?五大性价比高充电宝品牌推荐!

在这个电子设备无处不在的时代,充电宝已成为我们生活中不可或缺的重要配件。无论是通勤、旅行还是户外休闲,充电宝都能为我们的手机、平板等提供及时的电量补充,确保我们时刻保持在线。一个安全可靠的充电宝,不仅能为我们的设备提…

GRU(门控循环单元)的原理与代码实现

1.GRU的原理 1.1重置门和更新门 1.2候选隐藏状态 1.3隐状态 2. GRU的代码实现 #导包 import torch from torch import nn import dltools#加载数据 batch_size, num_steps 32, 35 train_iter, vocab dltools.load_data_time_machine(batch_size, num_steps)#封装函数&…

VScode开发GD32移植(标准库通用),保姆级!!!!!!!

VScode开发GD32移植(标准库通用),保姆级!!!!!!! 文章目录 VScode开发GD32移植(标准库通用),保姆级!!!!!&#…

[产品管理-30]:NPDP新产品开发 - 29 - 产品生命周期管理 - 可持续产品创新

目录 一、可持续开发与可持续创新 可持续开发 可持续创新 可持续开发与可持续创新的关系 二、循环经济 1、循环经济的定义 2、循环经济的起源与发展 3、循环经济的原则 4、循环经济的实践案例 5、循环经济的意义与展望 三、三重底线 1. 财务底线 - 企业。赚钱 2. …

11. DPO 微调示例:根据人类偏好优化LLM大语言模型

在部署大模型之后,我们必然要和微调打交道。现在大模型的微调有非常多的方法,过去的文章中提到的微调方法通常依赖于问题和答案对,标注成本较高。 2023 年所提出的 Direct Preference Optimization(DPO)为我们提供了一…

卡牌抽卡机小程序:市场发展下的创新

今年以来,卡牌成为了行业中的黑马,在国内迅速流行,成为消费者的心头好。小小的卡牌创下了百亿的市场规模,发展前景巨大! 不过,随着卡牌市场的不断增长,市场发展也需要进行创新。线上抽卡机小程…

Yocto - 使用Yocto开发嵌入式Linux系统_02 认识 Yocto 项目

Meeting the Yocto Project 本章向你介绍 Yocto 项目。这里讨论的项目主要概念将贯穿全书。此外,我们还将简要讨论 Yocto 项目的历史、OpenEmbedded、Poky、BitBake、元数据和版本模式。系好安全带,欢迎加入我们的行列! This chapter introdu…

信息安全数学基础(19)同余式的基本概念及一次同余式

一、同余式概念 同余式是数论中的一个基本概念,用于描述两个数在除以某个数时所得的余数相同的情况。具体地,设m是一个正整数,a和b是两个整数,如果a和b除以m的余数相同,则称a和b模m同余,记作a≡b(mod m)。反…

C语言 | Leetcode C语言题解之第421题数组中两个数的最大异或值

题目: 题解: const int HIGH_BIT 30;struct Trie {// 左子树指向表示 0 的子节点struct Trie* left;// 右子树指向表示 1 的子节点struct Trie* right; };struct Trie* createTrie() {struct Trie* ret malloc(sizeof(struct Trie));ret->left re…

SpringBoot 数据库表结构文档生成

官方地址&#xff1a;https://github.com/pingfangushi/screw screw 螺丝钉&#xff0c;支持以下数据库 MySQL MariaDB TIDB Oracle SqlServer PostgreSQL Cache DB&#xff08;2016&#xff09; 生产文档支持 html word markdown 开始 添加依赖 <!-- 螺丝钉 --><…

CompletableFuture-详解使用及源码解析

背景 上一篇文章我们看了FutureTask&#xff0c;分析了他的问题&#xff0c;异步编程并不方便。 问题1&#xff1a; FutureTask获取执行结果前&#xff0c;主线程需要通过get()方法一直阻塞等待子线程执行完成call方法&#xff0c;才可以拿到返回结果问题2&#xff1a;如果不…

电竞显示器哪个牌子好

电竞显示器哪个好&#xff1f;你想成为电竞选手吗&#xff1f;显示器很关键&#xff0c;下面我就列举7款市面流行的电竞显示器给大家看看&#xff0c;总有一款适合你。 1.电竞显示器哪个好 - 蚂蚁电竞 ANT255VF电竞显示器 一、产品概述 蚂蚁电竞 ANT255VF电竞显示器是一款专为…

2024/9/21 leetcode 21.合并两个有序链表 2.两数相加

目录 21.合并两个有序链表 题目描述 题目链接 解题思路与代码 2.两数相加 题目描述 题目链接 解题思路与代码 --------------------------------------------------------------------------- 21.合并两个有序链表 题目描述 将两个升序链表合并为一个新的 升序 链表并返…

ChatCADChatCAD+:Towards a Universal and Reliable Interactive CAD using LLMs

ChatCAD&#xff08;论文链接&#xff1a;[2302.07257] ChatCAD: Interactive Computer-Aided Diagnosis on Medical Image using Large Language Models (arxiv.org)&#xff09; 网络流程图&#xff1a; 辅助阅读&#xff1a; 基于大型语言模型的医学图像交互式计算机辅助诊…

【运维自动化-作业平台】如何使用全局变量之字符串类型?

使用变量是脚本很常见的处理场景&#xff0c;作业平台中主要有全局变量和魔法变量两类&#xff0c;全局变量又区分了字符串、命名空间、主机列表、密文、数组5种类型。字符串类型变量 最简单、使用频率最高的全局变量类型&#xff0c;可以跨主机、跨步骤使用。目前在作业平台中…

uniApp微信小程序扫描普通二维码跳转到小程序指定页面操作方法

这篇文章主要给大家介绍了关于微信小程序扫描普通二维码跳转到小程序指定页面操作的相关资料,需要的朋友可以参考下 1、首先我们需要在微信公众平台的开发管理——>开发设置&#xff0c;找到&#xff08;扫普通链接二维码打开小程序&#xff09;&#xff0c;点击添加,根据提…