网上投票系统 2.docx
- 文档编号:12364634
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:23
- 大小:1.71MB
网上投票系统 2.docx
《网上投票系统 2.docx》由会员分享,可在线阅读,更多相关《网上投票系统 2.docx(23页珍藏版)》请在冰豆网上搜索。
网上投票系统2
计算机网络综合实训
课程设计报告
信息工程学院
题目:
网上投票系统
1.概述
随着Internet的普及,人们越来越依靠网络技术来构架自己的Web网站或者企业的门户网站以实现各种业务和功能,进行网上营销、交流和宣传。
互联网已经逐渐地在改变着社会和人们的工作、生活方式以及传统销售方法和管理方式。
网上投票系统的开发可以更好的把市场的信息更准确更快速的反馈给客户,使信息的来源更广泛,从而提高信息的准确性。
运用此系统可以降低企业为市场调查而消耗的人力和物力,利用节省的资源提高产品的质量,增强竞争力。
一个网站不断发展的前提就是众多用户的支持,一个好的网站一定要注意与用户之间信息的交流。
能够有效得到用户反馈的信息,并及时对网站内容进行改进,这也是一个网站持续发展的基础。
也正是由于以上原因,网络上各式各样的投票系统层出不穷。
网络在线投票是目前网上比较常见的一个功能,利用此功能可以提直接在互联网上直接投票,并及时查看投票结果。
利用此系统,用户投票比较方便还可以查看并分析投票结果,从中获得对自己有用的信息。
2.系统需求分析
2.1系统总体需求分析
此投票系统是模拟平时选举先进的方式(如从10人中选举3名先进人员。
得票多者当选)。
该系统要求至少有四个页面:
分别为登录页面,投票页面,统计投票结果页面,系统设置页面等。
该系统需要的数据库由自己设计并建立。
登录页面主要是确定投票人身份和投票资格,防止重复投票。
投票网页:
有所有候选人列表(至少10人),有必要的投票说明和要求,如只能选几人(由系统设置),如选3人,选定3人后,网上提交。
多选和少选都不能提交,要给出提示。
某用户网上投票后,再次进入系统时不能再投票。
获得投票统计结果网页:
投票完毕后,可通过该网页获得投票统计结果,按得票多少排列投票结果名单。
要求只有系统管理员(投票组织者)才能调用该网页。
2.2开发的可行性分析
1.技术可行性:
(1)操作系统:
WindowsXP及以上服务器版本;
(2)数据库管理系统:
MicrosoftAccess2003;
(3)编程工具:
编程软件为VisualStudio2005,编程语言选用C#。
2.操作可行性:
本在线投票系统的用户只需懂得运用互联网络者均可以使用,此系统在网站中的使用频度预计非常的频繁;该系统属于实用型网站,需要对数据的处理,比如对投票票数的统计并把结果反馈给投票者,故对数据的及时更新要求较高,保证数据的真实性。
该系统在任何操作系统下都可以运行,但必须装有MicrosoftAccess2003数据库。
该系统的操作包括:
多选投票、删除投票人、添加投票人、修改投票人信息查看投票结果、增加候选人、删除候选人。
多选投票:
用户只能从多个选项中选取定项进行投票。
添加投票人:
管理员对大学生进行添加。
删除投票人:
管理员对大学生进行删除。
修改投票人信息:
对投票人信息进行修改。
增加候选人:
管理员对候选人进行添加。
删除候选人;管理员对候选人进行删除。
查看投票结果:
投票者和管理者查看投票结果。
3.总体设计
3.1程序设计流程图
登陆页面
用户登录
管理员登录
投票
投票结果
管理用户
投票结果
添加和管理投票主题
退出
主页
图3-1程序设计流程图
3.2普通用户流程图
图3-2普通用户流程图
3.3数据库分析与设计
此系统中包含俩张表:
admin表、shxs表包含的字段:
id(编码):
用于唯一识别用户,用户不可以重复。
name(用户名):
用户的代号。
pwd(密码):
用户登录系统的密码。
qx(权限):
权限有两种:
“管理员”和“普通用户”,系统根据权限来现在不同用户的操作。
pand(是否投票):
用于判断用户能否进行投票,此属性的值有两个:
0和1,“0”表示可以进行投票,“1”表示可以投票,管理员的类型和已经投票用户的类型都为“1”。
图3-3-1admin表的设计
图3-3-2admin表的内容
shxs表(三好学生表)包含的字段:
sname(学生姓名):
候选人的姓名信息。
sid(学生编码):
用于唯一标识候选学生。
count(得票数):
某一候选人的得票数。
bj(备注):
对候选人信息进行备注。
图3-3-3shxs表的设计
图3-3-4shxs表的内容
4.详细设计
4.1模块功能说明
本系统共有4个模块:
登录模块、投票模块、结果输出模块、系统管理模块。
每个系统的用户都需要登录系统才能实现功能。
对于没有用户名的用户还提供给了注册功能。
管理员对系统进行总体管理,可以添加用户、更改权限、新增候选人等,用户进行投票后可以看到总的结果,管理员也可以查看投票的最终结果。
4.2登录模块
4.2.1验证用户身份
本系统包含两类用户:
管理员和普通用户。
两类用户拥有的权限不同,因此可以操作的页面也不同,并且为了安全,系统应该验证用户的身份。
图4-2-1验证用户信息
4.2.2验证用户身份
本系统由于是站在学校的投票系统的角度设计的,所以注册不能由任何学生自行注册,必须由管理员添加用户。
图4-2-2填写注册信息
4.3投票模块
4.3.1用户投票模块
1、显示要投票的内容。
图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用户权限
在数据库中设置了一个判断值,通过此值来判断用户是否有权投票。
字段为“pand”,若此值为0则可以投票,若此值为1则不允许投票。
若用户投票后,系统自动将用户的字段值改为1。
4.5.2用户投票限制
每个用户只允许投票3票。
4.5.3选项设置
管理员可以通过页面直接对候选人信息进行编辑,并新增候选人。
图4-5-3管理候选人信息
4.5.3新增候选人
管理员可以新增候选人。
5.系统实现
5.1数据库的操作
此系统中对数据库的操作是通过类来实现的。
我们编写了类“DB”,类里包含有链接数据库的方法creatcon,用于之后页面的数据库连接。
publicclassDB
{
publicDB()
{
}
publicstaticOleDbConnectioncreatecon()
{
returnnewOleDbConnection("Provider=Microsoft.Jet.OleDB.4.0;"+@"DataSource=F:
\网上投票系统\DB_vote.mdb");
}
5.2数据库的操作
此系统共有9个页面,其中8个页面运用了模板页,运用母版页不仅可以节省开发时间,而且可以实现网站的统一,使外观更加美观。
在母版页中添加的信息完全可以显示在每个调用模板页的页面中。
图5-2-1母版页1
图5-2-2母版页2
5.2站点地图的使用
本网站使用了站点地图,达到了导航和页面跳转的目的,使网站的逻辑性更强,更方便用户使用。
xmlversion="1.0"encoding="utf-8"?
>
6.设计小结
经过俩周的时间,在同学和老师的帮助下,基本完成本次课程设计,基本完成了网上投票系统的功能要求。
这次大作业给我的最大的印象是:
基本知识是一切的根本;架构很重要的,比想像的还要重要;实践比一切空谈和理论更能学到东西。
从做这个课程设计开始无论遇到什么困难,我都没有一丝的放弃的念头。
在设计过程中一定要慎重,仔细,来不得半点马虎。
布局是整个课程设计的中心,考虑要全面,分析彻底。
才会为后来的设计打下良好的基础。
否则,前功尽弃,甚至不能完成任务。
从这次大作业中我也学到了很多,掌握了常用数据库方面的知识,也进一步学习了C#语言,ASP.NET的使用,更重要的是,它不仅培养了我独立思考、动手操作的能力,在各种其它能力上也都有了提高,让我们学会了很多学习的方法。
而这是日后最实用的。
在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查调试终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。
此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就一定能解决问题。
7.主要源程序
(1)DB类
publicclassDB
{
publicDB()
{
//
//TODO:
在此处添加构造函数逻辑
//
}
publicstaticOleDbConnectioncreatecon()
{
returnnewOleDbConnection("Provider=Microsoft.Jet.OleDB.4.0;"+@"DataSource=F:
\网上投票系统\DB_vote.mdb");
}
}
(2)Login
publicpartialclass_Default:
System.Web.UI.Page
{
OleDbConnectioncon=DB.createcon();
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringname=this.TextBox1.Text.ToString();
stringpwd=this.TextBox2.Text.ToString();
con.Open();
OleDbCommandsqlcom=newOleDbCommand("select*fromadminwhereid='"+name+"'andpwd='"+pwd+"'andqx='"+this.DropDownList1.SelectedValue+"'",
con);
OleDbDataReaderreader=sqlcom.ExecuteReader();
if(this.DropDownList1.SelectedIndex==0)
{
if(reader.Read())
{
Session["name"]=reader["name"];
Response.Redirect("vote.aspx");
}
else
{
Label3.Text="您输入错误或没有此权限,请重新输入";
}
}
elseif(this.DropDownList1.SelectedIndex==1)
{
if(reader.Read())
{
Session["name"]=reader["name"];
Response.Redirect("manage.aspx");
}
else
{
Label3.Text="您输入错误或没有此权限,请重新输入";
}
}
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
this.TextBox1.Text="";
this.TextBox2.Text="";
}
}
(3)Userchange
publicpartialclassuserchange:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
OleDbConnectioncon=DB.createcon();
con.Open();
stringsqlcom="selectnamefromadminwhere[id]='"+TextBox1.Text+"'";
OleDbCommandcom=newOleDbCommand(sqlcom,con);
OleDbDataReaderrader=com.ExecuteReader();
if(rader.Read())
{
rader.Close();
Response.Write("");
}
else
{
if(DropDownList1.SelectedIndex==1)
{
rader.Close();
stringsqlstr="insertintoadmin(id,name,pwd,qx,pand)values('"+TextBox1.Text+"','"+TextBox5.Text+"','"+TextBox2.Text+"','管理员','1')";
OleDbCommandco=newOleDbCommand(sqlstr,con);
co.ExecuteNonQuery();
}
else
{
rader.Close();
stringsqlsr="insertintoadmin(id,name,pwd,qx,pand)values('"+TextBox1.Text+"','"+TextBox5.Text+"','"+TextBox2.Text+"','普通用户','0')";
OleDbCommandcm=newOleDbCommand(sqlsr,con);
cm.ExecuteNonQuery();
}
con.Close();
Response.Write("");
}
}
}
(4)Candichange
publicpartialclassuserchange:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
OleDbConnectioncon=DB.createcon();
con.Open();
stringsqlcom="selectsidfromshxswheresid='"+TextBox1.Text+"'orsname='"+TextBox5.Text+"'";
OleDbCommandcom=newOleDbCommand(sqlcom,con);
OleDbDataReaderreader=com.ExecuteReader();
if(reader.Read())
{
reader.Close();
Response.Write("");
}
else
{
reader.Close();
stringsqlstr="insertintoshxs(sid,sname,bj,[count])values('"+TextBox1.Text+"','"+TextBox5.Text+"','"+TextBox4.Text+"','0')";
OleDbCommandco=newOleDbCommand(sqlstr,con);
co.ExecuteNonQuery();
con.Close();
Response.Write("");
}
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
this.TextBox1.Text="";
this.TextBox4.Text="";
this.TextBox5.Text="";
}
}
(5)Vote
publicpartialclassvote:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
OleDbConnectioncon=DB.createcon();
con.Open();
stringstr="selectpand,namefromadminwherename='"+Session["name"]+"'";
OleDbCommandcom=newOleDbCommand(str,con);
OleDbDataReaderrader=com.ExecuteReader();
rader.Read();
intk=Convert.ToInt16(rader["pand"].ToString());
rader.Close();
if(k==0)
{
intm=0;
for(intn=0;n<=this.GridView1.Rows.Count-1;n++)
{
CheckBoxrad=(CheckBox)this.GridView1.Rows[n].FindControl("CheckBox1");
if(rad.Checked)
{
m=m+1;
}
}
if(m==3)
{
for(inti=0;i<=this.GridView1.Rows.Count-1;i++)
{
CheckBoxradio=(CheckBox)this.GridView1.Rows[i].FindControl("CheckBox1");
if(radio.Checked)
{
stringid;
id=GridView1.Rows[i].Cells[1].Text;
OleDbConnectioncoon=DB.createcon();
coon.Open();
stringstrl="updateshxsset[count]=[count]+1wheresid='"+id+"'";
OleDbCommandcomn=newOleDbCommand(strl,coon);
comn.ExecuteNonQuery();
}
}
OleDbCommandcomm=newOleDbCommand("updateadminsetpand=pand+1wherename='"+Session["name"]+"'",con);
comm.ExecuteNonQuery();
con.Close();
Response.Write("");
Response.Redirect("showvote.aspx");
}
if(m<5)
{
Response.Write("");
}
else
{
Response.Write("");
}
}
else
{
Response.Write("");
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上投票系统 网上 投票 系统