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

博主介绍:专注于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.xdnf.cn/news/146511.html

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

相关文章

如何着手创建企业数据目录?(三)权限管理及版本控制

前文导读: 《如何着手创建企业数据目录?(一)数据目录的设定》 《如何着手创建企业数据目录?(二)数据的命名与维护》 前面聊过了数据目录的设定、数据命名规则和维护规则,今天我们继续…

34.打字机效果 水平滚动贴合

打字机效果 创建打字机效果动画。 定义两个动画,typing 用于字符动画,blink 用于光标动画。使用 ::after 伪元素在容器元素中添加光标。使用 JavaScript 为内部元素设置文本,并设置包含字符数的 --characters 变量。这个变量用于文本动画。使用 white-space: nowrap 和 overflo…

【华为杯】2024数学建模研赛题目

2024数学建模研赛题目已经发布 各个赛题题目如下: A题 B题 C题 D题 E题 F题 赛题完整版在文末,点击下方名片。

离散型制造业MES系统主要功能介绍

一、离散型制造业的特点 离散型制造业是指生产过程中涉及多个独立工序或步骤,且这些工序之间相对独立、缺乏连续性的企业。其特点主要包括: 产品种类多,开发频繁: 离散型制造业通常需要进行多品种产品开发,产品种类繁…

OpenCV特征检测(2)边缘检测函数Canny()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 使用 Canny 算法 48在图像中查找边缘。 该函数使用 Canny 算法在输入图像中查找边缘,并在输出地图 edges 中标记它们。在 threshold1…

微服务架构---Ribbon\Feign

Ribbon(负载均衡) Ribbon概述 在 SpringCloud 中, Nacos⼀般配合Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon利用从Nacos中读取到的服务信息,在调用服务节点提供的服务时,会合理的进行负载。 Ribbon作…

Java内部类一口气讲完!( •̀ ω •́ )✧

Java 内部类 Java面向对象的设计 - Java 内部类 什么是内部类? 作为包的成员的类被称为顶级类。 一个类可以在另一个类中声明。这种类型的类称为内部类。 如果在另一个类中声明的类被显式或隐式声明为static,它被称为嵌套类,而不是内部类…

Apache Flink 流批融合技术介绍

摘要:本文整理自阿里云高级研发工程师、Apache Flink Contributor 周云峰老师在 Apache Asia CommunityOverCode 2024中的分享。内容主要分为以下三个部分: 从流批一体到流批融合流批融合的技术解决方案社区进展及未来展望 一、从流批一体到流批融合 1&…

音视频开发之旅(95)-基于多模态的画质评测算法Q-Align

目录 1.背景与问题 2.人工MOS评测的过程 3.评分等级与评分的转换 4.构建对话式指令数据集 5.Q-ALIGN模型结构 6.实验结果 7.源码分析 8.资料 一、背景和问题 多模态模型(LMMs)在视觉和语言方面展现出非常强大的能力,它们能够很好地理…

【数据结构】假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。

编程题: 假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。 分析: 算法描述: 非递归中序遍历二叉树的算法使用栈来辅助实现。首先,从根节点开始,沿着左子树不断向下, 将每个节…

DataFrame生成excel后为什么多了一行数字

问题描述 python查询数据生成excel文件,生成的excel多了第一行数字索引,1,2,3,4,5...... 代码: df pd.DataFrame(data)df.to_excel(filename, sheet_name用户信息表, indexFalse) 解决: 原理也很简单,就是设置个参…

MCS-51汇编

伪指令: EQU: Equal,定义常量 COUNT EQU 10H ; 定义一个符号名COUNT,其值为10H DELAY EQU 500 ; 定义一个符号名DELAY,其值为500 数据传送: MOV: MOVE,传送数据 MOVC: 算术运算: 跳转…

开源 AI 智能名片 S2B2C 商城小程序与正能量融入对社群归属感的影响

摘要:本文探讨了开源 AI 智能名片 S2B2C 商城小程序在社群运营中的作用,以及融入正能量对提高社群归属感的关键意义。通过分析正能量的精神感染力和对社群氛围的积极影响,阐述了在开源 AI 智能名片 S2B2C 商城小程序的各类活动中融入正能量的…

数据结构之线性表——LeetCode:707. 设计链表,206. 反转链表,92. 反转链表 II

707. 设计链表 题目描述 707. 设计链表 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向链表,则…

【经验技巧】IBIS AMI模型眼图仿真问题探讨

最近,有同事问我:“拿到供应商的IBIS AMI模型,怎么判断是否可以进行应力(统计)眼图的仿真呀?如果不能进行,又怎么判断结果是瞬态仿真呢?” 不得不说,这的确是一个不错的话…

2024秋面向对象程序设计pta-实验二

6-1 设计一个矩形类Rectangle class Rectangle{ double width1; double height 1; public Rectangle(){} public Rectangle(double width, double height){ this.widthwidth; this.heightheight;} public double getArea(){ return width*height;} public double getPerimete…

en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 对齐

en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 聚集-CSDN博客 en造数据结构与算法C# 用Unity实现简单的群组行为算法 之 聚集-CSDN博客 演示 思路 1.检测 自然是沿用前两节的检测范围 2.对齐朝向 对齐朝向就是邻居鸟的forward加起来再除总数得到平均数 3.对齐…

3657A/B/AM/BM矢量网络分析仪

苏州新利通 3657A/B/AM/BM 矢量网络分析仪 3657系列矢量网络分析仪适用于无线通信、有线电视、教育及汽车电子等领域,可用于对滤波器、放大器、天线、电缆、有线电视分接头等射频元件的性能测量。该产品采用Windows操作系统;具有误差校准功能、时域功能…

MySQL中的LIMIT与ORDER BY关键字详解

前言 众所周知,LIMIT和ORDER BY在数据库中,是两个非常关键并且经常一起使用的SQL语句部分,它们在数据处理和分页展示方面发挥着重要作用。 今天就结合工作中遇到的实际问题,回顾一下这块的知识点。同时希望这篇文章可以帮助到正…

How can I stream a response from LangChain‘s OpenAI using Flask API?

题意:怎样在 Flask API 中使用 LangChain 的 OpenAI 模型流式传输响应 问题背景: I am using Python Flask app for chat over data. In the console I am getting streamable response directly from the OpenAI since I can enable streming with a f…