C語言課程設計-工資管理系統(tǒng).doc_第1頁
C語言課程設計-工資管理系統(tǒng).doc_第2頁
C語言課程設計-工資管理系統(tǒng).doc_第3頁
C語言課程設計-工資管理系統(tǒng).doc_第4頁
C語言課程設計-工資管理系統(tǒng).doc_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

c程序課程設計 -工資管理系統(tǒng) 指導老師: 班級:u 設計目的本程序旨在訓練讀者的基本編程能力,了解管理信息系統(tǒng)的開發(fā)流程,熟悉c語言的文件和結構數(shù)組的各種基本操作。本程序中涉及結構體、數(shù)組、文件等方面的知識。通過本程序的訓練,使讀者能對c語言的文件操作有一個更深刻的了解,掌握利用數(shù)組存儲結構實現(xiàn)工資管理的原理,為進一步開發(fā)出高質量的信息管理系統(tǒng)打下堅實的基礎。u 功能描述 輸入記錄模塊輸入記錄模塊主要完成將數(shù)據(jù)存入數(shù)組中的工作。在此工資管理系統(tǒng)中,記錄可以從以二進制形式存儲的數(shù)據(jù)文件中讀入,也可以從鍵盤逐個輸入記錄。記錄由職工的基本信息和工資信息字段構成。 查詢記錄模塊查詢記錄模塊主要完成在數(shù)組中查找滿足相關條件的記錄。在此工資管理系統(tǒng)中,用戶可以按照職工編號或者姓名在數(shù)組中進行查找。若找到改記錄,則以表格形式打印出此記錄的信息;否則返回一個-1的值,并打印出未找到改記錄的提示信息。 更新記錄模塊更新記錄模塊主要完成對記錄的維護。在此工資管理系統(tǒng)中,實現(xiàn)對記錄的修改、刪除、插入、排序操作。一般而言,系統(tǒng)進行了這些操作后,需要將修改的數(shù)據(jù)存入源數(shù)據(jù)文件。 統(tǒng)計記錄模塊統(tǒng)計記錄模塊主要完成對公司員工的工資在各等級的人數(shù)統(tǒng)計。 輸出記錄模塊輸出記錄模塊主要完成兩個任務:第一,它實現(xiàn)對記錄的存盤操作,即將數(shù)組中各元素的存儲的記錄信息寫入數(shù)據(jù)文件中。第二,它實現(xiàn)將數(shù)組中存儲的記錄信息以表格的形式在屏幕上打印出來。輸入記錄模塊從文件讀入從鍵盤輸入按姓名查詢按編號查詢修改記錄刪除記錄插入記錄排序記錄統(tǒng)計工資各等級人數(shù)輸出至文件輸出至屏幕查詢記錄模塊更新記錄模塊統(tǒng)計記錄模塊工資管理系統(tǒng)輸出記錄模塊工資管理系統(tǒng)功能模塊圖u 功能模塊設計和實現(xiàn) 輸入記錄模塊(必做)從文件讀入功能模塊該模塊主要是將數(shù)據(jù)存放在數(shù)組中。該模塊從數(shù)據(jù)文件中讀取所有記錄,通過多次調用fread()文件函數(shù),每次操作都是從文件中讀取一條工資記錄信息存入數(shù)組中的操作,并在main()中實現(xiàn)。若文件中無任何記錄,則提示記錄為0;如果有記錄,則提示讀取成功并輸出記錄個數(shù)。從鍵盤輸入功能模塊該模塊主要實現(xiàn)記錄從鍵盤上輸入,add函數(shù)實現(xiàn)。首先把文件中存在的記錄全部顯示出來,而后從鍵盤接收多次輸入記錄,如果職工編號重復則提醒重新輸入,輸入的記錄暫保存到結構體數(shù)組中,輸入0回到主菜單。 查詢記錄模塊(必做)查詢模塊主要實現(xiàn)在結構體數(shù)組中按職工編號或姓名查找滿足條件的記錄的功能,通過qur()函數(shù)來實現(xiàn)。提供兩種方式查詢:1為按照編號來查詢,2按照姓名來查詢;如找到查詢內容則輸出記錄值,找不到則提示無此項記錄。 更新記錄模塊更新記錄模塊主要是實現(xiàn)對記錄的修改、刪除、插入、排序操作。所有這些操作都在數(shù)組中完成。修改記錄修改記錄操作需要對數(shù)組中目標元素的數(shù)據(jù)域中的值進行修改,分三步完成:首先顯示所有的記錄,然后輸入要修改的職工編號,調用locate()函數(shù)定位該職工的編號記錄,第三步,若找到該記錄,則修改職工編號之外的各字段的值。刪除記錄刪除記錄操作完成刪除制定的職工編號或者姓名的記錄。也分三步完成:首先顯示所有的記錄,而后輸入要修的職工編號或者姓名,輸入后調用locate()函數(shù)定位該職工的記錄,第三步,若找到該記錄,則從該記錄所在元素的后續(xù)元素七,依次向前移一個元素位置,元素個數(shù)減1。插入記錄插入記錄操作完成在指定職工編號的隨后位置插入新的記錄。首先,它要求用戶輸入某個員工的職工編號,新的記錄將插入在該記錄之后;然后提示用戶輸入一條新的記錄信息。排序操作排序操作主要實現(xiàn)按照實發(fā)工資降序排序。分兩步,首先輸出所有的記錄,而后按照冒泡排序法的思想進行排序,輸出排序的結果。統(tǒng)計記錄模塊該模塊的實現(xiàn)比較簡單,首先輸出所有的記錄,而后根據(jù)實發(fā)工資進行判斷,完成工資在各個等級的人數(shù)統(tǒng)計。 輸出記錄模塊(必做)輸出至文件模塊該模塊是把保存在數(shù)組中的記錄保存到文件中。當把記錄輸入至文件時,調用fwrite( )函數(shù),即將數(shù)組元素中各字段的值都寫入文件中。輸出至屏幕模塊(必做)該模塊是把保存在數(shù)組中的記錄顯示到屏幕上,調用disp( )函數(shù),把所有的記錄都顯示。u 數(shù)據(jù)結構設計定義結構體emolyee,用于存放職工的基本信息和工資信息。typedef struct empoyee char num10; 保存職工編號 char name15; 保存職工姓名 float jbgz; 保存職工基本工資 float jj 保存職工獎金 float kk; 保存職工扣款 float yfgz; 保存職工應發(fā)工資 float sk; 保存職工稅款 float sfgz; 保存職工實發(fā)工資zggz;u 函數(shù)功能描述1 void printheader( ) 函數(shù)用于在以表格形式顯示記時,打印輸出表頭信息。2 void printdata( zggz pp) 函數(shù)用于以表格顯示的方式,打印輸出單個數(shù)組元素中的記錄信息。3 void disp( zggz tp,int n)函數(shù)用于顯示數(shù)組中存儲的n條記錄,內容為emplyee中的內容。4 void wrong( )函數(shù)用于顯示錯誤提示語句。5 void menu( ) 函數(shù)用于顯示主菜單,共有0-9個選擇。6 void nofound( ) 函數(shù)用于顯示未找到提示語句。7 float numberinput( char *notice)函數(shù)用于輸入數(shù)值型數(shù)據(jù),notice用于保存printf( )中輸出的提示信息。該函數(shù)返回用戶輸入的浮點類型數(shù)據(jù)值。8 void stringinput(char*t,int lens,char * notice )函數(shù)用于輸入字符串,并進行字符串長度驗證(長度小于lens),t用于保存輸入的字符串,因為是指針形式傳遞的,所以t相當于函數(shù)的返回值。notice用于保存printf( )中輸出的提示信息。9 int locate( zggz tp,int n,char findmess,int nameornum)函數(shù)用于定位數(shù)組中符合要求的元素,并返回該數(shù)組元素的下標值。參數(shù)findmess保存要查找的內容,nameornum保存按什么字段在數(shù)組tp中查找。10 int add(zggz tp,int n )函數(shù)用于在數(shù)組tp中增加工資記錄元素,并返回數(shù)組中的當前記錄數(shù)。開始調用disp函數(shù)顯示所用記錄輸入為0?調用stringinput函數(shù)輸入編號輸入的內容保存到結構體數(shù)組中進入while(1)循環(huán)結束回到主菜單ny編號存在?重新輸入?nnyyadd函數(shù)流程圖11 void qur(zggz tp,int n)函數(shù)用于在數(shù)組tp中按職工編號或者姓名查找滿足條件的記錄,并顯示記錄。開始提示是按編號查詢還是名字查詢編號?結束nyny數(shù)組內容有?調用locate函數(shù)定位記錄輸出找到記錄找到?返回主菜單yn調用locate函數(shù)定位記錄找到?輸出找到記錄ny調用stringinput函數(shù)輸入查詢編號調用stringinput函數(shù)輸入查詢編號qur函數(shù)流程圖12 int del( zggz tp,int n)函數(shù)用于先在數(shù)組tp中找到滿足條件的記錄,然后刪除該記錄。開始提示是按編號刪除還是名字刪除編號?結束nyny數(shù)組內容有?調用locate函數(shù)定位記錄刪除記錄找到?返回主菜單yn調用locate函數(shù)定位記錄找到?刪除記錄調用stringinput函數(shù)輸入刪除編號調用stringinput函數(shù)輸入刪除姓名yndel函數(shù)流程圖13 void modify(zggz tp,int n)函數(shù)用于在數(shù)組tp中修改記錄元素。開始調用disp函數(shù)顯示所有的記錄找到?結束ny數(shù)組內容有?返回主菜單yn調用stringinput函數(shù)輸入修改編號調用locate函數(shù)定位記錄逐步修改數(shù)據(jù)調用disp函數(shù)顯示所有的記錄modify 函數(shù)流程圖14 int insert(zggz tp,int n)函數(shù)用于在數(shù)組tp中插入記錄,并返回數(shù)組中的當前記錄數(shù)。開始調用disp函數(shù)顯示所用記錄查詢插入編號存在?調用stringinput函數(shù)輸入編號輸入的內容保存到結構體數(shù)組中進入while(1)循環(huán)結束回到主菜單ny重新輸入?ny調用disp函數(shù)顯示所用記錄insert函數(shù)流程圖15 void tongji(zggz tp,int n)函數(shù)用于在數(shù)組tp中完成記錄的統(tǒng)計工作,統(tǒng)計該公司職工工資的整體分布情況。16 void sort( zggz tp,int n)函數(shù)用于在數(shù)組tp中完成利用冒泡排序法實現(xiàn)數(shù)組的按實發(fā)工資字段的降序排序。17 void save(zggz

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論