程式有三部分
程式進入點
視窗程式
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
沒有留言:
張貼留言