版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C 語言程序設(shè)計</b></p><p> 編程實踐是學(xué)習(xí)C語言程序設(shè)計的一重要環(huán)節(jié),為提高學(xué)生程序設(shè)計能力,通過課堂和上機實踐練習(xí)使學(xué)生的程序設(shè)計能力上一臺階。通過前四單元溫顧而知新、庖丁解牛、舉一反三、熟能生巧等過程的練習(xí)設(shè)計下面一個完整的程序。</p><p><b> 1、題目要求</b></p&g
2、t;<p> 設(shè)計“工資信息管理系統(tǒng)” </p><p> 要求:該系統(tǒng)能夠?qū)崿F(xiàn)工資信息管理。系統(tǒng)包括錄入,瀏覽,查詢,統(tǒng)計等功能。</p><p> 錄入功能要求:能夠添加新的工資信息到文件;</p><p> 瀏覽功能要求:能夠按照工資卡號,姓名分類瀏覽,提供分屏 顯示;有排序功能,排序后按照工資卡號升序或?qū)嵃l(fā)工資降序輸出;</p&
3、gt;<p> 查詢功能要求:能夠按照工資 卡號,姓名查詢;</p><p> 統(tǒng)計功能要求:能夠按照月份累計統(tǒng)計某職工在某時間段發(fā)工資總金額。</p><p><b> 職工數(shù)據(jù)如下:</b></p><p> 姓名銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅金 實發(fā)工資</p><p>
4、 wanglei 05507101 6 5000.00 25.00 35.00 360.00 4580.00</p><p> wanglei 05507101 7 5100.00 20.00 40.00 370.00 4670.00</p><p><b> 2、分析:</b>&l
5、t;/p><p> 根據(jù)題目要求,應(yīng)當(dāng)把職工工資信息用結(jié)構(gòu)體形式輸入,再定義一個全局變量和文件指針進(jìn)行整個程序的運行,然后把職工工資信息送到文件中,所以應(yīng)該提供一個結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中需實現(xiàn)職工工資瀏覽,查詢,統(tǒng)計等功能的操作,所以需要建立相應(yīng)的模塊來實現(xiàn);另外還需提供鍵盤式選擇菜單實現(xiàn)功能,在運行時達(dá)到所要目的。</p><p><b> 3、總體設(shè)計:<
6、;/b></p><p> 根據(jù)題目要求,可以將系統(tǒng)分為六個模塊:</p><p> 職工工資信息瀏覽模塊;</p><p> 添加工工資信息模塊;</p><p> 統(tǒng)計職工工資總合模塊;</p><p> 按名字查詢職工工資信息模塊;</p><p> 按卡號查詢職工工資信
7、息模塊;</p><p><b> 功能選擇</b></p><p><b> 4、詳細(xì)設(shè)計:</b></p><p> #include<iostream.h> </p><p> #include<stdio.h> </p><p> #
8、include<stdlib.h> </p><p> #include<string.h>//頭函數(shù)名</p><p> /*********職員工資信息結(jié)構(gòu)體*********/</p><p> /***包括職工的姓名、銀行卡好、工作月份、應(yīng)發(fā)工資、實發(fā)工資、水費、電費、稅***/</p><p> st
9、ruct staff//職員工資信息結(jié)構(gòu)體</p><p><b> { </b></p><p> char Name[10];</p><p> char CardNumber[10]; </p><p> int Month; </p><p> float SPWages;
10、</p><p> float APWages; </p><p> float Water; </p><p> float Electrical; </p><p> float Tax; </p><p><b> }; </b></p><p> FIL
11、E *fp;//定義文件指針===全局變量</p><p> struct staff temp;</p><p> void printf_face()//輸出函數(shù)</p><p><b> {</b></p><p> printf("\n 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅 實發(fā)工
12、資 \n ");</p><p> printf("%s %s %d %.2f %.2f %.2f %.2f %.2f\n",temp.Name,temp.CardNumber,temp.Month,</p><p> temp.SPWages,temp.Water,temp.Electrical,temp.Tax,temp.APWages);</p
13、><p><b> }</b></p><p><b> 一、</b></p><p> /**********瀏覽職工工資信息==模塊*********/</p><p> void PrintInformation()//瀏覽職工工資信息 </p&g
14、t;<p><b> {</b></p><p> struct staff temp; </p><p> if((fp=fopen("wages","rb"))==NULL)</p><p><b> {</b></p><p>
15、printf("cannot open the file!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> while(fread(&temp,sizeof(struct staff),1,fp)==1) printf_f
16、ace();</p><p> fclose(fp);</p><p><b> }</b></p><p><b> 二、</b></p><p> /**********添加職工工資信息==模塊*********/</p><p> void Increase(
17、)//添加職工工資信息 </p><p><b> {</b></p><p> if((fp=fopen("wages","ab+"))==NULL)</p><p><b> {</b></p><p&g
18、t; printf("cannot open the file!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> printf("\n 請輸入要==添加的工資信息: \n");</p><
19、;p> printf("\n 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 \n ");</p><p> scanf("%s%s%d%f%f%f",temp.Name,temp.CardNumber,</p><p> &temp.Month,&temp.SPWages,&temp.Water,</p&g
20、t;<p> &temp.Electrical);</p><p> if(temp.SPWages<=800) temp.Tax=0; </p><p> if((temp.SPWages>800.0)&&(temp.SPWages<1400.0)) </p><p> temp.Tax=(temp.
21、SPWages-800)*0.05; </p><p> if(temp.SPWages>1400){temp.Tax=(temp.SPWages-1400)*0.1;} </p><p> temp.APWages=temp.SPWages-temp.Water-temp.Electrical-temp.Tax; </p><p> fwrite(&a
22、mp;temp,sizeof(struct staff),1,fp);</p><p> fclose(fp); </p><p> }/***計算稅金并添加到文件相應(yīng)結(jié)構(gòu)體中***/</p><p><b> 三、</b></p><p> /*********統(tǒng)計某職工工資總合==模塊*********/&l
23、t;/p><p> void Statistics()//統(tǒng)計某職工工資總合 </p><p><b> { </b></p><p> struct staff temp; </p><p> char tempname[10]; </p><p>
24、float sum=0; </p><p> int monthstart=0,monthover=0;</p><p> printf("\n 輸入姓名 起始月份 終止月份 \n:");</p><p> scanf("%s%d%d", tempname, &monthstart,&month
25、over);</p><p> if((fp=fopen("wages","rb"))==NULL)</p><p><b> {</b></p><p> printf("cannot open the file!")</p><p><b>
26、 exit(0);</b></p><p><b> }</b></p><p> while(fread(&temp,sizeof(struct staff),1,fp)==1) </p><p><b> { </b></p><p> if(strcmp(temp
27、.Name,tempname)==0)/******判斷是否是該職工******/ </p><p><b> { </b></p><p> if(temp.Month>=monthstart&&temp.Month<=monthover) </p><p><b> { </b><
28、;/p><p> sum+=temp.APWages; </p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p><p> printf("%d 月到 %d 月的工資
29、總和 %f",monthstart,monthover,sum); </p><p> fclose(fp); </p><p><b> }</b></p><p><b> 四、</b></p><p> /*********按名字查詢某職工工資信息==模塊********/
30、 </p><p> void NameSearch()//按名字查詢某職工工資信息 </p><p><b> { </b></p><p> char tempname[10]; </p><p> struct staff temp;</p><p> printf("
31、\n 輸入姓名:"); </p><p> scanf("%s",tempname); </p><p> if((fp=fopen("wages","rb"))==NULL)</p><p><b> {</
32、b></p><p> printf("cannot open the file!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> while(fread(&temp,sizeof(struc
33、t staff),1,fp)==1) /***讀文件中資料**/</p><p><b> { </b></p><p> if(strcmp(temp.Name,tempname)==0) /**判斷是否是該姓名**/</p><p><b> {</b></p><p> printf_
34、face();</p><p><b> } </b></p><p><b> } </b></p><p> fclose(fp); </p><p><b> }</b></p><p><b> 五、</b>&l
35、t;/p><p> /********按卡號查詢某職工工資信息==模塊*******/</p><p> void CardNumberSearch()//按卡號查詢某職工工資信息 </p><p><b> { </b></p><p> char tempCardNumber[10]; </
36、p><p> struct staff temp;</p><p> printf("\n 輸入卡號:");</p><p> scanf("%s",tempCardNumber); </p><p> if((fp=fopen("wages","rb")
37、)==NULL)</p><p><b> {</b></p><p> printf("cannot open the file!");</p><p><b> exit(0);</b></p><p><b> }</b></p>
38、<p> while(fread(&temp,sizeof(struct staff),1,fp)==1) /***讀文件中資料**/</p><p><b> { </b></p><p> if(strcmp(temp.CardNumber,tempCardNumber)==0) /**判斷是否是該卡號**/</p><
39、;p><b> {</b></p><p> printf_face();</p><p><b> } </b></p><p><b> } </b></p><p> fclose(fp); </p><p><b>
40、 }</b></p><p><b> 六、</b></p><p> /**********職工工資信息查詢==模塊********/</p><p> int Search()</p><p><b> { </b></p><p><b>
41、 int n; </b></p><p><b> while(1) </b></p><p><b> { </b></p><p> printf("\n1. 按照卡號查詢: \n "); </p><p>
42、 printf("\n2. 按照姓名查詢: \n "); </p><p> printf("\n0. 返回上級目錄: \n");</p><p> scanf("%d",&n);</p><p> switch(n) </p><p><b> { &l
43、t;/b></p><p> case 1:CardNumberSearch();break; </p><p> case 2:NameSearch();break; </p><p> case 0:return 0;break; </p><p><b> } </b></p><
44、p><b> } </b></p><p><b> }</b></p><p><b> 七、</b></p><p> /***************功能選擇==模塊***********/</p><p> void ShowMenu()
45、 </p><p><b> { </b></p><p><b> int n; </b></p><p><b> while(1) </b></p><p><b> { </b></p&g
46、t;<p> printf("1. 添加工資信息: \n");</p><p> printf("2. 瀏覽工資信息: \n" );</p><p> printf("3. 統(tǒng)計工資信息: \n" );</p><p> printf("4. 查詢工資信息: \n"
47、); </p><p> printf("0. 退出系統(tǒng): " );</p><p> scanf("%d",&n);</p><p> switch(n) </p><p><b> { </b></p><p> case 1:Incr
48、ease();break; </p><p> case 2:PrintInformation();break; </p><p> case 3:Statistics();break; </p><p> case 4:Search();break; </p><p> case 0:exit(0);break; </p>
49、;<p><b> }</b></p><p><b> } </b></p><p><b> }</b></p><p> /***************主函數(shù)*************/</p><p> void main()</p>
50、;<p><b> {</b></p><p> ShowMenu();</p><p><b> }</b></p><p> 運行結(jié)果可以達(dá)到要求的目的。</p><p><b> 運行結(jié)果:</b></p><p> 1.
51、 添加工資信息:</p><p> 2. 瀏覽工資信息:</p><p> 3. 統(tǒng)計工資信息:</p><p> 4. 查詢工資信息:</p><p> 0. 退出系統(tǒng): 1</p><p> 請輸入要==添加的工資信息:</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電
52、費</p><p> wanglei 05507101 6 5000 25 35</p><p> 1. 添加工資信息:</p><p> 2. 瀏覽工資信息:</p><p> 3. 統(tǒng)計工資信息:</p><p> 4. 查詢工資信息:</p><p> 0.
53、退出系統(tǒng): 1</p><p> 請輸入要==添加的工資信息:</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費</p><p> wanglei 05507101 7 5100 20 40</p><p> 1. 添加工資信息:</p><p> 2. 瀏覽工資信息:<
54、/p><p> 3. 統(tǒng)計工資信息:</p><p> 4. 查詢工資信息:</p><p> 0. 退出系統(tǒng): 2</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅 實發(fā)工資</p><p> wanglei 05507101 6 5000.00 25.00 3
55、5.00 360.00 4580.00</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅 實發(fā)工資</p><p> wanglei 05507101 7 5100.00 20.00 40.00 370.00 4670.00</p><p> 1. 添加工資信息:</p><p>
56、 2. 瀏覽工資信息:</p><p> 3. 統(tǒng)計工資信息:</p><p> 4. 查詢工資信息:</p><p> 0. 退出系統(tǒng): 3</p><p> 輸入姓名 起始月份 終止月份</p><p> :wanglei 6 7</p><p> 6 月到 7
57、 月的工資總和 9250.0000001. 添加工資信息:</p><p> 2. 瀏覽工資信息:</p><p> 3. 統(tǒng)計工資信息:</p><p> 4. 查詢工資信息:</p><p> 0. 退出系統(tǒng): 4</p><p> 1. 按照卡號查詢:</p><p> 2.
58、 按照姓名查詢:</p><p> 0. 返回上級目錄:</p><p><b> 1</b></p><p> 輸入卡號:05507101</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅 實發(fā)工資</p><p> wanglei 05507
59、101 6 5000.00 25.00 35.00 360.00 4580.00</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅 實發(fā)工資</p><p> wanglei 05507101 7 5100.00 20.00 40.00 370.00 4670.00</p>
60、<p> 1. 按照卡號查詢:</p><p> 2. 按照姓名查詢:</p><p> 0. 返回上級目錄:</p><p><b> 2</b></p><p> 輸入姓名:wanglei</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅
61、 實發(fā)工資</p><p> wanglei 05507101 6 5000.00 25.00 35.00 360.00 4580.00</p><p> 姓名 銀行卡號 月份 應(yīng)發(fā)工資 水費 電費 稅 實發(fā)工資</p><p> wanglei 05507101 7 5100.00 20.00 40.00
62、 370.00 4670.00</p><p> 1. 按照卡號查詢:</p><p> 2. 按照姓名查詢:</p><p> 0. 返回上級目錄:</p><p><b> 0</b></p><p> 1. 添加工資信息:</p><p> 2. 瀏
63、覽工資信息:</p><p> 3. 統(tǒng)計工資信息:</p><p> 4. 查詢工資信息:</p><p> 0. 退出系統(tǒng): 0</p><p> Press any key to continue</p><p> 剛開始運行時出現(xiàn)的錯誤:</p><p> 由于瀏覽和查詢模塊
64、中多定義了局部變量,且與全局變量同名將全局變量屏蔽,以至于這些模塊不能達(dá)到預(yù)期效果,總是只輸出最近一次的數(shù)據(jù),經(jīng)過修改后將其刪除,達(dá)到了所要的效果。使程序得以執(zhí)行。到目前程序中還有一小毛病,就是計算稅金是實數(shù)雙精度與單精度轉(zhuǎn)換存在不足。</p><p> 做此C程序設(shè)計的體會:</p><p> 通過學(xué)習(xí)和練習(xí)C程序的設(shè)計基礎(chǔ),了解了一些關(guān)于C的知識。在設(shè)計過程中,好多處困惑、疑問,有
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計---工資信息管理系統(tǒng)
- c語言課程設(shè)計-工資信息管理系統(tǒng)
- 管理信息系統(tǒng)課程設(shè)計---企業(yè)工資信息管理系統(tǒng)
- 數(shù)據(jù)庫系統(tǒng)課程設(shè)計---工資信息管理系統(tǒng)
- 數(shù)據(jù)庫系統(tǒng)課程設(shè)計--工資信息管理系統(tǒng)
- 企業(yè)工資信息管理系統(tǒng)畢業(yè)論文
- 《車輛信息管理》課程設(shè)計--車輛信息管理系統(tǒng)
- 職工信息管理系統(tǒng)課程設(shè)計
- 物流信息管理系統(tǒng)課程設(shè)計
- 課程設(shè)計--教師信息管理系統(tǒng)
- 信息管理系統(tǒng)網(wǎng)站課程設(shè)計
- 學(xué)生信息管理系統(tǒng)課程設(shè)計
- 人事信息管理系統(tǒng)課程設(shè)計
- 課程設(shè)計----學(xué)生信息管理系統(tǒng)
- 課程設(shè)計--學(xué)生信息管理系統(tǒng)
- 課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 職工信息管理系統(tǒng)課程設(shè)計
- 職工信息管理系統(tǒng)課程設(shè)計
- 客戶信息管理系統(tǒng)課程設(shè)計
- 學(xué)生信息管理系統(tǒng)課程設(shè)計
評論
0/150
提交評論