版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計(jì)學(xué) 號 班 級 姓 名 指導(dǎo)教師課程設(shè)計(jì)任務(wù)一、課程設(shè)計(jì)題目:某企業(yè)職工工資管理系統(tǒng)二、課程設(shè)計(jì)工作自2007年7月9日起至2007年7月15日止三、課程設(shè)計(jì)內(nèi)容:用C語言編寫軟件完成以下任務(wù): 錄入職工信息; 對職工按工資排序并顯示; 能夠增加新職工數(shù)據(jù)并按工資高低排序。四、課程設(shè)計(jì)要求: 程序質(zhì)量:貫徹結(jié)構(gòu)化程序設(shè)計(jì)思想。用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。工資排序”、用戶界面中的菜單至少應(yīng)包括“職工信息錄入”、“按 “插入新職工并按工資高低排序”、“退出” 4項(xiàng)??勺x性。課程設(shè)計(jì)說明書: 課程結(jié)束后,代碼應(yīng)適當(dāng)縮進(jìn),并給出必要的注釋,以增強(qiáng)程序的,其內(nèi)容如下
2、:上交課程設(shè)計(jì)說明書(打印稿和電子稿)封面課程設(shè)計(jì)任務(wù)書目錄需求分析(分析題目的要求)程序流程圖(總體流程圖和主要功能模塊流程圖) 核心技術(shù)的實(shí)現(xiàn)說明及相應(yīng)程序段個(gè)人總結(jié)參考資料源程序及適當(dāng)?shù)淖⑨屩笇?dǎo)教師: 員工簽名:目錄、程序設(shè)計(jì)題目二、需求分析三、程序流程圖四、核心技術(shù)的實(shí)現(xiàn)方法、程序段及注釋1010五、個(gè)人總結(jié)六、參考文獻(xiàn)七、源程序II、程序設(shè)計(jì)題目某企業(yè)職工工資管理,具體要求如下:1、錄入職工信息2、對職工按工資排序并顯示3、能夠增加新職工數(shù)據(jù)并按工資高低排序4、退出注:每個(gè)員工數(shù)據(jù)至少應(yīng)該包括工號、姓名、工資,員工數(shù)據(jù)要保存在 worker.dat文件中。二、需求分析經(jīng)過對程序設(shè)計(jì)題
3、目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí) 現(xiàn)大致分為四個(gè)模塊,其中每一個(gè)模塊對應(yīng)一個(gè)函數(shù),他 們的功能分別是:錄入職工信息函數(shù)(shuru),工資排序并 顯示函數(shù)(sore),增加新職工數(shù)據(jù)函數(shù)(add),主函數(shù)(main)。1、錄入職工信息函數(shù)主要實(shí)現(xiàn)程序最初運(yùn)行時(shí)員工數(shù) 據(jù)的錄入;132、工資排序并顯示函數(shù)實(shí)現(xiàn)的功能是按照工資由多到少對員工的數(shù)據(jù)進(jìn)行排序,把排序后的文件保存到sore.dat文件中,并打印目前所有的有效員工記錄信息;3、增加新職工數(shù)據(jù)函數(shù)按插入新職工并按工資高低排 序;4、主函數(shù)實(shí)現(xiàn)的是程序界面的設(shè)計(jì)和各功能函數(shù)的調(diào)用;除上面介紹的功能之外,程序還具有退出功能,可以 在程序的一次運(yùn)行
4、當(dāng)中循環(huán)執(zhí)行所有的功能, 并根據(jù)需要 終止程序的執(zhí)行。每一個(gè)員工記錄都包含工號、姓名、工資,在程序當(dāng) 中,將員工記錄類型定義為結(jié)構(gòu)體類型, 添加以及追加的 員工信息直接寫入 worker.dat文件中,其他函數(shù)每次對員工記錄的訪問,其數(shù)據(jù)來源都是worker.dat文件,這樣做不但可以保證員工數(shù)據(jù)的一致性, 而且可以對員工數(shù)據(jù)進(jìn) 行永久保存,保證每次運(yùn)行程序都可以采用原來的數(shù)據(jù)。、程序流程圖1、程序總體結(jié)構(gòu)圖打印程序界面和功能選項(xiàng)siitch(gctch()case ” r* :n=shuni();break:casE y :sore(n):break:case a" :n-add(
5、n) ;break;case F':打印版權(quán)信息;退岀圖1程序總體結(jié)構(gòu)圖2、具體功能框圖(1)錄入職工信息函數(shù)shuru二fope口 ("評orker. dat",""wb"") =N1JLL 真'一一假printfr 文件打開 失敗: exit (0):輸入需要錄入信息的數(shù)量當(dāng)i = l到n打印r青輸入第i個(gè)員丄的信息,從鍵盤錄入信息并保存到結(jié)構(gòu)體把結(jié)構(gòu)體中信息保存到文件關(guān)閉文件返回Cn)圖2錄入職工信息函數(shù)(2)工資排序并顯示函數(shù)sore當(dāng)匚=0到n2當(dāng) j = 0Jjn-2-ij 4Lgongz4q交換 TOT
6、j -worj+1 itpl-topen( sore, dat , wb )NUJ丄printfC 打開文件 失??!、 exit(0);當(dāng)i =C)lJn 把結(jié)構(gòu)體的信息寫入文件把結(jié)構(gòu)體的信息打卬到屏幕關(guān)閉文件圖3工資排序并顯示函數(shù)(3)增加新職工數(shù)據(jù)函數(shù)(add)C'worker, d吐:rb+') ! =NUq/ 真腫輸入耍追加的員工數(shù)量j當(dāng)i = l到j(luò)輸入第i個(gè)員工的信息寫入第i個(gè)員工的信息到文件sore (n+j)返回(Mj)圖4增加新職工數(shù)據(jù)函數(shù)四、核心技術(shù)的實(shí)現(xiàn)方法、程序段及注釋本程序主要由三個(gè)自定義函數(shù)和一個(gè)主函數(shù)組成, 其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來實(shí)現(xiàn)
7、要求的所有 功能。在這些函數(shù)當(dāng)中,工資排序并顯示函數(shù)和增加新職 工數(shù)據(jù)函數(shù)是程序中較為核心的部分,下面分別進(jìn)行說 明。1、工資排序并顯示函數(shù)工資排序使用冒泡法,將結(jié)構(gòu)體中的數(shù)據(jù)按照工資由多到少的順序排序,把排序后的結(jié)果保存打印到屏幕上, 并將結(jié)果保存到sore.dat文件中。具體的程序段如下:void sore(int n)int i,j=1; struct worker tem p;FILE *fp1;for(i=0;i<n-1;i+) for(j=0;j<n-1-i;j+)strc py(tem p.num,worj.num); strc py (tem ,worj
8、.name); temp .gongzi=worj.gongzi;strc py (worj.num,worj+1.num); strc py (,worj+1.name);worj.gongzi=worj+1.gongzi; strc py (worj+1.num,tem p.num); strc py (worj+1.name,tem ); worj+1.gongzi=tem p.gongzi; if(worj.gongzi<worj+1.gongzi) if(fp1=fo pen("sore.dat","wb")
9、=NULL)printf("打開文件失敗!");exit(0);printf("序號 工號 姓名 工資n");for(i=0;i<n;i+) fwrite(&wori,sizeof(struct worker),1,f p1);if(wori.gongzi=wori+1.gongzi)printf("%3d%5s%5s%8.2fn",j,wori.num,,wori.go ngzi);elseprintf("%3d%5s%5s%8.2fn",j+,wori.num,
10、,wori. gongzi);fclose(fp1);2、增加新職工數(shù)據(jù)函數(shù)該函數(shù)的核心內(nèi)容是增加新的員工信息,保存到結(jié)構(gòu)體中,并調(diào)用sore ()函數(shù)將增加后的員工信息重新進(jìn)行排序。最后把增加后的總?cè)藬?shù)返回給主函數(shù)。 具體程序段 如下:int add(int n)int i,j;FILE *fp;if(fp=fo pen("worker.dat","rb+")!=NULL) printf("請輸入要追加的員工數(shù)量,按回車鍵確認(rèn):");scanf("%d",&j);for(i=1;i<=j;i+)pr
11、intf("n請輸入第%d個(gè)員工的工號、姓名、工資,并按回車 鍵確認(rèn):n",i);scanf("%s%s%f",&worn+i-1.num,&worn+,&worn+i- 1.gongzi);fwrite(&worn+i-1,sizeof(struct worker),1,fp);sore(n+j);return (n+j);五、個(gè)人總結(jié)通過這幾天的實(shí)習(xí),我對VC+ 6.0軟件有了新的認(rèn)識,對c語言的應(yīng)用也有了一定能力,通過這次課程設(shè)計(jì)我學(xué) 到了以前沒有掌握的很多知識,同時(shí),我對學(xué)過的知識又 進(jìn)一步熟練掌握
12、了。我想這次課程設(shè)計(jì)對我未來的學(xué)習(xí)一 定會有很大的幫助。六、參考文獻(xiàn)1譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社,2005 2劉成等.C語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題集.北京:中國鐵道出版社,2006七、源程序#in elude <stdio.h>#in clude <stri ng.h>#defi ne N 5struct workerchar num20; char n ame10; float gon gzi;worN;int shuru()int i,n;FILE *fp;if(fp=fo pen( "worker.dat","wb&qu
13、ot;)=NULL)printf(”文件打開失敗"); exit(O);”);printf(”請輸入要錄入的員工數(shù)量,按回車鍵確認(rèn):scan f("%d", &n);for(i=1;i<=n ;i+)printf("n請輸入第%d個(gè)員工的工號、姓名、工資,并按回車鍵確認(rèn):n",i);scan f("%s%s%f",&wori-1. num,&wori-1. name, &wori-1.go ngzi); if(fwrite(&wori-1,sizeof(struct worker
14、),1,fp)!=1)printf("文件保存失??!n"); fclose(fp); return (n); void sore(i nt n) int i,j=1;struct worker temp;FILE *fp1;for(i=0;i <n-1;i+) for(j=0;j< n-1-i;j+)if(worj.g on gzi<worj+1.go ngzi)strc py(te mp.nu m,worj. nu m); strc py(te mp.n ame,worj. name); temp.gon gzi=worj.go ngzi;strc py
15、 (worj. nu m,wor|j+1. nu m); strc py (worj. name,wor|j+1. name); worj.g on gzi=worj+1.go ngzi;strc py (worj+1. nu m,te mp.nu m); strc py (worj+1. name,te mp.n ame); worj+1.go ngzi=te mp .go ngzi;if(fp1=fo pen ("sore.dat","wb")=NULL)printf(”打開文件失??!”);exit(0);printf(”序號工號姓名 工資n&quo
16、t;);for(i=0;i< n;i+)fwrite(&wori,sizeof(struct worker),1,fp1);if(wori.go ngzi=wori+1.go ngzi)prin tf("%3d%5s%5s%8.2fn",j,wori. num,wori. name,wori.g on gzi); elseprin tf("%3d%5s%5s%8.2fn",j+,wori. num,wori. name,wori.go ngzi); fclose(fp1);int add(i nt n)int i,j;FILE *fp;if
17、(fp=fo pen( "worker.dat","rb+")!=NULL)”);printf("請輸入要追加的員工數(shù)量,按回車鍵確認(rèn):scan f("%d",&j);for(i=1;i<=j;i+)printf("n請輸入第%d個(gè)員工的工號、姓名、工資,并按回車鍵確認(rèn):n",i);scan f("%s%s%f", &wor n+i-1. num,&wor n+i-1. name, &worn+i-1.go ngzi); fwrite(&wor n+i-1,sizeof(struct worker),1,fp);sore( n+j);return (n +j); main ()int i,n=0;prin tf("* *n");prin tf("* *n");歡迎使用員工工資管理系統(tǒng)prin tf("* *n");prin tf("* *n");按r輸入員工信息prin tf("* *n");按s根據(jù)工資排序prin tf("*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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園心理健康合同:校園心理健康服務(wù)承包協(xié)議
- 新疆維吾爾自治區(qū)勞動(dòng)合同范本樣本
- 山林承包合同使用指南
- 2024年范文生態(tài)園土地承包合同
- 2024試析《物業(yè)服務(wù)合同》的解除或終止問題
- 2024小吃加盟合同范本
- 物業(yè)管理服務(wù)協(xié)議參考樣本
- 個(gè)人建房施工合同范本
- 2024廣告設(shè)計(jì)類合同范本
- 解除版權(quán)買賣合同協(xié)議
- 2024年全國高考Ⅰ卷英語試題及答案
- 期刊編輯的學(xué)術(shù)期刊編輯規(guī)范考核試卷
- T-CCSAS014-2022《化工企業(yè)承包商安全管理指南》
- 電梯安全總監(jiān)和安全員的任命文件
- SL-T+62-2020水工建筑物水泥灌漿施工技術(shù)規(guī)范
- 2024年安徽省普通高中學(xué)業(yè)水平選擇性考試 歷史試卷
- 電子商務(wù)師職業(yè)技能等級證書培訓(xùn)方案
- JBT 14615-2024 內(nèi)燃機(jī) 活塞運(yùn)動(dòng)組件 清潔度限值及測定方法(正式版)
- DL5009.2-2013電力建設(shè)安全工作規(guī)程第2部分:電力線路
- 理智與情感:愛情的心理文化之旅智慧樹知到期末考試答案章節(jié)答案2024年昆明理工大學(xué)
- GA/T 2097-2023執(zhí)法辦案管理場所信息應(yīng)用技術(shù)要求
評論
0/150
提交評論