| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2593 人关注过本帖, 1 人收藏
标题:选举系统-我不发出来难受!
只看楼主 加入收藏
chtml小兵
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:126
专家分:314
注 册:2011-10-3
结帖率:63.64%
收藏(1)
已结贴  问题点数:10 回复次数:21 
选举系统-我不发出来难受!
选举系统-是个作业,我发出来给大家看看,不过大家评论是好是坏,只要给点评论就好!哥现在需要点动力,无论是鼓励还是批评!

题目要求:

题目:选举统计程序


一、要求:
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 编辑 ]
搜索更多相关主题的帖子: 候选人 
2011-10-06 17:56
jeanine123
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:65
专家分:192
注 册:2011-9-17
收藏
得分:2 
好复杂啊,看看。
2011-10-06 18:29
小小博士
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2011-10-6
收藏
得分:2 
第5条貌似是让抛出个异常。
2011-10-06 18:52
one_june
Rank: 4
等 级:业余侠客
帖 子:139
专家分:212
注 册:2010-3-14
收藏
得分:2 
判断 精简版 和 完整版 为什么不用 if...(else if...)
2011-10-06 23:38
chtml小兵
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:126
专家分:314
注 册:2011-10-3
收藏
得分:0 
这个程序做出来很多地方都和题目要求的不一样,如果谁能把这题完整的做一次并做的很完美的话。他就已经完美掌握了c#基础了。可以向高级编程方面发展了。

做个程序员吧,在里面找到万千对象~~~~~~
百名书阁(bmbook.5d6d)__最全IT图书免费下载中心
net图书资料/软件工具大全____免费!!!
各种编程语言教程应有尽有
2011-10-08 13:46
仲子陵
Rank: 2
等 级:论坛游民
帖 子:37
专家分:10
注 册:2011-6-1
收藏
得分:2 
我觉得精简版和完整版,帮助应该写在不同的类里面或用不同的方法,再另外定义一个类或者方法来选择版本。
在程序的主入口只需实列化对象,并调用放过就可以了,程序的主入口不用写的那么复杂的
2011-10-11 22:56
冲冲走过
Rank: 2
等 级:论坛游民
帖 子:69
专家分:72
注 册:2011-10-2
收藏
得分:2 
挺给力 支持你
2011-10-12 15:13
liulei1234
Rank: 2
等 级:论坛游民
帖 子:32
专家分:24
注 册:2011-5-31
收藏
得分:0 
so easy
2011-11-06 23:14
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
写的不错  学习一下

Discuz!  
好好学习  天天向上
2011-11-07 10:25
zzqqrr
Rank: 6Rank: 6
来 自:299294817
等 级:侠之大者
威 望:1
帖 子:155
专家分:408
注 册:2011-6-11
收藏
得分:0 
en,是不错,这个类用的不错,我不会用啊,看来要学习一下了

59izk,com神奇百货,神奇百货网官网,shenqi,一个神奇的导购站!!
2011-11-07 21:42
快速回复:选举系统-我不发出来难受!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050538 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved