標題:
C# 7 605 員工資料介面
[打印本頁]
作者:
may
時間:
2024-1-8 22:50
標題:
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
時間:
2024-1-9 09:52
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Threading;
namespace CSA06
{
class CSA06
{
static void Main(string[] args)
{
try
{
string str = Console.ReadLine();
string[] data = str.Split(' ');
if (data.Length != 3) { throw new Exception(); }
Manager mm = new Manager(data[0].ToString(), data[1].ToString(), data[2].ToString());
//TODO
mm.login();
Thread.Sleep(2000); // 2 sec.
mm.logout();
Console.Write("{0} Login {1},Logout {2}",
mm.name,
mm.logintime.ToString("yyyy/MM/dd HH:mm:ss"),
mm.logouttime.ToString("yyyy/MM/dd HH:mm:ss")); //TODO
mm = null;
}
catch
{
Console.Write("error");
}
Console.ReadKey();
}
}
public interface Ilogin
{
bool login();
}
public interface Ilogout
{
bool logout();
}
public class staff
{
public string name = "";
public DateTime logintime;
public DateTime logouttime;
public string workdate;
public string worktime;
}
//TODO --class Manager
public class Manager : staff, Ilogin, Ilogout
{
public Manager(string name, string workdate, string worktime)
{
this.name = name;
this.workdate = workdate;
this.worktime = worktime;
}
public bool login()
{
DateTime date = DateTime.Parse(workdate);
DateTime time = DateTime.Parse(worktime);
this.logintime = new DateTime(
date.Year, date.Month, date.Day,
time.Hour, time.Minute, time.Second);
return true;
}
public bool logout()
{
DateTime date = DateTime.Parse(workdate);
DateTime time = DateTime.Parse(worktime);
this.logouttime = new DateTime(
date.Year, date.Month, date.Day,
time.Hour, time.Minute, time.Second + 2);
return true;
}
}
}
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/)
Powered by Discuz! 7.2