抓阄的实例

来源:互联网 发布:战地3枪械数据 编辑:程序博客网 时间:2024/05/18 04:00

using System;
namespace ZhuaJiuNS
{
    public class ZhuaJiu
    {
       
        public static void Main(string[] args)
        {
            string[] namelist=new string[1];
            CreateNamelist(ref namelist);
            string[] afternamelist;
            Zhua(namelist, out afternamelist );
            PrintNameList(afternamelist);

               
        }

        public static void CreateNamelist(ref string[] ss)
        {
            ss = new string[10];
            for (int i = 0; i < 10; i++)
            {
                Console.Write("请输入第" + (i + 1) + "个学生的名字:");
                ss[i] = Console.ReadLine();
            }

            for (int i = 0; i <10; i++)
            {
                Console.WriteLine(ss[i]);
            }
     

        

 

        }
        public static void Zhua(string[] beforelist, out string[] afterlist)
        {  
            afterlist=new  string[1];
            int tmpindex = -1;
            System.Random ran = new Random();
            if (beforelist.Length > 0)
            {
                Console.WriteLine("开始抓阄了:");
                int tmplength=beforelist.Length;
                for (int i = 0; i < tmplength; i++)
                {
                    Console.WriteLine("请回车进行一次抓阄!");
                    Console.ReadLine();
                    tmpindex = ran.Next(0,beforelist.Length);
                    Console.WriteLine("本次抓到的人为:"+beforelist[tmpindex ]);
                    InsertAfterlist(beforelist[tmpindex],ref afterlist);
                    RemoveFromBforeList(tmpindex, ref beforelist);
                }
                Console.WriteLine("抓就结束了!!!");
               
            }
       

        }
        public static void InsertAfterlist(string insertname, ref string[] afterlist)
        {
            afterlist[afterlist.Length - 1] = insertname;
            //扩充大小
            string [] longlist=new string[(afterlist.Length+1)];
            for (int i = 0; i < afterlist.Length; i++)
            {
                longlist[i]=afterlist[i];           
            }
            afterlist= longlist;
            longlist = null;
            // 扩充完毕

        }
        public static void RemoveFromBforeList(int removeindex, ref string[] beforelist)
        {
            if (removeindex == (beforelist.Length - 1))
            {
                beforelist[removeindex] = "";
            }
            else
            {
                int i=0;
                for (i = removeindex; i < (beforelist.Length - 1); i++)
                {
                    beforelist[i]=beforelist[i+1];
                }
                beforelist[i] = "";
            }
            //大小
            //缩减大小
            if (beforelist.Length > 1)
            {
                string[] shortlist = new string[(beforelist.Length - 1)];
                for (int i = 0; i < (beforelist.Length - 1); i++)
                {
                    shortlist[i] = beforelist[i];
                }
                beforelist = shortlist;
                shortlist = null;
                // 缩减大小完毕
            }
            else
            {
                beforelist = null;
            }
        }
        public static void PrintNameList(string[] list)
        {
            Console.WriteLine("下面输出人员列表:");
            for(int i=0;i<list.Length;i++)
            {
                Console.Write(list[i] + "/t");
                //Console.WriteLine(list[i] + "/t");           
            }
            Console.WriteLine();
            Console.WriteLine("输出结束!");
            Console.ReadLine();

        }
    }

 


}

 

结果要你在控制台运行一下就可以看见了!!!

原创粉丝点击