Board logo

標題: C# 7 403 會議時間 [打印本頁]

作者: may    時間: 2024-1-8 22:26     標題: C# 7 403 會議時間

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

1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS04資料夾中的CSD04.cs進行編寫。依下列題意進行作答:輸入特定日期範圍內的開會日期與時間,再判斷是否與預訂開會時間重複後,輸出判斷結果,使輸出值符合題意要求。檔案名稱請另存新檔為CSA04.cs,儲存於C:\ANS.CSF\CS04資料夾,再進行評分。

2. 設計說明:
專案中已提供五個會議時間{ "2018/12/01 14:00", "2018/12/02 15:00", "2018/12/03 10:30","2018/12/03 15:30","2018/12/04 15:00" },分別召開{ 1, 3, 4, 2, 5}個小時。
請撰寫程式,讓使用者輸入一個含有西元年、月、日、時、分的會議時間(日期與時間之間以一個半形空格分隔),判斷與專案中定義好的會議是否有重疊並將結果輸出,如會議時間重疊,顯示如【Has already reserved - yyyy/MM/dd HH:mm】(將被重疊的會議時間代入);如會議時間未重疊,顯示如【Reservation completed - yyyy/MM/dd HH:mm】(將新的會議時間代入)
專案中meetingDates代表開會起始時間、meetingHours代表開會時數。若輸入文字或非法時間,請輸出【error】。
* 提示1:重疊的定義是新的會議起始時間,與現有的會議起始時間一樣,或是位於現有的會議時段中。
* 提示2:新的會議起始時間,與現有的會議結束時間一樣,不算重疊。

3. 輸入輸出:
輸入說明
一個含有西元年、月、日、時、分的會議時間(日期與時間之間以一個半形空格分隔,如yyyy/MM/dd HH:mm)

輸出說明
是否與專案中定義好的會議時間重疊(輸出最後一行後不自動換行)

範例輸入1
2018/12/02 16:10
範例輸出1
Has already reserved - 2018/12/02 15:00

範例輸入2
2018/12/01 15:00
範例輸出2
Reservation completed - 2018/12/01 15:00

範例輸入3
2018/12/40 10:00
範例輸出3
error

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

  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 string[] meetingDates = { "2018/12/01 14:00", "2018/12/02 15:00", "2018/12/03 10:30","2018/12/03 15:30","2018/12/04 15:00" };
  11.         static int[] meetingHours = { 1, 3, 4 , 2, 5};
  12.                 static void Main(string[] args)
  13.         {
  14.             try
  15.             {
  16.                 DateTime newMeeting = Convert.ToDateTime(Console.ReadLine());
  17.                 bool isOverlap = false;
  18.                 string meetingOverlap = "";
  19.                 for(int i = 0; i <= meetingDates.Length - 1; i++)
  20.                 {
  21.                     DateTime startMeeting = Convert.ToDateTime(meetingDates[i].ToString());
  22.                     DateTime endMeeting = startMeeting.AddHours(meetingHours[i]);
  23.                     if(DateTime.Compare(newMeeting, startMeeting)>=0 && DateTime.Compare(newMeeting, endMeeting) < 0)
  24.                     {
  25.                         isOverlap = true;
  26.                         meetingOverlap = meetingDates[i].ToString();
  27.                         break;
  28.                     }
  29.                 }
  30.                 if (isOverlap)
  31.                 {
  32.                     Console.Write("Has already reserved - "+ meetingOverlap);
  33.                 }
  34.                 else
  35.                 {
  36.                     Console.Write("Reservation completed - "+ newMeeting.ToString("yyyy/MM/dd HH:mm"));
  37.                 }
  38.             }
  39.             catch
  40.             {
  41.                 Console.Write("error");
  42.             }
  43.             Console.ReadKey();
  44.         }
  45.     }
  46. }
複製代碼

作者: 李泳霖    時間: 2024-2-5 21:13

  1. using ConsoleApp1;
  2. using System;//程式庫呼叫
  3. using System.ComponentModel.DataAnnotations;
  4. using System.Linq.Expressions;
  5. using ABC.qq;
  6. using System.Globalization;

  7. class Program//負責一部分工作的人
  8. {
  9.     static string[] meetingDates = { "2018/12/01 14:00", "2018/12/02 15:00", "2018/12/03 10:30", "2018/12/03 15:30", "2018/12/04 15:00" };
  10.     static int[] meetingHours = { 1, 3, 4, 2, 5 };
  11.     static void Main()
  12.     {
  13.         
  14.         try
  15.         {
  16.             //將指定之日期和時間的字串表示,轉換為相等的日期和時間值。
  17.             DateTime newMeeting = Convert.ToDateTime(Console.ReadLine());
  18.             // Console.WriteLine(newMeeting.ToString());
  19.             bool isOverlap = false;
  20.             string meetOverlap = "";
  21.             for(int i=0;i<meetingDates.Length-1;i++)
  22.             {
  23.                 DateTime startMeeting = Convert.ToDateTime(meetingDates[i].ToString());
  24.                 DateTime endMeeting = startMeeting.AddHours(meetingHours[i]);
  25.               //  Console.WriteLine(endMeeting.ToString());
  26.                 //比較這個執行個體的值與指定的 DateTime 值,指出這個執行個體早於、同於或晚於指定的 DateTime 值。
  27.                 /*
  28.                  * 2018/12/02 16:10    2018/12/02 15:00    2018/12/02 18:00
  29.                  * 值            描述
  30.                   小於零        這個執行個體早於 value。
  31.                     零            這個執行個體和 value 相同。
  32.                   大於零        這個執行個體晚於 value。
  33.                  */
  34.                 if (DateTime.Compare(newMeeting,startMeeting)>=0 && DateTime.Compare(newMeeting,endMeeting)<0)
  35.                 {
  36.                     isOverlap = true;
  37.                     meetOverlap = meetingDates[i].ToString();
  38.                     break;
  39.                 }
  40.                

  41.             }
  42.             if(isOverlap)
  43.             {
  44.                 Console.WriteLine("Has already resvered - "+meetOverlap);
  45.             }
  46.             else
  47.             {
  48.                 Console.WriteLine("Reservation completed - "+newMeeting.ToString("yyyy/MM/dd HH:mm"));
  49.             }

  50.         }
  51.         catch
  52.         {
  53.             Console.WriteLine("error");
  54.         }
  55.    

  56.     }
  57.    

  58. }
複製代碼





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