网上电子投票系统中服务器端的实现.docx

上传人:b****5 文档编号:6896064 上传时间:2023-01-12 格式:DOCX 页数:24 大小:133.87KB
下载 相关 举报
网上电子投票系统中服务器端的实现.docx_第1页
第1页 / 共24页
网上电子投票系统中服务器端的实现.docx_第2页
第2页 / 共24页
网上电子投票系统中服务器端的实现.docx_第3页
第3页 / 共24页
网上电子投票系统中服务器端的实现.docx_第4页
第4页 / 共24页
网上电子投票系统中服务器端的实现.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

网上电子投票系统中服务器端的实现.docx

《网上电子投票系统中服务器端的实现.docx》由会员分享,可在线阅读,更多相关《网上电子投票系统中服务器端的实现.docx(24页珍藏版)》请在冰豆网上搜索。

网上电子投票系统中服务器端的实现.docx

网上电子投票系统中服务器端的实现

学号:

0120810340631

课程设计

 

课程名称

计算机网络

设计题目

网上电子投票系统中服务器端的实现

班级

0806班

姓名

张军

指导教师

向东

 

2011

6

19

课程设计任务书

学生姓名:

张军专业班级:

计算机0806班

指导教师:

向东工作单位:

计算机科学与技术学院

题目:

网上电子投票系统中服务器端的实现

初始条件:

1.预备内容:

阅读《计算机网络》教材对应章节内容,对在线投票系统功能有深入的理解。

2.实践准备:

掌握一种网页设计语言的使用。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.用Asp等网页设计语言实现网络在线投票系统的设计。

2.设计报告内容应说明:

⑴需求说明;

⑵设计说明;

⑶详细的算法描述;

⑷源程序与执行结果;

⑸自我评价与总结:

1)你认为你完成的设计哪些地方做得比较好或比较出色;

2)什么地方做得不太好,以后如何改正;

3)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);

4)完成本题是否有其他的其他方法(如果有,简要说明该方法);

5)对实验题的评价和改进意见,请你推荐设计题目。

时间安排:

设计安排一周:

周1、周2:

完成程序分析及设计。

周2、周3:

完成程序调试及测试。

周4、周5:

撰写课程设计报告。

 

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

网上电子投票系统中服务器端的

实现

1需求说明

1.1问题描述

应用所学计算机网络课程中的知识,使用一种高级程序设计语言(C++、C#、Java、Delphi)及集成开发平台设计实现网上电子投票系统。

1.2功能简述

1)在设定投票人选、有效时间、投票选项等后即可启动开始正式的投票活动。

2)可实时跟踪投票的最新状态。

3)在投票主界面中,可以看到所有投票的列表信息,可以选择相应投票活动,查看相关信息,并可以对自己发起的投票活动进行提前结束的操作。

2设计说明

2.1数据库设计

网上电子投票系统的数据库名称为:

Vote.mdf,版本为MicrosoftSQLServer2005。

1)在数据库中新建投票问题表V_Item。

该表存放每一个投票问题的信息,

如投票问题标题、开始和结束时间等。

具体设计如表2_1所示:

表2-1投票问题表V_Item

列名

数据类型

允许空

V_ID

Int

V_Title

Nvarchar(50)

V_StartTm

Datetime

*

V_EndTm

Datetime

*

V_IsMul

Bit

*

2)在数据库中新建投票项目表V_Choice。

该表用来存放投票问题下属的具

体投票项目的信息。

如投票选项的标题等。

具体设计如表2-2所示:

表2-2投票项目表V_Choice

列名

数据类型

允许空

Vc_ID

Int

V_ID

Int

Vc_Title

Nvarchar(100)

*

Vc_Count

Int

*

2.2程序设计

本程序是用ASP.NET开发的一个项目,包含了3个界面:

系统主页,投票界面,投票管理界面。

三个界面都分为前台界面设计和后台数据处理的设计。

其中后台数据处理的设计表较复杂,因为,它要和数据库连接以完成对数据的修改和保存,所以,本程序的重点就在后台的处理.

3详细的算法描述

本系统的基本流程图:

4源程序与执行结果

4.1投票首页显示的实现结果与相关代码

4.1.1系统首页

4.1.2前台界面设计Default.aspx代码

网络在线投票系统服务器端的实现

RepeaterID="Repeater1"runat="server">

  • <%#DataBinder.Eval(Container.DataItem,"voitTitle")%>

    id=<%#DataBinder.Eval(Container.DataItem,"voitID")%>">点击投票

    id=<%#DataBinder.Eval(Container.DataItem,"voitID")%>">投票结果

  • Repeater>


    投票管理

    4.1.3后台数据的处理Default.aspx.cs代码

    publicpartialclass_Default:

    System.Web.UI.Page

    {

    protectedvoidPage_Load(objectsender,EventArgse)

    {

    stringstrConn=System.Configuration.ConfigurationManager.ConnectionStrings["WebVoteDBConnString"].ConnectionString;

    SqlConnectionconn=newSqlConnection(strConn);

    conn.Open();

    stringstrSql="SELECTITEM.voitID,ITEM.voitTitle,";

    strSql+="SUM(CHOICE.vochCount)asCFROMVoteItemITEMleftJOINVoteChoiceCHOICE";

    strSql+="ONITEM.voitID=CHOICE.voitIDGROUPBYITEM.voitID,ITEM.voitTitle";

    SqlCommandcomm=newSqlCommand(strSql,conn);

    SqlDataReaderdr=comm.ExecuteReader();

    Repeater1.DataSource=dr;

    Repeater1.DataBind();

    conn.Close();

    }

    }

    4.2增加投票项目的实现结果与相关代码

    4.2.1发起投票的界面

    4.2.2前台界面设计adminvoteadd.aspx代码

    后台管理-录入投票|网络在线投票

    #messtd{

    border-bottom:

    solid1px#666;

    border-left:

    solid1px#666;

    }

    .messtable{

    border-top:

    solid1px#666;

    border-right:

    solid1px#666;

    }

    查看投票  录入投票  管理投票

    20%;">

    录入密码

    60%;">

    TextBoxID="txtPwd"runat="server"Width="120px"TextMode="Password">

    TextBox>

    20%;">

    RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"

    ErrorMessage="*"ControlToValidate="txtPwd">

    RequiredFieldValidator>

    不能为空

    问题标题

    TextBoxID="txtTitle"runat="server"Width="251px">

    TextBox>

    RequiredFieldValidatorID="RequiredFieldValidator2"runat="server"

    ErrorMessage="*"ControlToValidate="txtTitle">

    RequiredFieldValidator>

    不能为空

    问题答案

    TextBoxID="txtContent"runat="server"Height="115px"TextMode="MultiLine"

    Width="251px">

    TextBox>

    RequiredFieldValidatorID="RequiredFieldValidator3"runat="server"

    ControlToValidate="txtContent"ErrorMessage="*">

    RequiredFieldValidator>

    不能为空

    每行一个答案选项。

    投票类型

    RadioButtonListID="rblIsMulti"runat="server"

    RepeatDirection="Horizontal"RepeatLayout="Flow">

    ListItemSelected="True"Value="0">单选

    ListItem>

    ListItemValue="1">多选

    ListItem>

    RadioButtonList>

     

    持续时间:

    RadioButtonListID="rblVoteTime"runat="server"

    RepeatDirection="Horizontal"RepeatLayout="Flow">

    ListItemSelected="True"Value="7">一周

    ListItem>

    ListItemValue="14">二周

    ListItem>

    ListItemValue="30">一个月

    ListItem>

    ListItemValue="365">一年

    ListItem>

    RadioButtonList>

     

     

    ButtonID="btnSubmit"runat="server"Text="提交"onclick="btnSubmit_Click"/>  

    ButtonID="btnReset"runat="server"Text="重置"onclick="btnReset_Click"/>

     

    4.2.3后台数据的处理adminvoteadd.aspx.cs代码

    publicpartialclassadminvoteadd:

    System.Web.UI.Page

    {

    protectedvoidPage_Load(objectsender,EventArgse)

    {

    }

    protectedvoidbtnReset_Click(objectsender,EventArgse)

    {

    txtContent.Text="";

    txtTitle.Text="";

    }

    protectedvoidbtnSubmit_Click(objectsender,EventArgse)

    {

    //权限检查通过web.config里面的设置密码,判断

    if(txtPwd.Text.Trim()==ConfigurationSettings.AppSettings["adminpwd"])

    {

    string[]a;

    stringaa;

    stringstrSqlAddItem;

    stringstrSqlAddChoice;

    stringstrSqlQueryItemID;

    intintItemIDTop=0;

    SqlCommandcommChoice;

    DateTimedtStartTime=System.DateTime.Now;//投票开始时间,默认当前

    DateTimedtEndTime=dtStartTime.AddDays(Convert.ToInt16(rblVoteTime.SelectedItem.Value));//投票结束时间

    intblIsMulti=Convert.ToInt16(rblIsMulti.SelectedItem.Value)==0?

    0:

    1;

    stringstrConn=System.Configuration.ConfigurationManager.ConnectionStrings["WebVoteDBConnString"].ConnectionString;

    SqlConnectionconn=newSqlConnection(strConn);

    conn.Open();

    //增加投票问题

    strSqlAddItem="INSERTINTOVoteItem(voitTitle,voitStartTime,voitEndTime,voitIsMulti)"+

    "VALUES('"+txtTitle.Text.Trim()+"','"+dtStartTime+"','"+dtEndTime+"',"+blIsMulti+")";

    SqlCommandcommItem=newSqlCommand(strSqlAddItem,conn);

    commItem.ExecuteNonQuery();

    strSqlQueryItemID="SELECTTOP1voitIDFROMVoteItemORDERBYvoitIDDESC";

    SqlCommandcommItemID=newSqlCommand(strSqlQueryItemID,conn);

    SqlDataReaderdr=commItemID.ExecuteReader();

    if(dr.Read())

    {

    intItemIDTop=dr.GetInt32(0);

    }

    dr.Close();

    //增加投票选项

    a=txtContent.Text.Split(Convert.ToChar(13));

    for(inti=0;i<=a.Length-1;i++)

    {

    aa=a[i].Trim();

    if(!

    (aa==""))

    {

    strSqlAddChoice="INSERTINTOVoteChoice(voitID,vochTitle)VALUES("+intItemIDTop+",'"+aa+"')";

    commChoice=newSqlCommand(strSqlAddChoice,conn);

    commChoice.ExecuteNonQuery();

    }

    }

    conn.Close();

    Response.Write("alert('投票录入成功。

    ');location.href='voting.aspx?

    id="+intItemIDTop+"';");

    }

    else

    {

    Response.Write("alert('录入密码错误。

    ');location.href='javascript:

    history.go(-1);';");

    }

    }

    }

    4.3投票功能实现结果与代码

    4.3.1实现投票的界面

    4.3.2实现投票界面设计voting.aspx代码

    请投票|网络在线投票

    LabelID="lblTitle"runat="server"Text="">

    Label>

    LabelID="lblTime"runat="server"Text="">

    Label>

    LabelID="lblTip"runat="server"Text="">

    Label>

    RadioButtonListID="rbl"runat="server">

    RadioButtonList>

    CheckBoxListID="cbl"runat="server">

    CheckBoxList>

    ButtonID="btnSubmit"runat="server"Text="提交"onclick="btnSubmit_Click"/>

    ButtonID="btnView"runat="server"Text="查看"onclick="btnView_Click"/>

    查看其他投票

    4.3.3实现投票的后台数据处理voting.aspx.cs代码

    publicpartialclassvoting:

    System.Web.UI.Page

    {

    protectedvoidPage_Load(objectsender,EventArgse)

    {

    if(!

    IsPostBack)

    {

    VotingData();

    }

    }

    ///

    ///投票选项显示

    ///

    privatevoidVotingData()

    {

    stringItemID=Request.QueryString["id"];//投票问题编号

    DateTimeendTime=DateTime.Now;

    boolIsMulti=false;

    ItemID.Replace("'","");//简单处理,屏蔽单引号

    //查询该问题是否存在voitStartTime

    stringstrSql="SELECTvoitID,voitTitle,voitIsMulti,voitEndTimeFROMVoteItemWHEREvoitID="+ItemID;

    stringstrConn=System.Configuration.ConfigurationManager.ConnectionStrings["WebVoteDBConnString"].ConnectionString;

    SqlConnectionconn=newSqlConnection(strConn);

    conn.Open();

    SqlCommandcomm=newSqlCommand(strSql,conn);

    SqlDataReaderdr=comm.ExecuteReader();

    if(dr.Read())

    {

    lblTitle.Text=dr.GetString

    (1);//dr["voitTitle"].ToString();

    IsMulti=dr.GetBoolean

    (2);

    if(dr[3]!

    =DBNull.Value)

    {

    endTime=dr.GetDateTime(3);

    }

    }

    else

    {

    lblTip.Text="对不起,该投票项不存在。

    ";

    }

    dr.Close();

    if(DateTime.Now>endTime)

    {

    lblTip.Text="对不起,该投票已经结束。

    ";

    btnSubmit.Enabled=false;

    cbl.Enabled=false;

    rbl.Enabled=false;

    }

    stringstrSqlChoice="SELECTvochID,vochTitleFROMVoteChoiceWHEREvoitID="+ItemID;

    SqlCommandchComm=newSqlCommand(strSqlCho

    展开阅读全文
    相关资源
    猜你喜欢
    相关搜索

    当前位置:首页 > 成人教育 > 远程网络教育

    copyright@ 2008-2022 冰豆网网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1