物价指数管理系统开发文档.docx
- 文档编号:18570481
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:41
- 大小:191.27KB
物价指数管理系统开发文档.docx
《物价指数管理系统开发文档.docx》由会员分享,可在线阅读,更多相关《物价指数管理系统开发文档.docx(41页珍藏版)》请在冰点文库上搜索。
物价指数管理系统开发文档
物价指数管理系统
摘要
随着网络技术的高速发展,计算机应用的普及,利用计算机对物价指数的日常工作进行管理势在必行。
虽然目前很多大型的物价指数已经有一整套比较完善的管理系统,但是在一些中小型的物价指数中,大部分工作仍需要手工完成,工作起来效率比较低,用户不能及时了解物价指数内各类指数的变动情况,用户需要的物价指数难以在短时间内找到,不便于动态及时地了解物价浮动。
本文论述了基于ASP.NET+SQLServer2000的物价指数管理系统的实现思路和开发过程,包括需求分析、系统设计、开发环境、系统实现等方面。
目录
1开发背景1
2需求分析1
3系统设计1
3.1系统目标1
3.2业务流程图2
3.3系统功能结构图2
4开发及运行环境2
5数据库设计3
5.1数据库概要设计3
5.2数据库逻辑结构设计6
6编码及实现8
6.1公共类设计8
6.1.1createCon方法8
6.1.2execSQL方法9
6.1.3seleSQL方法9
6.1.4getDataset方法10
6.1.5getRow方法10
6.2网站首页设计10
6.2.1网站首页概述10
6.2.2网站首页技术分析11
6.2.3网站首页实现过程11
6.3管理员设置模块13
6.3.1管理员设置模块概述13
6.3.2管理员设置模块技术分析14
6.3.3查看管理员信息页的实现过程14
6.3.4管理员权限设置页的实现过程15
6.3.5单元测试17
6.4物价指数管理模块设计17
6.4.1物价指数档案管理模块概述17
6.4.2物价指数档案管理模块技术分析18
6.4.3查看物价指数详细信息页面的实现过程18
6.4.4添加和修改物价指数信息页面的实现过程20
1开发背景
随着现代物价指数流通市场竞争的愈演愈烈,如何以一种新的管理方式提高物价指数流通信息的反馈速度,降低库存占用,加快资金周转,提高工作效率,已经成为物价指数企业提高竞争力的关键。
信息技术的发展给物价指数企业的管理带来了新的力量,通过物价指数管理系统对物价指数企业经营运作的全程管理,不仅使企业摆脱了人工管理所固有的一系列弊端和问题,更重要的是提高了工作效率,进而提高了企业的经济效益。
通过管理系统对企业的管理,为企业的发展提供了大量的、关键性的数据,企业根据这些数据,可以及时作出决策,进行调整,使之能够更好地把握市场的销售规律,适应市场变化,在激烈的行业竞争中赢得一席之地。
2需求分析
改革开放以来,我国农产品批发市场从小到大、从自发式到网络化,逐步形成体系,在农业和农村经济乃至国民经济发展中发挥着越来越大的作用。
农产品批发市场经过公开竞争形成的批发价格,充分反映了农产品的供求规律和价值规律,发挥了指导生产、促进流通和引导消费的重要作用。
首先确定指数内容。
根据农产品批发市场的现状和未来发展趋势,全国农产品价格指数在保证现实需要、兼顾现有信息采集条件及指数编制理论和方法的基础上,主要内容包括各品种全国价格个体指数、农产品小类价格指数(粮食、植物油、蔬菜、水果、畜产品、水产品)、农产品大类价格指数(粮油产品价格指数、菜篮子产品价格指数)和全国农产品价格总指数。
这些指数从个体到类综合,再从类综合到整体农产品的总综合,从而形成逐步综合的农产品价格指数体系
3系统设计
3.1系统目标
根据物价指数日常物价指数管理工作的需求好物价指数借阅的管理流程,该系统实施后,应达到以下目标。
1.界面设计友好、美观,数据存储安全、可靠。
2.基本信息设置保证物价指数信息好用户信息的分类管理。
3.强大的查询功能,保证数据查询的灵活性。
4.实现对物价指数全程数据信息跟踪。
5.设置用户和物价指数排行榜,为物价指数管理提供真实的数据信息。
6.提供数据提醒功能,使管理者可以及时了解已经到期的物价指数信息。
7.提供管理员修改自己密码的功能,保证系统的安全性。
8.提供灵活、方便的权限设置功能,使整个系统的管理分工明确。
9.采用人机对话的操作方式,方便管理员的日常操作。
10.系统最大限度地实现了易维护性和易操作性。
3.2业务流程图
物价指数管理系统的系统流程如图3-1所示。
图3-1系统流程图
3.3系统功能结构图
根据物价指数管理系统的特点,可以将其分为系统设置、用户管理、物价指数管理、物价指数借还、系统查询等5个部分,其中各个部分及其包括的具体功能模块如图3-2所示。
图3-2系统功能结构图
4开发及运行环境
1.网站开发环境
网站开发环境:
MicrosoftVisualS2005集成开发环境
网站开发语言:
ASP.NET+C#
网站后台数据库:
SQLServer2000
开发环境运行平台:
WindowsXP/WindowsServer2003
2.网站运行环境
1)服务器端
操作系统:
WindowsServer2003
Web服务器:
Internet信息服务管理器
数据库服务器:
SQLServer2000
浏览器:
InternetExplorer6.0
网站服务器运行环境:
Microsoft.NETFrameworkSDKv2.0
2)客户端
浏览器:
InternetExplorer6.0
分辨率:
最佳效果1024X768
5数据库设计
本系统采用SQLServer2000数据库,名称为db_tsrj,其中包含9张表。
下面分别说明数据库的概要设计及逻辑设计。
5.1数据库概要设计
通过对本系统进行的需求分析、系统流程设计以及系统功能结构的确定,规划出系统中使用的数据库实体对象,具体说明如下。
只有系统分配的用户才可以操作物价指数管理系统,而用户的权限又各不相同。
管理员权限设置信息实体E-R图如图5-1所示。
图5-1管理员权限设置信息实体E-R图
物价指数借阅信息实体,用于存储所有物价指数借阅情况的信息,以准确地记录每本物价指数的借阅情况。
物价指数借阅信息实体E-R图如图5-2所示。
图5-2物价指数借阅信息实体E-R图
物价指数对物价指数的分类,通常是将不同类型的物价指数分别放置在相应类型的书架上。
书架信息实体,用于存储物价指数中所有的书架信息。
书架信息实体E-R图如图5-3所示。
不同的物价指数,会有不同的物价指数信息。
对这些物价指数信息进行详细的记录,方便了物价指数的分类好查询。
物价指数信息实体,用于存储所有物价指数的相关信息。
物价指数信息实体E-R图如图5-4所示。
图5-4物价指数信息实体E-R图
物价指数中会有不同类型的物价指数,为了避免物价指数归类发生混乱,必须建立一个物价指数类型信息实体,用于存储物价指数的类型信息。
物价指数类型信息实体E-R图如图5-5所示。
图5-5物价指数类型信息实体E-R图
为了记录物价指数的历史背景及其相关的信息,需要建立一个物价指数信息实体,用于存储与物价指数有关的信息。
物价指数信息实体E-R图如图5-6所示。
图5-6物价指数信息实体E-R图
当有用户借阅物价指数时,要对用户的各项信息进行记录,以方便归还物价指数和已借阅物价指数的历史查询。
用户信息实体,用于存储所有借阅物价指数的用户信息。
用户信息实体E-R图如图5-7所示。
图5-7用户信息实体E-R图
在用户群体中,会有不同的分类,例如借阅物价指数的用户可能是教师、学生和市民等,所以对用户人群进行有效的分类是至关重要的。
用户类型信息实体,用于存储用户的类型信息。
用户类型信息实体E-R图如图5-8所示。
图5-8用户类型信息实体E-R图
当管理员登录物价指数管理系统时,需要通过登录窗口验证成功后才能进入系统主页。
管理员信息实体,用于存储管理员的登录名称和登录密码。
管理员信息实体E-R图如图5-9所示。
图5-9管理员信息实体E-R图
5.2数据库逻辑结构设计
根据实体E-R图,设计出数据表的结构。
以下是主要数据表的数据结构和用途。
1.tb_admSet(管理员权限设置表)
表tb_admSet用于保存与管理员权限设置相关的信息,该表的结构如表5-1所示。
表5-1管理员权限设置表
字段名
数据类型
长度
主键否
描述
userName
varchar
80
否
管理员名称
systemSet
bit
1
否
系统设置
readerManage
bit
1
否
用户管理
bookManage
bit
1
否
物价指数管理
bookBorrow
bit
1
否
物价指数借还
systemSearch
bit
1
否
系统查询
2.tb_bookBorrow(物价指数借阅表)
tb_bookBorrow用于保存所有已借阅物价指数的信息,该表的结构如表5-2所示。
表5-2物价指数借阅表
字段名
数据类型
长度
主键否
描述
bookBarCode
varchar
100
否
物价指数条形码
bookName
varchar
100
否
物价指数名称
borrowTime
datetime
8
否
借阅日期
returnTime
datetime
8
否
应还日期
readerBarCode
varchar
50
否
用户条形码
readerName
varchar
20
否
用户姓名
isReturn
bit
1
否
是否归还
3.tb_bookcase(书架信息表)
tb_bookcase用于保存书架的详细信息,该表的结构如表5-3所示。
表5-3书架信息表
字段名
数据类型
长度
主键否
描述
bookcaseID
Int
4
是
书架编号
bookcaseName
varchar
80
否
书架名称
4.tb_bookInfo(物价指数信息表)
tb_bookInfo用于保存与物价指数相关的所有信息,该表的结构如表5-4所示。
表5-4物价指数信息表
字段名
数据类型
长度
主键否
描述
bookBarCode
varchar
100
是
物价指数条形码
bookName
varchar
100
否
物价指数名称
bookType
int
4
否
物价指数类型
Bookcase
int
4
否
书架类别
bookConcern
varchar
100
否
出版社名称
Author
varchar
80
否
作者名称
price
money
8
否
物价指数价格
borrowSum
int
4
否
借阅次数
5.tb_bookType(物价指数类型信息表)
表tb_bookType用于保存物价指数类型信息,该表的结构如表5-5所示。
表5-5物价指数类型信息表
字段名
数据类型
长度
主键否
描述
typeID
int
4
否
物价指数类型编号
typeName
varchar
50
否
类型名称
borrowDay
int
4
否
可借天数
6.tb_library(物价指数信息表)
表tb_library用于保存与物价指数相关信息,该表的结构如表5-6所示。
表5-6物价指数信息表
字段名
数据类型
长度
主键否
描述
libraryName
varchar
80
否
物价指数名称
curator
varchar
80
否
馆长名称
tel
varchar
100
否
联系电话
address
varchar
200
否
联系地址
varchar
100
否
电子邮件
net
varchar
200
否
网址
upbuildTime
datetime
8
否
建馆时间
remark
varchar
500
否
备注
7.tb_readerInfo(用户信息表)
表tb_readerInfo用于保存所有用户信息,该表的结构如表5-7所示。
表5-7用户信息表
字段名
数据类型
长度
主键否
描述
readerBarCode
varchar
50
是
用户条形码
readerName
varchar
50
否
用户名称
sex
varchar
10
否
用户性别
readerType
varchar
50
否
用户类型
certificateType
varchar
50
否
证件类型
certificate
varchar
50
否
证件号码
tel
varchar
50
否
联系电话
varchar
50
否
电子邮件
remark
varchar
500
否
备注
8.tb_readerType(用户类型信息表)
表tb_readerType用于保存所有用户类型信息,该表的结构如表5-8所示。
表5-8用户类型信息表
字段名
数据类型
长度
主键否
描述
id
int
4
是
类型编号
type
varchar
50
否
类型名称
num
varchar
50
否
可借本数
9.tb_user(管理员信息表)
表tb_user用于保存所有管理员信息,该表的结构如表5-9所示。
表5-9管理员信息表
字段名
数据类型
长度
主键否
描述
userId
int
4
是
管理员编号
username
varchar
50
否
管理员名称
userPwd
varchar
50
否
管理员密码
6编码及实现
6.1公共类设计
在开发过程中,经常会用到一些公共模块,如数据库连接及操作的类、字符串处理的类等,因此,在开发系统前首先需要设计这些公共模块。
下面将具体介绍物价指数管理系统中所需要的数据库操作类。
数据库操作类用来完成数据库的连接操作,以及数据库的查询、添加、删除和修改操作。
将这几种操作编写到一个公共类里,可以减少重复代码的编写,有利于代码的维护。
在dataOperate类中一共定义了5个方法,下面分别对这几个方法进行解释。
首先在命名空间区域引用usingSystem.Data.SqlClient命名空间。
代码如下:
usingSystem.Data.SqlClient;
6.1.1createCon方法
createCon方法用来连接数据库,此方法返回的类型为SqlConnection。
代码位置:
\libraryManage\App_Code\dataOperate.cs。
代码如下:
publicstaticSqlConnectioncreateCon()
{
con=newSqlConnection("server=.;database=db_tsrj;uid=sa;pwd=;");
returncon;
}
6.1.2execSQL方法
execSQL(stringsql)方法用来添加、插入和删除数据。
此方法返回一个布尔型值,用来表示添加、插入和删除数据是否成功,执行成功返回true,否则返回false。
调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。
代码位置:
\libraryManage\App_Code\dataOperate.cs。
代码如下:
publicstaticboolexecSQL(stringsql)
{
SqlConnectioncon=createCon();//创建连接对象
con.Open();
SqlCommandcom=newSqlCommand(sql,con);
try
{
com.ExecuteNonQuery();//执行SQL语句
con.Close();//关闭连接对象
}
catch(Exceptione)
{
con.Close();
returnfalse;//执行失败返回false
}
returntrue;//执行成功返回true
}
6.1.3seleSQL方法
seleSQL(stringsql)方法用来查找数据是否存在。
此方法返回一个整型值,用来表示是否查找到数据,如查找到数据则返回1,否则返回0。
调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。
代码位置:
\libraryManage\App_Code\dataOperate.cs。
代码如下:
publicstaticintseleSQL(stringsql)
{
inti;
SqlConnectioncon=createCon();//创建连接对象
con.Open();
SqlCommandcom=newSqlCommand(sql,con);
try
{
i=Convert.ToInt32(com.ExecuteScalar());//执行SQL语句后返回第一行第一列的值
con.Close();//关闭连接
}
catch(Exceptione)
{
con.Close();
return0;
}
if(i>0)//判断是否大于0,大于返回1否则返回0
{return1;}
else
{return0;}
}
6.1.4getDataset方法
getDataset(stringsqlstringtable)方法用来查找并返回多行数据。
此方法返回一个DataSet数据集。
在调用此方法时应传入两个string类型的参数,第一个参数表示要执行的SQL语句,第二个参数表示表名。
代码位置:
\libraryManage\App_Code\dataOperate.cs。
代码如下:
publicstaticDataSetgetDataset(stringsql,stringtable)
{
SqlConnectioncon=createCon();//创建数据库连接对象
con.Open();//打开连接
SqlDataAdaptersda=newSqlDataAdapter(sql,con);//执行SQL语句
DataSetds=newDataSet();//创建数据集
sda.Fill(ds,table);//填充数据集
returnds;//返回数据集
}
6.1.5getRow方法
getRow(stringsql)方法用来查找并返回一行数据。
此方法返回一个SqlCommand对象。
在调用此方法时应传入一个string类型的参数,此参数表示所要执行的SQL语句。
代码位置:
\libraryManage\App_Code\dataOperate.cs。
代码如下:
publicstaticSqlDataReadergetRow(stringsql)
{
SqlConnectioncon=createCon();
con.Open();
SqlCommandcom=newSqlCommand(sql,con);
returncom.ExecuteReader();
}
6.2网站首页设计
6.2.1网站首页概述
管理员通过“系统登录”模块验证后,可以登录到物价指数管理系统的主页。
系统主页主要包括Banner信息栏、导航栏、借阅排行榜和版权信息等4部分。
6.2.2网站首页技术分析
在开发网站时,如果使用GridView控件显示信息,为其添加一个自动编号列,是一个比较有用的功能,可以一目了然地看到当前页共有多少条记录。
在物价指数管理系统的首页开发中用到了这一技术,实现按照借阅次数的多少进行排名的功能。
网站首页中主要通过设置GridView控件中第一列的值为当前项目的索引值累加来实现GridView控件的自动编号功能。
在实现自动编号功能时,主要触发了GridView控件的RowDataBound事件,该事件详细说明如下。
RowDataBound事件:
呈现GridView控件之前,该控件中的每一行都必须绑定到数据源中的一条记录。
将某个数据行绑定到GridView控件中的数据以后,将引发RowDataBound事件。
网站首页在实现自动编号功能时,主要是通过在GridView控件的RowDataBound事件中动态修改GridView控件中第一列的值实现的。
GridView控件的RowDataBound事件中实现的代码如下(代码位置:
\libraryManage\index.aspx.cs):
if(e.Row.RowIndex!
=-1)//判断GridView控件中是否有值
{
intid=e.Row.RowIndex+1;//将当前行的索引加上1赋值给变量id
e.Row.Cells[0].Text=id.ToString();
//将变量id的值传给GridView控件的每一行的单元格中
}
说明:
Row指定表示辅助性对象的可能角色的值;RowIndex获取当前绑定控件中行的索引;Cells获取用于填充行的单元格集合。
因为GridView控件中项的索引是从0开始的,所以用当前索引值加1。
6.2.3网站首页实现过程
1.设计步骤
(1)本模块使用的数据表:
tb_bookInfo。
(2)在该网站中新建一个Web窗体,将其命名为index.aspx,用于显示网站首页。
(3)在Web窗体中添加Table表格,用于页面的布局。
(4)在Table表格中添加相关的服务器控件,控件的属性设置及其用途如表6-1所示。
表6-1页面中控件属性设置及用途
控件类型
控件名称
主要属性设置
控件用途
GridView
gbBookTaxis
AutoGenerateColumns属性设置为False(去掉GridView控件自动生成的列)
显示物价指数借阅排行榜
Web用户控件
header.ascx
默认值
网站导航功能
bottom.ascx
默认值
网站版本信息
2.实现代码
首先导入必要的命名空间usingSystem.Data.SqlClient。
引入命名空间的代码如下:
usingSystem.Data.SqlClient;
在page_load单击事件中,利用Session对象判断用户登录的状态,如果Session中存在的变量为空,说明用户未登录,页面将跳转到登录页面;如用户已登录,则调用bindBookInfo自定义方法。
代码位置:
\libraryMana
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 物价指数 管理 系统 开发 文档
![提示](https://static.bingdoc.com/images/bang_tan.gif)