註冊
登錄
論壇
搜索
幫助
導航
私人消息 (0)
公共消息 (0)
系統消息 (0)
好友消息 (0)
帖子消息 (0)
種子論壇 | 高雄市資訊培育協會學員討論區
»
【 教 師 專 區 】
»
C#
» C# 7 609 員工差假介面設計
返回列表
發帖
發短消息
加為好友
may
(奇異果)
當前離線
UID
9
帖子
2198
精華
1
積分
10
閱讀權限
200
來自
高雄市資訊培育協會
在線時間
1159 小時
註冊時間
2010-2-22
最後登錄
2024-11-10
管理員
1
#
跳轉到
»
倒序看帖
打印
字體大小:
t
T
may
發表於 2024-1-8 22:56
|
只看該作者
C# 7 609 員工差假介面設計
TQC+ 物件導向程式語言
最新一次更新時間:2024-01-05 17:52:02
1. 題目說明:
請新增一個主控台應用程式,加入C:\ANS.CSF\CS06資料夾中的CSD06.cs進行編寫。依下列題意進行作答:定義經理及店員員工基本資料類別及請假介面,輸入判斷條件,讀取檔案,計算並輸出其總請假時數,使輸出值符合題意要求。檔案名稱請另存新檔為CSA06.cs,儲存於C:\ANS.CSF\CS06資料夾,再進行評分。
請使用正斜線(/)作為檔案路徑的分隔符號。
2. 設計說明:
專案已內含名為staff類別,類別內含name、leavehours,分別代表姓名及請假累計時數,Manager類別已繼承staff類別,並提供部分程式。
請建立一新介面,名稱為ILeave,內含一個方法,名稱為takeLeave,傳入一個int型態的參數,代表請假時數。修改Manager類別實作ILeave,並完成takeLeave,將請假時數累計至leavehours。
建立一個名為Worker的類別,繼承staff及實作ILeave介面,完成建構子與takeLeave方法。
*提示:Worker不是leader,isleader不為true。
在Main()方法中撰寫程式,輸入資料,代表時數下限,如輸入【2】,表示只統計大於等於2小時的請假時數。
讀取專案所附的read.txt,內含7位員工共計29筆請假記錄。
格式:姓名,身份(m:Manager, w:Worker),請假日期,請假時數。
如:john,m,1/2,6。意義為john,身份Manager,在1月2日請假6小時。
由檔案中讀取資料並依照身份別建立對應物件,加入至相對的List,如:mgers為Manager的List、wors為Worker的List。如果該筆記錄之請假時數小於步驟4輸入之請假時數下限,則無須加總,其餘依照姓名累加。
*提示:建立對應物件時請使用chkManager與chkWorker,已提供於原始程式。
分別輸出Manager及Worker的請假總時數,輸出格式如【Manager47hr/Worker75hr】。
若輸入不在指定範圍的資料,請輸出【error】。
3. 輸入輸出:
輸入說明
正整數
輸出說明
Manager及Worker請假時數,中間以一個半形/分隔(輸出最後一行後不自動換行)
範例輸入1
2
範例輸出1
Manager43hr/Worker75hr
範例輸入2
4
範例輸出2
Manager33hr/Worker68hr
範例輸入3
abc
範例輸出3
error
4. 評分項目:
(1) 符合設計說明輸出正確格式 配分20
收藏
分享
May
發短消息
加為好友
may
(奇異果)
當前離線
UID
9
帖子
2198
精華
1
積分
10
閱讀權限
200
來自
高雄市資訊培育協會
在線時間
1159 小時
註冊時間
2010-2-22
最後登錄
2024-11-10
管理員
2
#
may
發表於 2024-1-9 09:55
|
只看該作者
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();
int hh = Convert.ToInt32(str.ToString());
if (hh < 1)
{
throw new ArgumentException();
}
List<Manager> mgers = new List<Manager>();
List<Worker> wors = new List<Worker>();
//TODO
string[] records = System.IO.File.ReadAllLines("read.txt");
string[] tokens;
string name;
char level;
int hours;
staff staff;
foreach (string record in records)
{
tokens = record.Split(',');
name = tokens[0];
level = tokens[1][0];
hours = int.Parse(tokens[3]);
if (hours < hh)
{
continue;
}
if (level == 'm')
{
staff = chkManager(mgers, tokens);
}
else
{
staff = chkWorker(wors, tokens);
}
staff.takeLeave(hours);
}
int ml = 0, wl = 0;
foreach (Manager m in mgers)
{
ml += m.leavehours;
}
foreach (Worker w in wors)
{
wl += w.leavehours;
}
Console.Write("Manager{0}hr/Worker{1}hr", ml, wl);
}
catch
{
Console.Write("error");
}
Console.ReadKey();
}
private static Manager chkManager(List<Manager> ms, string[] data)
{
foreach (Manager m in ms)
{
if (m.name == data[0].ToString())
{
return m;
}
}
Manager newm = new Manager(data[0].ToString());
ms.Add(newm);
return newm;
}
private static Worker chkWorker(List<Worker> ss, string[] data)
{
foreach (Worker s in ss)
{
if (s.name == data[0].ToString())
{
return s;
}
}
Worker news = new Worker(data[0].ToString());
ss.Add(news);
return news;
}
}
public abstract class staff : ILeave
{
public string name = "";
public bool isleader = false;
public int leavehours = 0;
public abstract void takeLeave(int leavehours);
}
public class Manager : staff
{
public Manager(string n)
{
this.name = n;
this.isleader = true;
}
// TODO --leavehours
public override void takeLeave(int leavehours)
{
this.leavehours += leavehours;
}
}
// TODO --interface ILeave
interface ILeave
{
void takeLeave(int leavehours);
}
// TODO --class Worker
public class Worker : staff
{
public Worker(string name)
{
this.name = name;
this.isleader = false;
}
public override void takeLeave(int leavehours)
{
this.leavehours += leavehours;
}
}
}
複製代碼
May
TOP
返回列表
程式解題我最行 (週六15:30-17:30) 3F
谷哥人營隊
113Scratch夏令營
113年APCS冬令營
113年Scratch冬令營
113年Python證照特訓營(一)
113年谷哥人程式體驗營
113年國三專班
Python研習營(113_114)
113年Python證照特訓營(二)
113年程式夏令營(一)(二)
113年APCS夏令營(一)(二)
Python研習營
113年Python研習冬令營
112年國三專班
112APCS夏令營(一)(二)
112App快速開發夏令營
C語言 / C++ (特別輔導)
C++證照
C#
家教特輔
C語言特輔/證照(家教)
C++證照
C#
HTML5+CSS+JavaScript+PHP+MySQL
Java 家教 (王捷恩)
113新版塊名稱
快樂學 Scratch
Python 家教 (王捷恩 康恒睿)
Python 特別輔導 (家教)
快樂 C++ (家教)
我愛 Java (家教)
程式解題我最行 (家教)
程式常態班
C++ 新生挑戰區
考照心得分享
快樂 C++11307週五19:00
快樂C++11309週六13:30-15:30
快樂 C++11303 (週六15:40-17:40) 3F
程式解題我最行 (週六15:30-17:30) 3F
快樂 C++ (週六13:30-15:30) 3F
快樂 C++ (週六19:00-21:00) 3F
程式解題我最行 (週六10:00-12:00) 3F
快樂學 Scratch
程式解題我最行(週五19:00-21:00)
快樂 C++ (週六13:30-15:30) 3F
程式解題我最行(週三19:15-21:15)
快樂 C++11207週六10
快樂 C++11208週六19:00
程式解題我最行 (週五19:00-21:00) 3F
快樂 C++ (週六15:30-17:30) 3F
程式解題我最行 (週六19:00-21:00) 3F
程式解題我最行 (週四19:10-21:10)
產投職訓
結訓課程 (產投職訓)
Php & MySQL old
Illustrator old
Dreamweaver old
Android手機程式開發班
PHP & MySQL電子商務互動式網站實作班 (102下)
PHP & MySQL (102上)
PHP & MySQL電子商務互動式網站實作班
Photoshop數位影像設計初階
Flash創意廣告動畫初階
行銷短片視訊剪輯
數位商業攝影實務班
PHP & MySQL電子商務系統開發實務初階班
電子商務系統開發實務中階班
Server基礎架設&動態網頁設計初階班
Java視窗應用程式設計與遊戲開發班
Illustrator時尚插畫創作設計初階班
102上Php & MySQL 初階班
電子商務互動式網站實作中階
Dreamweaver多媒體網頁設計
Android手機程式開發班(2012年10月)
PHP & MySQL (2012年10月)
創意塗鴉
yahoo橫幅
google橫幅
市民學苑
第二屆樂活部落格
第一屆電腦設備簡易維護和故障排除班
專案訓練
電子商務創業班
TQC PHP認證
投資理財班
領隊導遊班
電腦基礎及網路應用身心障礙專班
應用軟體網頁化開發
[收藏此主題]
[關注此主題的新回復]
[通過 QQ、MSN 分享給朋友]