職工資訊管理

2021-03-16 19:17:33 字數 3648 閱讀 6387

《標準c語言程式設計》上機報告

實驗十綜合設計(職工工資資訊管理)

專業: 電子資訊工程

班級: 電信1103

學號: u5211314

姓名: 曹操

完成日期: 2012/7/8

1、 進一步熟悉開發環境,掌握編譯、連線和除錯的技巧;

2、 綜合運用陣列、指標、函式和檔案,通過綜合設計掌握陣列、結構體、指標和函式之間的相互關係,掌握函式引數傳遞,理解「傳值」、「傳指標」和「傳引用」

3、 熟悉具有複雜需求的大程式設計過程和注意事項(參見上機實踐訓練教程p98)

【題目描述】

編寫程式實現單位職工工資資訊管理。包含各種基本資料的錄入、修改、刪除、插入、查詢、統計(應發工資=基本工資+職務工資+各種補助,實發工資=應發工資-水電費-公積金)

【基本功能】:

(1)新增功能:

新增乙個職工的基本資訊,包括工資卡號、身份證號、姓名、基本工資、職務工資、各種補助、應發工資、水電費、公積金、實發工資等

(2)刪除功能:能夠對乙個職工的資訊進行刪除,例如按姓名進行刪除

(3)顯示功能:

顯示所有職工的主要資訊包括工資卡號、身份證號、姓名、基本工資、職務工資、各種補助、應發工資、水電費、公積金、實發工資等

(4)查詢功能:

根據你鍵入的職工姓名,顯示其詳細資訊(注:在main內顯示查詢到的職工資訊!)

(5)修改功能:

根據你鍵入的職工姓名,對該職工工資資訊進行修改。

(6)排序功能:

對職工的資訊按照實發工資進行排序(不得選用直接選擇法,可以使用交換法、設標籤的選擇法、快速排序法等)。

【題目要求】

(1) 按照分析、設計、編碼、除錯和測試的軟體開發過程完成這個應用程式;

(2) 職工工資資訊應該包含:工資卡號、身份證號、姓名、基本工資、職務工資、各種補助、應發工資、水電費、公積金、實發工資等;

(3) 為各項操作功能設計乙個選單(可選)。應用程式執行後,先顯示這個選單,然後使用者通過選單項選擇希望進行的操作專案。

(4) 不使用c++的string型別來存放字串

(5) 函式介面引數設計允許使用c++引用型別

(6) 建議使用動態堆記憶體分配,達到高效利用記憶體目的(本要求適合提高水平的同學,不做嚴格要求)

注:1、第3條要求設計乙個選單,此項不做嚴格要求,如果不使用選單作為輸出提示,程式執行時嚴格按照下面流程執行:(按姓名模糊查詢,如所有王姓職工)顯示結果模糊查詢資訊按照工資降序排序顯示排序後資訊根據鍵入的特定職工姓名,查詢並修改其工資資訊按照工資降序重新排序顯示最新排序資訊。

注:2、如果存在多種顯示方式,可以設計過載函式

【輸入要求】

應用程式執行後,在螢幕上顯示乙個選單。使用者可以根據需求,選定相應的操作專案。進入每個操作後,根據應用程式的提示資訊,從鍵盤輸入相應的資訊。

也可以直接按照【題目要求】的注1執行順序嚴格執行,要求提供友好的提示資訊。

【輸出要求】

(1) 應用程式執行後,要在螢幕上顯示乙個選單;或按照規定執行順序給出明確的執行提示資訊。

(2) 要求使用者輸入資料時,除了給出清晰、明確的提示資訊,包括輸入的資料內容、格式及結束方式等。如:「請輸入10位職工基本資訊」、「請輸入待刪除的職工姓名」、「正在對職工工資進行降序排序」等等

【提示】

設計乙個結構體型別和一維陣列,用來儲存職工工資登記資訊。如果不採用結構體,則將使用多個一維或二維陣列來儲存職工基本資訊資料,排序時採用「聯動」模式。

【評分標準】

1、 按模組化要求進行系統設計,在main模組中呼叫所設計的各個模組。

2、 不使用外部儲存型別變數

3、 給出各函式模組的介面引數設計(即原型說明)並說明理由;

4、 給出主要的資料型別或資料結構的設計;

5、 繪製模組分解圖

6、 按規範撰寫報告

7、 至少完成新增、刪除、精確查詢、排序和所需顯示功能

滿足以上基本要求得70%分值,採用結構體/給出選單顯示、完成全部功能最高得100%分值

1、 總體設計

下圖為基本模組呼叫圖(簡略版)

以下十個功能函式作用及其流程圖:

main函式 : 實現的是程式介面的設計和各功能函式的呼叫。流程圖如下所示:

add函式: 主要是實現程式員工資料的實時錄入。流程圖如下所示:

remove函式: 主要實現刪除某職工資訊。流程圖如下所示:

display_all函式:顯示所有職工資訊。流程圖如下所示:

find函式:通過姓名或者姓氏查詢對應員工資訊並輸出該資訊。流程圖如下所示:

search函式:通過姓名或者姓氏查詢對應員工資訊。流程圖如下所示:

sort函式 :實現按照實際工資的大小以逆序排列所有職工資訊。流程圖如下所示:

input函式:輸入某職工資訊。流程圖如下所示:

free_all函式:**所有占用的堆空間。流程圖如下所示:

showone函式:輸出某職工的資訊。流程圖如下所示:

showmenu函式:顯示各功能函式對應鍵值。流程圖如下所示:

selectmenu函式:提供選單選擇。流程圖如下所示:

free_all函式:**所有占用的堆空間。流程圖如下所示:

流程圖說明:定義結構體指標的同時均初始化為null;

各功能函式所用到的head均為函式介面結構體指標;

由於種種原因詳細偽**未能補上,請見諒。

2、資料描述及模組介面引數設計

struct employee定義employee結構體,並初始化,作為每名員工的資訊載體

;typedef struct employee emp為方便另取epm

下面為函式原型說明

void showmenu顯示主選單選項

void input(emp*p輸入某職工資訊,通過函式介面指標p確定資訊儲存位置

void add(emp*head新增員工資訊,通過介面head指標實現

void remove(emp*head刪除員工資訊,通過介面傳輸指標頭

void display_all(emp*head顯示所有員工資訊,通過介面傳輸指標頭

emp*search(emp*head按姓名查詢員工,通過介面傳輸指標頭

void modify(emp*head修改某員工資訊,通過介面傳輸指標頭

void find(emp*head查詢員工並顯示其資訊

void sort(emp*head按實際工資對所有員工逆序排列

void showone(emp*p顯示某員工資訊

void free_all(emp*head釋放所有記憶體,以退出程式

void selectmenu(emp*head主選單選擇

說明:設定結構體指標為head的函式,均是需由介面傳進頭指標的位置,以便於頭指標與節點構成完整迴圈鏈對所需資訊進行搜素記錄。另外,在add函式中head指標分配堆空間後,堆空間位址也傳回了主調函式。

3、完整程式清單

my.h

#include

#include

#include

struct employee定義employee結構體,並初始化

{ char name[10姓名

char wagecard[15工資卡號

char id[20身份證號

float basewage基本工資

float dutywage職位工資

職工資訊管理系統

湖北理工學院 軟體工程 題目 職工資訊管理系統 學院 計算機學院 專業名稱 學號學生姓名 指導教師 第1章可行性研究4 1.1 引言4 1.2 可性研究的前提4 1.2.1目標5 1.2.2條件設設定5 1.2.3可行性研究方法5 1.2.4評價尺度6 1.3 對現在系統的分析6 1.4 所建議技術...

職工資訊管理系統

c語言課程設計 院系 姓名 學號 班號 指導教師 日期 摘要 本 設計了程式 c語言課程設計指導書 第11題職工資訊管理系統。這個管理系統能對職工資訊 包括職工號 姓名 性別 年齡 學歷 工資 等 進行有效地資訊錄入 瀏覽 查詢 刪除等操作,會給使用者帶來很大的便利。1.1 題目要求 職工資訊包括職...

01 職工資訊管理系統

4 程式除錯與測試 採用自底向上,分模組進行,即先除錯低層函式。能夠熟練掌握除錯工具的各種功能,設計測試資料確定疑點,通過修改程式來證實它或繞過它。除錯正確後,認真整理源程式及其注釋,形成格式和風格良好的源程式清單和結果。5 完成課程設計報告 需求和規格說明 設計題目和問題描述 題目要解決的問題是什...