网上投票系统 (2)_第1页
网上投票系统 (2)_第2页
网上投票系统 (2)_第3页
网上投票系统 (2)_第4页
网上投票系统 (2)_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机网络综合实训课程设计报告信息工程学院题目:网上投票系统1. 概述随着Internet的普及,人们越来越依靠网络技术来构架自己的Web网站或者企业的门户网站以实现各种业务和功能,进行网上营销、交流和宣传。互联网已经逐渐地在改变着社会和人们的工作、生活方式以及传统销售方法和管理方式。网上投票系统的开发可以更好的把市场的信息更准确更快速的反馈给客户,使信息的来源更广泛,从而提高信息的准确性。运用此系统可以降低企业为市场调查而消耗的人力和物力,利用节省的资源提高产品的质量,增强竞争力。一个网站不断发展的前提就是众多用户的支持,一个好的网站一定要注意与用户之间信息的交流。能够有效得到用户反馈的信息

2、,并及时对网站内容进行改进,这也是一个网站持续发展的基础。也正是由于以上原因,网络上各式各样的投票系统层出不穷。网络在线投票是目前网上比较常见的一个功能,利用此功能可以提直接在互联网上直接投票,并及时查看投票结果。利用此系统,用户投票比较方便还可以查看并分析投票结果,从中获得对自己有用的信息。2. 系统需求分析2.1系统总体需求分析此投票系统是模拟平时选举先进的方式(如从10人中选举3名先进人员。得票多者当选)。该系统要求至少有四个页面:分别为登录页面,投票页面,统计投票结果页面,系统设置页面等。该系统需要的数据库由自己设计并建立。登录页面主要是确定投票人身份和投票资格,防止重复投票。投票网页

3、:有所有候选人列表(至少10人),有必要的投票说明和要求,如只能选几人(由系统设置),如选3人,选定3人后,网上提交。多选和少选都不能提交,要给出提示。某用户网上投票后,再次进入系统时不能再投票。获得投票统计结果网页:投票完毕后,可通过该网页获得投票统计结果,按得票多少排列投票结果名单。要求只有系统管理员(投票组织者)才能调用该网页。2.2开发的可行性分析1. 技术可行性 :(1)操作系统: Windows XP 及以上服务器版本;(2)数据库管理系统:Microsoft Access 2003; (3)编程工具:编程软件为 Visual Studio 2005,编程语言选用 C#。2. 操作

4、可行性:本在线投票系统的用户只需懂得运用互联网络者均可以使用,此系统在网站中的使用频度预计非常的频繁;该系统属于实用型网站,需要对数据的处理,比如对投票票数的统计并把结果反馈给投票者,故对数据的及时更新要求较高,保证数据的真实性。该系统在任何操作系统下都可以运行,但必须装有 Microsoft Access 2003数据库。该系统的操作包括:多选投票、删除投票人、添加投票人、修改投票人信息查看投票结果、增加候选人、删除候选人。 多选投票:用户只能从多个选项中选取定项进行投票。 添加投票人:管理员对大学生进行添加。 删除投票人:管理员对大学生进行删除。修改投票人信息:对投票人信息进行修改。增加候

5、选人:管理员对候选人进行添加。删除候选人;管理员对候选人进行删除。查看投票结果:投票者和管理者查看投票结果。3. 总体设计3.1程序设计流程图登陆页面用户登录管理员登录登录录登录投票投票结果管理用户投票结果添加和管理投票主题 退出主页图3-1 程序设计流程图3.2普通用户流程图 网上投票系统普通用户用户注册提交投票查看投票结果创建图3-2 普通用户流程图3.3数据库分析与设计此系统中包含俩张表:admin表、shxs表包含的字段:id(编码):用于唯一识别用户,用户不可以重复。name(用户名):用户的代号。pwd(密码):用户登录系统的密码。qx(权限):权限有两种:“管理员”和“普通用户”

6、,系统根据权限来现在不同用户的操作。pand(是否投票):用于判断用户能否进行投票,此属性的值有两个:0和1,“0”表示可以进行投票,“1”表示可以投票,管理员的类型和已经投票用户的类型都为“1”。图3-3-1 admin表的设计图3-3-2 admin表的内容shxs表(三好学生表)包含的字段:sname(学生姓名):候选人的姓名信息。sid(学生编码):用于唯一标识候选学生。count(得票数):某一候选人的得票数。bj(备注):对候选人信息进行备注。图3-3-3 shxs表的设计图3-3-4 shxs表的内容4. 详细设计4.1模块功能说明本系统共有4个模块:登录模块、投票模块、结果输出

7、模块、系统管理模块。每个系统的用户都需要登录系统才能实现功能。对于没有用户名的用户还提供给了注册功能。管理员对系统进行总体管理,可以添加用户、更改权限、新增候选人等,用户进行投票后可以看到总的结果,管理员也可以查看投票的最终结果。4.2登录模块4.2.1验证用户身份本系统包含两类用户:管理员和普通用户。两类用户拥有的权限不同,因此可以操作的页面也不同,并且为了安全,系统应该验证用户的身份。图4-2-1 验证用户信息4.2.2验证用户身份本系统由于是站在学校的投票系统的角度设计的,所以注册不能由任何学生自行注册,必须由管理员添加用户。图4-2-2填写注册信息4.3投票模块4.3.1用户投票模块1

8、、显示要投票的内容。图4-3-1-1投票页面2、用户投票,并将结果写入数据库,然后再显示投票的结果。每个用户投票一次,每次只能投三张票,多选、少选都有提示信息。图4-3-1-2 少选的提示信息图4-3-1-3 多选的提示信息4.3.2显示投票结果在用户投票之后,若用户正确投票则会自动显示总的投票结果。此页面使用了数据源控件,显示在GridView控件里面。图4-3-2-1显示投票结果4.4输出结果模块管理员登录后可以查看当前的投票结果,此功能是由Gridview代码实现的,单击票数可以按票数多少排序。图4-4显示投票最终结果4.5系统设置模块4.5.1用户权限在数据库中设置了一个判断值,通过此

9、值来判断用户是否有权投票。字段为“pand”,若此值为0则可以投票,若此值为1则不允许投票。若用户投票后,系统自动将用户的字段值改为1。4.5.2用户投票限制每个用户只允许投票3票。4.5.3选项设置管理员可以通过页面直接对候选人信息进行编辑,并新增候选人。图4-5-3管理候选人信息4.5.3新增候选人管理员可以新增候选人。5.系统实现5.1数据库的操作此系统中对数据库的操作是通过类来实现的。我们编写了类“DB”,类里包含有链接数据库的方法creatcon,用于之后页面的数据库连接。 public class DBpublic DB() public static OleDbConnectio

10、n createcon() return new OleDbConnection("Provider=Microsoft.Jet.OleDB.4.0;" + "Data Source=F:网上投票系统DB_vote.mdb");5.2数据库的操作此系统共有9个页面,其中8个页面运用了模板页,运用母版页不仅可以节省开发时间,而且可以实现网站的统一,使外观更加美观。在母版页中添加的信息完全可以显示在每个调用模板页的页面中。图5-2-1 母版页1图5-2-2 母版页25.2站点地图的使用本网站使用了站点地图,达到了导航和页面跳转的目的,使网站的逻辑性更强,更方

11、便用户使用。<?xml version="1.0" encoding="utf-8" ?><siteMap xmlns=" > <siteMapNode url="manage.aspx" title="管理主页" description=""> <siteMapNode url="usermanage.aspx" title="用户管理" description="" ><

12、;siteMapNode url="userchange.aspx" title="新增用户" description="" /></siteMapNode> <siteMapNode url="candimanage.aspx" title="候选人管理" description="" ><siteMapNode url="candichange.aspx" title="新增候选人" descri

13、ption="" /></siteMapNode><siteMapNode url="resultchange.aspx" title="结果投票显示" description="" /> </siteMapNode></siteMap>6. 设计小结经过俩周的时间,在同学和老师的帮助下,基本完成本次课程设计,基本完成了网上投票系统的功能要求。这次大作业给我的最大的印象是:基本知识是一切的根本;架构很重要的,比想像的还要重要;实践比一切空谈和理论更能学到东西。从

14、做这个课程设计开始无论遇到什么困难,我都没有一丝的放弃的念头。在设计过程中一定要慎重,仔细,来不得半点马虎。布局是整个课程设计的中心,考虑要全面,分析彻底。才会为后来的设计打下良好的基础。否则,前功尽弃,甚至不能完成任务。从这次大作业中我也学到了很多,掌握了常用数据库方面的知识,也进一步学习了C#语言, ASP.NET的使用,更重要的是,它不仅培养了我独立思考、动手操作的能力,在各种其它能力上也都有了提高,让我们学会了很多学习的方法。而这是日后最实用的。 在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查调试终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足

15、。 此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就一定能解决问题。7. 主要源程序(1)DB类public class DBpublic DB()/ TODO: 在此处添加构造函数逻辑/ public static OleDbConnection createcon() return new OleDbConnection("Provider=Microsoft.Jet.OleDB.4.0;" + "Data Source=F:网上投票系统DB_vote.mdb"); (2)Loginpu

16、blic partial class _Default : System.Web.UI.Page OleDbConnection con = DB.createcon(); protected void Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) string name = this.TextBox1.Text.ToString(); string pwd = this.TextBox2.Text.ToString(); con.Open(); Ol

17、eDbCommand sqlcom = new OleDbCommand("select * from admin where id='" + name + "' and pwd='" + pwd + "'and qx='"+this .DropDownList1.SelectedValue+"'",con); OleDbDataReader reader = sqlcom.ExecuteReader (); if (this.DropDownList1.Select

18、edIndex = 0) if (reader.Read() Session"name" = reader"name" Response.Redirect("vote.aspx"); else Label3.Text = "您输入错误或没有此权限,请重新输入" else if (this.DropDownList1.SelectedIndex = 1) if (reader.Read() Session"name" = reader"name" Response.Redire

19、ct("manage.aspx"); else Label3.Text = "您输入错误或没有此权限,请重新输入" protected void Button2_Click(object sender, EventArgs e) this.TextBox1.Text = "" this.TextBox2.Text = "" (3)Userchangepublic partial class userchange : System.Web.UI.Page protected void Page_Load(object

20、 sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) OleDbConnection con = DB.createcon(); con.Open(); string sqlcom = "select name from admin where id='" + TextBox1.Text + "'" OleDbCommand com=new OleDbCommand (sqlcom, con); OleDbDataReader rade

21、r=com .ExecuteReader (); if (rader.Read() rader.Close(); Response.Write("<script>alert("该用户已存在!");</script>"); else if (DropDownList1.SelectedIndex = 1) rader.Close(); string sqlstr = "insert into admin (id,name,pwd,qx,pand) values('" + TextBox1.Text + &

22、quot;','" + TextBox5.Text + "','" + TextBox2.Text + "','管理员','1')" OleDbCommand co=new OleDbCommand (sqlstr, con); co.ExecuteNonQuery(); else rader.Close(); string sqlsr = "insert into admin (id,name,pwd,qx,pand) values('" +

23、TextBox1.Text + "','" + TextBox5.Text + "','" + TextBox2.Text + "','普通用户','0')" OleDbCommand cm= new OleDbCommand (sqlsr, con); cm.ExecuteNonQuery(); con.Close(); Response.Write("<script>alert("注册成功!");</script

24、>"); (4) Candichangepublic partial class userchange : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) OleDbConnection con = DB.createcon(); con.Open(); string sqlcom = "select sid from shxs where sid='&

25、quot; + TextBox1.Text + "'or sname='" + TextBox5.Text + "'" OleDbCommand com=new OleDbCommand (sqlcom, con); OleDbDataReader reader=com .ExecuteReader (); if(reader .Read () reader .Close (); Response.Write("<script>alert("该用户编号或姓名已存在!");</scri

26、pt>"); else reader.Close(); string sqlstr = "insert into shxs (sid,sname,bj,count) values('" + TextBox1.Text + "','" + TextBox5.Text + "','" + TextBox4.Text + "','0')" OleDbCommand co=new OleDbCommand (sqlstr, con); co.E

27、xecuteNonQuery(); con.Close(); Response.Write("<script>alert("添加成功!");</script>"); protected void Button2_Click(object sender, EventArgs e) this.TextBox1.Text = "" this.TextBox4.Text = "" this.TextBox5.Text = "" (5)Votepublic partial clas

28、s vote : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e) protected void Button1_Click(object sender, EventArgs e) OleDbConnection con = DB.createcon(); con.Open(); string str = "select pand ,name from admin where name ='" + Session"name" + "'&

29、quot; OleDbCommand com = new OleDbCommand(str, con); OleDbDataReader rader = com.ExecuteReader(); rader.Read(); int k = Convert.ToInt16(rader"pand".ToString(); rader.Close(); if (k = 0) int m = 0; for (int n = 0; n <= this.GridView1.Rows.Count - 1; n+) CheckBox rad = (CheckBox)this.GridView1.Rowsn.FindControl("CheckBox1"); if (rad.Checked) m = m + 1; if (m = 3) for (int i = 0; i <= this.GridView1.Rows.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论