这里面写的太多重复代码,求帮助优化一下O(∩_∩)O谢谢using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace 学生操行考核表
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private int rndInt = 0;
        private int rndInt1 = 0;
        private int rndInt2 = 0;
        private int rndInt3 = 0;
        private int rndInt4 = 0;
        private int rndInt5 = 0;
        private int rndInt6 = 0;
        private int rndInt7 = 0;
        private void button2_Click(object sender, EventArgs e)
        {
            this.Close();
        }        private void button1_Click(object sender, EventArgs e)
        {
            //迟到、早退
            Random ra = new Random();
            this.rndInt = ra.Next(1, 20);
            if (rndInt < 15)
            {
                return;
            }
            label12.Text = rndInt.ToString();            //个人文明
            Random ra1 = new Random();
            this.rndInt1 = ra1.Next(1, 10);
            if (rndInt1 < 6)
            {
                return;
            }
            label13.Text = rndInt1.ToString();            //旷课
            Random ra2 = new Random();
            this.rndInt2 = ra2.Next(1, 10);
            if (rndInt2 < 6)
            {
                return;
            }
            label14.Text = rndInt2.ToString();            //晚自习纪律
            Random ra3 = new Random();
            this.rndInt3 = ra3.Next(1, 10);
            if (rndInt3 < 6)
            {
                return;
            }
            label15.Text = rndInt3.ToString();            //课堂纪律
            Random ra4 = new Random();
            this.rndInt4 = ra4.Next(1, 20);
            if (rndInt4 < 15)
            {
                return;
            }
            label16.Text = rndInt4.ToString();
            
            //班级活动
            Random ra5 = new Random();
            this.rndInt5 = ra5.Next(1, 10);
            if (rndInt5 < 6)
            {
                return;
            }
            label17.Text = rndInt5.ToString();            //宿舍卫生
            Random ra6 = new Random();
            this.rndInt6 = ra6.Next(1, 10);
            if (rndInt6 < 6)
            {
                return;
            }
            label18.Text = rndInt6.ToString();            //奖励
            //Random ra1 = new Random();
            //this.rndInt1 = ra1.Next(1, 3);
            //label19.Text = rndInt1.ToString();            //总分
            rndInt7 = rndInt + rndInt1 + rndInt2 + rndInt3 + rndInt4 + rndInt5 + rndInt6;
            if (rndInt7 < 75)
            {
                return;
            }
            label20.Text = rndInt7.ToString();        }
    }
}

解决方案 »

  1.   

    private int rndInt = 0,rndInt1 = 0,rndInt2 = 0,rndInt3 = 0,rndInt4 = 0,rndInt5 = 0,rndInt6 = 0,rndInt7 = 0;
      

  2.   


    public bool IsLessThan(ref int iInput, int iNextMax, int iCompare)
    {
    Random ra = new Random(); 
                iInput = ra.Next(1, iNextMax); 
                if (iInput < iCompare) 
                { 
                    return true; 
                } 
    }//调用
    label18.Text = this.IsLessThan(this.rndInt6, 10, 6)?this.rndInt6.ToString():"";
      

  3.   

    你这样写的话,按道理来说不可能会慢的。把那么多的Random用一个不行啊?为什么new那么多?
      

  4.   

    不慢,程序有问题我承认。random 出现一次才对,这应该是某个学生的status,在某时间只能是其中之一,多个random 那就不是其中之一了
      

  5.   

    new 一个 Random()就行了
      

  6.   

    Random实例化一次就够了,把这个对象拿到下面各个判断用。
      

  7.   

     rndInt  rndInt1  rndInt2  rndInt3  rndInt4  rndInt5  rndInt6
    很大几率会重复 ,不知道你这样做有什么意义
      

  8.   

    那个“慢”是每次我运行的时候,要等半天,才将随机产生的数字显示到label标签中。那个random怎么做才能让它出现以一次啊,帮我写一下吧,这样我好研究研究、、、、O(∩_∩)O谢谢
      

  9.   


        private void button1_Click(object sender, EventArgs e)
        {
            //迟到、早退 
            Random ra = new Random();
            this.rndInt = ra.Next(1, 20);
            if (rndInt < 15)
            {
                return;
            }
            label12.Text = rndInt.ToString();        //个人文明 
           
            this.rndInt1 = ra.Next(1, 10);
            if (rndInt1 < 6)
            {
                return;
            }
            label13.Text = rndInt1.ToString();        //旷课 
           
            this.rndInt2 = ra.Next(1, 10);
            if (rndInt2 < 6)
            {
                return;
            }
            label14.Text = rndInt2.ToString();        //晚自习纪律 
            
            this.rndInt3 = ra.Next(1, 10);
            if (rndInt3 < 6)
            {
                return;
            }
            label15.Text = rndInt3.ToString();        //课堂纪律 
           
            this.rndInt4 = ra.Next(1, 20);
            if (rndInt4 < 15)
            {
                return;
            }
            label16.Text = rndInt4.ToString();        //班级活动 
          
            this.rndInt5 = ra.Next(1, 10);
            if (rndInt5 < 6)
            {
                return;
            }
            label17.Text = rndInt5.ToString();        //宿舍卫生 
         
            this.rndInt6 = ra.Next(1, 10);
            if (rndInt6 < 6)
            {
                return;
            }
            label18.Text = rndInt6.ToString();        //奖励 
            //Random ra = new Random(); 
            //this.rndInt1 = ra.Next(1, 3); 
            //label19.Text = rndInt1.ToString();         //总分 
            rndInt7 = rndInt + rndInt1 + rndInt2 + rndInt3 + rndInt4 + rndInt5 + rndInt6;
            if (rndInt7 < 75)
            {
                return;
            }
            label20.Text = rndInt7.ToString();    }