吕梁学院《》课程设计说明书设计题目:指导老师:学生学号:学生姓名:同组人:时间:2014 年月日摘要关键词:目录摘要 (I)第1章设计目的 (1)1.1设计目的 (1)第2章总体设计 (2)2.1程序设计组成框图 (2)2.2流程图 (2)2.3关系图 (2)2.4数据库分析与设计 (2)第3章详细设计 (3)3.1模块功能说明 (3)3.2登录模块 (3)3.3投票模块 (3)3.4排序模块 (3)3.5系统设置模块 (3)3.6数据库表设计 (3)第4章系统实现 (4)4.1录入模块 (4)4.2投票模块 (4)4.3排序模块 (4)4.4系统设置模块 (4)结束语 (5)附录A: 主要源程序 (7)1.1 设计目的2.1程序设计组成框图2.2流程图2.3关系图2.4数据库分析与设计3.1 模块功能说明系统包括大模块,3.2 登录模块3.3 投票模块3.4 排序模块3.5 系统设置模块3.6 数据库表设计第4章系统实现4.1录入模块4.2 投票模块4.3排序模块4.4系统设置模块结束语(心得体会)参考文献:[01]闫洪亮程序设计案例教程[M]:北京.北京大学出版社. 2010.1[02]郝兴伟.Web程序设计[M]:北京.中国水利水电出版社. 2008附录A: 主要源程序网上投票系统源程序(1)Dal层public static OleDbConnection createCon = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" + System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Vote.mdb"));public DataTable GetDataTable(string SQL){DataTable dt = new DataTable();openconn();OleDbDataAdapter da = new OleDbDataAdapter(SQL, createCon);da.Fill(dt);da.Dispose();closeconn();return dt;}public DataTable GetDataTable(string Sql, OleDbParameter[] Paramerters){DataTable dt = new DataTable();openconn();OleDbCommand cmd = new OleDbCommand(Sql, createCon);cmd.Parameters.AddRange(Paramerters);OleDbDataAdapter da = new OleDbDataAdapter(cmd);da.Fill(dt);cmd.Dispose();closeconn();return dt;}#region控制conn的链接和关闭internal void closeconn(){if (createCon.State == ConnectionState.Open){ createCon.Close(); }}internal void openconn(){if (createCon.State == ConnectionState.Closed){try{ createCon.Open(); }catch{throw new Exception("没有找到数据文件");}}}#endregionpublic void ExecuteNonQuery(string OleDb){openconn();OleDbCommand cmd = new OleDbCommand(OleDb, createCon);cmd.ExecuteNonQuery();cmd.Dispose();closeconn();}public void ExecuteNonQuery(string SQL, OleDbParameter[] Paramerters){openconn();OleDbCommand cmd = new OleDbCommand(SQL, createCon);cmd.Parameters.AddRange(Paramerters);cmd.ExecuteNonQuery();closeconn();}public void ExecuteNonQueryNOClose(string SQL, OleDbParameter[] Paramerters){OleDbCommand cmd = new OleDbCommand(SQL, createCon);cmd.Parameters.AddRange(Paramerters);cmd.ExecuteNonQuery();}(2)LoginDal dal = new Dal();protected void ImageButton1_Click(object sender, ImageClickEventArgs e){string sql = "SELECT PWD from StudentInfo where StudentName=@Code and Type=@type";OleDbParameter[] Parameter = { new OleDbParameter("@Code", OleDbType.VarChar, 50),new OleDbParameter("@type", OleDbType.Integer, 4)};Parameter[0].Value = this.TextBox1.Text.Trim();Parameter[1].Value = 1;DataTable dt = dal.GetDataTable(sql, Parameter);if (dt.Rows.Count == 0){Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "alert('此帐号不存在!请先注册用户!');", true);return;}if (this.TextBox2.Text.Trim() != dt.Rows[0][0].ToString()){Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "alert('密码不正确!请重新登录!');", true);return;}HttpCookie cook = new HttpCookie("UserCode", this.TextBox1.Text.Trim());Response.Cookies.Add(cook);Response.Redirect("../Vote/Vote.aspx");}(3)SetsDal dal = new Dal();protected void Button1_Click(object sender, EventArgs e){int ID=0,num = 0, mustNum = 0;try{if (TextBox1.Text != ""){string str = "select * from VoteInfo where VoteContent='" +DropDownList1.SelectedValue.ToString() + "'";DataTable dt = dal.GetDataTable(str);foreach (DataRow dr in dt.Rows){ID = int.Parse (dr["ID"].ToString());}string insert = "insert into VoteRes(VoteID,CanName,Num) values(" +ID + ",'" +this.TextBox1.Text + "'," + 0 + ")";dal.ExecuteNonQuery(insert);Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "alert('添加成功!');", true);Response.Redirect("CanAdd.aspx");}else { Response.Write("<script>alert(\"不能为空! ! !\")</script>"); }}catch{Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "alert('添加失败!');", true);}}(4)V oteDal dal = new Dal();protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){string sql = "select ID,VoteContent,MustNum from VoteInfo";DataTable dt = dal.GetDataTable(sql);TreeNode tn = new TreeNode("正在进行的选票活动");foreach (DataRow dr in dt.Rows){TreeNode tnc = new TreeNode();tnc.Text = dr["VoteContent"].ToString();tnc.Value = dr["ID"].ToString() + "," + dr["MustNum"].ToString();tn.ChildNodes.Add(tnc);}this.TreeView1.Nodes.Add(tn);}}protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e){if (this.TreeView1.SelectedNode == null)return;this.Button1.Enabled = true;bel1.Text = this.TreeView1.SelectedNode.Text;bel2.Text = this.TreeView1.SelectedNode.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[1].Trim();string sql = "select ID,CanName from VoteRes where VoteID=" +this.TreeView1.SelectedNode.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();DataTable dt = dal.GetDataTable(sql);this.CheckBoxList1.DataTextField = "CanName";this.CheckBoxList1.DataValueField = "ID";this.CheckBoxList1.DataSource = dt;this.CheckBoxList1.DataBind();}protected string UserCode(){try{HttpCookie cook = Request.Cookies["UserCode"];if (cook == null)Response.Redirect("../Login/Login.aspx");return cook.Value;}catch{Response.Redirect("../Login/Login.aspx");return string.Empty;}}protected void Button1_Click(object sender, EventArgs e){string idlist = string.Empty;for (int i = 0; i < this.CheckBoxList1.Items.Count; i++){if (this.CheckBoxList1.Items[i].Selected)idlist += "'" + this.CheckBoxList1.Items[i].Text + "',";}if (idlist.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Length.ToString() !=bel2.Text.Trim()){Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "alert('投票不合规测!');", true);return;}string sql = "select 1 from VoteLog where Vote=" + this.TreeView1.SelectedNode.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();sql += " and UserName='" + UserCode().Trim() + "'";DataTable dt = dal.GetDataTable(sql);if (dt.Rows.Count > 0){Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "alert('你已经投过票了!');", true);return;}sql = "update VoteRes set Num=Num+1 where VoteID=" +this.TreeView1.SelectedNode.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[0].Trim();sql += " and CanName in(" + idlist.Trim(',') + ")";dal.ExecuteNonQuery(sql);sql = "insert into VoteLog(UserName,Vote,VoteTime)values('" + UserCode() + "'," +this.TreeView1.SelectedNode.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[0].Trim() + ",'" + System.DateTime.Now + "')";dal.ExecuteNonQuery(sql);Page.ClientScript.RegisterStartupScript(this.GetType(), "sss", "alert('投票成功!');", true);}(5)ResultDal dal = new Dal();protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){string sql = "select ID,VoteContent,MustNum from VoteInfo";DataTable dt = dal.GetDataTable(sql);TreeNode tn = new TreeNode("选票活动类型");foreach (DataRow dr in dt.Rows){TreeNode tnc = new TreeNode();tnc.Text = dr["VoteContent"].ToString();tnc.Value = dr["ID"].ToString() + "," + dr["MustNum"].ToString();tn.ChildNodes.Add(tnc);}this.TreeView1.Nodes.Add(tn);}}protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e){if (this.TreeView1.SelectedNode == null)return;bel1.Text = this.TreeView1.SelectedNode.Text;string sql = "select VoteID,CanName,Num from VoteRes where VoteID=" +this.TreeView1.SelectedNode.Value.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)[0].Trim() +" order by Num desc";DataTable dt = dal.GetDataTable(sql);this.GridView1.DataSource = dt;//this.GridView1 .SortDirection="desc";//dt.DefaultView.Sort = "Num AESC";this.GridView1.DataBind();}。