2015年4月16日 星期四

[2015][Quiz]MidExam_40173034H

程式有三部分
程式進入點
視窗程式
waterJug類別

程式進入點
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WaterJug
{
    static class Program
    {
        /// 
        /// 應用程式的主要進入點。
        /// 
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}

視窗

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void btnSolve_Click(object sender, EventArgs e)
        {
            waterJug jug= new waterJug();
            jug.maxVolumnA = Convert.ToInt16(txtVolumnA.Text);
            jug.maxVolumnB = Convert.ToInt16(txtVolumnB.Text);
            jug.targetVolumn = Convert.ToInt16(txtTarget.Text);
            jug.message = txtMessage;
            jug.jug();
        }
        private void btnClear_Click(object sender, EventArgs e)
        {
            txtMessage.Text = null;
        }
    }
}
waterJug類別
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WaterJug
{
    class waterJug
    {
        public int maxVolumnA;
        public int maxVolumnB;
        public int targetVolumn;
        public int currentVolumnA;
        public int currentVolumnB;
        public TextBox message;
        public int Gcd(int a,int b)
        {
            int gcdA = maxVolumnA;
            int gcdB = maxVolumnB;
            int temp;
            while(gcdA!=0)
            {
                 temp = gcdB;
                 gcdB = gcdA;
                 gcdA = temp;
            gcdA = gcdA % gcdB;
            }
            return gcdB;
        }
        public bool isLegal(int a,int b,int c)
        {
            if(targetVolumn%Gcd(maxVolumnA,maxVolumnB)!=0 || targetVolumn>(maxVolumnA+maxVolumnB))
            {
                return false;
            }
            else
            {
                return true;
            }
        }
        public void change()
        {
            int temp;
            if (maxVolumnB > maxVolumnA)
            {
                temp = maxVolumnB;
                maxVolumnB = maxVolumnA;
                maxVolumnA = temp;
            }
        }
        public void injectB()
        {
            if (currentVolumnB != maxVolumnB)
            {
                currentVolumnB = maxVolumnB;
            }
            message.Text += "(A,B)=" + "(" + currentVolumnA + "," + currentVolumnB + ")";
            message.Text += Environment.NewLine;
        }
        public void disCard()
        {
            if(currentVolumnA==maxVolumnA)
            {
                currentVolumnA = 0;
            }
            message.Text += "(A,B)=" + "(" + currentVolumnA + "," + currentVolumnB + ")";
            message.Text += Environment.NewLine;
        }
        public void pour()
        {
            if(currentVolumnA

沒有留言:

張貼留言