现在的位置: 首页 > 综合 > 正文

c# 电梯操作算法(简)-不怎么样

2013年09月18日 ⁄ 综合 ⁄ 共 2477字 ⁄ 字号 评论关闭

 

主窗体代码:

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;
using System.Threading;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        ele ee = new ele();
        string[] array;
        string str;
        Thread t,k;
        private void button1_Click(object sender, EventArgs e)
        {
            t = new Thread(new ThreadStart(updown_zxl));
            t.Start();
        }
        
        public void updown_zxl() {
            int num = ee.getnumber();
            str = textBox1.Text;
            array = str.Split(new char[] { ',' });
            if (array[1] == "true")
            {
                ee.setb(true);
                ee.setinde(Convert.ToInt32(array[0])-num);
                ee.ele_up();
            }
            else
            {
                ee.setb(false);
                ee.setinde(num-Convert.ToInt32(array[0]));
                ee.ele_down();
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            
                k = new Thread(new ThreadStart(ele_zxl));
                k.Start();
                       
        }

        public void ele_zxl() {
            //t.Join();
                int ask = Convert.ToInt32(textBox2.Text);
                if (ee.getb())
                {
                    ee.ele_ask_updown(ask + 1);
                }
                else {
                    ee.setb(false);
                    ee.ele_ask_updown(ask + 1);
                }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text ="当前层数 :"+ee.getnumber().ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            timer1.Interval = 500;
            timer1.Start();
        }

    }
}

 

类代码:

updown.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace WindowsFormsApplication1
{
    public class updown
    {
        private static int number = 1;
        private static bool bo = true;

        public void up_down(int index,bool b)
        {
            //if (number >= 7) { bo = false;  } else if (number <= 1) { bo = true; }
            if (b)
            {
                for (int i = 0; i < index; i++)
                {
                    if (number >= 7) {  break; }
                    number += 1;
                    Thread.Sleep(2000);
                }
            }
            else 
            {
                for (int i = 0; i < index; i++)
                {
                    if (number <= 1) { break; }
                    number -= 1;
                    Thread.Sleep(2000);
                }
            }            
        }
          
        public int getnumber()
        {
            return number;
        }

    }
}

ele.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace WindowsFormsApplication1
{
    public class ele : updown
    {
        updown u = new updown();
        private static bool b; //true-up false-down
        private static int inde; //走几层
        private static bool b1;

        public void ele_up() {
            u.up_down(inde, b);
        }
        public void ele_down() {
            u.up_down(inde, b);
        }

        public void ele_ask_updown(int innum) {
            int gnum=u.getnumber();
            if (b)
            {
                if (innum - gnum >= 0)
                {
                    b1 = true;
                }
                else {
                    b1 = false;
                }
                if (b==b1)
                {
                    u.up_down(innum - u.getnumber()-1, true);
                }
                else {
                  
                    u.up_down(u.getnumber()-innum+1, false);
                }
            }
            else
            {
                if (innum - gnum <= 0)
                {
                    b1 = false;
                }
                else
                {
                    b1 = true;
                }
                if (b == b1)
                {
                    u.up_down(u.getnumber() - innum + 1, false);
                }
                else
                {
                    u.up_down(innum - u.getnumber() - 1, true);
                }
            }
        }

        public bool getb() {
            return b;
        }
        public void setb(bool b) {
            ele.b = b;
        }

        public int getinde()
        {
            return inde;
        }
        public void setinde(int inde)
        {
            ele.inde = inde; 
        }
    }
}

 

 

 

 

 

 

 

 

 

 

【上篇】
【下篇】

抱歉!评论已关闭.