Board logo

標題: C# 7 405 星座 [打印本頁]

作者: may    時間: 2024-1-8 22:28     標題: C# 7 405 星座

TQC+ 物件導向程式語言
最新一次更新時間:2024-01-05 14:58:54

1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS04資料夾中的CSD04.cs進行編寫。依下列題意進行作答:輸入一個日期,再輸出此日期的所屬星座,使輸出值符合題意要求。檔案名稱請另存新檔為CSA04.cs,儲存於C:\ANS.CSF\CS04資料夾,再進行評分。

2. 設計說明:
請撰寫程式,讓使用者輸入一個8位數的整數作為日期,輸出該日期所屬星座的英文名稱。若輸入文字或無法轉換,請輸出【error】。
星座日期對照表:
星座        日期        星座        日期
Aquarius水瓶座        1/20-2/18        Pisces雙魚座        2/19-3/20
Aries牡羊座        3/21-4/19        Taurus金牛座        4/20-5/20
Gemini雙子座        5/21-6/20        Cancer巨蟹座        6/21-7/22
Leo獅子座        7/23-8/22        Virgo處女座        8/23-9/22
Libra天秤座        9/23-10/22        Scorpio天蠍座        10/23-11/21
Sagittarius射手座        11/22-12/21        Capricorn摩羯座        12/22-1/19
3. 輸入輸出:
輸入說明
一個8位數的整數作為日期

輸出說明
所屬星座的英文名稱(輸出最後一行後不自動換行)

範例輸入1
19570416
範例輸出1
Aries

範例輸入2
2/25
範例輸出2
error

4. 評分項目:
(1) 符合設計說明輸出正確格式        配分20
作者: may    時間: 2024-1-9 09:35

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;

  6. namespace CSA04
  7. {
  8.     class CSA04
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             try
  13.             {
  14.                 string[] names = { "Aquarius", "Pisces", "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn" };
  15.                 string[] dates = { "1/20", "2/19", "3/21", "4/20", "5/21", "6/21", "7/23", "8/23", "9/23", "10/23", "11/22", "12/22" };
  16.                 DateTime dt = DateTime.ParseExact(Console.ReadLine(), "yyyyMMdd", null);
  17.                 string name = "";
  18.                 for (int i = 0; i <= dates.Length - 1; i++)
  19.                 {
  20.                     DateTime startDate;
  21.                     DateTime endDate;

  22.                     startDate = Convert.ToDateTime(dt.Year + "/" + dates[i].ToString());
  23.                     if (i == dates.Length - 1)
  24.                     {
  25.                         endDate = Convert.ToDateTime((dt.Year + 1) + "/01/19");
  26.                     }
  27.                     else
  28.                     {
  29.                         endDate = Convert.ToDateTime(dt.Year + "/" + dates[i + 1].ToString()).AddDays(-1);
  30.                     }
  31.                     if (DateTime.Compare(startDate, dt) <= 0 && DateTime.Compare(endDate, dt) >= 0)
  32.                     {
  33.                         name = names[i];
  34.                         break;
  35.                     }
  36.                 }
  37.                 if (name == "") { name = "Capricorn"; }
  38.                 Console.Write(name);
  39.             }
  40.             catch
  41.             {
  42.                 Console.Write("error");
  43.             }
  44.             Console.ReadKey();
  45.         }
  46.     }
  47. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2