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

下載本文檔

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

文檔簡介

#C語言程序設(shè)計報告課程名稱:C語言程序設(shè)計院系:管理與經(jīng)濟學(xué)院專業(yè)班級:工業(yè)工程2012142班學(xué)號:7學(xué)生姓名:指導(dǎo)教師:完成時間:2013-06-20報告成績:目錄TOC\o"1-5"\h\z\o"CurrentDocument"1、設(shè)計題目22、設(shè)計要求(包括設(shè)計內(nèi)容描述)2\o"CurrentDocument"3、設(shè)計作用與目的34、所用軟件3\o"CurrentDocument"5、系統(tǒng)設(shè)計4系統(tǒng)結(jié)構(gòu)4\o"CurrentDocument"程序程序圖4產(chǎn)生源程序66、實驗調(diào)試結(jié)果(附運行效果圖)36\o"CurrentDocument"7、設(shè)計中的問題及解決方法398、設(shè)計心得409、參考文獻41職工工資管理系統(tǒng)的設(shè)計與實現(xiàn)設(shè)計題目題目:工資管理系統(tǒng)工資管理系統(tǒng)是企業(yè)不可缺少的一部分,它利用計算機對員工工資進行統(tǒng)一管理,實現(xiàn)工資管理系統(tǒng)的系統(tǒng)化、規(guī)范化和自動化,為企業(yè)提高工作效率。本程序旨在訓(xùn)練讀者的基本編程能力,了解管理信息系統(tǒng)的開發(fā)流程,熟悉C語言的文件和結(jié)構(gòu)數(shù)組的各種基本操作。本程序中涉及結(jié)構(gòu)體、數(shù)組、文件等方面的知識。設(shè)計要求1、啟動軟件時,進行密碼校驗。若出錯三次,則自動退出系統(tǒng)。2、實現(xiàn)簡易的提示菜單界面,剛運行時應(yīng)顯示版本信息。用所學(xué)的知識盡量實現(xiàn)良好的、美觀的“人機界面”,便于軟件的操作使用。3、要求把所有錄入的數(shù)據(jù)以文件的形式,保存在硬盤上。4、系統(tǒng)包含以下基本功能:登陸功能、顯示主菜單功能、職工信息輸入信息輸出、職工信息查詢、職工信息修改、工資排序、工資統(tǒng)計、導(dǎo)出數(shù)據(jù)、導(dǎo)入數(shù)據(jù)、退出等。5、職工信息輸入信息輸出要求一個職工的基本信息(編號、姓名、基本工資)的錄入,以文件形式保存——輸入。6、職工工資表瀏覽工資功能——輸出。7、計算職工的工資(輸入基本工資、扣款、獎金后,馬上算出應(yīng)發(fā)工資、稅金、實發(fā)工資、總工資)。8、查詢、排序功能——算法。1)按編號查詢、排序。2)按姓名查詢。3)按工資排序。4)基本信息的刪除與修改(可選項)。設(shè)計作用與目的1、通過這次專題實習(xí),鞏固和加深對所學(xué)相關(guān)知識點的理解。2、進一步熟悉基本流程控制結(jié)構(gòu)實現(xiàn)分支的if???else語句、switch語句和實現(xiàn)循環(huán)的for、while…、do???while語句、break、continue等。3、基本數(shù)據(jù)類型、數(shù)組、結(jié)構(gòu)體、自定義類、函數(shù)的應(yīng)用。4、加強對模塊化程序設(shè)計和面向?qū)ο蟪绦蛟O(shè)計的理解。5、掌握C語言程序設(shè)計的基本思想,了解簡單的系統(tǒng)分析和6、了解數(shù)據(jù)庫系統(tǒng)的理論7、掌握數(shù)據(jù)庫設(shè)計的基本方法,熟悉數(shù)據(jù)庫設(shè)計的步驟;8、學(xué)習(xí)基本數(shù)據(jù)庫編程方法。9、進一步鞏固、加深學(xué)生所學(xué)專業(yè)課程《C語言程序設(shè)計》的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。10全面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。11利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用C語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨立開發(fā)應(yīng)用系統(tǒng),進行數(shù)據(jù)處理的綜合能力。對于給定的設(shè)計題目,如何進行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。掌握面向?qū)ο蟮某绦蛟O(shè)計方法。進一步掌握在集成環(huán)境下如何調(diào)試程序(單步調(diào)試,設(shè)置斷點、觀察表達(dá)式,分塊調(diào)試)、修改程序和程序的測試。運行環(huán)境及工具軟件WindowsXP;VisualC++(完整綠色版);職工工資管理系統(tǒng)5.系統(tǒng)設(shè)計程序邏輯圖導(dǎo)出數(shù)據(jù)工資計算工資統(tǒng)計工資排序職工信息修改職工工資信息查圖1:系統(tǒng)結(jié)構(gòu)框圖職工信息輸出職工信息輸入用戶管理登陸功能程序流程圖#include<>um);printf("輸入職工姓名:”);ame);printf("輸入職工的工資信息\n");printf("\n");printf("\n基本工資:");aid);printf("\n扣款:");iscount);printf("\n獎金:”);xtra);printf("\n稅金:");um=per[i].paid-per[i].discount+per[i].extra;per[i].realpaid=per[i].paid-per[i].discount;fprintf(fp,"%6d%8s%\t%\t%\t%\t%\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);}}voidModifyper(structpersonper[]){pp=per;intid,i=0;;for(i=0;i<=15;i++){Sleep(250);printf(".");}for(i=0;i<shuru;i++){if(per[i].num==id)um);printf("\n輸入新職工姓名:”);ame);printf("輸入職工的工資信息\n");printf("\n");printf("\n基本工資:");scanf("%f",&per[i].paid);fflush(stdin);printf("\n扣款:");scanf("%f",&per[i].discount);fflush(stdin);printf("\n獎金:");scanf("%f",&per[i].extra);printf("\n");per[i].sum=per[i].paid-per[i].discount+per[i].extra;per[i].realpaid=per[i].paid-per[i].discount;fprintf(fp,"%6d%8s%\t%\t%\t%\t%\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);}}}voidFindper(structpersonper[])um==id)um=per[i].paid-per[i].discount+per[i].extra;per[i].realpaid=per[i].paid-per[i].discount;printf("\n職工編號職工姓名基本工資扣款獎金應(yīng)發(fā)工資稅金實發(fā)工資總工資\n");printf("\n%6d%8s%\t%\t%\t%\t%\t%\t%\t\n\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].gotpaid,per[i].fare,per[i].realpaid,per[i].sum);system("pause");}}}voidInsertper(structpersonper[])um==id)um);那么就把插入的信息放到結(jié)構(gòu)數(shù)組最后printf("輸入職工姓名:”);fflush(stdin);gets(per[shuru-1].name);printf("輸入職工的工資信息\n");printf("\n");printf("\n基本工資:");fflush(stdin);scanf("%f",&per[shuru-1].paid);printf("\n扣款:");fflush(stdin);scanf("%f",&per[shuru-1].discount);printf("\n獎金:");um=per[i].paid-per[i].discount+per[i].extra;per[i].realpaid=per[i].paid-per[i].discount;fprintf(fp,"%6d%8s%\t%\t%\t%\t%\t\n",per[shuru-1].num,per[shuru-1].name,per[shuru-1].paid,per[shuru-1].discount,per[shuru-1].extra,per[i].realpaid,per[shuru-1].sum);Sleep(500);printf(”插入數(shù)據(jù)成功!\n");getch();}}voidListper(structpersonper[])otpaid=per[i].paid-per[i].discount;if(per[i].gotpaid<2000)per[i].fare=0;elseif(per[i].gotpaid>=2000&&per[i].gotpaid<4999)per[i].fare=per[i].gotpaid*;elseif(per[i].gotpaid>=5000&&per[i].gotpaid<10000)per[i].fare=per[i].gotpaid*;elseif(per[i].gotpaid>=10000&&per[i].gotpaid<99999)per[i].fare=per[i].gotpaid*;elseif(per[i].gotpaid>=100000)per[i].fare=per[i].gotpaid*;per[i].sum=per[i].paid-per[i].discount+per[i].extra;per[i].realpaid=per[i].paid-per[i].discount;}printf("\n職工編號職工姓名基本工資扣款獎金應(yīng)發(fā)工資稅金實發(fā)工資總工資\n");for(i=0;i<shuru;i++){printf("\n%6d%8s%\t%\t%\t%\t%\t%\t%\t",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].gotpaid,per[i].fare,per[i].realpaid,per[i].sum);}getch();}voidDelper(structpersonper[])um==delnum)break;}if(i>shuru)printf("\n\t沒有你要刪除的職工!\n");else{for(j=i;j<shuru;j++){temp=per[j];per[j]=per[j+1];per[j+1]=temp;}shuru--;um=per[i].paid-per[i].discount+per[i].extra;per[i].realpaid=per[i].paid-per[i].discount;fprintf(fp,"%6d%8s\t%\t%\t%\t%\t%\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);getch();}}voidSortper(structpersonper[])um,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].realpaid,per[i].sum);}printf("\n1?按職工編號排序\t2?按總工資(高一低)排序\n");printf("\n請您正確選擇:”);fflush(stdin);scanf("%d",&chose);if(chose==1){for(i=0;i<shuru-1;i++){for(j=i+1;j<shuru;j++){if(per[i].num>per[j].num){temp=per[i];per[i]=per[j];per[j]=temp;}}}printf(〃職工編號職工姓名基本工資扣款獎金應(yīng)發(fā)工資稅金實發(fā)工資總工資\n〃);for(i=0;i<shuru;i++){printf("\n%6d%8s%\t%\t%\t%\t%\t\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extpaid,per[i].sum);}system("pause");}elseif(chose==2){for(i=0;i<shuru-1;i++){for(j=i+1;j<shuru;j++){if(per[i].sum<per[j].sum){temp=per[i];per[i]=per[j];per[j]=temp;}}}printf(〃職工編號職工姓名基本工資扣款獎金應(yīng)發(fā)工資稅金實發(fā)工資總工資\n〃);for(i=0;i<shuru;i++){printf("\n%6d%8s%\t%\t%\t%\t%\n",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extraaid,per[i].sum);}system("pause");}}voidPassword();}system("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t");printf(歡迎登陸職工工資管理系統(tǒng)!\n\n");start=time(NULL);end=time(NULL);while(end-start<2)錄入職工工資*\n");printf("\t\t**\n");printf("\t\t*2.修改職工工資*\n");printf("\t\t**\n");printf("\t\t*3.查詢職工工資*\n");printf("\t\t**\n");printf("\t\t*4.瀏覽職工工資*\n");printf("\t\t**\n");printf("\t\t*5.刪除職工工資*\n");printf("\t\t**\n");printf("\t\t*6.插入職工工資*\n");printf("\t\t**\n");printf("\t\t*7.職工工資排序*\n");printf("\t\t**\n");printf("\t\t*8.保存職工工資*\n");printf("\t\t**\n");printf("\t\t*9.安全退出系統(tǒng)*\n");printf("\t\t=============================================\n");printf("\t\t請您正確選擇:");if(!(scanf("%d",&in)==1)){while((ch=getchar())!='\n')putchar(ch);printf("沒有此選項,請正確選擇!");getch();continue;}fflush(stdin);switch(in){case1:Inputper(per);;}printf("\n");}voidHelp(){printf("====================================================================\n");printf("\n\n\t\t\t\t系統(tǒng)信息\n");printf("====================================================================\n");printf("\n\n\t\t本系統(tǒng)是職工工資管理系統(tǒng),在職工的姓名欄可以輸入漢字”);printf("\n\t\t如果在輸入中沒看到任何信息則是因為輸入錯誤或無信息”);printf("\n\t\t系統(tǒng)中的:實發(fā)工資=基本工資-扣款,不需要輸入”);printf("\n\t\t實發(fā)工資,就可以直接輸出實發(fā)工資,系統(tǒng)中的:");printf("\n\t\t總工資=基本工資-扣款+獎金。");printf("\n\t\t本系統(tǒng)制作者:李海蛟\t”);printf("\n\t\tE_mail");printf("\n\t\t\tMadeBy++\t2013年6月18日5");printf("===================================================================\n");printf("\n\n\t\t\t\t按<Enter>進入");getchar();}voidSave(structpersonper[]);}if((fp=fopen("","wb+"))==NULL){printf("Cannotopenfilestrikeanykeyexit!");getch();exit(1);}fprintf(fp,"職工編號職工姓名基本工資扣款獎金應(yīng)發(fā)工資稅金實發(fā)工資總工資\n");for(i=0;i<shuru;i++){per[i].gotpaid=per[i].paid-per[i].discount;if(per[i].gotpaid<2000)per[i].fare=0;elseif(per[i].gotpaid>=2000&&per[i].gotpaid<4999)per[i].fare=per[i].gotpaid*;elseif(per[i].gotpaid>=5000&&per[i].gotpaid<10000)per[i].fare=per[i].gotpaid*;elseif(per[i].gotpaid>=10000&&per[i].gotpaid<99999)per[i].fare=per[i].gotpaid*;elseif(per[i].gotpaid>=100000)per[i].fare=per[i].gotpaid*;per[i].sum=per[i].paid-per[i].discount+per[i].extra;per[i].realpaid=per[i].paid-per[i].discount;fprintf(fp,"\n%6d%8s%\t%\t%\t%\t%\t%\t%\t",per[i].num,per[i].name,per[i].paid,per[i].discount,per[i].extra,per[i].gotpaid,per[i].fare,per[i].realpaid,per[i].sum);}}7.設(shè)計中的問題及解決方法由于瀏覽和查詢模塊中多定義了局部變量,且與全局變量同名將全局變量屏蔽,以至于這些模塊不能達(dá)到預(yù)期效果,總是只輸出最近一次的數(shù)據(jù),經(jīng)過修改后將其刪除,達(dá)到了所要的效果。使程序得以執(zhí)行。到目前程序中還有一小毛病,就是計算稅金是實數(shù)雙精度與單精度轉(zhuǎn)換存在不足。8.學(xué)習(xí)心得工資管理系統(tǒng)對于決策者和管理者來說都至關(guān)重要,所以工資管理系統(tǒng)應(yīng)該能夠為用戶提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件工資檔案,這種管理方式存在著許多缺點,如:效率低、保密性差,另外時間一長,將產(chǎn)生大量的文件和數(shù)據(jù),這對于查找、更新和維護都帶來了不少的困難。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認(rèn)識,它已進入人類社會的各

溫馨提示

  • 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

提交評論