C 課程設計報告

2021-04-12 21:51:30 字數 3599 閱讀 4779

(2014屆)

《物件導向課程設計》課程設計報告

課程設計題目:公司員工管理系統

學院軟體學院

專業: 軟體工程(電子商務

學生姓名王鑫

班級: 1421812 學號:201420181220

指導老師魏振華

2023年6月25日

公司員工管理系統課程設計報告

根據對公司人員管理的需要,編寫乙個「公司人員管理系統」,以方便對公司人員資料的錄入、修改、刪除、顯示、和查詢功能。

設計乙個虛基類staff(員工),包括編號、姓名和年齡保護資料成員以及相關的成員函式;由staff派生出工程師類engineer包含專業和職稱保護資料成員以及相關的成員函式,再由staff派生出領導類leader,包括職務和部門保護資料成員以及相關的成員函式;然後由engineer和leader類派生出主任工程師類chairman。具體實現以下要求:

1. 增加員工資料資訊

2. 更新員工資料資訊

3. 查詢員工資料資訊

4. 刪除員工資料資訊

5. 良好的人際互動介面、方便操作

根據問題描述和要求,系統要求能夠按姓名或者編號顯示、查詢、增加、刪除和儲存各類人員的資訊。確定程式至少應該具備如下功能:「增加各類人員資料」、「查詢各類人員資料」、「顯示各類成員資料」、「修改各類人員資料」、「刪除各類人員資料」、「各類人員資料存檔」、「各類人員資料讀入」基本模組。

圖3.1 程式基本功能結構圖

為體現物件導向程式設計的優點,本系統除過顯示選單函式、檔案讀寫以及主函式為全域性函式外,其他所有函式功能均封裝於類之中 。

圖3.2 類結構一覽圖

本系統公有五個類,其中乙個抽象類,乙個模版類,三個派生類。全域性函式包括乙個主函式、五個選單顯示函式、檔案讀寫函式各三個。下面詳細闡述各部分的具體構成。

1) 各類的構成

a) 抽象類staff

本系統中staff類中擁有四個純虛函式,故為抽象類,這四個純虛函式為staff類的派生類提供了共同的介面,函式的具體功能則由派生類實現,並且擁有保護成員tablenumber和name[11],分別用於記錄員工的編號和姓名。

圖4.1 staff類一覽圖

b) 派生類engineer與leader

engineer與leader類公有繼承於staff類,分別增加保護成員profession[11] 、postname[11]與post[11]、workspace[11]分別用於記錄工程師的專業、職稱和領導的職務、部門,並且重寫了四個虛函式,使得四個函式擁有了具體的功能。

圖4.2 engineer類一覽圖

圖4.3 leader類一覽圖

c) 派生類chairman

chairman 類是由engineer與leader類共同派生出的,並沒有增加任何私有或保護成員,但是重寫了原來的四個虛函式。

圖4.4 chairman類一覽圖

d) 模版類list

為了減少**的重複並且提高程式的執行效率,這裡特地定義模版類list ,主函式中絕大多數具體功能都由類模版中的函式直接實現,具體成員與函式如下:

1. 私有成員t data[maxsize],用於存放任意型別的物件陣列。

2. 私有成員int len,用來統計物件陣列最後乙個成員的下標。

3. 公有成員函式 void addlist,用於呼叫具體物件的draw()函式增加員工資料。

4. 公有成員函式 void bilist(),用於顯示所有員工的資料。

圖4.5 bilist()函式流程圖

5. 公有成員函式 int research(int j),用於查詢員工資料並顯示到顯示器上。

圖4.6 research函式流程圖

6. 公有成員函式 void deletedat(int k),用於刪除員工資料。

圖4.7 deletedat函式流程圖

7. 公有成員函式 void output(int j),用於把已有員工資料輸出到硬碟上。

圖4.8 output函式流程圖

8. 公有成員函式 void inter(int j),用於把硬碟上的員工資料讀出並顯示到顯示器上。

圖4.9 inter函式流程圖

2) 主函式main構成

本系統中主函式建立了三個模版類的具體物件,藉此來訪問各個具體類的成員函式,使用者通過輸入資訊呼叫相應的功能模組函式,實現員工資料的錄入、查詢、顯示、刪除、儲存、載入等功能。

主函式流程圖如下:

主函式流程圖

5.測試結果

(1) 程式執行主選單:

(2) 新增資料:

(3) 查詢資料:

(4) 顯示資料:

(5) 儲存資料:

(6) 載入資料:

(7) 刪除資料:

6.軟體操作說明書

本系統操作簡潔明瞭,執行後介面同上,使用者按選單提示操作即可。

7.總結

經過一學期對物件導向語言c++的學習,我對物件導向的程式設計思想有了一定的認識,但是個人認為還遠遠不夠,現在我已能夠完成一些很基礎的小型程式的開發,但是若想做一些大一點的專案,還需要繼續加倍努力。關於這個公司員工管理系統,編寫的過程中我發現了我有一些基礎的知識還不大牢固,比如說多型性裡的抽象類、虛函式等,但是經過這幾天努力複習已經對其有了更深入的了解。

8.源**

#include

#include

#include

#include// 圖形裝置介面函式

#define maxsize 10

using namespace std;

ofstream out4("engineer.txt",ios::appios::app 以追加的方式開啟檔案

ofstream out2("leader.txt",ios::app);

ofstream out3("chairman.txt",ios::app);

ifstream in4("engineer.txt",ios::app);

ifstream in2("leader.txt",ios::app);

ifstream in3("chairman.txt",ios::app);

void menu();

void addperson();

void removeperson();

void displayperson();

class staff

;class engineer:virtual public staff

void display()

double gettablenumber()

void out1()

if(!out4)

}int input()

if(!in4)

return 0;

}};class leader:virtual public staff

{protected:

char post[11];

char workspace[11];

public:

void draw()

{cout<<"請輸入"< cin>>tablenumber;

cout<<"姓名:";

cin>>name;

cout<<"年齡:";

cin>>age;

cout<<"職務:";

《C 課程設計》報告

課程設計題一 使用類和物件設計回應程式 一課題內容和要求 1 測試程式如下 假使類名為wel e void main void 2 測試程式的輸出結果如下 wel e thank you.輸入 how are you?輸出 how are you?輸入 fine,thank you.輸出 fine,...

C課程設計報告

課程名稱 c語言課程設計 課題名稱班級檔案管理系統 專業電子資訊 班級1502 學號 201501030232 姓名湛興 指導教師黃曉宇陳世清黃哲 2016年 7 月 3 日 湖南工程學院 課程設計任務書 課程名稱 c語言課程設計 課題班級檔案管理系統 專業班級電子資訊1502班 學生姓名湛興 學號...

C課程設計報告

c程式課程設計 工資管理系統 學號 姓名 設計目的 本程式旨在訓練讀者的基本程式設計能力,了解管理資訊系統的開發流程,熟悉c語言的檔案和結構陣列的各種基本操作。本程式中涉及結構體 陣列 檔案等方面的知識。通過本程式的訓練,使讀者能對c語言的檔案操作有乙個更深刻的了解,掌握利用陣列儲存結構實現工資管理...