歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

c語言課程設計報告職工工資管理系統(tǒng).doc

  • 資源ID:116492256       資源大小:354KB        全文頁數(shù):28頁
  • 資源格式: DOC        下載積分:13積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要13積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

c語言課程設計報告職工工資管理系統(tǒng).doc

課程設計報告C+課程設計報告題 目:人事管理系統(tǒng)設 計 者: 專業(yè)班級: 學 號: 指導教師: 二模塊設計分析系統(tǒng)功能模塊圖:歡迎畫面主菜單顯示功能查找功能刪除功能輸入功能保存與讀取退出程序添加功能修改功能統(tǒng)計功能按ID號查找按姓名查找修改ID號修改姓名修改職務工資修改基本工資修改醫(yī)保修改津貼修改公積金 工作程序分析輸入:輸入職工工資資料 通過結構體的數(shù)組來進行操作,先頭定義數(shù)組em,先輸入需要輸入的職工人數(shù)m,然后進入循環(huán),每次循環(huán)將各項輸入結構體數(shù)組對應項的對應成員中,當循環(huán)次數(shù)等于人數(shù)時,完成全部員工的資料輸入,退出循環(huán)。同時將數(shù)據(jù)儲存在ckerk_list文件中并自動保存至磁盤。注:如首次使用,尚未輸入數(shù)據(jù),請先輸入數(shù)據(jù)。輸入的數(shù)據(jù)將自動保存。再次選擇輸入功能時原數(shù)據(jù)將被覆蓋。保存:將輸入的資料存入磁盤 讀取文件clerk_list,若文件不存在,打印“打開失敗并退出。若存在,則通過循環(huán)語句將輸入到結構體數(shù)組的數(shù)據(jù)逐個輸入磁盤。 讀?。鹤x取磁盤中的資料 打開文件clerk_list ,若文件不存在,打印“打開失敗”并退出。若存在,讀取文件中的數(shù)據(jù),并返回職工人數(shù)。 顯示:顯示職工工資資料 先通過讀取函數(shù)的返回值確定職工人數(shù)m,再通過循環(huán)將員工工資資料逐個打印,當循環(huán)次數(shù)達到m時退出循環(huán)。其中總工資由程序計算,總工資=基本工資+職務工資+津貼-醫(yī)療保險-公積金刪除:刪除某員工的資料 打印員工資料并提示輸入要刪除職工的姓名,輸入后若該職工不存在則打印“查無此人”;若存在,則顯示該職工資料并詢問是否確定刪除。若確定,則刪除。刪除時,通過對比輸入的姓名與資料中的姓名做對比從而確定要刪除的項i,從第i項開始,將后一項的各成員的值賦給前一項各對應的成員,完成對第i項的刪除。添加:添加新的員工資料而不覆蓋原有資料打印原有職工資料,詢問要添加的職工人數(shù)并詢問是否確定添加。逐個逐項輸入員工信息,之后程序計算其總工資。完成后顯示“添加成功”,打印新的員工資料并自動保存。添加的方法為:定義一個相同類型的結構體數(shù)組,將原有項復制后增添新的項,并保存新的數(shù)組。查找:按ID好查詢與按姓名查找員工資料根據(jù)提示輸入要查詢的ID號或姓名,程序通過循環(huán)語句將輸入的數(shù)字與以保存的結構體數(shù)組中的數(shù)據(jù)對比,若相同,則打印“已找到”及該員工的資料;當循環(huán)次數(shù)等于人數(shù)時結束循環(huán),若至結束循環(huán)時也沒有找到相同的,則打印“查無此人”。修改:修改特定員工的特定資料打印員工信息并提示輸入要修改資料的職工姓名。按提示確定要修改,確定要修改的項目,輸入要修改成的結果并將該結果賦給對應項的對應成員,完成對特定職工特定項目的修改。統(tǒng)計 通過循環(huán)對結構體數(shù)組中的每一項經(jīng)行統(tǒng)計,計算工資總額為,將工資總額除以人數(shù)計算出平均工資。根據(jù)每名職工的資料計算基本工資、職務工資、津貼之和在1000-1500圓1500-2000圓2000圓以上的員工占總員工的百分比。三源程序代碼(附各部分解釋)#include#include#include#include#define N 100struct clerk int num; /ID號 char name20; /姓名 int jbgz; /基本工資 int zwgz; /職務工資 int jt; / 津貼 int yb; /醫(yī)療保險 int gjj; /公積金/ int total; /總工資em100; void menu();void input();void save(int);void display();void del();void add();void search();void search_num();void search_name();void modify(); void sta();void start(); /*定義各函數(shù)*/void start() /開始界面 system(cls);/清屏 system(color 1E); /設置文字顏色為黃色 背景色藍色printf(nnnnnn);printf(*);printf(*歡迎使用工資管理系統(tǒng)*);printf(*nnnnn);printf(tttt 制作: n);printf(tttt 2011年6月nnnn);printf(ttt *按任意鍵進入*n);void menu() /菜單界面system(cls);system(color 1F); printf(*菜單*nn);printf( 1 輸入 nn);printf( 2 顯示 nn);printf( 3 查找 nn);printf( 4 刪除 nn);printf( 5 添加 nn);printf( 6 修改 nn);printf( 7 統(tǒng)計 nn);printf( 8 退出 nn);printf(說明:*如首次使用 尚未輸入數(shù)據(jù) 請先輸入數(shù)據(jù) n *輸入的數(shù)據(jù)將自動保存 n *再次選擇輸入功能時原數(shù)據(jù)將被覆蓋nn);void input() /*錄入函數(shù)*/ int i,m; system(cls); printf(職工人數(shù)(1-100):n); scanf(%d,&m); for (i=0;im;i+) printf(請輸入職工號: ); scanf(%d,&emi.num); printf(請輸入姓名: ); scanf(%s,&emi.name); getchar(); printf(請輸入基本工資: ); scanf(%d,&emi.jbgz); printf(請輸入職務工資: ); scanf(%d,&emi.zwgz); printf(請輸入津貼: ); scanf(%d,&emi.jt); printf(請輸入醫(yī)療保險: ); scanf(%d,&emi.yb); printf(請輸入公積金: ); scanf(%d,&emi.gjj); emi.total=(emi.jbgz)+(emi.zwgz)+(emi.jt)-(emi.yb)-(emi.gjj);/計算總工資 printf(n);/計算總工資 printf(n創(chuàng)建完畢!n); save(m);/保存職工人數(shù)mvoid save(int m) /*保存文件函數(shù)*/ int i; FILE*fp; /聲明fp是指針,用來指向FILE類型的對象 if (fp=fopen(clerk_list,wb)=NULL) /打開職工列表文件為空 printf (打開失敗n); exit(0); for (i=0;im;i+) /*將內(nèi)存中職工的信息輸出到磁盤文件中去*/ if (fwrite(&emi,sizeof(struct clerk),1,fp)!=1)/寫入數(shù)據(jù)塊 &emi:是要輸出數(shù)據(jù)的地址 sizeof(struct clerk):獲取一個單體的長度 1:數(shù)據(jù)項的個數(shù) fp:目標文件指針 printf(文件讀寫錯誤n); fclose(fp);/ 緩沖區(qū)內(nèi)最后剩余的數(shù)據(jù)輸出到磁盤文件中,并釋放文件指針和有關的緩沖區(qū)int load() /*導入函數(shù) int型*/ FILE*fp; int i=0; if(fp=fopen(clerk_list,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&emi,sizeof(struct clerk),1,fp); /讀取 i+; while(feof(fp)=0); /檢測流上的文件結束符 fclose(fp); return(i-1);/返回人數(shù)void display() /*瀏覽函數(shù)*/ int i,sum=0; int m=load(); system(cls); printf(職工號 姓名 基本工資 職務工資 津貼 醫(yī)療保險 公積金 總工資 n); for(i=0;im;i+) /*m為輸入部分的職工人數(shù)*/ printf(n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ,emi.num,emi.name,emi.jbgz,emi.zwgz,emi.jt,emi.yb,emi.gjj,emi.total); sum+=emi.total;/計算員工總工資之和 printf(nn職工平均工資為:%d n,sum/m);void del() /*刪除函數(shù) */ int m=load(); int i,j,n,t,button; char name20; printf(n 原來的職工信息:n); display(); /顯示刪除前的員工信息 printf(n); printf(按姓名刪除:n); scanf(%s,name); for(button=1,i=0;button&im;i+)/主函數(shù)中確定button=1時各函數(shù)才可以被調(diào)用 if(strcmp(emi.name,name)=0)/按員工姓名查找到某員工 并調(diào)出其資料 printf(n此人原始記錄為:n);/顯示選定員工的信息 printf(職工號 姓名 基本工資 職務工資 津貼 醫(yī)療保險 公積金 總工資 n); printf(n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ,emi.num,emi.name,emi.jbgz,emi.zwgz,emi.jt,emi.yb,emi.gjj,emi.total); printf(n確定刪除 請按1,不刪除請按0n); scanf(%d,&n); if(n=1) for(j=i;jm-1;j+)/從第i項開始 將后一項的各成員的值賦給前一項各對應的成員 完成對第i項的刪除 strcpy(emj.name,emj+1.name); emj.num=emj+1.num; emj.jbgz=emj+1.jbgz; emj.zwgz=emj+1.zwgz; emj.jt=emj+1.jt; emj.yb=emj+1.yb; emj.gjj=emj+1.gjj; emj.total=emj+1.total; .button=0; if(!button)/button=0表明刪除已完成 m=m-1;/總員工數(shù)減少一人 else printf(n查無此人!n); printf(n 刪除后的所有職工信息:n); save(m); /調(diào)用保存函數(shù) display(); /調(diào)用瀏覽函數(shù) printf(n繼續(xù)刪除請按1,不再刪除請按0n); scanf(%d,&t); switch(t) case 1:del();break; case 0:break; default :break; void add()/*添加函數(shù)*/ FILE*fp; int n; int count=0; int i; int m=load(); printf(n 原來的職工信息:n); display(); printf(n); fp=fopen(emploee_list,a); printf(請輸入想增加的職工數(shù):n);/確定要加入的職工數(shù)n scanf(%d,&n); for (i=m;i=1&t=3) button=1; break; else button=0; printf(輸入錯誤); while(button=0);/回到查詢選擇項 while(button=1) switch(t)/選擇查詢方式 case 1:printf(按工號查詢n);search_num();break; case 2:printf(按姓名查詢n);search_name();break; case 3:main();break; default:break; void search_num()/按職工號查詢 int a; int i,t; int m=load(); printf(請輸入要查找的職工號:n); scanf(%d,&a); for(i=0;im;i+) if(a=emi.num) printf(職工號 姓名 基本工資 職務工資 津貼 醫(yī)療保險 公積金 總工資 n); printf(n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ,emi.num,emi.name,emi.jbgz,emi.zwgz,emi.jt,emi.yb,emi.gjj,emi.total); break; if(i=m) printf(n對不起,查無此人n); printf(n); printf(返回查詢函數(shù)請按1,繼續(xù)查詢職工號請按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2: break; default:break; void search_name() char name30; int i,t; int m=load(); printf(請輸入姓名:n); scanf(%s,name); for(i=0;im;i+) if(strcmp(emi.name,name)=0) printf(n已找到,其記錄為:n); printf(職工號 姓名 基本工資 職務工資 津貼 醫(yī)療保險 公積金 總工資 n); printf(n %-6d%-6s %-8d %-8d %-8d %-8d %-8d %-8d ,emi.num,emi.name,emi.jbgz,emi.zwgz,emi.jt,emi.yb,emi.gjj,emi.total); if(i=m) printf(nn); printf(n); printf(返回查詢菜單請按1,繼續(xù)查詢姓名請按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2:break; default :break; void modify() /*修改函數(shù)*/ int num; char name20; int jbgz; int zwgz; int jt; int yb; int gjj; int b,c,i,n,t,button; int m=load(); system(cls); printf(n 原來的職工信息:n); display(); printf(n); printf(請輸入要修改的職工的姓名:n); scanf(%s,name); for(button=1,i=0;button&i8|c1) printf(n選擇錯誤,請重新選擇!n); button=0; if(button=1) printf(n查無此人n); do switch(c) /*因為當找到第i個職工時,for語句后i自加了1,所以下面的應該把改后的信息賦值給第i-1個人*/ case 1:printf(職工號改為: ); scanf(%d,&num); emi-1.num=num; break; case 2:printf(姓名改為: ); scanf(%s,name); strcpy(emi-1.name,name); break; case 3:printf(基本工資改為: ); getchar(); scanf(%d,&jbgz); emi-1.jbgz=jbgz; emi-1.total=( emi-1.jbgz+ emi-1.zwgz + emi-1.jt- emi-1.yb- emi-1.gjj); break; case 4:printf(職務工資改為: ); scanf(%d,&zwgz); emi-1.zwgz=zwgz; emi-1.total=( emi-1.jbgz+ emi-1.zwgz + emi-1.jt- emi-1.yb- emi-1.gjj); break; case 5:printf(津貼改為: ); scanf(%d,&jt); emi-1.jt=jt; emi-1.total=( emi-1.jbgz+ emi-1.zwgz + emi-1.jt- emi-1.yb- emi-1.gjj); break; case 6:printf(醫(yī)療保險改為: ); scanf(%d,&yb); emi-1.yb=yb; emi-1.total=( emi-1.jbgz+ emi-1.zwgz + emi-1.jt- emi-1.yb- emi-1.gjj); break; case 7:printf(公積金改為: ); scanf(%d,&gjj); emi-1.gjj=gjj; emi-1.total=( emi-1.jbgz+ emi-1.zwgz + emi-1.jt- emi-1.yb- emi-1.gjj); break; case 8:modify(); break; printf(n); printf(nn 確定修改 請按1 ; 重新修改 請按2: n); scanf(%d,&b); while(b=2); printf(n修改后的所有職工信息:n); printf(n); save(m); display(); printf(n按1 繼續(xù)修改 ,不再修改請按0n); scanf(%d,&t); switch(t) case 1:modify();break; case 0:break; default :break; void sta()/統(tǒng)計函數(shù) int i; int sum=0; int a=0,b=0,c=0; int m=load();system(cls);/清屏函數(shù) for(i=0;im;i+) /*m為輸入部分的職工人數(shù)*/ sum+=emi.total; if(emi.total)=1000) a+; if(emi.total1500&emi.total2000) c+;printf(nn工資總額為:%dn,sum);printf(平均工資為:%dn,sum/m);printf(n基本工資、職務工資、津貼之和n);printf(在1000-1500圓的員工占總員工的百分之%dn,a*100/m); printf(在1500-2000圓的員工占總員工的百分之%dn,b*100/m); printf(在2000圓以上的員工占總員工的百分之%dn,c*100/m);printf(nn按任意鍵繼續(xù));getch();menu();void main()/主函數(shù) int n,button; char a; start();getch(); menu(); do printf(功能選擇(1-8):n); scanf(%d,&n); if(n=1&n=7) button=1; break; else button=0; printf(您輸入有誤,請重新選擇!); while(button=0); while(button=1) switch(n) case 1: input();break; case 2: display();break; case 3: search();break; case 4:del();break; case 5: add();break; case 6:modify();break; case 7:sta();break; case 8:exit(0);break; default :break; getchar(); printf(n); printf(按任意鍵繼續(xù)n); getch(); system(cls); /*清屏*/ menu(); /*調(diào)用菜單函數(shù)*/ printf(功能選擇(1-8):n); scanf(%d,&n); printf(n); 運行結果及截圖歡迎畫面菜單輸入功能顯示功能統(tǒng)計功能刪除功能添加功能修改功能心得體會通過這兩周的c語言課程設計,我加深了對c語言程序設計的理解,使自己的操作更加熟練,發(fā)現(xiàn)了自己的不足,為自己今后的繼續(xù)學習指明了方向。在這次課程設計中,我鞏固所了學過的知識,能用匯編語言熟練地運用順序、選擇、循環(huán)三大結構,進一步掌握結構體數(shù)組的使用,文件函數(shù)的使用,掌握了子程序的定義及調(diào)用。并在調(diào)試過程中不斷發(fā)現(xiàn)與改正錯誤,完善算法,改進用戶體驗等等。調(diào)試索然繁瑣而艱苦,但極大的促進了我編程能力的提高。由于自己目前能力有限,該程序還有諸多不足,感謝指正。感謝老師的悉心教導與細致的幫助。雖然c語言的課程與課程設計都已結束,但通過這次課程設計我也發(fā)現(xiàn)了差距,并將在未來努力學習,積極實踐,使自己能真正的掌握運用c語言。參考文獻28

注意事項

本文(c語言課程設計報告職工工資管理系統(tǒng).doc)為本站會員(good****022)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!