2013年12月27日 星期五

網際網路程式設計期末考-參考答案

DeltaLeft-cheat

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DeltaAlpha.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
    <style type="text/css">
        td
        {
            text-align: center;
        }
        .style1
        {
            height: 20px;
        }
    </style>
</head>
<body>
    <h1>
        繪製三角形
    </h1>
    <form id="form1" runat="server">
    <div>
        請輸入三角形高度:
        <asp:TextBox ID="txtHeight" runat="server" Width="30px"></asp:TextBox>
        <asp:DropDownList ID="ddlType" runat="server">
            <asp:ListItem Value="L">正左</asp:ListItem>
            <asp:ListItem Value="R">正右</asp:ListItem>
            <asp:ListItem Value="C">等腰</asp:ListItem>
            <asp:ListItem Value="RL">倒左</asp:ListItem>
            <asp:ListItem Value="RR">倒右</asp:ListItem>
            <asp:ListItem Value="RC">倒等腰</asp:ListItem>
            <asp:ListItem Value="2C">背對背等腰</asp:ListItem>
            <asp:ListItem Value="4C">蝴蝶</asp:ListItem>
        </asp:DropDownList>
        <asp:Button ID="btnSubmit" runat="server" Text="確定" OnClick="btnSubmit_Click" />
    </div>
    <table>
        <tr>
            <td>
                <asp:Literal ID="ltDelta" runat="server"></asp:Literal>
            </td>
            <td>
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </td>
            <td>
                <asp:Literal ID="ltDelta2" runat="server"></asp:Literal>
            </td>
        </tr>
        <tr>
            <td class="style1">
                <asp:Literal ID="ltDelta3" runat="server"></asp:Literal>
            </td>
            <td class="style1">
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            </td>
            <td class="style1">
                <asp:Literal ID="ltDelta4" runat="server"></asp:Literal>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

namespace DeltaAlpha
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        private char[] symbols = new char[26 + 26 + 10];
        private static int symbolIndex = 0;

        protected void Page_Load(object sender, EventArgs e)
        {
            txtHeight.Focus();
            initSymbols();
        }

        private void initSymbols()
        {
            char c = '1';
            int i = 0;
            while (c != '9')
            {
                symbols[i++] = c;
                c = (char)(c + 1);
            }
            symbols[i++] = '0';
            c = 'A';
            while (c != 'Z')
            {
                symbols[i++] = c;
                c = (char)(c + 1);
            }
            c = 'a';
            while (c != 'z')
            {
                symbols[i++] = c;
                c = (char)(c + 1);
            }
        }

        private void resetSymbolIndex()
        {
            symbolIndex = 0;
        }

        private string currentSymbol()
        {
            //return symbols[symbolIndex];
            return "<img src='images/skull.png' alt='' />";
        }

        private char nextSymbol()
        {
            char c = symbols[symbolIndex];
            symbolIndex = (symbolIndex + 1) % symbols.Length;
            return c;
        }

        /// <summary>
        /// 偏左的直角三角形,第 i 層印 i 個骷髏頭
        /// </summary>
        /// <param name="h">三角形高度</param>
        /// <returns>HTML</returns>
        private string deltaLeft(int h)
        {
            resetSymbolIndex();
            StringBuilder sb = new StringBuilder();
            sb.Append("<table border='0'>");
            for (int i = 1; i <= h; i++)
            {
                sb.Append("<tr>");
                for (int j = 1; j <= i; j++)
                {
                    sb.Append("<td>" + currentSymbol() + "</td>");
                }
                sb.Append("</tr>"); nextSymbol();
            }
            sb.Append("</table>");
            return sb.ToString();
        }

        /// <summary>
        /// 偏右的直角三角形,第 i 層印 (h-i) 個空格和 i 個骷髏頭
        /// </summary>
        /// <param name="h">三角形高度</param>
        /// <returns>HTML</returns>
        private string deltaRight(int h)
        {
            resetSymbolIndex();
            StringBuilder sb = new StringBuilder();
            sb.Append("<table border='0'>");
            for (int i = 1; i <= h; i++)
            {
                sb.Append("<tr>");
                for (int j = 1; j <= (h - i); j++)
                {
                    sb.Append("<td>&nbsp;</td>");
                }
                for (int j = 1; j <= i; j++)
                {
                    sb.Append("<td>" + currentSymbol() + "</td>");
                }
                sb.Append("</tr>"); nextSymbol();
            }
            sb.Append("</table>");
            return sb.ToString();
        }

        /// <summary>
        /// 正的等腰三角形,第 i 層印 (h-i) 個空格和 (2i-1) 個骷髏頭
        /// </summary>
        /// <param name="h">三角形高度</param>
        /// <returns>HTML</returns>
        private string deltaIsosceles(int h)
        {
            resetSymbolIndex();
            StringBuilder sb = new StringBuilder();
            sb.Append("<table border='0'>");
            for (int i = 1; i <= h; i++)
            {
                sb.Append("<tr>");
                for (int j = 1; j <= (h - i); j++)
                {
                    sb.Append("<td>&nbsp;</td>");
                }
                for (int j = 1; j <= (2 * i - 1); j++)
                {
                    sb.Append("<td>" + currentSymbol() + "</td>");
                }
                sb.Append("</tr>"); nextSymbol();
            }
            sb.Append("</table>");
            return sb.ToString();
        }


        /// <summary>
        /// 倒的偏左的直角三角形,第 i 層印 (h-i+1) 個骷髏頭
        /// </summary>
        /// <param name="h">三角形高度</param>
        /// <returns>HTML</returns>
        private string deltaDownLeft(int h)
        {
            resetSymbolIndex();
            StringBuilder sb = new StringBuilder();
            sb.Append("<table border='0'>");
            for (int i = 1; i <= h; i++)
            {
                sb.Append("<tr>");
                for (int j = 1; j <= (h - i + 1); j++)
                {
                    sb.Append("<td>" + currentSymbol() + "</td>");
                }
                sb.Append("</tr>"); nextSymbol();
            }
            sb.Append("</table>");
            return sb.ToString();
        }

        /// <summary>
        /// 倒的偏右的直角三角形,第 i 層印 (i-1) 個空格和 (h-i+1) 個骷髏頭
        /// </summary>
        /// <param name="h">三角形高度</param>
        /// <returns>HTML</returns>
        private string deltaDownRight(int h)
        {
            resetSymbolIndex();
            StringBuilder sb = new StringBuilder();
            sb.Append("<table border='0'>");
            for (int i = 1; i <= h; i++)
            {
                sb.Append("<tr>");
                for (int j = 1; j <= (i - 1); j++)
                {
                    sb.Append("<td>&nbsp;</td>");
                }
                for (int j = 1; j <= (h - i + 1); j++)
                {
                    sb.Append("<td>" + currentSymbol() + "</td>");
                }
                sb.Append("</tr>"); nextSymbol();
            }
            sb.Append("</table>");
            return sb.ToString();
        }

        /// <summary>
        /// 倒的等腰三角形,第 i 層印 (i-1) 個空格和 2(h-i)+1 個骷髏頭
        /// </summary>
        /// <param name="h">三角形高度</param>
        /// <returns>HTML</returns>
        private string deltaDownIsosceles(int h)
        {
            resetSymbolIndex();
            StringBuilder sb = new StringBuilder();
            sb.Append("<table border='0'>");
            for (int i = 1; i <= h; i++)
            {
                sb.Append("<tr>");
                for (int j = 1; j <= (i - 1); j++)
                {
                    sb.Append("<td>&nbsp;</td>");
                }
                for (int j = 1; j <= (2 * (h - i) + 1); j++)
                {
                    sb.Append("<td>" + currentSymbol() + "</td>");
                }
                sb.Append("</tr>"); nextSymbol();
            }
            sb.Append("</table>");
            return sb.ToString();
        }

        /// <summary>
        /// 背對背等腰三角形,第 i 層印 (h-i) 個空格和 2i 個骷髏頭
        /// </summary>
        /// <param name="h">三角形高度</param>
        /// <returns>HTML</returns>
        private string delta2Isosceles(int h)
        {
            resetSymbolIndex();
            StringBuilder sb = new StringBuilder();
            sb.Append("<table border='0'>");
            for (int i = 1; i <= h; i++)
            {
                sb.Append("<tr>");
                for (int j = 1; j <= (h - i); j++)
                {
                    sb.Append("<td>&nbsp;</td>");
                }
                for (int j = 1; j <= 2 * i; j++)
                {
                    sb.Append("<td>" + currentSymbol() + "</td>");
                }
                sb.Append("</tr>"); nextSymbol();
            }
            sb.Append("</table>");
            return sb.ToString();
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            int h = int.Parse(txtHeight.Text);
            string type = ddlType.SelectedValue;
            ltDelta.Text = ltDelta2.Text = ltDelta3.Text = ltDelta4.Text = "";
            if (type.Equals("L"))
                ltDelta.Text = deltaLeft(h);
            else if (type.Equals("R"))
                ltDelta.Text = deltaRight(h);
            else if (type.Equals("C"))
                ltDelta.Text = deltaIsosceles(h);
            else if (type.Equals("RL"))
                ltDelta.Text = deltaDownLeft(h);
            else if (type.Equals("RR"))
                ltDelta.Text = deltaDownRight(h);
            else if (type.Equals("RC"))
                ltDelta.Text = deltaDownIsosceles(h);
            else if (type.Equals("2C"))
            {
                ltDelta.Text = deltaDownRight(h);
                ltDelta2.Text = deltaDownLeft(h);
            }
            else if (type.Equals("4C"))
            {
                ltDelta.Text = deltaDownRight(h);
                ltDelta2.Text = deltaDownLeft(h);
                ltDelta3.Text = deltaRight(h);
                ltDelta4.Text = deltaLeft(h);
            }
            txtHeight.Focus();
        }
    }
}
GCD-OK

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="GCD.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>兩正整數的最大公因數與最小公倍數</title>
    <style type="text/css">
        div
        {
            text-align:center;          
            }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h1>兩正整數的最大公因數與最小公倍數</h1>  
    <hr />  

        <br />
        <asp:Label ID="Label1" runat="server" Text="第一正整數N: "></asp:Label>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="TextBox1" ErrorMessage="請輸入N">*</asp:RequiredFieldValidator>
&nbsp;<asp:RangeValidator ID="RangeValidator1" runat="server" 
            ControlToValidate="TextBox1" ErrorMessage="N值需大於0" MaximumValue="99999999" 
            MinimumValue="0" Type="Integer">*</asp:RangeValidator>
&nbsp;&nbsp;
        <asp:Label ID="Label2" runat="server" Text="第二正整數M: "></asp:Label>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ControlToValidate="TextBox2" ErrorMessage="請輸入M">*</asp:RequiredFieldValidator>
        <asp:RangeValidator ID="RangeValidator2" runat="server" 
            ControlToValidate="TextBox2" ErrorMessage="M值需大於0" MaximumValue="99999999" 
            MinimumValue="0" Type="Integer">*</asp:RangeValidator>
        <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:ValidationSummary ID="ValidationSummary1" runat="server" 
            HeaderText="以下資料有誤" ShowMessageBox="True" />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="送出" />
        <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="清除" />
        <br />
        <br />
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>

    </div>
    </form>
</body>
</html>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace GCD
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            TextBox1.Text = "";
            TextBox2.Text = "";
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            int n = int.Parse(TextBox1.Text);
            int m = int.Parse(TextBox2.Text);
            int c = 1;
            string str = n + " 與 " + m;
            int nn=n,mm=m;
            while (c>0) {
                c = nn % mm;
                nn = mm;
                mm = c;
            }
            if (nn == 1)
            {
                str += "兩數互質!<br>";
            }
            else {
                str += "最大公因數是 " + nn + "<br>";
            }
            str += "最小公倍數是 " + m * n / nn;
            Literal1.Text = str;

        }
    }
}
ListPrime-OK

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ListPrime.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>印出小於N的質數</title>
    <style type="text/css">
        h1
        {
            text-align:center;
            }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h1>印出小於N的質數</h1>
        <p>&nbsp;</p>
        <hr />
        <p>
            <asp:Label ID="Label1" runat="server" Text="請輸入N值: "></asp:Label>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="送出" />
            <asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="清除" />
            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                ControlToValidate="TextBox1" ErrorMessage="請輸入"> *</asp:RequiredFieldValidator>
            <asp:RangeValidator ID="RangeValidator1" runat="server" 
                ControlToValidate="TextBox1" ErrorMessage="須輸入大於等於2的正整數" MaximumValue="9999999" 
                MinimumValue="2" Type="Integer">*</asp:RangeValidator>
        </p>
        <asp:ValidationSummary ID="ValidationSummary1" runat="server" />
        <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
    </form>
</body>
</html>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ListPrime
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            TextBox1.Text = "";
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            int n = int.Parse(TextBox1.Text);
            int i, j;
            int count = 0;
            bool flag;
            string str = "比" + n + "小的質數是: ";
            if (n == 2)
            {
                Literal1.Text = "沒有比2小的質數。";
            }
            else {
                for (i = 2; i < n;i++ )
                {
                    for (j = 2, flag = true; j * j <= i &&flag; j++)
                        {
                            if (i % j == 0) flag = false;
                        }
                        if (flag==true)
                        {
                            if (count != 0)
                                str += ", ";
                            str += "" + i;
                            count++;
                        }
                }
                str += "<br>以上共計 "+ count + " 個質數。";
                Literal1.Text = str;
            }


        }
    }
}
Login-OK

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Login.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>模擬登入畫面</title>
    <style type="text/css">
        div
        {
            text-align:center;
            margin: 1em 10%;
            background-color:Aqua;
            }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <h1>模擬登入畫面</h1>
    <hr />
        <asp:Label ID="Label1" runat="server" Text="帳號: "></asp:Label>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="TextBox1" ErrorMessage="請輸入帳號"></asp:RequiredFieldValidator>
        <br />
        <asp:Label ID="Label2" runat="server" Text="密碼: "></asp:Label>
        <asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ControlToValidate="TextBox2" ErrorMessage="請輸入密碼"></asp:RequiredFieldValidator>
        <br />
        <asp:Button ID="Button1" runat="server" Text="登入" onclick="Button1_Click" />
        &nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button2" runat="server" Text="重設" onclick="Button2_Click" />
        <br />
        <asp:CompareValidator ID="CompareValidator1" runat="server" 
            ControlToCompare="TextBox2" ControlToValidate="TextBox1"></asp:CompareValidator>
    </div>
    </form>
</body>
</html>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Login
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            TextBox1.Text = "";
            TextBox2.Text = "";
            TextBox1.Focus();
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (CompareValidator1.IsValid)
            {
                Response.Write("<script type='text/javascript'>alert('歡迎光臨');</script>");
                Response.Write("<script type='text/javascript'>self.moveTo(0,0);self.resizeTo(screen.availWidth,screen.availHeight);</script>");
                Response.Write("<script type='text/javascript'>window.location.replace('http://www.ywdeng.idv.tw')</script>");
            }
            else {
                Response.Write("<script type='text/javascript'>alert('帳號或密碼錯誤');</script>");
            }
        }
    }
}
MagicMatrix-cheat
演算法筆記 參考:http://openhome.cc/Gossip/AlgorithmGossip/OddArray.htm

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="MagicMatrix.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>九宮格(加強版)</title>
    <style type="text/css">
.numberTextBox { text-align:center; }
</style>
</head>
<body>
    <form id="form1" runat="server">
    <div align="center">
        <h1>
            九宮格(加強版)</h1>
        <asp:Panel ID="Panel1" runat="server" HorizontalAlign="Center">
            請輸入一個大於等於 3 的奇數:
            <asp:TextBox ID="TextBox1" runat="server" CssClass="numberTextBox" Width="73px" AutoPostBack="True"
                OnTextChanged="Button1_Click"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="顯示" /><br />
            <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
            <asp:Label ID="lblSum" runat="server"></asp:Label>
        </asp:Panel>
        <asp:Panel ID="panelError" Visible="false" HorizontalAlign="center" runat="server">
            <asp:Label ID="lblMsg" runat="server"></asp:Label>
            <br />
            <asp:Button ID="btnReset" runat="server" Text="確定" OnClick="btnReset_Click" />
        </asp:Panel>
    </div>
    </form>
</body>
</html>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace MagicMatrix
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                setFocus();
            }
        }

        private void setFocus()
        {
            this.TextBox1.Focus();
            ClientScript.RegisterStartupScript(this.GetType(),
                "selectDefault",
                "document.getElementById('" + TextBox1.ClientID + "').select();",
                true);
        }
        private int[,] makeMatrix(int n)
        {
            int[,] m = new int[n, n];
            int total = n * n;
            int digit = 1;
            int x, y;
            for (y = 0; y < n; y++)
                for (x = 0; x < n; x++)
                    m[y, x] = 0;
            x = n / 2;
            y = n - 1;
            while (digit <= total)
            {
                m[y, x] = digit;
                int nextX = (x + 1) % n;
                int nextY = (y + 1) % n;
                if (m[nextY, nextX] != 0)
                {
                    y = y - 1;
                }
                else
                {
                    x = nextX;
                    y = nextY;
                }
                digit++;
            }
            return m;
        }
        private void showMatrix(int[,] m)
        {
            Table t = new Table();
            t.HorizontalAlign = HorizontalAlign.Center;
            t.BorderStyle = BorderStyle.Solid;
            int sum = 0;
            for (int i = 0; i < m.GetLength(0); i++)
            {
                sum += m[i, 0];
                TableRow row = new TableRow();
                for (int j = 0; j < m.GetLength(1); j++)
                {
                    TableCell cell = new TableCell();
                    cell.Text = m[i, j].ToString();
                    cell.BorderStyle = BorderStyle.Solid;
                    cell.HorizontalAlign = HorizontalAlign.Center;
                    cell.VerticalAlign = VerticalAlign.Middle;
                    cell.Width = 40;
                    cell.Height = 40;
                    row.Cells.Add(cell);
                }
                t.Rows.Add(row);
            }
            lblSum.Text = "總和 = " + sum;
            this.PlaceHolder1.Controls.Clear();
            this.PlaceHolder1.Controls.Add(t);
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            lblSum.Text = "";
            try
            {
                int n = Convert.ToInt32(this.TextBox1.Text.Trim());
                if (((n & 0x1) == 1) && (n >= 3))
                {
                    int[,] matrix = makeMatrix(n);
                    showMatrix(matrix);
                    setFocus();
                }
                else
                {
                    showError("請輸入一個大於等於 3 的奇數");
                }
            }
            catch (Exception)
            {
                showError("數字格式錯誤!");
            }
        }
        private void showError(string msg)
        {
            lblMsg.Text = msg;
            this.Panel1.Visible = false;
            this.panelError.Visible = true;
        }
        protected void btnReset_Click(object sender, EventArgs e)
        {
            this.panelError.Visible = false;
            this.Panel1.Visible = true;
            setFocus();
        }
    }
}
Notes-cheat

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Ex7_2_Notes.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>留言板範例</title>
    <style>
        #wrapper
        {
            margin: 1em 10%;
            padding: 1em;
            background-color: #FFC;
            text-align: center;
        }
        table
        {
            margin: 1em auto;
            text-align: left;
        }
        tr
        {
            vertical-align: middle;
            text-align: left;
        }
        tr.top
        {
            vertical-align: top;
        }
        th
        {
            text-align: right;
        }
        td
        {
            text-align: left;
        }
        a
        {
            text-decoration: none;
        }
        a:link
        {
            color: #FFC;
        }
        a:visited
        {
            color: #FFC;
        }
        span.redStar
        {
            font-weight: bold;
            color: Red;
        }
    </style>
    <script type="text/javascript">
        function ValidateCaptcha(sender, arg) {
            var captcha1 = document.getElementById("<%= hfCaptcha.ClientID %>");
            if (arg.Value == captcha1.value) {
                arg.IsValid = true;
            } else {
                arg.IsValid = false;
            }
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div id="wrapper">
        <h1>
            留言板</h1>
        <hr />
        <asp:Panel ID="panelList" runat="server" HorizontalAlign="Center">
            <asp:Button ID="btnPostNote" runat="server" Text="我要留言" OnClick="btnPostNote_Click" />
            <asp:Table ID="tblNotes" runat="server">
            </asp:Table>
        </asp:Panel>
        <asp:Panel ID="panelPost" runat="server" Visible="false" HorizontalAlign="Center">
            <table>
                <tr>
                    <th>
                        <span class="redStar">*</span> 姓名:
                    </th>
                    <td>
                        <asp:TextBox ID="txtName" runat="server"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <th>
                        <span class="redStar">*</span> 信箱:
                    </th>
                    <td>
                        <asp:TextBox ID="txtEmail" runat="server" Width="350px"></asp:TextBox>
                    </td>
                </tr>
                <tr>
                    <th>
                        網站:
                    </th>
                    <td>
                        <asp:TextBox ID="txtWebSite" runat="server" Width="350px"></asp:TextBox>
                    </td>
                </tr>
                <tr valign="middle">
                    <th>
                        <span class="redStar">*</span>驗證碼:
                    </th>
                    <td>
                        <asp:TextBox ID="txtCaptcha" runat="server"></asp:TextBox>
                        &nbsp;&nbsp;&nbsp;
                        <asp:Image ID="imgCaptcha" runat="server" ImageAlign="Top" ToolTip="請在驗證欄位內輸入圖中的文字" />
                        <asp:Button ID="btnCaptcha" runat="server" Text="重新產生" ToolTip="重新產生驗證碼" 
                            onclick="btnCaptcha_Click" ValidationGroup="vgCaptcha" />
                    </td>
                </tr>
                <tr class="top">
                    <th>
                        <span class="redStar">*</span> 留言:
                    </th>
                    <td rowspan="2">
                        <asp:TextBox ID="txtNote" runat="server" Rows="6" TextMode="MultiLine" Width="350px"></asp:TextBox>
                    </td>
                </tr>
                <tr class="top">
                    <th>
                        <asp:Button ID="btnSubmit" runat="server" Text="送出" OnClick="btnSubmit_Click" 
                            ValidationGroup="vgMain" /><br />
                        <asp:Button ID="btnCancel" runat="server" Text="取消" onclick="btnCancel_Click" 
                            ValidationGroup="vgCancel" />
                    </th>
                </tr>
            </table>
            <asp:HiddenField ID="hfCaptcha" runat="server" />
            <asp:RequiredFieldValidator runat="server" ID="rfvName" ControlToValidate="txtName"
                Display="None" ErrorMessage="請輸入姓名" ForeColor="Red" SetFocusOnError="True" 
                ValidationGroup="vgMain"></asp:RequiredFieldValidator>
            <asp:RequiredFieldValidator runat="server" ID="rfvEmail" ControlToValidate="txtEmail"
                ErrorMessage="請輸入 Email" ForeColor="Red" SetFocusOnError="True" 
                Display="None" ValidationGroup="vgMain"></asp:RequiredFieldValidator>
            <asp:RegularExpressionValidator runat="server" ID="revEmail" ErrorMessage="請輸入正確的 Email!"
                ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtEmail"
                ForeColor="Red" SetFocusOnError="True" Display="None" 
                ValidationGroup="vgMain"></asp:RegularExpressionValidator>
            <asp:RegularExpressionValidator runat="server" ID="revWebSite" ErrorMessage="請輸入正確的網站 URL!"
                ValidationExpression="http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?" ControlToValidate="txtWebSite"
                ForeColor="Red" SetFocusOnError="True" Display="None" 
                ValidationGroup="vgMain"></asp:RegularExpressionValidator>
            <asp:RequiredFieldValidator runat="server" ID="rfvCaptcha" ControlToValidate="txtCaptcha"
                Display="None" ForeColor="Red" ValidationGroup="vgMain"></asp:RequiredFieldValidator>
            <asp:CustomValidator ID="cvCaptcha" runat="server" ControlToValidate="txtCaptcha"
                ClientValidationFunction="ValidateCaptcha" ErrorMessage="驗證碼不正確!" ValidateEmptyText="true"
                Display="None" ForeColor="Red" ValidationGroup="vgMain"></asp:CustomValidator>
            <asp:RequiredFieldValidator ID="rfvNote" runat="server" ControlToValidate="txtNote"
                ErrorMessage="請輸入留言" ForeColor="Red" SetFocusOnError="True" Display="None" 
                ValidationGroup="vgMain"></asp:RequiredFieldValidator>
            <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True"
                ShowSummary="False" ForeColor="Red" ValidationGroup="vgMain" />
        </asp:Panel>
    </div>
    </form>
</body>
</html>
.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.IO;

namespace Ex7_2_Notes
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        private static string[] captchaDigits;
        private static Random random = new Random();
        private const int CAPTCHA_LEN = 6;
        private const int CAPTCHA_WIDTH = 80;
        private const int CAPTCHA_HEIGHT = 26;
        private static List<NoteItem> notesList = new List<NoteItem>();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                initCaptcha();
            }
        }

        private void refreshCaptcha()
        {
            string captcha = getCaptchaString(CAPTCHA_LEN);
            hfCaptcha.Value = captcha;
            string captchaUrl = getCaptchaImage(captcha);
            if (captchaUrl != null)
            {
                imgCaptcha.ImageUrl = captchaUrl;
            }
        }

        private void initCaptcha()
        {
            captchaDigits = new string[35];
            int i, j;
            for (i = 1; i < 10; i++)
            {
                captchaDigits[i - 1] = i.ToString();
            }
            char c = 'a';
            for (j = 1; j <= 26; i++, j++)
            {
                captchaDigits[i - 1] = c.ToString();
                c++;
            }
        }

        private string getCaptchaString(int len)
        {
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < len; i++)
            {
                int n = random.Next(captchaDigits.Length);
                sb.Append(captchaDigits[n]);
            }
            return sb.ToString();
        }

        private string getCaptchaImage(string s)
        {
            string imageUrl = "~/images/" + s + ".png";
            string serverPath = HttpContext.Current.Server.MapPath("~/images");
            string imageFileName = serverPath + "/" + s + ".png";
            Bitmap bmp = new Bitmap(CAPTCHA_WIDTH, CAPTCHA_HEIGHT, PixelFormat.Format24bppRgb);
            Graphics g = Graphics.FromImage(bmp);

            g.TextRenderingHint = TextRenderingHint.AntiAlias;
            g.Clear(Color.Orange);
            g.DrawRectangle(Pens.White, 1, 1, CAPTCHA_WIDTH - 3, CAPTCHA_HEIGHT - 3);
            g.DrawRectangle(Pens.Gray, 2, 2, CAPTCHA_WIDTH - 3, CAPTCHA_HEIGHT - 3);
            g.DrawRectangle(Pens.Black, 0, 0, CAPTCHA_WIDTH, CAPTCHA_HEIGHT);
            g.DrawString(s, new Font("Courier New", 12, FontStyle.Bold), SystemBrushes.WindowText, new PointF(4, 4));

            // save to file
            FileStream objFileStream = null;
            try
            {
                objFileStream = new FileStream(imageFileName, FileMode.OpenOrCreate);
                BinaryWriter objBinaryWriter = new BinaryWriter(objFileStream);
                bmp.Save(objFileStream, ImageFormat.Png);
            }
            catch (Exception ex)
            {
                imageUrl = null;
            }
            finally
            {
                if (objFileStream != null) objFileStream.Close();
                g.Dispose();
                bmp.Dispose();
            }
            return imageUrl;
        }

        protected void btnPostNote_Click(object sender, EventArgs e)
        {
            panelList.Visible = false;
            panelPost.Visible = true;
            refreshCaptcha();
            txtName.Focus();
        }

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            NoteItem item = new NoteItem(txtName.Text.Trim(), txtEmail.Text.Trim().ToLower(),
                txtWebSite.Text.Trim(), txtNote.Text.Trim());
            notesList.Add(item);
            tblNotes.Rows.Clear();
            foreach (NoteItem i in notesList)
            {
                tblNotes.Rows.Add(i.ToTableRow());
            }
            panelList.Visible = true;
            panelPost.Visible = false;
        }

        protected void btnCaptcha_Click(object sender, EventArgs e)
        {
            refreshCaptcha();
            txtCaptcha.Text = "";
            txtCaptcha.Focus();
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            txtName.Text = "";
            txtEmail.Text = "";
            txtWebSite.Text = "";
            txtCaptcha.Text = "";
            txtNote.Text = "";
            panelList.Visible = true;
            panelPost.Visible = false;
        }
    }
}
ShoppingCart-cheat

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="ShopingCart.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>加入購物車</title>
</head>
<body>
    <h1 align="center">
        選購商品加入購物車</h1>
    <hr />
    <form id="form1" runat="server">
    <table align="center" border="0">
        <tr align="left">
            <th>
                產品清單
            </th>
            <td>
                &nbsp;
            </td>
            <th>
                我的購物車
            </th>
        </tr>
        <tr align="left">
            <td>
                <asp:ListBox ID="lbProduct" runat="server" Rows="12" SelectionMode="Multiple" DataTextField="ProductName"
                    DataValueField="ProductID" Width="160px" ValidationGroup="product"></asp:ListBox>
            </td>
            <td align="center">
                <asp:Button ID="btnAddAll" runat="server" Text="全部加入" 
                    onclick="btnAddAll_Click" />
                <br /><br />
                <asp:Button ID="btnAdd" runat="server" Text="加入" OnClick="btnAdd_Click" 
                    ValidationGroup="product" />
                <br /><br />
                <asp:Button ID="btnRemove" runat="server" Text="移除" OnClick="btnRemove_Click" 
                    ValidationGroup="cart" />
                <br /><br />
                <asp:Button ID="btnRemoveAll" runat="server" Text="全部移除" 
                    onclick="btnRemoveAll_Click" />
            </td>
            <td>
                <asp:ListBox ID="lbCart" runat="server" Rows="12" SelectionMode="Multiple" DataTextField="ProductName"
                    DataValueField="ProductID" Width="160px" ValidationGroup="cart"></asp:ListBox>
            </td>
        </tr>
    </table>
    <asp:RequiredFieldValidator ID="rfvProduct" runat="server" 
        ErrorMessage="請從產品清單之中至少選擇一項產品!" ControlToValidate="lbProduct" Display="None" 
        SetFocusOnError="True" ValidationGroup="product"></asp:RequiredFieldValidator>
    <asp:RequiredFieldValidator ID="rfvCart" runat="server" 
        ControlToValidate="lbCart" Display="None" ErrorMessage="請從購物車之中至少選擇一項產品!" 
        SetFocusOnError="True" ValidationGroup="cart"></asp:RequiredFieldValidator>
    <asp:ValidationSummary ID="ValidationSummary1" runat="server" 
        ShowMessageBox="True" ShowSummary="False" ValidationGroup="product" />
    <asp:ValidationSummary ID="ValidationSummary2" runat="server" 
        ShowMessageBox="True" ShowSummary="False" ValidationGroup="cart" />
    </form>
</body>
</html>
.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ShopingCart
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        private List<ProductVO> listProd;   // 產品清單
        private List<ProductVO> listCart;   // 購物清單
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                loadProduct();
            }
        }

        /// <summary>
        /// 從資料庫載入產品
        /// </summary>
        private void loadProduct()
        {
            ProductDAO dao = new ProductDAO();
            listProd = dao.FindAll();
            lbProduct.DataSource = listProd;
            lbProduct.DataBind();
            Session["ProductList"] = listProd;
            listCart = new List<ProductVO>();
            Session["ShoppingCart"] = listCart;
            updateButtonState();
        }

        /// <summary>
        /// 更新按鈕的狀態
        /// </summary>
        private void updateButtonState()
        {
            btnAdd.Enabled = btnAddAll.Enabled = (listProd != null) && (listProd.Count > 0);
            btnRemove.Enabled = btnRemoveAll.Enabled = (listCart != null) && (listCart.Count > 0);
        }

        /// <summary>
        /// 移動
        /// </summary>
        /// <param name="lbSrc">來源 ListBox</param>
        /// <param name="listSrc">來源清單</param>
        /// <param name="lbDst">目的地 ListBox</param>
        /// <param name="listDst">目的地清單</param>
        private void moveSelectedItems(ListBox lbSrc, List<ProductVO> listSrc, ListBox lbDst, List<ProductVO> listDst)
        {
            List<ProductVO> xList = new List<ProductVO>();
            int[] selected = lbSrc.GetSelectedIndices();
            for (int i = 0; i < selected.Length; i++)
            {
                ProductVO vo = listSrc[selected[i]];
                xList.Add(vo);
            }
            foreach (ProductVO vo in xList)
            {
                listSrc.Remove(vo);
                listDst.Add(vo);
            }
            lbSrc.DataSource = listSrc;
            lbSrc.DataBind();
            lbDst.DataSource = listDst;
            lbDst.DataBind();
            lbDst.ClearSelection();
            foreach (ProductVO vo in xList)
            {
                for (int i = 0; i < lbDst.Items.Count; i++)
                {
                    if (lbDst.Items[i].Value.Equals(vo.ProductID))
                    {
                        lbDst.Items[i].Selected = true;
                    }
                }
            }
        }

        /// <summary>
        /// 按下加入按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            listProd = (List<ProductVO>)Session["ProductList"];
            listCart = (List<ProductVO>)Session["ShoppingCart"];
            moveSelectedItems(lbProduct, listProd, lbCart, listCart);
            Session["ProductList"] = listProd;
            Session["ShoppingCart"] = listCart;
            updateButtonState();
        }

        /// <summary>
        /// 按下移除按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnRemove_Click(object sender, EventArgs e)
        {
            listProd = (List<ProductVO>)Session["ProductList"];
            listCart = (List<ProductVO>)Session["ShoppingCart"];
            moveSelectedItems(lbCart, listCart, lbProduct, listProd);
            Session["ProductList"] = listProd;
            Session["ShoppingCart"] = listCart;
            updateButtonState();
        }

        /// <summary>
        /// 按下全部加入按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAddAll_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lbProduct.Items.Count; i++)
            {
                lbProduct.Items[i].Selected = true;
            }
            btnAdd_Click(sender, e);
        }

        /// <summary>
        /// 按下全部移除按鈕
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnRemoveAll_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < lbCart.Items.Count; i++)
            {
                lbCart.Items[i].Selected = true;
            }
            btnRemove_Click(sender, e);
        }
    }
}
SqlQuery-cheat

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SqlQuery.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>SQL 查詢</title>
    <style type="text/css">
    #wrapper { margin:1em auto; padding:1em; width:900px; background-color:#FFC; text-align:center; }
    #input { margin: 0 auto; text-align:left; }
    #buttons, #result { margin: 1em auto;}
    table { margin: 0 auto; text-align:left; }
    tr:nth-child(odd) { background-color:#eeedfc; }
    tr:nth-child(even) { background-color:#eefcee; }
    tr:first-child { background-color:#e7e7e7; }
    td, th { margin:4px; padding:4px; }
    th { text-align:center }    
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="wrapper">
    <h1>SQL 指令練習</h1>
    <hr />
    <div id="input">
        <asp:TextBox ID="txtSQL" runat="server" Rows="10" TextMode="MultiLine" 
            Width="100%"></asp:TextBox>
    </div>
    <div id="buttons">
        <asp:Button ID="btnExecute" runat="server" Text="執行" OnClick="btnExecute_Click" ToolTip="執行 INSERT, UPDATE, DELETE" />
        &nbsp;
        <asp:Button ID="btnQuery" runat="server" Text="查詢" OnClick="btnQuery_Click" ToolTip="執行 SELECT" />
    </div>
    <div id="result">
    <asp:PlaceHolder ID="phResult" runat="server"></asp:PlaceHolder>
    </div>
    </div>
    </form>
</body>
</html>
.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;

namespace SqlQuery
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        private const string ConnStrDatabase1 =
@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True";
 
        protected void Page_Load(object sender, EventArgs e)
        {
        }

        /// <summary>
        /// 顯示錯誤訊息
        /// </summary>
        /// <param name="msg"></param>
        private void showError(string msg)
        {
            phResult.Controls.Clear();
            Label b = new Label();
            b.Text = msg;
            b.ForeColor = Color.Red;
            phResult.Controls.Add(b);
        }

        /// <summary>
        /// 顯示執行結果
        /// </summary>
        /// <param name="msg"></param>
        private void showResult(string msg)
        {
            phResult.Controls.Clear();
            Label b = new Label();
            b.Text = msg;
            b.ForeColor = Color.Blue;
            phResult.Controls.Add(b);
        }

        /// <summary>
        /// 按下『執行』按鈕,執行 INSERT, UPDATE, DELETE
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnExecute_Click(object sender, EventArgs e)
        {
            string sql = txtSQL.Text.Trim();
            try
            {
                using (SqlConnection conn = new SqlConnection(ConnStrDatabase1))
                {
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    conn.Open();
                    int n = cmd.ExecuteNonQuery();
                    showResult("執行結果:" + n);
                    conn.Close();
                }
            }
            catch (Exception ex)
            {
                showError(ex.ToString());
            }
        }

        /// <summary>
        /// 按下『查詢』按鈕,執行 SELECT
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnQuery_Click(object sender, EventArgs e)
        {
            string sql = txtSQL.Text.Trim();
            try
            {
                using (SqlConnection conn = new SqlConnection(ConnStrDatabase1))
                {
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    conn.Open();
                    SqlDataAdapter ada = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    ada.Fill(ds);
                    phResult.Controls.Clear();
                    foreach (DataTable table in ds.Tables)
                    {
                        Label space = new Label();
                        space.Text = "<p>&nbsp;</p>";
                        phResult.Controls.Add(space);
                        GridView gv = new GridView();
                        gv.DataSource = table;
                        gv.DataBind();
                        phResult.Controls.Add(gv);
                    }
                }
            }
            catch (Exception ex)
            {
                showError(ex.ToString());
            }
        }
    }
}
TicTacToe-cheat

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TicTacToe.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>井字遊戲</title>
    <link href="StyleSheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <asp:Panel ID="panelWrapper" runat="server" HorizontalAlign="center" Visible="true">
        <asp:Panel ID="panelRegister" runat="server" HorizontalAlign="center" Visible="true">
            <h1>Tic-Tac-Toe</h1>
            <hr />
            <h1>井字遊戲</h1>
            <asp:Table ID="Table1" runat="server" HorizontalAlign="Center">
                <asp:TableRow ID="TableRow1" runat="server" BackColor="Blue">
                    <asp:TableCell ID="TableCell1" runat="server" ForeColor="White">藍方姓名:</asp:TableCell>
                    <asp:TableCell ID="TableCell2" runat="server">
                        <asp:TextBox ID="txtBlue" runat="server" ValidationGroup="GameRegister" />
                    </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow ID="TableRow2" runat="server" BackColor="Red">
                    <asp:TableCell ID="TableCell3" runat="server" ForeColor="White">紅方姓名:</asp:TableCell>
     <asp:TableCell ID="TableCell4" runat="server">
                        <asp:TextBox ID="txtRed" runat="server" ValidationGroup="GameRegister" />
                    </asp:TableCell>
    </asp:TableRow>
    <asp:TableRow ID="TableRow3" runat="server">
                    <asp:TableCell ID="TableCell5" ColumnSpan="2" runat="server">
                        <asp:Button ID="btnPlay" Text="開始玩" OnClick="btnPlay_Click" runat="server" 
       ValidationGroup="GameRegister" />
                        <asp:Button ID="btnReset" Text="清除" OnClick="btnPlay_Click" runat="server" />
                    </asp:TableCell>
    </asp:TableRow>
   </asp:Table>
   <asp:RequiredFieldValidator ID="rfvBlueName" runat="server" ControlToValidate="txtBlue"
                ErrorMessage="請輸入藍方姓名!" Display="None" SetFocusOnError="true" 
    ValidationGroup="GameRegister" />
            <asp:RequiredFieldValidator ID="rfvRedName" runat="server" ControlToValidate="txtRed"
                ErrorMessage="請輸入紅方姓名!" Display="None" SetFocusOnError="true" 
    ValidationGroup="GameRegister" />
            <asp:CompareValidator ID="cvNames" runat="server" ControlToValidate="txtBlue" 
    ControlToCompare="txtRed" Operator="NotEqual" ErrorMessage="藍方姓名與紅方姓名不可相同!" 
    Display="None" SetFocusOnError="True" ValidationGroup="GameRegister" />
   <asp:ValidationSummary ID="vsRegister" runat="server" ForeColor="Red"
                    ShowSummary="false" ShowMessageBox="true" ValidationGroup="GameRegister" />
            <asp:Label ID="lblMessage" runat="server" ForeColor="red"></asp:Label>
  </asp:Panel>
  <asp:Panel ID="panelPlay" runat="server" HorizontalAlign="center" Visible="false">
            <p><asp:Label ID="lblPlayRun" runat="server" Font-Size="Larger" Text="第1回合"></asp:Label></p>
   <asp:Label ID="lblHint" runat="server"></asp:Label>
   <table class="solidBorder">
                <tr>
                    <td><asp:Button ID="btn00" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="0,0" /></td>
                    <td><asp:Button ID="btn01" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="0,1" /></td>
                    <td><asp:Button ID="btn02" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="0,2" /></td>
                </tr>
                <tr>
                    <td><asp:Button ID="btn10" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="1,0" /></td>
                    <td><asp:Button ID="btn11" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="1,1" /></td>
                    <td><asp:Button ID="btn12" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="1,2" /></td>
                </tr>
                <tr>
                    <td><asp:Button ID="btn20" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="2,0" /></td>
                    <td><asp:Button ID="btn21" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="2,1" /></td>
                    <td><asp:Button ID="btn22" runat="server" OnClick="btn_Click" Width="40px" Height="40px"
       Font-Bold="True" Font-Size="Larger" CommandArgument="2,2" /></td>
                </tr>
            </table>
            <asp:Button ID="btnResult" runat="server" Text="看結果" Visible="false" 
    OnClick="btnResult_Click" />
   <br />
            <asp:Literal ID="litLog" runat="server"></asp:Literal>
  </asp:Panel>
  <asp:Panel ID="panelResult" runat="server" HorizontalAlign="center" Visible="false">
            <table>
                <tr>
                    <td class="textAlignRight">藍方勝: </td>
     <td><asp:Label ID="lblBlueWins" runat="server"></asp:Label></td>
     <td> 次 </td>
    </tr>
    <tr>
                    <td class="textAlignRight">紅方勝: </td>
     <td><asp:Label ID="lblRedWins" runat="server"></asp:Label></td>
     <td> 次 </td>
    </tr>
    <tr>
                    <td class="textAlignRight">平手: </td>
     <td><asp:Label ID="lblDue" runat="server"></asp:Label></td>
     <td> 次 </td>
    </tr>
   </table>
   <asp:Button ID="btnReplay" runat="server" Text="再玩一次" OnClick="btnReplay_Click" />
            <asp:Button ID="btnRestart" runat="server" Text="重新開始" OnClick="btnRestart_Click" />
  </asp:Panel>
    </asp:Panel>
    </form>
</body>
</html>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Text;

namespace TicTacToe
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        private const int MATRIX_DIM = 3; // 井字棋盤尺寸:3x3
        private int turn = 1;   // 輪到那一方? 0=藍方; 1=紅方
        private int[,] matrix = null; // 井字棋盤
        private Button[] buttons = null; // 井字棋盤中的按鈕
        private string[] symbol = { "O", "X" }; // 雙方的符號 0=藍方(O); 1=紅方(X)
        private Color[] color = { Color.Blue, Color.Red }; // 雙方顏色 0=藍方; 1=紅方
        private int blueWins = 0;   // 藍方贏的累計次數
        private int redWins = 0;    // 紅方贏的累計次數
        private int runCount = 0;   // 目前遊戲進行到第幾個回合?
        private int stepCount = 0;  // 本回合遊戲進行到第幾個步驟?
        private StringBuilder log;  // 本回合遊戲歷程紀錄

        protected void Page_Load(object sender, EventArgs e)
        {
            buttons = new Button[]{btn00,btn01,btn02,
                                   btn10,btn11,btn12,
                                   btn20,btn21,btn22};
            if (!IsPostBack)
            {
                resetAll();
            }
            else
            {
                restoreFromSession();
            }
        }


        private void resetAll()
        {
            cleanup();
            runCount = 0;
            blueWins = 0;
            redWins = 0;
            txtBlue.Text = "";
            txtRed.Text = "";
            saveToSession();
        }


        private void saveToSession()
        {
            Session["matrix"] = matrix;
            Session["turn"] = turn;
            Session["stepCount"] = stepCount;
            Session["runCount"] = runCount;
            Session["blueWins"] = blueWins;
            Session["redWins"] = redWins;
            Session["log"] = log;
        }


        private void restoreFromSession()
        {
            matrix = (int[,])Session["matrix"];
            turn = (int)Session["turn"];
            stepCount = (int)Session["stepCount"];
            runCount = (int)Session["runCount"];
            blueWins = (int)Session["blueWins"];
            redWins = (int)Session["redWins"];
            log = (StringBuilder)Session["log"];
        }


        private void cleanup()
        {

            matrix = new int[MATRIX_DIM, MATRIX_DIM];
            for (int i = 0; i < MATRIX_DIM; i++)
            {
                for (int j = 0; j < MATRIX_DIM; j++)
                {
                    matrix[i, j] = -1;
                }
            }
            for (int i = 0; i < buttons.Length; i++)
            {
                buttons[i].Text = " ";
                buttons[i].BackColor = Color.White;
                buttons[i].Enabled = true;
            }
            btnResult.Visible = false;
            turn = 1;
            stepCount = 0;
            log = new StringBuilder();
            litLog.Text = "";
        }


        private void disableCells()
        {
            for (int i = 0; i < buttons.Length; i++)
                buttons[i].Enabled = false;
        }


        private void takeTurn()
        {
            stepCount++;
            turn = 1 - turn;
            if (turn == 0)
            {
                lblHint.Text = "輪到藍方(" + txtBlue.Text + ")";
                lblHint.ForeColor = Color.Blue;
            }
            else
            {
                lblHint.Text = "輪到紅方(" + txtRed.Text + ")";
                lblHint.ForeColor = Color.Red;
            }
        }


        protected void btnPlay_Click(object sender, EventArgs e)
        {
            if (sender == btnPlay)
            {
                if (txtBlue.Text.Trim().Length < 1)
                {
                    lblMessage.Text = "請輸入藍方姓名!";
                }
                else if (txtRed.Text.Trim().Length < 1)
                {
                    lblMessage.Text = "請輸入紅方姓名!";
                }
                else
                {
                    panelRegister.Visible = false;
                    panelPlay.Visible = true;
                    takeTurn();
                    runCount = 1;
                    lblPlayRun.Text = "第 " + runCount + " 回合";
                }
            }
            else if (sender == btnReset)
            {
                resetAll();
            }
            saveToSession();
        }

        private int analysis()
        {
            for (int i = 0; i < 3; i++)
            {
                if ((matrix[i, 0] >= 0) && (matrix[i, 0] == matrix[i, 1]) &&
                    (matrix[i, 1] == matrix[i, 2]))
                {
                    return matrix[i, 0];
                }
            }
            for (int i = 0; i < 3; i++)
            {
                if ((matrix[0, i] >= 0) && (matrix[0, i] == matrix[1, i]) &&
                    (matrix[1, i] == matrix[2, i]))
                {
                    return matrix[0, i];
                }
            }
            if ((matrix[0, 0] >= 0) && (matrix[0, 0] == matrix[1, 1]) &&
                (matrix[1, 1] == matrix[2, 2]))
            {
                return matrix[0, 0];
            }
            if ((matrix[0, 2] >= 0) && (matrix[0, 2] == matrix[1, 1]) &&
                (matrix[1, 1] == matrix[2, 0]))
            {
                return matrix[0, 2];
            }
            return -1;
        }


        private void judge()
        {
            int n = analysis();
            if (n >= 0)
            {
                if (n == 0)
                {
                    lblHint.Text = "藍方勝!";
                    lblHint.ForeColor = Color.Blue;
                    blueWins++;
                }
                else
                {
                    lblHint.Text = "紅方勝!";
                    lblHint.ForeColor = Color.Red;
                    redWins++;
                }
                btnResult.Visible = true;
                disableCells();
            }
            else if (stepCount == 9)
            {
                lblHint.Text = "雙方平手!";
                btnResult.Visible = true;
                disableCells();
            }
            else
            {
                takeTurn();
                btnResult.Visible = false;
            }
        }


        private void logStep(int row, int col, Button btn)
        {
            log.Append("<br />步驟 " + stepCount + ":" +
                row + "," + col + "," +
                (turn == 0 ? "藍" : "紅") + "," +
                symbol[turn]);
            litLog.Text = log.ToString();
            matrix[row, col] = turn;
            btn.Enabled = false;
            btn.Text = symbol[matrix[row, col]];
            btn.BackColor = color[matrix[row, col]];
            judge();
        }


        protected void btn_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            if (btn == null) return;
            char[] sep = { ',' };
            string[] tokens = btn.CommandArgument.Split(sep);
            int row = int.Parse(tokens[0]);
            int col = int.Parse(tokens[1]);
            logStep(row, col, btn);
            saveToSession();
        }


        protected void btnResult_Click(object sender, EventArgs e)
        {
            panelPlay.Visible = false;
            panelResult.Visible = true;
            lblBlueWins.Text = blueWins.ToString();
            lblRedWins.Text = redWins.ToString();
            int due = runCount - (blueWins + redWins);
            lblDue.Text = due.ToString();
        }


        protected void btnReplay_Click(object sender, EventArgs e)
        {
            panelResult.Visible = false;
            panelPlay.Visible = true;
            cleanup();
            takeTurn();
            runCount++;
            lblPlayRun.Text = "第 " + runCount + " 回合";
            saveToSession();
        }

        protected void btnRestart_Click(object sender, EventArgs e)
        {
            panelResult.Visible = false;
            panelRegister.Visible = true;
            resetAll();
            saveToSession();
        }
    }
}
UnitConvert-OKhtml

.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="UnitConvert.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>單位轉換</title>
    <style type="text/css">
        div
        {
            text-align:center;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <img src="tiger.jpg" alt="" align="right"/>
    <h1>單位轉換</h1>
    <h5 style="color:Red">(小數點第2 位以下四捨五入)</h5>
    <hr />
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
            <asp:ListItem Value="0">攝氏溫度轉華氏溫度</asp:ListItem>
            <asp:ListItem Value="1">華氏溫度攝氏溫度</asp:ListItem>
        </asp:DropDownList>

        <br />
        <asp:Label ID="lb1" runat="server" Text="攝氏溫度"></asp:Label>
        <asp:TextBox ID="tb1" runat="server"></asp:TextBox>
        <asp:Label ID="lb2" runat="server" Text="→ 華氏溫度"></asp:Label>
        <asp:TextBox ID="tb2" runat="server" ReadOnly="True"></asp:TextBox>
        <br />
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="tb1" ErrorMessage="RequiredFieldValidator">請輸入</asp:RequiredFieldValidator>
        <br />
        <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="tb1" 
            ErrorMessage="RangeValidator" Type="Double">請輸入數字</asp:RangeValidator>
        <br />
        <asp:Button ID="Button1" runat="server" Text="轉換" onclick="Button1_Click" />
        <br />
        <span style="color:Green">
        <asp:Literal  ID="Literal1" runat="server"></asp:Literal>
        </span>

    </div>
    </form>
</body>
</html>

.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace UnitConvert
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string type = DropDownList1.SelectedValue;
            tb1.Text = "";
            tb2.Text = "";
            if (type == "0")
            {
                lb1.Text = "攝氏溫度";
                lb2.Text = "→ 華氏溫度";
                Literal1.Text = "華氏溫度 = 攝氏溫度 * 9 / 5 + 32";
            }
            else
            {
                lb1.Text = "華氏溫度";
                lb2.Text = "→ 攝氏溫度";
                Literal1.Text = "攝氏溫度 = (華氏溫度 - 32 ) * 5 / 9";
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            double temp = double.Parse(tb1.Text);
            string type = DropDownList1.SelectedValue;
            if (type == "0")
            {
                tb2.Text = "" + Math.Round(temp * 9 / 5 + 32, 2);
            }
            else {
                tb2.Text = "" + Math.Round((temp - 32) * 5 / 9, 2);
            }
        }
    }
}

2013年11月13日 星期三

[TQC+ Android]判斷地標所屬區域_308

1. 下載 google APIs 7 >> 專案右鍵 >> properties >> Android google APIs 7  >> AVD模擬器google APIs 開啟
2.  Application add (Users Liberary) 選 com.google.android.maps
3. 我們增加了android.permission.ACCESS_FINE_LOCATION的權限,主要是GPS的位置提供
除了FINE另外還有COARSE,可以透過其他的服務來取得位置(network: 3G or Wifi)

GDD03.java - Activity主體
package COM.TQC.GDD03;

import com.google.android.maps.GeoPoint;

import android.app.Activity;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.widget.TextView;

public class GDD03 extends Activity implements LocationListener
{
  public String strLocationPrivider = "";
  public TextView mTextView01;
  LocationManager lm;
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    lm = (LocationManager) getSystemService(LOCATION_SERVICE);
    
    mTextView01 = (TextView)findViewById(R.id.myTextView1);
    getLocationPrivider();
  }
  
  public void getLocationPrivider()
  {
    try
    {
      Criteria mCriteria01 = new Criteria();
      mCriteria01.setAccuracy(Criteria.ACCURACY_FINE);
      mCriteria01.setAltitudeRequired(false);
      mCriteria01.setBearingRequired(false);
      mCriteria01.setCostAllowed(true);
      mCriteria01.setPowerRequirement(Criteria.POWER_LOW);
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
  }

@Override
protected void onResume() {
 // TODO Auto-generated method stub
 super.onResume();
 strLocationPrivider = lm.getBestProvider(new Criteria(), true);
 lm.requestLocationUpdates(strLocationPrivider, 5000, 0, this);
 Location l = lm.getLastKnownLocation(strLocationPrivider);
 if(l != null )
  onLocationChanged(l);
}

@Override
public void onLocationChanged(Location location) {
 // TODO Auto-generated method stub
 double la = location.getLatitude()*1E6, lo= location.getLongitude()*1E6;
 GeoPoint gp = new GeoPoint((int)la, (int)lo);
 if(gp.getLatitudeE6()/1E6 <= 25.051578 && gp.getLatitudeE6()/1E6 >= 25.051201 
   && gp.getLongitudeE6()/1E6 >= 121.549197 && gp.getLongitudeE6()/1E6 <= 121.549666)
  mTextView01.setText(getString(R.string.str_inside));
 else
  mTextView01.setText(getString(R.string.str_outside));
}

@Override
public void onProviderDisabled(String provider) {
 // TODO Auto-generated method stub
 
}

@Override
public void onProviderEnabled(String provider) {
 // TODO Auto-generated method stub
 
}

@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
 // TODO Auto-generated method stub
 
}
}

2013年11月1日 星期五

網際網路程式設計 期中考 參考答案

1.

<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>笑話一則</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <style>
    article{
      margin: 1em 10%;
      background-color: #FFC;
    }
    div{
      font-family: "細明體";
    }
    </style>
</head>
<body>
  <article>
    <h1>積習難改</h1>
    <hr>
    <p>李老師: 教書教了這麼久,今年暑假我就要退休了。<br>
    趙主任: 李老師精通十八種程式語言,系上無人能及,如果退休,真是本系最大的損失。<br>
    李老師: 學過這麼多種程式語言,都快要不會說人話了,退休以後我就不再學寫程式了。<br>
    趙主任: 退休生活如果無所事事,恐怕會很無聊,還是培養一些興趣比較好。<br>
    李老師: 過年前在活動中心看到有人當眾揮毫寫春聯,很是羨慕,我想退休後也來學習書法吧。<br>
    趙主任: 非常好!書法怡情養性,屆時您寫的第一篇書帖務必要送給我留作紀念。
    </p>
    
    <p>
    夏天過後趙主任收到李老師寄來的一個包裹,裡面是一卷沾滿墨色的宣紙,想必是李老師寫的<br>
    第一篇書帖,趙主任展開宣紙一看嚇了一跳,原來宣紙上以細明體寫著斗大的
    </p>
    <div align="center">
    Hello World!
    </div>
  </article>
</body>
</html> 
2-1.

<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>我的第一個 C++ 程式</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <style>
    section{
     margin:1em 10%;
     background-color: #EFF;
    }
    pre{
     font-family: "Courier New";
    }
    </style>
</head>
<body>
 <section>
  <h1>我的第一個 C++ 程式</h1>
  <code><pre>
   #include &lt;iostream&gt;

   using namespace std;
   int main(int argc, char *argv[]) {
    cout&lt;&lt;&quot;Hello World!&quot;&gt;&gt;endl;
    return 0;
   }
  </code></pre>
 </section>
</body>
</html> 
2-2.

<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>2007年10月汽柴油批售參考牌價表</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <style>
    th{
     font-weight: bold;
     text-align: center;
    }
    tr:nth-child(odd){
     background-color: red;
    }
    tr:nth-child(even){
     background-color: yellow;
    }
    td{
     text-align: left;
    }
    td:nth-child(4), td:nth-child(6){
     text-align: center;
    }
    td:nth-child(5), td:nth-child(7){
     text-align: right;
    }
    </style>
</head>
<body>

 <table border="1">
  <caption>
   <h1>「汽柴油批售」 參考牌價表</h1>
   <h2>2007年10月2日0時0分起實施</h2>
   <h3>(實際價格以各營業地點公告為準)</h3>
  </caption> 
  <tr style="background-color: green">
   <th>產品編號</th>
   <th>產品名稱</th>
   <th>銷售對象</th>
   <th>計價單位</th>
   <th>參考牌價</th>
   <th>營業稅</th>
   <th>貨物稅</th>
   <th>備註</th>
  </tr>
  <tr>
   <td>113F 1209800</td>
   <td>98無鉛汽油</td>
   <td>合約加盟站</td>
   <td>元/公升</td>
   <td>28.517</td>
   <td>5%</td>
   <td>6.830元/公升</td>
   <td></td>
  </tr>
  <tr>
   <td>113F 1209500</td>
   <td>95無鉛汽油</td>
   <td>合約加盟站</td>
   <td>元/公升</td>
   <td>27.217</td>
   <td>5%</td>
   <td>6.830元/公升</td>
   <td></td>
  </tr>
  <tr>
   <td>113F 1209500</td>
   <td>95無鉛汽油</td>
   <td>合約加盟站</td>
   <td>元/公升</td>
   <td>27.217</td>
   <td>5%</td>
   <td>6.830元/公升</td>
   <td></td>
  </tr>
  <tr>
   <td>113F 1209200</td>
   <td>92無鉛汽油</td>
   <td>合約加盟站</td>
   <td>元/公升</td>
   <td>26.517</td>
   <td>5%</td>
   <td>6.830元/公升</td>
   <td></td>
  </tr>
  <tr>
   <td>113F 1229500</td>
   <td>酒精汽油</td>
   <td>合約加盟站</td>
   <td>元/公升</td>
   <td> 27.217</td>
   <td>5%</td>
   <td>6.830元/公升</td>
   <td></td>
  </tr>
  <tr>
   <td>113F 5100100</td>
   <td>超級柴油</td>
   <td>合約加盟站</td>
   <td>元/公升</td>
   <td>25.2227</td>
   <td>5%</td>
   <td>3.990元/公升</td>
   <td></td>
  </tr>
  <tr>
   <td>113F 5110100</td>
   <td>生質柴油</td>
   <td>合約加盟站</td>
   <td>元/公升</td>
   <td>25.2227</td>
   <td>5%</td>
   <td>3.990元/公升</td>
   <td></td>
  </tr>
 </table>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
</body>
</html> 

3.

<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>專案管理簡介</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <!--<style></style>-->
</head>
<body>
 <h1 style="text-align:center">什麼是專案?</h1>
 <hr>
 <ul>
  <li>專案定義</li>
  <ul>
   <li>專案是為完成某一獨特的產品或服務所做的彼此相互關聯的任務或活動的一次性過程。</li>
   <li>專案是一種暫時性的努力以創造. 出一項獨一無二的產品或服務。</li>
  </ul>

  <li>專案屬性</li>
  <ol>
   <li>一次性</li>
   <li>獨特性</li>
   <li>目標的確定性</li>
   <li>活動的整體性</li>
   <li>組織的臨時性和開放性</li>
   <li>開發與實施的漸進性</li>
  </ol>
 </ul>
 <div style="text-align:center" >
  <img src="images/PMI-Knowledge-Areas.gif">
 </div>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
</body>
</html> 


4.

<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>99年7、8月統一發票</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <style>
    </style>
</head>
<body>
 <table border="1">
  <caption>
   <h1>99年7月、8月統一發票中獎號碼單<h1>
  </caption>
  <div>
  <tr> 
   <th rowspan="4" style="background-color:red">特獎</th>    
   <th>7 9 7 2 1 3 5 4 </th>
   <tr><th>1 0 1 7 5 7 5 5 </th></tr>
   <tr><th>5 9 0 2 9 6 1 0 </th></tr>
   <tr><td>同期統一發票收執聯 8 位數號碼與上列號碼相同者獎金 200 萬元 </td></tr>
  </tr>
  </div>

  
  <tr>
   <th rowspan="4" style="background-color:orange">頭獎</th>
   <th>1 3 4 9 2 7 4 0 </th>
   <tr><th>2 2 7 9 1 8 3 8 </th></tr>
   <tr><th>1 2 9 9 4 1 3 7 </th></tr>
   <tr><td>同期統一發票收執聯 8 位數號碼與上列號碼相同者獎金 20 萬元 </td></tr>
  </tr>


  <tr><th style="background-color:yellow">二獎</th><td>同期統一發票收執聯末 7 位數號碼與頭獎中獎號碼末 7 位相同者各得獎金 4 萬元  </td></tr>

  <tr><th style="background-color:green">三獎</th><td>同期統一發票收執聯末 6 位數號碼與頭獎中獎號碼末 6 位相同者各得獎金 1 萬元 </td></tr>

  <tr><th style="background-color:blue">四獎</th><td>同期統一發票收執聯末 5 位數號碼與頭獎中獎號碼末 5 位相同者各得獎金 4 千元 </td></tr>

  <tr><th style="background-color:pink">五獎</th><td>同期統一發票收執聯末 4 位數號碼與頭獎中獎號碼末 4 位相同者各得獎金 1 千元 </td></tr>

  <tr><th style="background-color:purple">六獎</th><td>同期統一發票收執聯末 3 位數號碼與頭獎中獎號碼末 3 位相同者各得獎金 2 百元 </td></tr>

  <tr>
   <th rowspan="2" style="background-color:brown">增開六獎</th>
   <td>同期統一發票收執聯末3位數號碼與下列號碼相同者各得獎金2百元 </td>
   <tr><th>5 0 5 </th></tr> 
  </tr>
 

  <tr>
   <th>領獎注意事項</th>

   <td>
    <ol>
     <li>領獎期間自99年10月6日起至100年1月5日止,請於郵局公告之兌獎營業時間內辦理,中獎人填妥領獎收據並在收據上粘貼0.4%印花稅票(中五獎以上者),攜帶國民身分證及中獎統一發票收執聯兌領獎金。中特獎、頭獎、二獎、三獎者請向各直轄市及各縣、市經指定之郵局領取獎金;中四獎、五獎、六獎者請向各地郵局兌獎。(各地郵局延時營業窗口及夜間郵局均不辦理兌獎業務。)</li>
     <li>統一發票收執聯未依規定載明金額者,不得領獎。</li>
     <li>統一發票買受人為政府機關、公營事業、公立學校、部隊及營業人者,不得領獎。</li>
     <li>中四獎以上者,依規定應由發獎單位扣繳 20 ﹪所得稅款。</li>
     <li>中獎之統一發票,每張按其最高中獎獎別限領 1 個獎金。</li>
     <li>其他有關領獎事項均依 「 統一發票給獎辦法 」 規定辦理。</li>
     <li>若有任何兌獎疑義,請洽詢服務專線電話: (02)2396-1651 </li>
    </ol>
   </td>
  </tr>

 </table>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
</body>
</html> 


5.


<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>減肥十法</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <style>
    h1{
     text-align: center;
    }
    </style>
</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
<h1>十大熱門減肥方法大比較, 那種減肥方法最有效?</h1>

<p>想要減肥, 方法千千萬萬。小編總結了最常用的十種減肥方法, 你用過其中的方法嗎?來PK一下看看那種最有效?</p>
<ol>
 <li>
  <p>運動減肥</p>
  <dl>
   <dt>特點:</dt>
   <dd>自然療法, 安全無副作用, 不易反彈。</dd>

   <dt>理由:</dt>
   <dd>對于減肥而言, 運動無疑是最有幫助的, 雖然運動減肥見效緩慢, 但運動可以保持瘦體重, 改善胰島素敏感度, 提高靜代謝率, 這些長久的好處, 則是單純控制飲食無法辦到的。</dd>

   <dt>注意事項:</dt>
   <dd>運動減肥方法的要點一是長期堅持, 二是必須配合飲食控制。同時補充服用些運動營養劑, 效果更佳。</dd>
  </dl>
 </li>
 <li>
  <p>西藥減肥 </p>
  <dl>
   <dt>特點:</dt>
   <dd>起效快, 效果好, 但反彈率高, 有副作用。</dd>

   <dt>理由:</dt>
   <dd>西藥減肥都應該歸屬於處方藥, 沒有醫師指導, 不可自行用藥。 切忌只關心減肥效果好, 使用超過安全劑量的藥物。 如不考慮反彈與副作用因素, 單論起效快, 減得多, 此法應該名列榜首。 但是可能會危害身體健康!</dd>

   <dt>注意事項:</dt>
   <dd>必須在醫生指導下安全用藥。</dd>
  </dl>
 </li>
 <li>
  <p>量身減肥</p>
  <d1>
   <dt>特點:</dt>
   <dd>根據自身的不同情況, 量身制定減肥方案, 謀求減肥效果最大化。</dd>

   <dt>理由:</dt>
   <dd>由于肥胖者的年齡、性別、伴有的慢性疾病、身體狀況、生活和飲食習慣、遺傳因素等多方面存在的諸多差異, 所以減肥需要因人而異, 對症施治。 量身減肥方法應該包括:使用針對性的產品、糾正不良的飲食生活習慣、培養健康的減肥心理。</dd>

   <dt>注意事項:</dt>
   <dd>要找有經驗的專業機構或專家。</dd>
  </dl>
 </li>
 <li>
  <p>營養減肥</p>
  <d1>
   <dt>特點:</dt>
   <dd>歸屬飲食減肥方法, 即吃得少, 又吃得營養價值高, 這也是飲食減肥方法的精髓。</dd>

   <dt>理由:</dt>
   <dd>單純性肥胖者最基本的問題, 即是攝入熱量大于消耗熱量。 而攝入熱量過高與日常食物中所含的卡路裏偏高, 或者食物攝取量過多有關。 所以營養減肥的方式主要就是代餐, 用高營養低熱量的食品來替代低營養高熱量的食品。</dd>

   <dt>注意事項:</dt>
   <dd>代餐類食品中所含的營養必須能滿足人體每日所需。</dd>
  </d1>
 </li>
 <li>
  <p>針炙減肥</p> 
  <d1>
   <dt>特點:</dt>
   <dd>調整機體內分泌, 無副作用, 效果好。</dd>

   <dt>理由:</dt>
   <dd>針灸通過刺激相關穴位, 促進機體脂肪代謝, 消耗囤積在人體內部的脂肪, 調節消化道功能, 及時消除體內垃圾, 達到調整機體內分泌的作用, 同時還能抑止亢進的食欲, 從而最終實現減肥。 各種針刺療法的效果在 73.3%~89%左右。</dd>

   <dt>注意事項:</dt>
   <dd>必須要在正規醫院進行。</dd>
  </d1>
 </li>
 <li>
  <p>中藥減肥 </p>
  <d1>
   <dt>特點:</dt>
   <dd>副作用小, 處方靈活, 起效快, 效果好。</dd>

   <dt>理由:</dt>
   <dd>肥胖的成因較復雜, 多數學者認為肥胖與體質、年齡、飲食習慣、勞逸、情緒、遺傳等因素有關。 而辨證論治是中醫治療學的核心, 治療肥胖症同樣要強調辨證論治, 它具有針對性強, 兼顧合並症等優點。</dd>

   <dt>注意事項:</dt>
   <dd>中藥講究陰陽調和與辯證論治, 用錯藥反會適得其反。</dd>
  </d1>
 </li>
 <li>
  <p>喝茶減肥</p> 
  <d1>
   <dt>特點:</dt>
   <dd>最方便, 最簡單的減肥方法。</dd>

   <dt>理由:</dt>
   <dd>很多天然的植物中包括茶葉, 都或多或少的減肥的功效, 雖然減肥效果沒有那麼的明顯, 不過長期堅持, 自然會有幫助。 尤其適合作為輔助減肥方法使用</dd>

   <dt>注意事項:</dt>
   <dd>各種市售減肥茶, 通常含有泄藥, 減肥機理以泄為主, 不可取。</dd>
  </d1>
 </li>
 <li>
  <p>外用減肥</p> 
  <d1>
   <dt>特點:</dt>
   <dd>外用品, 克服人們對內服藥品的副作用恐懼。</dd>

   <dt>注意事項:</dt>
   <dd>減肥霜之類的外用產品對肌體脂肪代謝過程不能發揮任何影響, 因此對全身性肥胖的治療沒有任何幫助。 實際上使用任何一種減肥霜都需要按摩、熱敷等。 其實只要按摩得法, 一樣可減肥。 試想一堆脂肪, 經過按摩及熱敷後, 脂肪組織中的間隙就會變寬, 毛細血管就會見縫插針, 局部的血液循環好了, 脂肪的代謝也就加快了, 豐滿的脂肪細胞自然會變瘦的, 因而局部就變薄了, 真正的作用在于按摩, 減肥霜起輔助作用。</dd>
  </d1>
 </li>
 <li>
  <p>束身衣減肥 </p>
  <d1>
   <dt>特點:</dt>
   <dd>塑造從胸部到腰部的線條, 讓腰部與上半身看起來更加苗條修長。</dd>

   <dt>注意事項:</dt>
   <dd>並沒有什麼讓脂肪移位的說法, 所以此類產品本質並不產生減脂效果。 另外也不要把褲腰帶勒得過緊, 這對身體健康是有害的。 要知道, 褲腰帶勒在腰上, 前面是腹腔, 後面是腰肌, 如果勒腰過緊, 把腸子壓擠到盆腔裏去以後, 便會影響盆腔內子宮、卵巢、輸卵管的血液循環, 使生殖器官不能及時得到營養和排泄廢物, 生長發育和生殖功能出現毛病,
    往往引起月經不調、痛經、盆腔炎、不孕症等。</dd>
  </d1>
 </li>
 <li>
  <p>節食減肥 </p>
  <d1>
   <dt>特點:</dt>
   <dd>經濟, 減肥速度快, 但容易造成營養不良, 反彈率高。</dd>

   <dt>注意事項:</dt>
   <dd>由于節食會基礎代謝率降低, 基礎能耗越來減少, 減肥難度一次比一次高, 控制脂肪細胞內脂肪儲備量的脂肪酶變得更加活躍, 以致使更容易貯存脂肪, 恢復飲食後, 會迅速復胖, 甚至超過原來的水平。</dd>
  </d1>
 </li>
</ol>

</body>
</html> 
6.


<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>書籍介紹</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <style>

    </style>
</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
<h1 style="text-align:center">書籍介紹</h1>
<br>
<table>
 <tr>
  <td><img src="images/book1.jpg"></td>
  <td>
   <table>
    <tr><th>熱情人生的冰淇淋哲學</th></tr>
    <tr><th>The Renaissance Soul</th></tr>
    <tr><td>作者:瑪格麗特.羅賓絲婷</td></tr>
    <tr><td>原文作者:Margaret Lobenstine</td></tr>
    <tr><td>譯者:劉怡女</td></tr>
    <tr><td>出版社:<a href="http://www.locuspublishing.com/" target="_blank">大塊文化</a></td></tr>
    <tr><td>出版日期:2007年10月29日</td></tr>
    <tr><td>語言:繁體中文</td></tr>
    <tr><td>ISBN:9789862130148</td></tr>
    <tr><td>裝訂:平裝</td></tr>
    <tr><td>售價:280元</td></tr>
   </table>
  </td>
 </tr>
</table>

<h3>內容簡介</h3>

<ul>
 <li>你興趣廣泛,好奇心強烈,熱情滿滿,不容易待在一個領域裡,怎麼也難以決定該走上哪一條道路。絕大多數的生涯顧問都會建議你:找出你最重要的長處和優勢,努力發揮它們,在同一個軌道上累積成績與實力,一步一步往往上爬。</li>
 <li>只有這本書鼓勵你:接受你喜愛朝向多面發展的特質,循著熱情找工作過生活,同時進行多種興趣,隨時可以改變愛好,用熱情來幫你取得金錢與快樂。</li>
 <li>本書結合了生涯規劃、心理諮商與時間管理的概念和技巧,將會讓你學到:
  <ul>
   <li>重新認識自己的性格特質,愛上多才多藝的自己。</li>
   <li>選擇愛好可以像是在吃四色冰淇淋,同時進行幾種你目前最喜歡的「熱情焦點」。</li>
   <li>用嶄新的眼光尋找下一份工作,或者重新看待現在這份給你薪水的工作。</li>
   <li>不必轉換職業軌道,也能滿足好幾種愛好。</li>
   <li>用你熱愛的事物來賺取金錢。</li>
   <li>把時間管理得既有秩序又有彈性。</li>
   <li>不必辭職進修,也能獲得新領域的知識。</li>
  </ul>
 </li>
 <li>特別建議以下幾種人類從這本書裡找到指引:
  <ul>
   <li>已展現能力並擔任主管職務,受公司倚重,但耳畔有聲音對你說:「人生還有別的可能性。」</li>
   <li>善於「打天下」,但不喜「治天下」的人才。喜歡尚未嘗試過的風險,遠勝於已經熟悉的成功。</li>
   <li>過去兩年來換過四次工作,每次都覺得新工作是正確選擇,但不久又因為想做別的新鮮事而離職。</li>
   <li>目前從事薪水微薄的基層工作,想換工作但不知還能做什麼,總覺得看不到出路的人。</li>
   <li>興趣廣泛,期許自己成為一個多才多藝的全能人才,可是不知如何選定大學主修課程的學生。</li>
  </ul>
 </li>
 <li>今日世界追求彈性與感性、適應力與創造力。像你這般樣隨時在演化的人種,這正是你的時代。</li>
</ul>

<h3>作者簡介</h3>
<dl>
 <dt>瑪格麗特.羅賓絲婷 (Margaret Lobenstine)</dt>
 <br>
 <dt>目前經營「另有出路顧問工作室」(Alternative Approached),為客戶提供工作生涯發展與人生規劃的諮詢。輔導過五千名以上的客戶面對各種人生課題。迄今創立過三種截然不同的事業,每一次都在事業有成之後覺得必須轉換跑道。現在與先生住在美國麻州。</dt>
</d1>

</body>
</html> 
7.

<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>新書目錄</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <style>
    tr{
     vertical-align: top;
    }
    th{
     text-align: right;
    }
    td{
     text-align: left;
    }
    </style>

</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->

<h1 style="text-align:center">新書目錄</h1>
<table style="margin:0 auto">
 <tr>
  <th colspan="2" style="text-align:center">
   熱情人生的冰淇淋哲學<br>
   <span style="color:blue">The Renaissance Soul</span>
  </th><br>
 </tr>
 <tr>
  <td><img src="images/book1.jpg"></td>
  <td>
   <table>
    <tr><th>作者:</th><td>瑪格麗特.羅賓絲婷</td></tr>
    <tr><th>原文作者:</th><td>Margaret Lobenstine</td></tr>
    <tr><th>譯者:</th><td>劉怡女</td></tr>
    <tr><th>出版社:</th><td><a href="http://www.locuspublishing.com/"  target="_blank">大塊文化</a></td></tr>
    <tr><th>出版日期:</th><td>2007年10月29日</td></tr>
    <tr><th>語言:</th><td>繁體中文</td></tr>
    <tr><th>ISBN:</th><td>9789862130148</td></tr>
    <tr><th>裝訂:</th><td>平裝</td></tr>
    <tr><th>定價:</th><td>280元</td></tr>
   </table>
  </td>
 </tr>

 <tr>
  <th colspan="2" style="text-align:center">
   我們的新世界(平裝版)<br>
   <span style="color:blue">The Age of Turbulence Adventures in a New World</span>
  </th><br>
 </tr>
 <tr>
  <td><img src="images/book2.jpg"></td>
  <td>
   <table>
    <tr><th>作者:</th><td>艾倫.葛林斯潘</td></tr>
    <tr><th>原文作者:</th><td>Alan Greenspan</td></tr>
    <tr><th>譯者:</th><td>林茂昌</td></tr>
    <tr><th>出版社:</th><td><a href="http://www.locuspublishing.com/"  target="_blank">大塊文化</a></td></tr>
    <tr><th>出版日期:</th><td>2007年09月17日</td></tr>
    <tr><th>語言:</th><td>繁體中文</td></tr>
    <tr><th>ISBN:</th><td>9789862130018</td></tr>
    <tr><th>裝訂:</th><td>平裝</td></tr>
    <tr><th>定價:</th><td>450元</td></tr>
   </table>
  </td>
 </tr>
</table>
</body>
</html> 
8.

<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>貓咪照片</title>
    <base target="content">
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <!--<style></style>-->
</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
<article align="center">
 <h1>貓咪照片</h1>
 <hr>
 <nav>|
  <a href="1.html">西亞拉雅貓</a>|
  <a href="2.html">折耳貓</a>|
  <a href="3.html">波斯貓</a>|
  <a href="4.html">金吉拉</a>|
 </nav>
 <hr>
 <iframe name="content" src="1.html" width="600px" height="700px">
 </iframe>
</article>
</body>
</html> 
<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>page title</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <!--<style></style>-->
</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
<div align="center">
 <h2>西亞拉雅貓</h2>
 <a href="#" target="_self">
  <img src="images/cat1.jpg">
 </a>
</div>
</body>
</html> 
<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>page title</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <!--<style></style>-->
</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
<div align="center">
 <h2>折耳貓</h2>
 <a href="#" target="_self">
  <img src="images/cat2.jpg">
 </a>
</div>
</body>
</html> 
<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>page title</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <!--<style></style>-->
</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
<div align="center">
 <h2>波斯貓</h2>
 <a href="#" target="_self">
  <img src="images/cat3.jpg">
 </a>
</div>
</body>
</html> 
<!DOCTYPE html> 
<html lang="en">
  <head>
    <meta charset=utf-8>
    <title>page title</title>
    <!--<link href="style.css" rel="stylesheet"></link>-->
    <!--<script src="script.js"></script>-->
    <!--<style></style>-->
</head>
<body>
  <!-- content --> 
<!--<script type="text/javascript"></script>-->
<div align="center">
 <h2>金吉拉</h2>
 <a href="#" target="_self">
  <img src="images/cat4.jpg">
 </a>
</div>
</body>
</html> 
9.
新增專案> ASP.NET Web空白應用程式
專案 右鍵>加入>新增項目>Web form
拉入檔案至專案下面 > 右鍵設網頁為 起始頁
Web form.apsx 右鍵 > 檢視程式碼
problem9.html
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>IT 人職場技能大調查</title>
<style>
table{
    border-collapse: collapse;
    margin: 0px;
}
td {
    padding: 0px;           
}
img{
    display: block;     
}
th{
 background-color:#F90;
}
h1{ 
    text-align:center;
}
</style>
</head>

<body>
<article>
 <h1>IT 人職場技能大調查</h1>
    <p>景氣回春,大家還是得隨時保持競爭力,以提昇本身的價值,為將來升遷或轉職做準備。 以下的調查想要知道您目前的需求是什麼?</p>
    <p>做完問卷,還可以預約免費體驗課程,幫助大家在現階段做出正確的進修抉擇:</p> 
<form id="f1"  action="WebForm1.aspx" method="post">
    <table>
    <tr><td>
     <table border="0">
         <tr><td><img src="images/head.gif"></td></tr>  
         <tr><td><img src="images/body.jpg"></td></tr>        
        </table>
     </td>
        <td>
        <table>
               <tr><th> 1. 請問您目前年齡 </th></tr>
               <tr><td>
                   <select name="old" mutiple>
                       <option>15~22</option>
                       <option>23~33</option>
                       <option>34以上</option>
                   </select>
                </td></tr>
        <tr><th>2. 您目前有考取資訊類證照嗎?</th></tr> 
        <tr><td>
                <input type="radio" name="have" value="have">有
                <input type="radio" name="have" value="nott" checked>沒有
            </td></tr> 
      <tr><th>3. 您會為了什麼需求而計劃學習進修?(可複選)</th></tr>
            <tr><td>
         <table border="0">
                <tr>
                    <td><input type="checkbox" name="paper" value="on">考取證照</td>
                    <td><input type="checkbox" name="job" value="on">工作上需要</td>
                    <td><input type="checkbox" name="second" value="on">培養第二專長</td>
                </tr>
                <tr>
                    <td><input type="checkbox" name="interest" value="on">個人興趣</td>
                    <td><input type="checkbox" name="power" value="on">增加求職競爭力</td>
                    <td><input type="checkbox" name="input" value="on">兼差創業,增加收入</td>
             </tr>
                <tr>
              <td><input type="checkbox" name="other" value="on">其他</td>
             </tr>
            </table>
            </td></tr>
        
            <tr><td><textarea name="others"cols="90" rows="3"></textarea></td></tr>
        
      <tr><th>4. 如果本中心能提供您免費體驗課程,您會選擇…</th></tr>
            <tr><td>
             <table border="0">
                <tr>            
                <td><input type="checkbox" name="art" value="on">美術設計類 (平面設計/ 網頁設計/ 數位漫畫)</td>
                <td><input type="checkbox" name="program" value="on">程式設計類(Java/微軟/Embedded)</td>
                </tr>
                <tr>
                <td><input type="checkbox" name="3d" value="on">3D動畫設計類 (遊戲動畫/ 人物動畫)</td>
                <td><input type="checkbox" name="office" value="on">Office課程</td>
                </tr>
                <tr>
                <td><input type="checkbox" name="cad" value="on">CAD繪圖類 (建築設計/ 產品設計)</td>
                <td><input type="checkbox" name="internet" value="on">網管類 (微軟/ Cisco/ Linux)</td>
                </tr>
                <tr>
                 <td><input type="checkbox" name="none" value="on">目前沒有想要體驗課程,但可接收相關訊息</td>
                </tr>
                </table> 
            </td></tr>

   <tr><th>5. 您的電子郵件信箱:</th></tr>
         <tr><td><input type="email" id="e-mail" name="" size="80" required></td></tr>
            <tr>
                <td align="right">
                    <input type="submit" value="送出查詢">
                    <input type="reset">
                </td>
            </tr>
        </table>    
    </tr></td>  
    </table>
</form>
</article>
</body>
</html>


WebForm1.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication4
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string[] keys = Request.Form.AllKeys;
            Response.Write("<table border='0'>");
            Response.Write("<tr><th>參數名稱</th><th>參數值</th></tr>");
            for (int i = 0; i < keys.Length; i++)
            {
                Response.Write("<tr><td>" + keys[i] + "</td>");
                Response.Write("<td>" + Request[keys[i]] + "</td></tr>");
            }
            Response.Write("</table>");
        }
    }
}