当前位置:编程学习 > C#/ASP.NET >>

求帮忙写个小程序,刚开始学,不会啊

具体是设计一个windos应用程序,做出一个随机点名的小程序。我们班72人,使用俩个botton按钮,一个开始,一个停止,点击开始,一个Textbox随机产生0到71的数字,点击结束,在另一个textbox里显示出数字对应的人名,高手帮帮忙喽,小弟在这里先谢谢啦 --------------------编程问答-------------------- 用一个timer,自己动手做。 --------------------编程问答-------------------- 帮你顶下吧没时间写 --------------------编程问答-------------------- Random选择数字,从列表中随即选择对应的索引 --------------------编程问答--------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace RandomTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            timer1.Enabled = true;
        }

        Random r = new Random();
        int rm;
        string name=null;
        private void timer1_Tick(object sender, EventArgs e)
        {
            //72个人就写上     rm=r.Next(0, 72);
            //后面的switch自己照葫芦画瓢
            rm = r.Next(0, 4);
            switch (rm)
            {
                case 0:
                    name = "张三";
                    break;
                case 1:
                    name = "李四";
                    break;
                case 2:
                    name = "王五";
                    break;
                case 3:
                    name = "周大状";
                    break;

            }
            txtName.Text = name;
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            timer1.Enabled = false;
        }
    }
}
--------------------编程问答--------------------


  public Form1()
        {
            InitializeComponent();
        }
        ArrayList arr = new ArrayList();
        private void button1_Click(object sender, EventArgs e)
        {
            StreamReader read = new StreamReader(@"user.txt");
            String s = String.Empty;
            while ((s = read.ReadLine()) != null)
            {
                arr.Add(s.Trim());
            }
            if (button1.Text == "开始")
            {
                timer1.Enabled = true;
                button1.Text = "停止";
            }
            else
            {
                timer1.Enabled = false;
                button1.Text = "开始";
            }
        }
        Random rd = new Random();
        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = arr[rd.Next(0,arr.Count)].ToString();
        }



user.txt



卢全煦
严席华
张顺廉
欧贡界
汤始青
张鸿鹤
车亚忠
龙璨禄
柯纤翊
池慕
吴登
齐奋厦
夏莱冶
夏吏克
殷蒙共
齐聪纪 
金图康
秦尝乐 
丘存心
俞灶迟
元感棋 
陆示笙
简胜琰 
云介融
梁夜翊 
成昀澄
卞然倌 
林静育
王成文
张昧谡
苏经苞
彭笙葛
龚佩义 
何翼宪
路壁桥
彭煌彤
严君岚
张侠皆 
王榕骋 
丘约靖 
周意竹 
刘玉
宁芹谚
莫昀蕊
侯谊玉
韦傲然
--------------------编程问答-------------------- --------------------编程问答--------------------
引用 4 楼 zhangmengfu 的回复:
C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556using System;using System.Collections.Generic;using System.ComponentModel;using System.Da……


72个人 你代码得写多长呀。

引用 5 楼 yanggangqiang520 的回复:
C# code?1234567891011121314151617181920212223242526272829  public Form1()        {            InitializeComponent();        }        ArrayList arr = new ArrayList();        private void b……

+1 --------------------编程问答--------------------
引用 7 楼 mimrc7993 的回复:
引用 4 楼 zhangmengfu 的回复:C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556using System;using System.Collections.Generic;using S……

我一直是本着低内聚高耦合的思想去写代码。 --------------------编程问答-------------------- 有意思!公司抽奖时可借鉴此程序。 --------------------编程问答--------------------
引用 8 楼 zhangmengfu 的回复:
引用 7 楼 mimrc7993 的回复:引用 4 楼 zhangmengfu 的回复:C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556using System;using System.Collec……

如果。这学生走了一个 或者增加一个 又去代码里添加? 要易于维护和扩展嘛。

引用 9 楼 roadgae 的回复:
有意思!公司抽奖时可借鉴此程序。

如果他像用这个程序 难道去把代码的名字全换了?
所以 5楼的我比较支持。 --------------------编程问答-------------------- --------------------编程问答--------------------
引用 10 楼 mimrc7993 的回复:
引用 8 楼 zhangmengfu 的回复:引用 7 楼 mimrc7993 的回复:引用 4 楼 zhangmengfu 的回复:C# code?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556using Sys……

我写的代码都是一次性的。用过我软件的人绝对不会用第二次。。所以逐渐的就养成了这种编码习惯。 --------------------编程问答--------------------

    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        //标识是否已经开始抽取
        private bool is_start;
        //学生集合
        private List<string> stuList;
        //定时器用于循环抽取
        private System.Windows.Forms.Timer timer;

        private void Form2_Load(object sender, EventArgs e)
        {
            is_start = false;
            btn_stop.Enabled = is_start;
            //初始化定时器并设置触发事件和间隔时间
            timer = new System.Windows.Forms.Timer();
            timer.Tick += timer_Tick;
            timer.Interval = 10;
            //初始化学生列表(可以从数据库或其他数据源读取)
            stuList = new List<string> 
            {
                "张三",
                "李斯",
                "王五",
                "成龙",
                "李连杰",
                "吴京",
                "苍井空",
                "樱井莉亚",
                "吉泽明步",
                "斯巴达"
            };
        }

        private void btn_start_Click(object sender, EventArgs e)
        {
            is_start = true;
            timer.Start();
            btn_stop.Enabled = is_start;
            btn_start.Enabled = !is_start;
        }

        void timer_Tick(object sender, EventArgs e)
        {
            Random rand = new Random();
            int index = rand.Next(0, stuList.Count);
            this.lbl_display.Text = stuList[index];
        }

        private void btn_stop_Click(object sender, EventArgs e)
        {
            is_start = false;
            btn_stop.Enabled = is_start;
            btn_start.Enabled = !is_start;
            timer.Stop();
        }
    }

--------------------编程问答-------------------- using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RandStudentID
{
    class Program
    {
        class Student
        {
            string name;
            int id;
            public Student(int id, string name)
            {
                this.id = id;
                this.name = name;
            }
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
            public int Id
            {
                get { return id; }
                set { id = value; }
            }
        }

        static string GetStudentName(int stuid, List<Student> liststu)
        {
            string stuname = "";
            foreach (Student s in liststu)
            {
                if (s.Id == stuid)
                {
                    stuname = s.Name;
                     return stuname;
                }
            }
            return stuname;
        }
        static int RandID(int count)
        {
            Random rand = new Random();
            return  rand.Next(1, count + 1);
        }

        static void RandCycle(List<Student> student)
        {
            string read = Console.ReadLine();
            if (read.ToLower() == "y")
            {
                Console.WriteLine(GetStudentName(RandID(student.Count), student));
                Console.WriteLine("是否继续:Y/N");
                RandCycle(student);
                            }
            else
            {
                               return;
            }
        }
        static void Main(string[] args)
        {
            List<Student> student = new List<Student>(72);
            for (int i = 1; i <= 72; i++)
            {
                student.Add(new Student(i,"Name:"+i.ToString()));
            }
            Console.WriteLine("随机取号:Y/N");
            RandCycle(student);
        }

    }
}
--------------------编程问答--------------------
引用 13 楼 haukwong 的回复:
C# code?12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061    public partial class Form2 : Form    {        public Form2()  ……

win8好用吗 --------------------编程问答-------------------- 点名程序呀,随机数,变换下就可以了
--------------------编程问答-------------------- 小弟写了一个随机抽题的程序,跟五楼的思路是一样的,源码公布在了51aspx上,楼主如果觉得有可以借鉴的地方可以去下载来看看,工程文件都有滴。链接地址:http://www.51aspx.com/Code/CompetitionAnswer --------------------编程问答-------------------- 谢谢各位!但是小弟貌似太笨,还没弄好!今天在努力  --------------------编程问答-------------------- 万恶的作业贴 --------------------编程问答-------------------- 话说用数据表操作会不会好点呢!先对你72个同学进行标号做成数据表,随机抽他们的标号再用标号去查对应的同学然后一一显示出来! --------------------编程问答-------------------- 要不要来个metro版的啊? --------------------编程问答-------------------- 关键字timer random --------------------编程问答--------------------

string[] arr={'苍老师','xxx','xxx'};
random ram=new random();
int num=ram.next(0,72);
for(int i=0;i<arr.length;i++)
{
  if(num==i)
   {
     resopnse.write(arr[i]);
   }
}



--------------------编程问答--------------------
引用 23 楼 yumen3501 的回复:
C# code?12345678910string[] arr={'苍老师','xxx','xxx'};random ram=new random();int num=ram.next(0,72);for(int i=0;i<arr.length;i++){  if(num==i)   {     resopnse.write(arr[i]);   }}


int num=ram.next(0,arr.length); --------------------编程问答-------------------- Likely to be verified.. thanks!!

Kevin Peterson
http://www.schoolanduniversity.com --------------------编程问答--------------------
 IList<string> names = new List<string>();
        System.Timers.Timer timer = new System.Timers.Timer(1000);
      
        int maxValue = 4;
        int index;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                timer.Elapsed += timer_Elapsed;
                names.Add("姓名1");
                names.Add("姓名2");
                names.Add("姓名3");
                names.Add("姓名4");
                names.Add("姓名5"); 
            }
        }

        void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
        {
            Random rnd = new Random();
            index = rnd.Next(0, maxValue);
            this.Label2.Text = names[index];
        }

        protected void btnStart_Click(object sender, EventArgs e)
        {
            this.timer.Enabled = true;
        }

        protected void btnStop_Click(object sender, EventArgs e)
        {
            this.timer.Enabled = false;
            Label2.Text = names[index];
            names.RemoveAt(index);
            maxValue = maxValue - 1;
        } 
--------------------编程问答-------------------- 你把代码放到 winform 里吧 Ispostback 去掉就行了 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
 public Form3()
        {
            InitializeComponent();
            timer.Tick += (sender, e) =>
            {
                index = rnd.Next(0, maxValue);
                this.label2.Text = names[index];
            };
        }
        IList<string> names = new List<string>();
        System.Windows.Forms.Timer timer = new Timer();
        Random rnd = new Random();
        int maxValue = 4;
        int index;
         
        protected void btnStart_Click(object sender, EventArgs e)
        {
            this.timer.Enabled = true;
        }

        protected void btnStop_Click(object sender, EventArgs e)
        {
            this.timer.Enabled = false;
            this.label2.Text = names[index];
            names.RemoveAt(index);
            maxValue = maxValue - 1;
        }

        private void Form3_Load(object sender, EventArgs e)
        {
            names.Add("姓名1");
            names.Add("姓名2");
            names.Add("姓名3");
            names.Add("姓名4");
            names.Add("姓名5");
        }
    }


这个是 C/S 的 具体要求你可以自己完善和修改 至于随机的规则你自己确定吧,可以做后门哦。 --------------------编程问答--------------------


有点意思


以前没有怎么弄,现在弄一下试试! --------------------编程问答-------------------- 没做过,学习,试了下五楼的代码,可以做抽奖程序了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,