基于.Net的三成架构的网上评分系统课程设计

上传人:仙*** 文档编号:135796085 上传时间:2022-08-15 格式:DOC 页数:26 大小:3.08MB
收藏 版权申诉 举报 下载
基于.Net的三成架构的网上评分系统课程设计_第1页
第1页 / 共26页
基于.Net的三成架构的网上评分系统课程设计_第2页
第2页 / 共26页
基于.Net的三成架构的网上评分系统课程设计_第3页
第3页 / 共26页
资源描述:

《基于.Net的三成架构的网上评分系统课程设计》由会员分享,可在线阅读,更多相关《基于.Net的三成架构的网上评分系统课程设计(26页珍藏版)》请在装配图网上搜索。

1、Web技术与开发(ASP.NET)课程设计说明书设 计 题 目: 网上投票系统 指 导 老 师: 学 生 学 号: 学 生 姓 名: 同 组 人: 时 间: 201 年 月 日 摘 要随着网络技术的迅速发展传统的投票方式已经不能满足人们的需要。而网上投票系统除了能够完成传统的功能之外,更具有时效高和范围广的优点更符合现代社会的需要。 网上投票系统的设计是采用ASP.Net和SQL Server2005技术开发的简易投票系统并在用户登陆过程中设置动态验证码提高系统的安全性。它实现了以下功能:投票、结果查看、增加、删除等。本次课程设计首先介绍了网上投票系统的概念及和适用范围。在系统开发环境中主要对

2、ASP、SQL及系统总体设计作了详尽的介绍。接着通过E-R图说明数据库的搭建和数据库的设计。然后介绍了本系统的总体设计包括系统结构和总体功能设计。论文以功能模块图的形式说明了功能的设计并给出了部分核心代码及主要功能界面图。投票系统概括起来就是要通过科学的管理手段和专业化管理技术来实现统一。网上投票系统应具有以下功能:其一方便的操作。原有的手工投票管理基本上是人工操作效率低下,缺乏方便性,在线管理系统运用计算机和其他附加设备,不再需要手工操作基本上是全自动化,能够节省人力、最大限度地利用各种宝贵的资源,大大的提高了效率。 其二友好的界面。友好的用户界面会给人一种亲切感,在使用起来不会觉得繁琐。用

3、户只需在线登陆点击投票而且可以直接点击查看投票的统计结果。 其三强大的功能。后台管理员可以创建、删除、修改投票候选人、并统计投票结果。 本设计正是基于这样的功能要求展开设计的。 本系统的研究内容主要有两部分,具体如下: 1、数据库设计。基于SQL并根据需求进行数据库表的设计。 2、功能模块的实现。主要包括功能界面的设计和后台实现。 本网上投票系统的开发,遵循了自上而下的开发方式,即从整体到局部,从抽象到具体,从概要设计到详细设计,从而体现结构化的设计思想。贯穿开发过程的方法是:瀑布模型、生命周期方法学、面向对象方法的结合。这也是目前较为行之有效的开发方法。 在进行网上投票系统的开发时,用到了许

4、多计算机方面的相关技术,其中也用到了许多新的开发技术和方法,这些也是完成系统开发的关键性技术,最主要的是:ASP技术、三层应用系统框架结构、SQL数据库技术等。关键词: 网上投票系统; ASP; SQL目 录摘 要I第1章 设计目的11.1 设计目的1第2章 总体设计22.1程序设计组成框图22.2流程图42.3关系图52.4数据库分析与设计5第3章 详细设计63.1 模块功能说明63.2 登录模块63.3 投票模块83.4 排序模块123.5 系统设置模块123.6 数据库表设计13第4章 系统实现154.1录入模块154.2 投票模块164.3排序模块174.4系统设置模块18结束语(心得

5、体会)21第1章 设计目的1.1 设计目的网上投票系统的开发可以更好的把市场的信息更准确更快速的反馈给客户,使信息的来源更广泛,从而提高信息的准确性。运用此系统可以降低企业为市场调查而消耗的人力和物力,利用节省的资源提高产品的质量,增强竞争力。一个网站不断发展的前提就是众多用户的支持,一个好的网站一定要注意与用户之间信息的交流。能够有效得到用户反馈的信息,并及时对网站内容进行改进,这也是一个网站持续发展的基础。也正是由于以上原因,网络上各式各样的投票系统层出不穷。网络在线投票是目前网上比较常见的一个功能,利用此功能可以提直接在互联网上直接投票,并及时查看投票结果。利用此系统,用户投票比较方便还

6、可以查看并分析投票结果,从中获得对自己有用的信息。本次课程设计的目的,就是制作一个网上投票系统,该系统可以实现对投票数量进行累加,统计票数等操作。投票网页的基本要求:有所有候选人列表(至少10人),有必要的投票说明和要求,如只能选几人(由系统给予限制),显示后可投票,如选5人,选定5人后,网上提交。多选和少选都不能提交(无效票)。网上投票后,再次进入该网页时该网页不能再投票。每个人不能重复投票。获得投票统计结果网页的基本要求:多人投票完毕后,通过该网页获得投票统计结果,按候选人数排列得票最高的人员名单,如选5人就列出5人得名单。按得票多少排列,显示在屏幕上。要求调入该网页时,必须通过输入登录名

7、和密码后才能显示上述投票结果。第2章 总体设计2.1程序设计组成框图2.1.1.系统主结构图:登录系统管理员页面用户页面用户信息管理主题信息管理查看投票结果选择投票主题查看投票结果2.1.2.子系统结构: (1)用户信息管理:用户信息管理注册用户信息修改用户信息删除用户信息(2)主题信息管理:主题信息管理添加候选人信息删除候选人信息修改候选人信息2.2流程图开始用户登录管理员登录登录登录投票投票结果查看投票结果查看用户信息管理主题信息管理结果显示2.3关系图用户投票投票表1投票表2用户名密码权限候选人编号候选人名字得票总 数候选人编号候选人名字得票总 数2.4数据库分析与设计我们设计了四个表,

8、分别是用户表(yonghu),投票表1(vote1),投票表2(vote2),isvote表。用户表:在用户注册时,用于存储“用户名”,“密码”,“权限”等信息。投票表1:存储投票相关信息如:“候选人编号”,“候选人名字”,“得票总数”。投票表2:存储投票相关信息如:“候选人编号”,“候选人名字”,“得票总数”。Isvote表:存储“用户名”,“向主题1投票”,“向主题2投票”相关信息。数据关系模式用户信息(用户名,密码,权限)投票表1(候选人编号,候选人名字,得票总数)投票表2(候选人编号,候选人名字,得票总数)isvote(userid,isvote1,isvote2)第3章 详细设计3.

9、1 模块功能说明系统包括四大模块:登录模块,投票模块,排序模块,系统设置模块登录模块:该模块分为登录和注册两个小模块。可以实现普通用户和管理员两种身份的登录,普通用户登录后就跳转到用户操作页面,管理员登录后进入管理员操作页面。还可以实现普通用户的注册,管理员不可以注册,但可以对普通用户进行添加、修改、删除。投票模块:该模块可以为两个主题投票,其中一个是多选(不多于5人),另一个是单选。普通用户可以进行投票,管理员不可以投票,可以对投票主题进行管理,即进行对投票的候选人的添加、修改、删除。排序模块:主要用于投票结果的查看,可以对候选人的总得票数,名字等进行排序,可以看到排名前5的候选人名单和得票

10、数,也可以查看所有候选人的得票数,这样便可以直观的看出得票数的高低。系统设置模块:管理员对页面的管理,如可以对普通用户进行添加、修改、删除,也可以对对投票的候选人的添加、修改、删除。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.We

11、b.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) SqlConnection MyConnection = Conn.CreateCon(); MyCo

12、nnection.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。 Sessionuserid = druserid; Sessionpower = drpower; i

13、nt a = Convert.ToInt32(DropDownList1.SelectedValue); int c = Convert.ToInt32(Sessionpower); 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(); /关闭连接 prote

14、cted 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;usi

15、ng System.Data.SqlClient ;public partial class register : System.Web.UI.Page int a; protected void Page_Load(object sender, EventArgs e) a = Convert.ToInt32(Sessionpower); protected void Button1_Click(object sender, EventArgs e) SqlConnection oCon = Conn.CreateCon(); string insertString = INSERT INT

16、O 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

17、(); 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.Collecti

18、ons;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

19、_Load(object sender, EventArgs e) m = (string)(Sessionuserid); n = (int)(Sessionpower); protected void Button1_Click(object sender, EventArgs e) quzhi(); c = (int)(Sessionisvote1); if (n = 0) if (c = 0) for (i = 0; i = this.GridView1.Rows.Count - 1; i+) CheckBox chk = (CheckBox)(this.GridView1.Rowsi

20、.FindControl(checkbox1); if (chk.Checked) d = d + 1; sw(); else Response.Write(alert(您已经投过票!谢谢!);); else Response.Write(alert();); public void sw() /此方法用于检验投票次数 if (d = 0) Response.Write(alert(您还没有投票!);); else if (d 6) for (i = 0; i 5) Response.Write(alert(您的选择超过五人!);); public void db() /投票计数操作,并且将用

21、户投票状态改变 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); string upda

22、testring1 = 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.AddWith

23、Value(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 S

24、qlCommand(strsql2, MyConnection); SqlDataReader dr2 = cm2.ExecuteReader(); dr2.Read(); Sessionisvote1 = dr2isvote1; Sessionisvote2 = dr2isvote2; “你最喜欢的歌手”的评选的具体设计代码如下所示:using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using

25、 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)(Se

26、ssionuserid); n = (int)(Sessionpower); protected void Button1_Click(object sender, EventArgs e) quzhi(); c = (int)(Sessionisvote2); if (n = 0)/如果是普通用户的话,执行下列语句 if (c = 0)/如果没有投票 for (i = 0; i = this.GridView1.Rows.Count - 1; i+)/对选择的对象计数 CheckBox chk = (CheckBox)(this.GridView1.Rowsi.FindControl(che

27、ckbox1); if (chk.Checked) d = d + 1; sw(); else Response.Write(alert(您已经投过票!谢谢!);); else/如果是管理员不能投票 Response.Write(alert(管理员不能投票!);); public void sw() /此方法用于检验投票次数 if (d = 0) Response.Write(alert(您还没有投票!);); else if (d =1) for (i = 0; i = this.GridView1.Rows.Count - 1; i+) for (i = 0; i 1) Response.

28、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 Ca

29、talog=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

30、); 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

31、 = select * from isvote where userid= + m + ; SqlCommand cm2 = new SqlCommand(strsql2, MyConnection); SqlDataReader dr2 = cm2.ExecuteReader(); dr2.Read(); Sessionisvote1 = dr2isvote1; Sessionisvote2 = dr2isvote2; 3.4 排序模块主要用于投票结果的查看,可以对候选人的总得票数,名字等进行排序。该功能是用sqldatasource数据源控件实现的,只要将sortexpression属性设

32、置为要实现排序的字段值即可。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);

33、 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(voyena

34、me, 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); cmd

35、.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); SqlComman

36、d 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表。用户表(yon

37、ghu) 在用户注册时,用于存储“用户名”,“密码”,“权限”等信息。投票表1(vote1) 存储投票相关信息如:“候选人编号”,“候选人名字”,“得票总数”。投票表2(vote2)存储投票相关信息如:“候选人编号”,“候选人名字”,“得票总数”。Isvote表 存储“用户名”,“向主题1投票”,“向主题2投票”相关信息。第4章 系统实现4.1录入模块登录界面:管理员登录后进入的页面:用户登录后进入的页面:注册页面:4.2 投票模块用户投票:4.3排序模块显示投票结果:4.4系统设置模块用户管理页面:候选人管理页面:增加候选人页面:结束语(心得体会)课程设计是培养学生综合运用所学知识,发现,提

38、出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整一个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问

39、题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。通过此次课程设计,使我更加扎实的掌握了有关.net方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。这次课程设计终于顺利完成了,在设计中遇到了问题,最后在老师和同学的辛勤指导下,终于游逆而解。同时,我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!参考文献:01闫洪亮.Asp.Net程序设计案例教程M:北京.北京大学出版社. 2010.102郝兴伟.Web程序设计M:北京.中国水利水电出版社. 2008

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!