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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

c程序課程設(shè)計 -工資管理系統(tǒng) 指導(dǎo)老師: 班級:u 設(shè)計目的本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息系統(tǒng)的開發(fā)流程,熟悉c語言的文件和結(jié)構(gòu)數(shù)組的各種基本操作。本程序中涉及結(jié)構(gòu)體、數(shù)組、文件等方面的知識。通過本程序的訓(xùn)練,使讀者能對c語言的文件操作有一個更深刻的了解,掌握利用數(shù)組存儲結(jié)構(gòu)實現(xiàn)工資管理的原理,為進一步開發(fā)出高質(zhì)量的信息管理系統(tǒng)打下堅實的基礎(chǔ)。u 功能描述 輸入記錄模塊輸入記錄模塊主要完成將數(shù)據(jù)存入數(shù)組中的工作。在此工資管理系統(tǒng)中,記錄可以從以二進制形式存儲的數(shù)據(jù)文件中讀入,也可以從鍵盤逐個輸入記錄。記錄由職工的基本信息和工資信息字段構(gòu)成。 查詢記錄模塊查詢記錄模塊主要完成在數(shù)組中查找滿足相關(guān)條件的記錄。在此工資管理系統(tǒng)中,用戶可以按照職工編號或者姓名在數(shù)組中進行查找。若找到改記錄,則以表格形式打印出此記錄的信息;否則返回一個-1的值,并打印出未找到改記錄的提示信息。 更新記錄模塊更新記錄模塊主要完成對記錄的維護。在此工資管理系統(tǒng)中,實現(xiàn)對記錄的修改、刪除、插入、排序操作。一般而言,系統(tǒng)進行了這些操作后,需要將修改的數(shù)據(jù)存入源數(shù)據(jù)文件。 統(tǒng)計記錄模塊統(tǒng)計記錄模塊主要完成對公司員工的工資在各等級的人數(shù)統(tǒng)計。 輸出記錄模塊輸出記錄模塊主要完成兩個任務(wù):第一,它實現(xiàn)對記錄的存盤操作,即將數(shù)組中各元素的存儲的記錄信息寫入數(shù)據(jù)文件中。第二,它實現(xiàn)將數(shù)組中存儲的記錄信息以表格的形式在屏幕上打印出來。輸入記錄模塊從文件讀入從鍵盤輸入按姓名查詢按編號查詢修改記錄刪除記錄插入記錄排序記錄統(tǒng)計工資各等級人數(shù)輸出至文件輸出至屏幕查詢記錄模塊更新記錄模塊統(tǒng)計記錄模塊工資管理系統(tǒng)輸出記錄模塊工資管理系統(tǒng)功能模塊圖u 功能模塊設(shè)計和實現(xiàn) 輸入記錄模塊(必做)從文件讀入功能模塊該模塊主要是將數(shù)據(jù)存放在數(shù)組中。該模塊從數(shù)據(jù)文件中讀取所有記錄,通過多次調(diào)用fread()文件函數(shù),每次操作都是從文件中讀取一條工資記錄信息存入數(shù)組中的操作,并在main()中實現(xiàn)。若文件中無任何記錄,則提示記錄為0;如果有記錄,則提示讀取成功并輸出記錄個數(shù)。從鍵盤輸入功能模塊該模塊主要實現(xiàn)記錄從鍵盤上輸入,add函數(shù)實現(xiàn)。首先把文件中存在的記錄全部顯示出來,而后從鍵盤接收多次輸入記錄,如果職工編號重復(fù)則提醒重新輸入,輸入的記錄暫保存到結(jié)構(gòu)體數(shù)組中,輸入0回到主菜單。 查詢記錄模塊(必做)查詢模塊主要實現(xiàn)在結(jié)構(gòu)體數(shù)組中按職工編號或姓名查找滿足條件的記錄的功能,通過qur()函數(shù)來實現(xiàn)。提供兩種方式查詢:1為按照編號來查詢,2按照姓名來查詢;如找到查詢內(nèi)容則輸出記錄值,找不到則提示無此項記錄。 更新記錄模塊更新記錄模塊主要是實現(xiàn)對記錄的修改、刪除、插入、排序操作。所有這些操作都在數(shù)組中完成。修改記錄修改記錄操作需要對數(shù)組中目標(biāo)元素的數(shù)據(jù)域中的值進行修改,分三步完成:首先顯示所有的記錄,然后輸入要修改的職工編號,調(diào)用locate()函數(shù)定位該職工的編號記錄,第三步,若找到該記錄,則修改職工編號之外的各字段的值。刪除記錄刪除記錄操作完成刪除制定的職工編號或者姓名的記錄。也分三步完成:首先顯示所有的記錄,而后輸入要修的職工編號或者姓名,輸入后調(diào)用locate()函數(shù)定位該職工的記錄,第三步,若找到該記錄,則從該記錄所在元素的后續(xù)元素七,依次向前移一個元素位置,元素個數(shù)減1。插入記錄插入記錄操作完成在指定職工編號的隨后位置插入新的記錄。首先,它要求用戶輸入某個員工的職工編號,新的記錄將插入在該記錄之后;然后提示用戶輸入一條新的記錄信息。排序操作排序操作主要實現(xiàn)按照實發(fā)工資降序排序。分兩步,首先輸出所有的記錄,而后按照冒泡排序法的思想進行排序,輸出排序的結(jié)果。統(tǒng)計記錄模塊該模塊的實現(xiàn)比較簡單,首先輸出所有的記錄,而后根據(jù)實發(fā)工資進行判斷,完成工資在各個等級的人數(shù)統(tǒng)計。 輸出記錄模塊(必做)輸出至文件模塊該模塊是把保存在數(shù)組中的記錄保存到文件中。當(dāng)把記錄輸入至文件時,調(diào)用fwrite( )函數(shù),即將數(shù)組元素中各字段的值都寫入文件中。輸出至屏幕模塊(必做)該模塊是把保存在數(shù)組中的記錄顯示到屏幕上,調(diào)用disp( )函數(shù),把所有的記錄都顯示。u 數(shù)據(jù)結(jié)構(gòu)設(shè)計定義結(jié)構(gòu)體emolyee,用于存放職工的基本信息和工資信息。typedef struct empoyee char num10; 保存職工編號 char name15; 保存職工姓名 float jbgz; 保存職工基本工資 float jj 保存職工獎金 float kk; 保存職工扣款 float yfgz; 保存職工應(yīng)發(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條記錄,內(nèi)容為emplyee中的內(nèi)容。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相當(dāng)于函數(shù)的返回值。notice用于保存printf( )中輸出的提示信息。9 int locate( zggz tp,int n,char findmess,int nameornum)函數(shù)用于定位數(shù)組中符合要求的元素,并返回該數(shù)組元素的下標(biāo)值。參數(shù)findmess保存要查找的內(nèi)容,nameornum保存按什么字段在數(shù)組tp中查找。10 int add(zggz tp,int n )函數(shù)用于在數(shù)組tp中增加工資記錄元素,并返回數(shù)組中的當(dāng)前記錄數(shù)。開始調(diào)用disp函數(shù)顯示所用記錄輸入為0?調(diào)用stringinput函數(shù)輸入編號輸入的內(nèi)容保存到結(jié)構(gòu)體數(shù)組中進入while(1)循環(huán)結(jié)束回到主菜單ny編號存在?重新輸入?nnyyadd函數(shù)流程圖11 void qur(zggz tp,int n)函數(shù)用于在數(shù)組tp中按職工編號或者姓名查找滿足條件的記錄,并顯示記錄。開始提示是按編號查詢還是名字查詢編號?結(jié)束nyny數(shù)組內(nèi)容有?調(diào)用locate函數(shù)定位記錄輸出找到記錄找到?返回主菜單yn調(diào)用locate函數(shù)定位記錄找到?輸出找到記錄ny調(diào)用stringinput函數(shù)輸入查詢編號調(diào)用stringinput函數(shù)輸入查詢編號qur函數(shù)流程圖12 int del( zggz tp,int n)函數(shù)用于先在數(shù)組tp中找到滿足條件的記錄,然后刪除該記錄。開始提示是按編號刪除還是名字刪除編號?結(jié)束nyny數(shù)組內(nèi)容有?調(diào)用locate函數(shù)定位記錄刪除記錄找到?返回主菜單yn調(diào)用locate函數(shù)定位記錄找到?刪除記錄調(diào)用stringinput函數(shù)輸入刪除編號調(diào)用stringinput函數(shù)輸入刪除姓名yndel函數(shù)流程圖13 void modify(zggz tp,int n)函數(shù)用于在數(shù)組tp中修改記錄元素。開始調(diào)用disp函數(shù)顯示所有的記錄找到?結(jié)束ny數(shù)組內(nèi)容有?返回主菜單yn調(diào)用stringinput函數(shù)輸入修改編號調(diào)用locate函數(shù)定位記錄逐步修改數(shù)據(jù)調(diào)用disp函數(shù)顯示所有的記錄modify 函數(shù)流程圖14 int insert(zggz tp,int n)函數(shù)用于在數(shù)組tp中插入記錄,并返回數(shù)組中的當(dāng)前記錄數(shù)。開始調(diào)用disp函數(shù)顯示所用記錄查詢插入編號存在?調(diào)用stringinput函數(shù)輸入編號輸入的內(nèi)容保存到結(jié)構(gòu)體數(shù)組中進入while(1)循環(huán)結(jié)束回到主菜單ny重新輸入?ny調(diào)用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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論