返回列表 發帖

C# 7 605 員工資料介面

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

1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS06資料夾中的CSD06.cs進行編寫。依下列題意進行作答:定義員工基本資料介面,輸出其登入及登出時間,使輸出值符合題意要求。檔案名稱請另存新檔為CSA06.cs,儲存於C:\ANS.CSF\CS06資料夾,再進行評分。

2. 設計說明:
專案已內含名為staff類別,類別內含name,logintime、logouttime及workdate、worktime等,分別代表姓名、登入時間、登出時間、工作日期、工作時間,另外尚有Ilogin及Ilogout兩個介面(interface),各內含一個方法,功能是執行登入及登出。
請建立名為Manager的新類別,繼承staff類別。於此類別中實作Ilogin及Ilogout兩個介面,Manager類別的建構子傳入三個參數,分別代表姓名及工作日期、工作時間,設定至name及workdate、worktime。在login方法設定logintime為workdate、worktime組合,在logout方法設定logouttime為logintime+2秒。
在Main()方法中撰寫程式,輸入姓名及工作日期、工作時間,中間以一個半形空格分隔。將所輸入的資料做為參數傳至Manager類別,再執行login方法,兩秒後執行logout方法,最後輸出如【john Login 2019/01/01 15:34:28,Logout 2019/01/01 15:34:30】。
*提示1:停頓兩秒的設計使用Thread.Sleep。
*提示2:日期時間格式:"yyyy/MM/dd HH:mm:ss"。
若輸入不在指定範圍的資料,請輸出【error】。

3. 輸入輸出:
輸入說明
姓名及工作日期時間(日期時間格式:"yyyy/MM/dd HH:mm:ss")(姓名、工作日期、時間之間各以一個半形空格分隔)

輸出說明
員工姓名及登入日期時間,登出日期時間(輸出最後一行後不自動換行)

範例輸入1
kiki 2019/05/08 16:02:48
範例輸出1
kiki Login 2019/05/08 16:02:48,Logout 2019/05/08 16:02:50

範例輸入2
nancy 20190807
範例輸出2
error

4. 評分項目:
(1) 符合設計說明輸出正確格式        配分20
May

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. using System.Threading;
  8. namespace CSA06
  9. {
  10.     class CSA06
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             try
  15.             {
  16.                 string str = Console.ReadLine();
  17.                 string[] data = str.Split(' ');
  18.                 if (data.Length != 3) { throw new Exception(); }
  19.                 Manager mm = new Manager(data[0].ToString(), data[1].ToString(), data[2].ToString());
  20.                 //TODO
  21.                 mm.login();
  22.                 Thread.Sleep(2000); // 2 sec.
  23.                 mm.logout();

  24.                 Console.Write("{0} Login {1},Logout {2}",
  25.                     mm.name,
  26.                     mm.logintime.ToString("yyyy/MM/dd HH:mm:ss"),
  27.                     mm.logouttime.ToString("yyyy/MM/dd HH:mm:ss")); //TODO
  28.                 mm = null;
  29.             }
  30.             catch
  31.             {
  32.                 Console.Write("error");
  33.             }
  34.             Console.ReadKey();
  35.         }


  36.     }

  37.     public interface Ilogin
  38.     {
  39.         bool login();
  40.     }
  41.     public interface Ilogout
  42.     {
  43.         bool logout();
  44.     }

  45.     public class staff
  46.     {
  47.         public string name = "";
  48.         public DateTime logintime;
  49.         public DateTime logouttime;
  50.         public string workdate;
  51.         public string worktime;
  52.     }
  53.     //TODO --class Manager
  54.     public class Manager : staff, Ilogin, Ilogout
  55.     {
  56.         public Manager(string name, string workdate, string worktime)
  57.         {
  58.             this.name = name;
  59.             this.workdate = workdate;
  60.             this.worktime = worktime;
  61.         }

  62.         public bool login()
  63.         {
  64.             DateTime date = DateTime.Parse(workdate);
  65.             DateTime time = DateTime.Parse(worktime);
  66.             this.logintime = new DateTime(
  67.                 date.Year, date.Month, date.Day,
  68.                 time.Hour, time.Minute, time.Second);
  69.             return true;
  70.         }

  71.         public bool logout()
  72.         {
  73.             DateTime date = DateTime.Parse(workdate);
  74.             DateTime time = DateTime.Parse(worktime);
  75.             this.logouttime = new DateTime(
  76.                 date.Year, date.Month, date.Day,
  77.                 time.Hour, time.Minute, time.Second + 2);
  78.             return true;
  79.         }
  80.     }

  81. }
複製代碼
May

TOP

返回列表