




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
web 技术与开发(技术与开发(asp.net) 课程设计说明书课程设计说明书 设 计 题 目: 网上投票系统 指 导 老 师: 学 生 学 号: 学 生 姓 名: 同 组 人: 时 间: 201 年 月 日 摘 要 随着网络技术的迅速发展传统的投票方式已经不能满足人们的需要。而网上投票 系统除了能够完成传统的功能之外,更具有时效高和范围广的优点更符合现代社会的需 要。 网上投票系统的设计是采用 asp.net 和 sql server2005 技术开发的简易投票系统并 在用户登陆过程中设置动态验证码提高系统的安全性。它实现了以下功能:投票、结果 查看、增加、删除等。 本次课程设计首先介绍了网上投票系统的概念及和适用范围。在系统开发环境中主 要对 asp、sql 及系统总体设计作了详尽的介绍。接着通过 e-r 图说明数据库的搭建和数 据库的设计。然后介绍了本系统的总体设计包括系统结构和总体功能设计。论文以功能 模块图的形式说明了功能的设计并给出了部分核心代码及主要功能界面图。 投票系统概括起来就是要通过科学的管理手段和专业化管理技术来实现统一。网上 投票系统应具有以下功能: 其一方便的操作。原有的手工投票管理基本上是人工操作效率低下,缺乏方便性, 在线管理系统运用计算机和其他附加设备,不再需要手工操作基本上是全自动化,能够 节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。 其二友好的界面。友好的用户界面会给人一种亲切感,在使用起来不会觉得繁琐。 用户只需在线登陆点击投票而且可以直接点击查看投票的统计结果。 其三强大的功能。后台管理员可以创建、删除、修改投票候选人、并统计投票结 果。 本设计正是基于这样的功能要求展开设计的。 本系统的研究内容主要有两部分,具体如下: 1、数据库设计。基于 sql 并根据需求进行数据库表的设计。 2、功能模块的实现。主要包括功能界面的设计和后台实现。 本网上投票系统的开发,遵循了自上而下的开发方式,即从整体到局部,从抽象到 具体,从概要设计到详细设计,从而体现结构化的设计思想。贯穿开发过程的方法是: 瀑布模型、生命周期方法学、面向对象方法的结合。这也是目前较为行之有效的开发方 法。 在进行“网上投票系统“的开发时,用到了许多计算机方面的相关技术,其中也用到了许 多新的开发技术和方法,这些也是完成系统开发的关键性技术,最主要的是:asp 技术、 三层应用系统框架结构、sql 数据库技术等。 关键词: 网上投票系统; asp; sql i 目 录 摘摘 要要i 第第 1 章章 设计目的设计目的.1 1.1 设计目的.1 第第 2 章章 总体设计总体设计.2 2.1 程序设计组成框图.2 2.2 流程图.4 2.3 关系图.5 2.4 数据库分析与设计.5 第第 3 章章 详细设计详细设计.6 3.1 模块功能说明.6 3.2 登录模块.6 3.3 投票模块.8 3.4 排序模块.12 3.5 系统设置模块.12 3.6 数据库表设计.13 第第 4 章章 系统实现系统实现.15 4.1 录入模块.15 4.2 投票模块.16 4.3 排序模块.17 4.4 系统设置模块.18 结束语(心得体会)结束语(心得体会).21 网上投票系统 0 第 1 章 设计目的 1.1 设计目的 网上投票系统的开发可以更好的把市场的信息更准确更快速的反馈给客户,使信 息的来源更广泛,从而提高信息的准确性。运用此系统可以降低企业为市场调查而消 耗的人力和物力,利用节省的资源提高产品的质量,增强竞争力。 一个网站不断发展的前提就是众多用户的支持,一个好的网站一定要注意与用户 之间信息的交流。能够有效得到用户反馈的信息,并及时对网站内容进行改进,这也 是一个网站持续发展的基础。也正是由于以上原因,网络上各式各样的投票系统层出 不穷。 网络在线投票是目前网上比较常见的一个功能,利用此功能可以提直接在互联网 上直接投票,并及时查看投票结果。利用此系统,用户投票比较方便还可以查看并分 析投票结果,从中获得对自己有用的信息。 本次课程设计的目的,就是制作一个网上投票系统,该系统可以实现对投票数量 进行累加,统计票数等操作。投票网页的基本要求:有所有候选人列表(至少10 人) ,有必要的投票说明和要求,如只能选几人(由系统给予限制) ,显示后可投票, 如选 5 人,选定 5 人后,网上提交。多选和少选都不能提交(无效票) 。网上投票 后,再次进入该网页时该网页不能再投票。每个人不能重复投票。获得投票统计结果 网页的基本要求:多人投票完毕后,通过该网页获得投票统计结果,按候选人数排列 得票最高的人员名单,如选5 人就列出 5 人得名单。按得票多少排列,显示在屏幕 上。要求调入该网页时,必须通过输入登录名和密码后才能显示上述投票结果。 网上投票系统 1 第 2 章 总体设计 2.1 程序设计组成框图 2.1.1.系统主结构图: 登录系统 管理员页面用户页面 用户信息管理 主题信息管理 查看投票结果 选择投票主题 查看投票结果 2.1.2.子系统结构: (1)用户信息管理: 用户信息管理 注册用户信息 修改用户信息 删除用户信息 网上投票系统 2 (2)主题信息管理: 主题信息管理 添加候选人信息 删除候选人信息 修改候选人信息 网上投票系统 3 2.2 流程图 开始 用户登 录 管理员 登录 登 录 登 录 投票 投票结果查看 投票结果查看 用户信息管理 主题信息管理 结果显示 网上投票系统 4 2.3 关系图 用户 投票 投票表 1 投票表 2 用户 名 密 码 权 限 候选人 编号 候选人 名字 得票 总 数 候选人 编号 候选人 名字 得票 总 数 2.4 数据库分析与设计 我们设计了四个表,分别是用户表(yonghu),投票表 1(vote1) ,投票表 2(vote2), isvote 表。用户表:在用户注册时,用于存储“用户名” , “密码” , “权限”等信息。投票 表 1:存储投票相关信息如:“候选人编号” , “候选人名字” , “得票总数” 。投票表 2: 存储投票相关信息如:“候选人编号” , “候选人名字” , “得票总数” 。isvote 表:存储 “用户名” , “向主题 1 投票” , “向主题 2 投票”相关信息。 数据关系模式 用户信息(用户名,密码,权限) 投票表 1(候选人编号,候选人名字,得票总数) 投票表 2(候选人编号,候选人名字,得票总数) isvote(userid,isvote1,isvote2) 网上投票系统 5 第 3 章 详细设计 3.1 模块功能说明 系统包括四大模块:登录模块,投票模块,排序模块,系统设置模块 登录模块:该模块分为登录和注册两个小模块。可以实现普通用户和管理员两种身 份的登录,普通用户登录后就跳转到用户操作页面,管理员登录后进入管理员操作页面。 还可以实现普通用户的注册,管理员不可以注册,但可以对普通用户进行添加、修改、 删除。 投票模块:该模块可以为两个主题投票,其中一个是多选(不多于 5 人) ,另一个是 单选。普通用户可以进行投票,管理员不可以投票,可以对投票主题进行管理,即进行 对投票的候选人的添加、修改、删除。 排序模块:主要用于投票结果的查看,可以对候选人的总得票数,名字等进行排序, 可以看到排名前 5 的候选人名单和得票数,也可以查看所有候选人的得票数,这样便可 以直观的看出得票数的高低。 系统设置模块:管理员对页面的管理,如可以对普通用户进行添加、修改、删除, 也可以对对投票的候选人的添加、修改、删除。 3.2 登录模块 该模块分为登录和注册两个小模块。 登录模块的具体设计代码如下图所示: using system; using system.data; using system.configuration; using system.web; using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcontrols; using system.data.sqlclient ; public partial class _default : system.web.ui.page protected void page_load(object sender, eventargs e) protected void button1_click(object sender, eventargs e) 网上投票系统 6 sqlconnection myconnection = conn.createcon(); myconnection.open(); /打开连接 string strsql = “select * from yonghu where userid=“ + textbox1.text + “and passwd=“ + textbox2.text + “; sqlcommand cm = new sqlcommand(strsql, myconnection); sqldatareader dr = cm.executereader(); if (dr.read() /保存当前用户名到session。 session“userid“ = dr“userid“; session“power“ = dr“power“; int a = convert.toint32(dropdownlist1.selectedvalue); int c = convert.toint32(session“power“); if (c = a) if (c = 0) response.redirect(“用户主页.aspx“); else if (c = 1) response.redirect(“管理员主页.aspx“); else response.write(“alert(“权限错误!“);“); else response.write(“alert(“用户名或密码错误!“);“); myconnection.close(); /关闭连接 protected void button2_click(object sender, eventargs e) response.redirect(“register.aspx“); 注册模块的具体设计代码如下图所示: using system.collections; using system.web; using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcontrols; using system.data.sqlclient ; public partial class register : system.web.ui.page int a; protected void page_load(object sender, eventargs e) 网上投票系统 7 a = convert.toint32(session“power“); protected void button1_click(object sender, eventargs e) sqlconnection ocon = conn.createcon(); string insertstring = “insert into yonghu ( userid,passwd,power) values(“ + textbox1.text + “ , “ + textbox2.text + “,0)“; string insertstring2 = “insert into isvote(userid,isvote1,isvote2) values(“ + textbox1.text + “ , 0,0)“; sqlcommand cmd = new sqlcommand(insertstring, ocon); sqlcommand cmd2 = new sqlcommand(insertstring2, ocon); ocon.open(); cmd.executenonquery(); cmd2.executenonquery(); ocon.close(); if (a = 1) response.redirect(“管理员主页.aspx“); else response.redirect(“default.aspx“); 3.3 投票模块 该模块可以为两个主题投票,其中一个主题是“三好学生”的评选,另一个是“你 最喜欢的歌手”的评选。 “三好学生”的评选的具体设计代码如下所示: using system; using system.data; using system.configuration; using system.collections; using system.web; using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcontrols; using system.data.sqlclient; public partial class default2 : system.web.ui.page int c, d, a, i, n; string m; protected void page_load(object sender, eventargs e) m = (string)(session“userid“); n = (int)(session“power“); protected void button1_click(object sender, eventargs e) quzhi(); c = (int)(session“isvote1“); 网上投票系统 8 if (n = 0) if (c = 0) for (i = 0; i alert(“您已经投过票!谢谢!“);“); else response.write(“alert(“);“); public void sw() /此方法用于检验投票次数 if (d = 0) response.write(“alert(“您还没有投票!“);“); else if (d 5) response.write(“alert(“您的选择超过五人!“);“); public void db() /投票计数操作,并且将用户投票状态改变 a = convert.toint32(gridview1.rowsi.cells0.text); int b = convert.toint32(gridview1.rowsi.cells2.text) + 1; checkbox chk = (checkbox)(this.gridview1.rowsi.findcontrol(“checkbox1“); sqlconnection con = new sqlconnection(“data source=.;initial catalog=votedb;integrated security=true“); 网上投票系统 9 string updatestring1 = “update vote1 set sum=sum where voteid=voteid “; string updatestring2 = “update isvote set isvote1=1 where userid=id “; sqlcommand cmd1 = new sqlcommand(updatestring1, con); sqlcommand cmd2 = new sqlcommand(updatestring2, con); cmd1.parameters.addwithvalue(“voteid“, a); cmd2.parameters.addwithvalue(“id“, m); cmd1.parameters.addwithvalue(“sum“, b); con.open(); cmd1.executenonquery(); cmd2.executenonquery(); con.close(); public void quzhi() sqlconnection myconnection = conn.createcon(); myconnection.open(); /打开连接 string strsql2 = “select * from isvote where userid=“ +m + “; sqlcommand cm2 = new sqlcommand(strsql2, myconnection); sqldatareader dr2 = cm2.executereader(); dr2.read(); session“isvote1“ = dr2“isvote1“; session“isvote2“ = dr2“isvote2“; “你最喜欢的歌手”的评选的具体设计代码如下所示: using system; using system.data; using system.configuration; using system.collections; using system.web; using system.web.security; using system.web.ui; using system.web.ui.webcontrols; using system.web.ui.webcontrols.webparts; using system.web.ui.htmlcontrols; using system.data.sqlclient; public partial class default3 : system.web.ui.page int c, d, a, b, i, n; string m; protected void page_load(object sender, eventargs e) m = (string)(session“userid“); n = (int)(session“power“); protected void button1_click(object sender, eventargs e) quzhi(); c = (int)(session“isvote2“); if (n = 0)/如果是普通用户的话,执行下列语句 if (c = 0)/如果没有投票 for (i = 0; i alert(“您已经投过票!谢谢!“);“); else/如果是管理员不能投票 response.write(“alert(“管理员不能投票!“);“); public void sw() /此方法用于检验投票次数 if (d = 0) response.write(“alert(“您还没有投票!“);“); else if (d =1) for (i = 0; i 1) response.write(“alert(“您只能为一人投票!“);“); public void db() /投票计数操作,并且将用户投票状态改变 a = convert.toint32(gridview1.rowsi.cells0.text); b = convert.toint32(gridview1.rowsi.cells2.text) + 1; checkbox chk = (checkbox)(this.gridview1.rowsi.findcontrol(“checkbox1“); sqlconnection con = new sqlconnection(“data source=.;initial catalog=votedb;integrated security=true“); string updatestring1 = “update vote2 set sum=sum where voteid=voteid “;/将总数增加一 string updatestring2 = “update isvote set isvote2=1 where userid=id “;/使该用户不能投票 sqlcommand cmd1 = new sqlcommand(updatestring1, con); sqlcommand cmd2 = new sqlcommand(updatestring2, con); cmd1.parameters.addwithvalue(“voteid“, a); cmd2.parameters.addwithvalue(“id“, m); cmd1.parameters.addwithvalue(“sum“, b); con.open(); 网上投票系统 11 cmd1.executenonquery(); cmd2.executenonquery(); con.close(); public void quzhi() sqlconnection myconnection = conn.createcon(); myconnection.open(); /打开连接 string strsql2 = “select * from isvote where userid=“ + m + “; sqlcommand cm2 = new sqlcommand(strsql2, myconnection); sqldatareader dr2 = cm2.executereader(); dr2.read(); session“isvote1“ = dr2“isvote1“; session“isvote2“ = dr2“isvote2“; 3.4 排序模块 主要用于投票结果的查看,可以对候选人的总得票数,名字等进行排序。 该功能是用 sqldatasource 数据源控件实现的,只要将 sortexpression 属性设置为要实 现排序的字段值即可。 3.5 系统设置模块 管理员对页面的管理,如可以对普通用户进行添加、修改、删除,也可以对对投票 的候选人的添加、修改、删除。 该功能是用 objectdatasource 数据源控件实现的,具体设计代码如下所示: public dataset getvote1() string strsql = “select voteid,voyename,sum from vote1“; sqldataadapter oda = new sqldataadapter(strsql, ocon); dataset ods = new dataset(); oda.fill(ods, “user“); return ods; public void updatevote1(string voteid, string voyename, string sum) string updatestring = “update vote1 set voyename=voyename ,sum=sum where voteid=voteid“; sqlcommand cmd = new sqlcommand(updatestring, ocon); cmd.parameters.addwithvalue(“voteid“, voteid); cmd.parameters.addwithvalue(“voyename“, voyename); cmd.parameters.addwithvalue(“sum“, sum); ocon.open(); cmd.executenonquery(); ocon.close(); public void deletevote1(string voteid) /sqlconnection ocon = conn.createcon(); string deletestring = “delete from vote1 where voteid=voteid“; sqlcommand cmd = new sqlcommand(deletestring, ocon); 网上投票系统 12 cmd.parameters.addwithvalue(“voteid“, voteid); ocon.open(); cmd.executenonquery(); ocon.close(); public void insertvote1(string voteid, string voyename, string sum) /sqlconnection ocon = conn.createcon(); string insertstring = “insert into vote1(voteid,voyename,sum) values (voteid,voyename,sum)“; sqlcommand cmd = new sqlcommand(insertstring, ocon); cmd.parameters.addwithvalue(“voteid“, voteid); cmd.parameters.addwithvalue(“voyename“, voyename); cmd.parameters.addwithvalue(“sum“, sum); ocon.open(); cmd.executenonquery(); ocon.close(); 3.6 数据库表设计 我们设计了四个表,分别是用户表(yonghu),投票表 1(vote1) ,投票表 2(vote2),isvote 表。 用户表(yonghu) 在用户注册时,用于存储“用户名” , “密码” , “权限”等信息。 投票表 1(vote1) 存储投票相关信息如:“候选人编号” , “候选人名字” , “得票总数” 。 投票表 2(vote2) 存储投票相关信息如:“候选人编号” , “候选人名字” ,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风电塔筒水性面漆项目可行性研究报告
- 防火隔离带项目可行性研究报告
- 电容储能技术项目可行性研究报告
- 2026年高考语文总复习文言文专题-教师版-古代文化常识(复习讲义)
- 投资与资产管理公司合同付款管理办法
- 新材料产业市场前景预测
- 美食文化节市场推广方案
- 防护知识培训内容课件
- 企业施工合同8篇
- 环卫公司劳动合同3篇
- 2025年度全国保密教育线上培训考试题库及答案(完整版)
- 预防交通事故知识培训课件
- 题型专攻:平行线分线段成比例【八大题型】(原卷版)
- 个人车辆租车合同4篇
- 宠物洗澡美容免责协议书
- 2025-2026学年广美版(2024)小学美术三年级上册教学计划及进度表
- 二手乐器平台竞争格局-洞察及研究
- 教科版(2024)九年级上册物理教学计划含进度表
- 2025-2026人教版(2024)八年级上册英语教学计划 (三篇)
- 2025年南京市事业单位招聘考试卫生类预防医学专业知识试题
- 送气工配送管理制度
评论
0/150
提交评论