2015-07-22 64 views
-4

我正在和班級練習,我被賦予創建員工管理系統的任務。我有兩個.txt文件。一個(details.txt)具有每個員工的詳細信息,具有以下信息:ID,姓名,出生日期,SSN,部門和職位。該文件的樣本看起來像這樣:C++我應該做多少班?

5·阿里1988年6月24日126-42-6989支持助理

13蒂姆·1981年2月10日131-12-1034物流經理

另一個.txt(timelog.txt)將包含每天員工進入和退出時間的日誌。這個文件的格式如下:ID,日期,時鐘和時鐘輸出時間。示例:

5 3/11 0800 1800

13 3/11 0830 1830

首先,我允許用戶搜索增長了ID,姓名,部門或職位僱員。這樣做將顯示所有員工信息(多名員工,如果他們具有相同的姓名,職位或來自同一部門)並顯示他們在公司工作的總小時數。其次,用戶將被給予另一種選擇來通過ID號查找員工時間日誌。這將顯示該員工的整個時鐘進出時間以及每天工作的總時間。

我打算通過ifstream從.txt文件讀取信息,並將它們存儲爲一個對象數組。我只是想知道我應該創造多少班。我在想2個類 - 一個用於員工信息(來自details.txt),另一個用於時間日誌(timelogs.txt)。還有其他課程我應該創建嗎?或者如果這兩個課程足夠了?

+1

這是非常廣泛的,受許多不同的答案:沒有明確的,完美的方式來執行你想要的,但有很多好方法和許多不好的方法。這就是說,考慮從一些UML和類圖開始 – Tas

回答

3

簡短回答:至少有兩個。

長答案:這取決於很多事情。尤其是哪些代碼可以識別爲可重用的代碼。

如果你問的類可能的最高金額,可以完成你的任務,我會考慮的一個類:

  • 員工
  • EmployeeManager(廠,持有人等) - 創建,持有並刪除Employee對象,提供搜索功能
  • 計日工 - 從timelog.txt一排,可以計算出小時/分鐘的那一天
  • 工作日誌中工作所花費的金額 - 1名員工計日工對象的列表,可以calcu後期整個花費的時間
  • TextLineParser - 的std::ifstream

封裝正確的答案是最有可能之間的某處。請記住,C++是一種多範式語言,您可以執行一些操作,而無需爲它們設置類。相反,它們可以在C類單元中的一個功能或一組功能中執行。這對於功能不共享公共數據(潛在屬性)的一次性操作特別有用。

+0

感謝您的答案。一旦我爲每個員工創建一個對象數組,我計劃創建函數來在對象數組中進行搜索。我還將創建一個函數來計算當天的總工作時間和整體總時間。 – trungnt