选举系统-我不发出来难受!
选举系统-是个作业,我发出来给大家看看,不过大家评论是好是坏,只要给点评论就好!哥现在需要点动力,无论是鼓励还是批评!题目要求:
题目:选举统计程序
一、要求:
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();
}
}
}最终程序:
VS2010项目代码:
图============================================================================
[ 本帖最后由 chtml小兵 于 2011-10-6 18:09 编辑 ]





写的不错 学习一下