2015年5月14日 星期四
2015年5月13日 星期三
[2015][Quiz][Week11]Quiz05 - Team04
Form1.cs為視窗設計
Shape3D.cs為基礎類別
Ball.cs、Cube.cs、Cylinder.cs、Pyramid.cs為衍生類別
Constant.cs為紀錄運算需要用到的常數,例如pi
Shape3D.cs為基礎類別
Ball.cs、Cube.cs、Cylinder.cs、Pyramid.cs為衍生類別
Constant.cs為紀錄運算需要用到的常數,例如pi
2015年5月7日 星期四
[2015][Homework]Team04 - Hw07
Form1.cs為視窗設計
Shape3D.cs為基礎類別
Ball.cs、Cube.cs、Cylinder.cs、Pyramid.cs為衍生類別
Constant.cs為紀錄運算需要用到的常數,例如pi
Shape3D.cs為基礎類別
Ball.cs、Cube.cs、Cylinder.cs、Pyramid.cs為衍生類別
Constant.cs為紀錄運算需要用到的常數,例如pi
2015年4月8日 星期三
[2015][Homework]Team04-Hw06
Program為進入程式點
Poker為類別,視窗設計
PokerCard為類別,轉換點數和花色
CardDeck為類別,產生Poker cards,依花色排列、亂數洗牌、依點數大小排列
Poker為類別,視窗設計
PokerCard為類別,轉換點數和花色
CardDeck為類別,產生Poker cards,依花色排列、亂數洗牌、依點數大小排列
[2015][Homework]Team04-Hw05
Program為進入程式點,輸入與輸出
Point為類別,計算兩點距離
PinBoard為類別,產生pinboard格點座標
Triangle為類別,產生triangle並計算周長、面積、外接圓半徑
Point為類別,計算兩點距離
PinBoard為類別,產生pinboard格點座標
Triangle為類別,產生triangle並計算周長、面積、外接圓半徑
2015年3月26日 星期四
[2015][Homework]Team04 - Hw04
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JugPuzzle
{
class Program
{
static void Main(string[] args)
{
int capacityA;
int capacityB;
int gcd;
int target;
Console.WriteLine("Jug Puzzle!");
Console.WriteLine("Please input cylinderA capacity"); //key in
capacityA = int.Parse(Console.ReadLine());
Console.WriteLine("Please input cylinderB capacity");
capacityB = int.Parse(Console.ReadLine());
Console.WriteLine("Please input target capacity");
target = int.Parse(Console.ReadLine());
Console.WriteLine("*******************************************************");
gcd = Program.gcd(capacityA, capacityB); //find gcd
if (target % gcd == 0) //Is solvable?
{
if (capacityA + capacityB >= target)
{
Program.jugPuzzle(capacityA, capacityB, target);
}
else
{
Console.WriteLine("Not solvable!");
}
}
else
{
Console.WriteLine("Not solvable!");
}
Console.Read();
}
static int gcd(int m, int n) //最大公因數
{
int temp = 0;
while (n != 0)
{
temp = m % n;
m = n;
n = temp;
}
return m;
}
static void jugPuzzle(int capacityA, int capacityB, int target)
{
int tem;
int waterInA = 0;
int waterInB = 0;
if (capacityA > capacityB) //if capacityA>B, exchange each other
{
tem = capacityA;
capacityA = capacityB;
capacityB = tem;
Console.WriteLine("Capavity of B is smaller then capacity of A");
Console.WriteLine("Exchange: capavity of A is {0}(smaller), and capacity of B is {1}(larger)", capacityA, capacityB);
}
else if (capacityA < capacityB)
{
Console.WriteLine("Capavity of A is smaller than capacity of B");
}
else
{
Console.WriteLine("Capavity of A and capacity of B are same");
}
Console.WriteLine("*******************************************************");
while (true)
{
if (capacityA + capacityB == target) //if capacity A + capacity B = target
{
waterInA = capacityA;
waterInB = capacityB;
Console.WriteLine("Fill in cylinderA and cylinderB");
Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
{
break;
}
}
if (waterInA == 0) //if A is empty
{
waterInA = capacityA;
Console.WriteLine("Fill in cylinderA");
Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
{
break;
}
}
if (capacityB - waterInB > capacityA) //if A pour into B
{
waterInB = waterInB + waterInA;
waterInA = 0;
Console.WriteLine("CylinderA pour into cylinderB");
Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
{
break;
}
}
else
{
waterInA = waterInA - (capacityB - waterInB);
waterInB = capacityB;
Console.WriteLine("CylinderA pour into cylinderB");
Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
{
break;
}
}
if (waterInB == capacityB) //if B is full, pour out
{
waterInB = 0;
waterInB = waterInA;
waterInA = 0;
Console.WriteLine("CylinderB is full, pour out");
Console.WriteLine("And cylinderA pour into cylinderB");
Console.WriteLine("cylinderA:({0}) cylinderB:({1})", waterInA, waterInB);
if (waterInA == target || waterInB == target || (waterInA + waterInB) == target)
{
break;
}
}
}
Console.WriteLine("Done!");
}
}
}
2015年3月23日 星期一
2015年3月22日 星期日
2015年3月19日 星期四
2015年3月18日 星期三
訂閱:
文章 (Atom)