平和应用效果的目的。
(2)系统应具有可扩展、可复用的特点,能与投票系统接轨,数据库的设计应该具有通用性。
(3)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于系统维护人员的调试与修改维护。
(4)系统应具备数据库维护功能,及时根据需要进行数据的添加、删除、修改等工作。
3.2系统总体设计
3.2.1系统结构图
系统主要有:界面模块、数据库模块、投票统计模块三部分组成,系统结构如图3-1所示:
图3-1系统结构图
界面模块负责系统与用户的交互,它是系统与用户的接口部分,是实现人机交互功能的主要部分,它能调用数据库的入口函数,向数据库插入、修改、显示数据库内容,能调用投票统计模块,从而根据投票数据统计投票百分比。
投票统计模块能根据一定的算法,排出合理的投票数量。它能调用数据库函数调用数据库数据,经过运算后,将新数据存入数据库的相应表中。
数据库模块则定义数据结构,数据库的接口,定义数据库表的结构,自动完成对各种信息的输入、查询、修改及系统用户管理、系统用户权限管理等。
3.2.2数据功能模块设计
根据系统分析的结果,在系统功能分析的基础上,考虑ASP程序编制特点,得到如图3-2所示的系统功能模块图。
图3-2 系统功能模块图
3.2.3系统的主要功能设计
在线投票系统的主要功能:
投票结果的查询:主要是实现投票人员从数据库对各投票结果的查询。
投票项目管理:主要是实现投票人员对各个投票项目进行编辑,生成。
3.2.4数据库设计
1、数据库需求分析
在线投票系统的数据项目是依据学院开设新课程制定的。根据系统开发的要求,从学院开设新课程中选取适当的项目作为系统数据库的数据参数。在实际的工作中,在线投票系统的项目主要是根据学院任务来制定展开,因此与教学有相关的一些信息,如开设新课程等,都是学院需要统计的项目。结合学院开设课程任务选取了以下项目作为系统数据库的数据参数:
(1)开设游泳课。让投票者根据网站界面进行投票。
(2)开设就业指导课。让投票者根据网站内容进行投票
(3)开设心理咨询室。让投票者根据网站内容进行投票
(4)开设演讲课。主要分为讨论、解说、演讲等。
(5)开设课外兴趣小组。根据不同学生开设。
(6)投票系统更新。对各个选项能在第一时间内更新。
2、数据库概念结构设计
在系统的数据库设计中,先要对系统分析得到的数据图中的数据存储进行分析,分析各数据存储之间的关系,然后得出系统的关系模式。本系统采用了实体-关系图中的相应符号来描述系统的概念模型。
在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为逻辑结构的设计打下基础。
根据上面的设计出的实体有:投票选项实体、投票结果实体。投票选项实体属性具体描述如图3-3所示。
图3-3课程实体
投票结果实体的属性包括各个项目投票结果,各个项目投票人数,各个项目投票所占百分比。
3、数据库逻辑结构设计
数据库逻辑结构设计的任务就是把概念结构设计阶段设计的基本关系图,转换为与选用的具体相关的机器上的数据库管理系统所支持的数据模型相符合的逻辑结构。在上面实体之间的关系的基础上,形成数据库中表格以及各个表格之间的关系。
4、数据库物理结构设计
明确了以上所要建立的数据库参数,便可建立关系型数据库。具体的结构是把数据表示成若干二维关系的表,通过建立表之间的关系来定义结构。在这种二维表中,每一列为一个字段,对应着表格中的数据项。每个项目的名称为字段名。每一行为一条记录,记录中的每个字段的取值为字段值,记录是字段值的集合。记录中的数据随着每一行记录的不同而变化。
在线投票系统数据库中各个表格的设计结果如下面的几个表格所示。各个表格表示数据库中的一个表。
表3-1为创建投票项目信息表voteitem的信息。
字段名称
数据类型
大小
是否允许为空
说明
ID
Int
4
否
项目ID号
Item
Varchar(50)
8
是
项目名称
VoteCount
int
150
否
投票数量,缺省为0
表3-1VoteItem的结构
字段名称
数据类型
大小
是否允许为空
说明
IP
varchar(20)
4
否
IP地址
表3-2VoteIP的结构
参数Soperate的值
说明
null
无操作
add
添加记录(单击"添加"按钮时产生)
update
修改记录(单击记录后的"修改"链接时产生)
edit
修改记录(单击"修改"按钮时产生)
delete
删除记录(单击"删除"按钮时产生)
表3-3参数Soperate状态值的说明
一般由多个用户来管理在线投票系统,因此需要对每个用户分配一定的权限,实现信息的共享与安全。因此需要在数据库中建立一个用户口令表来管理使用在线投票系统的用户。
5、数据库结构的实现
在需求分析,概念结构设计基础上得到数据库逻辑结构以后,就可以在数据库系统中实现该逻辑结构。本系统中采用了MicrosoftOfficeAccess2003数据库管理系统。使用MicrosoftOfficeAccess2003创建前面所定义的各个数据表。
第4章详细设计与实现
运用ASP和MicrosoftOfficeAccess2003相结合开发投票系统,投票项目依据学院需要开设哪些新课程来制作,通过学生的投票结果统计确定下学期开设的新课程。以下就是设计投票系统步骤
4.1投票界面模块的设计
投票界面模块的功能是面向老师和学生的,因此不需要权限核实,进入系统页面后,点击"投票选项"即可进入。
1、设计投票界面表单
投票项目表单由3部分组成:
·投票选项列表框--用来选择相应项目进行投票。
·投票按钮。
相应代码如下:
如果没有投票,则变量isvoted为1,可以投票。投票按钮代码如下:
这是个可以选择多项的投票系统,在函数SelectChk中取得被投票项目信息,并提交
//取得被投票项目的编号,打开新窗口,查看投票结果
functionSelectChk()
{
vars=false;
vardeptid,n=0;
varstrid,strurl;
varnn=self.document.all.item("poster");
varj;
for(j=0;j
这段代码使用Open方法连接数据库。
USEVote
GO
CREATETABLEVoteItem
(Id intPrimaryKeyIDENTITY,
Item varchar(50)NOTNULL,
VoteCount intDEFAULT0
)
创建表voteItem的脚本文件
USEVote
GO
CREATETABLEVoteIP
(IP varchar(20)
)
GO
表VoteIP用来保存已经投票的IP地址
<%
Dimrs,n
n=0
Setrs=Server.CreateObject("ADODB.RecordSet")
sql="Select*FromVoteItemOrderByid"
rs.Opensql,Conn,1,1
Ifrs.BofORrs.EofThen
Response.Write"目前还没有投票项目。"
Else
DoWhileNotrs.Eof
n=n+1
%>
从数据库中提取投票项目信息
4.2投票项目模块的设计
投票项目模块的功能是进行投票选项的添加,修改,删除。可以根据每次需要投票的内容进行修改,添加,删除。
1、验证用户是否登录
因为只有管理员用户才有修改项目的权利,包括添加、修改、删除,所以系统需要验证想要修改投票项目的用户是否为管理员用户。通过验证用户的Session对象的logined变量的值是否为1。如果Session对象的logined变量的值不为1,则跳转到用户登录页面(admin.asp)。
代码如下:
<%
IfSession("logined")<>1Then
Response.Redirect"admin.asp"
EndIf
%>
2、添加投票项目
添加课程由以下几部分组成:
·选择按钮框--用来选择投票选项名称。
·单行文本框--用来输入投票名称。
实现功能的关键代码如下:
<%
DimSoperate
Soperate=Request.QueryString("oper")'操作标记
Operid=Request.QueryString("id")'项目编号
IfSoperate="add"Then'添加项目
newTitle=Request("txttitle")
'判断数据库中是否存在此类别
sql="Select*fromVoteItemWhereItem='"&newTitle&"'"
SetrsInsert=Conn.Execute(sql)
IfNOTrsInsert.EofThen
Response.Write"已经存在此投票项目,添加失败!"
Else
sql="InsertintoVoteItem(Item)values('"&newTitle&"')"
Conn.Execute(sql)
Response.Write"投票项目已经成功添加!"
EndIf
ElseIfSoperate="edit"Then'修改项目
newTitle=Request("txttitle")
orgTitle=Request("sOrgTitle")
'如果新类别名称和旧的不同则执行
IfnewTitle<>orgTitleThen
'判断数据库中是否存在此类别
sql="Select*fromVoteItemwhereItem='"&newTitle&"'"
SetrsInsert=Conn.Execute(sql)
IfNOTrsInsert.EofThen
Response.Write"已经存在此投票项目
上一篇:ASP房产信息管理系统(论文和程序)
下一篇:等到我们再次相遇的那一天,要笑着问你可好