C語言工資信息管理系統(tǒng)_第1頁
C語言工資信息管理系統(tǒng)_第2頁
C語言工資信息管理系統(tǒng)_第3頁
C語言工資信息管理系統(tǒng)_第4頁
C語言工資信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、工資信息管理系統(tǒng)一、題目要求設(shè)計(jì)工資信息管理系統(tǒng),要求該系統(tǒng)能夠?qū)崿F(xiàn)工資信息管理。系統(tǒng)包括錄入、瀏覽、查詢、統(tǒng)計(jì)等功能。其中錄入功能要求能夠添加新的工資信息到文件,瀏覽功能要求能按照工資卡號(hào)、姓名分類瀏覽,提供分屏顯示;有排序功能,排序后按照工資卡號(hào)升序或?qū)嵃l(fā)工資降序輸出;查詢功能要求能夠按照工資卡號(hào)、姓名查詢;統(tǒng)計(jì)功能要求能夠按照月份累計(jì)統(tǒng)計(jì)某職工在某時(shí)間段實(shí)發(fā)工資總金額。二、 需求分析根據(jù)題目要求,由于工資信息是存放在文件中,所以應(yīng)提供文件的輸入輸出等操作;在程序中需要瀏覽工資信息,應(yīng)提供顯示、查找、排序等操作;另外還應(yīng)提供鍵盤式選擇彩旦實(shí)現(xiàn)功能選擇。三、 總體設(shè)計(jì)工資信息管理系統(tǒng)菜單錄入

2、追加查詢?yōu)g覽排序四、 詳細(xì)設(shè)計(jì)1主函數(shù) void main() menu();/*主函數(shù)只用于調(diào)用菜單*/ 2.菜單menu()int n,w1;doputs(tt*menu*nn);puts(tttt 1.enter data);puts(tttt 2.addition data);puts(tttt 3.browse all);puts(tttt 4.search);puts(tttt 5.order);puts(tttt 6.exit);puts(nntt *n);printf(choice your number(1-6):bb);scanf(%d,&n);if(n6)w1=1;get

3、char();else w1=0;while(w1=1);switch(n)case 1:enter();break;case 2:add();break;case 3:browse();break;case 4:search();break;case 5:order();break;case 6:exit(0);return 1;3.各功能模塊設(shè)計(jì)1)錄入模塊數(shù)據(jù)結(jié)構(gòu)struct employerint month;char num11;char name20;float yfgz;float sf;float df;float sj;float sfgz;empn;n為職工人數(shù),在此宏定義

4、為100,#define n 100i從0到n-1調(diào)用輸入函數(shù)input(i)輸入用戶要輸入職工記錄的個(gè)數(shù)n那么此階段的流程圖如下i!=0保存save(n)程序enter()int i,n;printf(how many employers(0-%d)?:,n-1);scanf(%d,&n);printf(n enter data nownn);for(i=0;in;i+)printf(n input %dth employer record.n,i+1);input(i);if(i!=0) save(n);printf_back();2)追加模塊先確定要追加信息的條數(shù),調(diào)用n=load()函

5、數(shù),再調(diào)用輸入函數(shù)input(),最后保存追加的記錄。整個(gè)過的的流程圖如下:調(diào)用n=load();并計(jì)算可以啟示錄的個(gè)數(shù)n輸入用戶要追加學(xué)生記錄的個(gè)數(shù)nk=m+ni從n到k調(diào)用輸入函數(shù)input(i)保存追加的記錄程序add() int i,n,m,k;file *fp;n=load();printf(how many employers are you want to add(0-%d)?:,n-1-n);scanf(%d,&m); k=m+n;for (i=n;ik;i+) printf(n input %dth employer record.n,i-n+1);input(i);if(f

6、p=fopen(record.txt,ab)=null) printf(cannot open filen);for(i=n;ik;i+)if(fwrite(&empi,sizeof(struct employer),1,fp)!=1) printf(file write errorn);fclose(fp);printf_back();3)查詢模塊下面是流程圖:輸入查詢內(nèi)容顯示找到的記錄讓用戶選擇1)查找另一個(gè)2)返回菜單返回主菜單提示沒有找到是否找到記錄詢問用戶是否繼續(xù)查找yyn程序search()int i,n,k,w1=1,w2,w3,w4;struct employer e;n=lo

7、ad();dodok=1;printf(nnenter name that you want to search! name:);scanf(%s,);printf_face();for(i=0;in;i+)if(strcmp(,)=0)k=i;printf_one(k);break;if(k=-1)printf(nnno exist! please);printf(nnare you again?nt1).again 2).no and back bb);scanf(%d,&w1);if(w1=2) break;while(k=-1&w1=1);w4

8、=0;w3=0;if(k!=-1)printf(nnwhat do you want to do?nt1).search another 2).back menu bb);scanf(%d,&w2);if(w3=1|w4=1)save(n);printf(nnsuccessful._.);printf(nnwhat do you want to do?nt1).search another 2).back bb);scanf(%d,&w2);while(w2=1);menu();4)瀏覽模塊流程圖顯示記錄按任意鍵顯示下一屏按任意鍵返回主菜單程序browse() int i,n;n=load()

9、;printf_face();for(i=0;in;i+)if(i!=0)&i%10=0)printf(nnpsaa any key to continue .);getch();puts(nn);printf_one(i);printf(tthere are %d record.n,n); printf(npass any key to back .);getch();menu();5)排序模塊此階段按工人工資卡號(hào)升序排列程序如下:order()int i,j,n; char t11;n=load();for(i=0;in-1;i+)for(j=i+1;j0)strcpy(t,empi.nu

10、m);strcpy(empi.num,empj.num);strcpy(empj.num,t);save(n);puts(nn); printf_back();4.公共函數(shù)1)保存函數(shù)程序如下:save(int n)file *fp;int i;if(fp=fopen(record.txt,wb)=null)printf(ncannot open filen);return null;for(i=0;in;i+)if(empi.yfgz!=0)if(fwrite(&empi,sizeof(struct employer),1,fp)!=1)printf(file write errorn);f

11、close(fp);return 1;2)加載函數(shù)程序如下:load()file *fp;int i;if(fp=fopen(record.txt,rb)=null)printf(ncannot open filen);return null;for(i=0;!feof(fp);i+)fread(&empi,sizeof(struct employer),1,fp);fclose(fp);return(i-1);3)工資信息輸入函數(shù)程序如下:record_input(int i)int j;printf(month:);scanf(%d,&empi.month);no_input(i,i);

12、printf(name:);scanf(%s,&);printf(yfgz:);scanf(%f,&empi.yfgz);printf(sf:);scanf(%f,&empi.sf);printf(df:);scanf(%f,&empi.df);4)輸入工資卡號(hào)的函數(shù)程序如下:no_input(int i,int n)int j,k,w1;dow1=0;printf(no.:);scanf(%s,empi.num);for(j=0;empi.numj!=0;j+)if(empi.numj9)puts(input error! only be made up of (0-9).

13、please reinput!n);w1=1;break;if(w1!=1)for(k=0;kn;k+)if(k!=i&strcmp(empk.num,empi.num)=0)puts(this record is exist.please reinput!n);w1=1;break;while(w1=1);5)計(jì)算稅金的函數(shù)程序如下:sj(int i)if(empi.yfgz800&empi.yfgz1400) empi.sj=(empi.yfgz-1400)*0.1;6)計(jì)算實(shí)發(fā)工資的函數(shù)程序如下:sfgz(int i)empi.sfgz=empi.yfgz-empi.sf-empi.df

14、-empi.sj;7)顯示數(shù)據(jù)結(jié)構(gòu)項(xiàng)目函數(shù)程序如下:void printf_face()printf(ntno. name month yfgz sf df sj sfgzn);8)顯示一個(gè)記錄的函數(shù)程序如下:void printf_one(int i)printf(%s %s %d %f %f %f %f %fn,empi.num,,empi.month,empi.yfgz,empi.sf,empi.df,empi.sj,empi.sfgz);9)一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回的函數(shù)程序如下:printf_back()int k,w;printf(nntsuccessful._nn);printf(what do you want to do?nnt1)browse all nowt2).back: bb);scanf(%d,&w);if(w=1) browse();else menu();5上機(jī)操作(1) 主菜單(2) 錄入模塊輸入1后提示輸入記錄的條數(shù),輸入3后界

溫馨提示

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

評(píng)論

0/150

提交評(píng)論