选举系统-我不发出来难受!
选举系统-是个作业,我发出来给大家看看,不过大家评论是好是坏,只要给点评论就好!哥现在需要点动力,无论是鼓励还是批评!题目要求:
题目:选举统计程序
一、要求:
1、功能描述:有一个班采用民主投票方法推选班长,班长候选人共4位,每个人姓名及代号分别为 张三 1,李四 2,王五 3,刘六 4。程序操作员将每张选票上所填的代号(1、2、3、或4)循环输入电脑,输入数字0结束输入,然后将所有候选人的得票情况显示出来,并显示最终当选者的信息。
2、具体要求如下:
(1)要求用面向对象方法,编写候选人类Candidate,将候选人姓名、代号和票数保存到类Candidate(候选人类)中,并实现相应属性;
(2)编写主程序class OneTest(请考试学员统一使用主类名称:OneTest);
(3)输入数据之前,显示出各位候选人的代号及姓名:(提示:建立一个候选人类型数组);
(4)循环执行接收键盘输入的班长候选人代号,直到输入的数字为0,结束选票的输入工作;
(5)在接收每次输入的选票后要求验证该选票是否有效,即:如果输入的数不是0,1,2,3,4这5个数字之一,或者输入一串字母(捕捉异常),应显示出错误提示信息:此选票无效,请输入正确的候选人代号!并继续等待输入;
(6)输入结束后显示所有候选人的得票情况;
(7)输出最终当选者的相关信息,如图所示。
(8)建议用函数实现获得最终当选候选人的功能(提示:以候选人数组为参数,返回类型为:候选人类型)
DaoHang.cs
程序代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Xuanju { class DaoHang { public void prinfdaohang() //显示导航信息 { Console.WriteLine("\n\n=================!!输入8结束整个程序!!=================================="); Console.WriteLine("="); Console.WriteLine("= ㊣━━^-^oo^-^━━㊣ ㊣━━^-^oo^-^━━㊣ ㊣━━^-^oo^-^━━㊣"); Console.WriteLine("= ┃5:精简版 ┃ ┃6:完整版 ┃ ┃7:查看帮助 ┃"); Console.WriteLine("= ┃ ┃ ┃ ┃ ┃ ┃"); Console.WriteLine("= ㊣━━^-^oo^-^━━㊣ ㊣━━^-^oo^-^━━㊣ ㊣━━^-^oo^-^━━㊣"); Console.WriteLine("="); Console.WriteLine("=================!!请选择序号进入!!=====================================\n\n"); Console.WriteLine(); } } }
HouXuan.cs
程序代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Xuanju { class HouXuan { private int bianhao; //候选人编号 public int BianHao { get { return bianhao; } set { bianhao = value; } } private string name; //候选人姓名 public string Name { get { return name; } set { name = value; } } private int depiao; //得票数 public int DePiao { get { return depiao; } set { depiao = value; } } public void prinfhx() { Console.WriteLine("*******************"); Console.WriteLine("编号:{0}",this.bianhao); Console.WriteLine("姓名:{0}\n\n",this.name); Console.WriteLine("得票数:{0}",this.depiao); Console.WriteLine("*******************"); } } }
TouPiao.cs
程序代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Xuanju { class TouPiao { public static int tprs; //投票人数 } }
Program.cs
程序代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Xuanju { class Program { static void Main(string[] args) { #region 调用导航 DaoHang d = new DaoHang(); //实例化导航 while (true) //导航的while循环开始 { d.prinfdaohang(); //显示导航信息 int dhxh = Int32.Parse(Console.ReadLine()); //定义导航序号 #endregion #region 精简版程序入口 if (dhxh == 5) //如果输入的是5则进入精简版的选举程序 { #region 欢迎界面 Console.WriteLine("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"); Console.WriteLine(" 欢迎使用精简版!"); Console.WriteLine("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"); #endregion //显示精简版选举程序的欢迎界面 #region 实例化候选人 HouXuan h1 = new HouXuan() { Name = "张三", BianHao = 1 }; HouXuan h2 = new HouXuan() { Name = "李四", BianHao = 2 }; HouXuan h3 = new HouXuan() { Name = "王五", BianHao = 3 }; HouXuan h4 = new HouXuan() { Name = "赵六", BianHao = 4 }; #endregion //实例化候选人:张三李四王五赵六 #region 显示候选人初始信息 Console.WriteLine("候选人信息如下:"); h1.prinfhx(); h2.prinfhx(); h3.prinfhx(); h4.prinfhx(); #endregion #region 选举循环开始 while (true) { Console.WriteLine("请输入候选人编号(1-4,按0键结束投票)进行投票:"); int hxbh = Int32.Parse(Console.ReadLine()); //输入候选编号 if (hxbh == 1) //如果输入的序号等于相应的候选人序号时 { h1.DePiao++; //相应的候选人得票数将加1 } if (hxbh == 2) { h2.DePiao++; } if (hxbh == 3) { h3.DePiao++; } if (hxbh == 4) { h4.DePiao++; } if (hxbh < 0 || hxbh > 4) //如果输入的序号超出范围则输出错误信息并提示重新输入 { Console.WriteLine("输入错误请重新输入候选人编号:"); } if (hxbh == 0) //如果输入的候选人序号=0的话则循环结束 break; } #endregion #region 得票数最大值判断 //得票数最大值判断 //将每个候选人的最终得票数放入一个数组中 int[] arr = new int[4] { h1.DePiao, h2.DePiao, h3.DePiao, h4.DePiao }; //将此数组中的最大值付给变量max int max = arr.Max(); #endregion #region 结果公布 //结果公布: Console.WriteLine("\n"); Console.WriteLine("选举结果公布:"); //显示所有候选人的得票结果 h1.prinfhx(); h2.prinfhx(); h3.prinfhx(); h4.prinfhx(); #region 判断是否得票数相等 //如果投票结束后,结果出现票数相等的情况酒返回导航界面 if (h1.DePiao == h2.DePiao || h1.DePiao == h3.DePiao || h1.DePiao == h4.DePiao) { Console.WriteLine("候选人得票结果有相等情况!即将返回主界面^^^^^^"); } #endregion else { Console.WriteLine("\n=====================================\n"); //判断如果max的值等于相应候选人的得票数,就输出相应候选人的信息! if (max == h1.DePiao) { Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h1.Name, h1.DePiao, h1.BianHao); Console.WriteLine("恭喜{0}获得班长职位!", h1.Name); } if (max == h2.DePiao) { Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h2.Name, h2.DePiao, h2.BianHao); Console.WriteLine("恭喜{0}获得班长职位!", h2.Name); } if (max == h3.DePiao) { Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h3.Name, h3.DePiao, h3.BianHao); Console.WriteLine("恭喜{0}获得班长职位!", h3.Name); } if (max == h4.DePiao) { Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h4.Name, h4.DePiao, h4.BianHao); Console.WriteLine("恭喜{0}获得班长职位!", h4.Name); } } #endregion } #endregion #region 完整版程序入口 if (dhxh == 6) //如果输入的导航序号=6的话就进入完整版的投票程序 { #region 欢迎界面 Console.WriteLine("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"); Console.WriteLine(" 欢迎使用完整版!"); Console.WriteLine("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"); TouPiao t = new TouPiao(); Console.WriteLine("请输入参与投票人数:"); TouPiao.tprs = Int32.Parse(Console.ReadLine()); //投票人数 int xhcs = TouPiao.tprs; //将输入的投票人数的值赋给xhcs(循环次数),此变量的定义用于计算参加投票的实际人数! #endregion #region 实例化候选人 //实例化候选人并赋予各自编号 HouXuan h1 = new HouXuan(); h1.BianHao = 1; HouXuan h2 = new HouXuan(); h2.BianHao = 2; HouXuan h3 = new HouXuan(); h3.BianHao = 3; HouXuan h4 = new HouXuan(); h4.BianHao = 4; Console.WriteLine("请输入第一个候选人的姓名:"); h1.Name=(Console.ReadLine()); Console.WriteLine("请输入第二个候选人的姓名:"); h2.Name = (Console.ReadLine()); Console.WriteLine("请输入第三个候选人的姓名:"); h3.Name = (Console.ReadLine()); Console.WriteLine("请输入第四个候选人的姓名:"); h4.Name = (Console.ReadLine()); #endregion #region 显示候选人初始信息 Console.WriteLine("候选人信息如下:"); h1.prinfhx(); h2.prinfhx(); h3.prinfhx(); h4.prinfhx(); #endregion #region 选举循环开始 while (xhcs != 0) //循环的条件是:变量xhcs的值不等于0 { Console.WriteLine("请输入候选人编号(1-4,按0键结束投票)进行投票:"); int hxbh = Int32.Parse(Console.ReadLine()); //输入候选编号 if (hxbh == 1) //如果输入的序号等于相应的候选人序号时 { h1.DePiao++; //相应的候选人得票数将加1 xhcs--; } if (hxbh == 2) { h2.DePiao++; xhcs--; } if (hxbh == 3) { h3.DePiao++; xhcs--; } if (hxbh == 4) { h4.DePiao++; xhcs--; } if (hxbh < 0 || hxbh > 4) { Console.WriteLine("输入错误请重新输入候选人编号:"); } if (hxbh == 0) break; } #endregion #region 得票数最大值判断 //得票数最大值判断 int[] arr = new int[4] { h1.DePiao, h2.DePiao, h3.DePiao, h4.DePiao }; int max =arr.Max(); #endregion #region 结果公布 //结果公布: Console.WriteLine("\n"); Console.WriteLine("选举结果公布:"); h1.prinfhx(); h2.prinfhx(); h3.prinfhx(); h4.prinfhx(); #region 判断是否得票数相等 if (h1.DePiao == h2.DePiao || h1.DePiao == h3.DePiao || h1.DePiao == h4.DePiao) { Console.WriteLine("候选人得票结果有相等情况!即将返回主界面^^^^^^"); } #endregion else { Console.WriteLine("\n=====================================\n"); Console.WriteLine("\n ●输入的投票人数为:{0}\n", TouPiao.tprs); Console.WriteLine(" ●实际参加投票的人数为:{0}", TouPiao.tprs - xhcs); if (max == h1.DePiao) { Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h1.Name, h1.DePiao, h1.BianHao); Console.WriteLine("恭喜{0}获得班长职位!\n", h1.Name); Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); } if (max == h2.DePiao) { Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h2.Name, h2.DePiao, h2.BianHao); Console.WriteLine("恭喜{0}获得班长职位!\n", h2.Name); Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); } if (max == h3.DePiao) { Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h3.Name, h3.DePiao, h3.BianHao); Console.WriteLine("恭喜{0}获得班长职位!\n", h3.Name); Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); } if (max == h4.DePiao) { Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); Console.WriteLine("获得票数最多的是:{0},所得票数是:{1},所属编号是:{2}", h4.Name, h4.DePiao, h4.BianHao); Console.WriteLine("恭喜{0}获得班长职位!\n", h4.Name); Console.WriteLine("㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣㊣\n"); } } #endregion } #endregion #region 查看帮助 if (dhxh == 7) { BangZhu b = new BangZhu(); b.prinfhelp(); } #endregion #region 输入导航序号错误处理 if (dhxh < 5 || dhxh > 8) { Console.WriteLine("您的选择有错误!"); } #endregion #region 输入8导航结束 if (dhxh == 8) { Console.WriteLine("谢谢使用!祝您快乐!再见O(∩_∩)O~!"); break; } #endregion }//此花括号为导航的while循环的末花括号,请勿删除! Console.ReadLine(); } } }
最终程序:
最终程序.rar
(4.14 KB)
//运行程序时,需要安装.netfromwork4.0版本,下载地址:http://www.VS2010项目代码:
Xuanju.rar
(37.46 KB)
图============================================================================
[ 本帖最后由 chtml小兵 于 2011-10-6 18:09 编辑 ]