




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計學(xué) 號 班 級 姓 名 指導(dǎo)教師課程設(shè)計任務(wù)一、課程設(shè)計題目:某企業(yè)職工工資管理系統(tǒng)二、課程設(shè)計工作自2007年7月9日起至2007年7月15日止三、課程設(shè)計內(nèi)容:用C語言編寫軟件完成以下任務(wù): 錄入職工信息; 對職工按工資排序并顯示; 能夠增加新職工數(shù)據(jù)并按工資高低排序。四、課程設(shè)計要求: 程序質(zhì)量:貫徹結(jié)構(gòu)化程序設(shè)計思想。用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。工資排序”、用戶界面中的菜單至少應(yīng)包括“職工信息錄入”、“按 “插入新職工并按工資高低排序”、“退出” 4項??勺x性。課程設(shè)計說明書: 課程結(jié)束后,代碼應(yīng)適當縮進,并給出必要的注釋,以增強程序的,其內(nèi)容如下
2、:上交課程設(shè)計說明書(打印稿和電子稿)封面課程設(shè)計任務(wù)書目錄需求分析(分析題目的要求)程序流程圖(總體流程圖和主要功能模塊流程圖) 核心技術(shù)的實現(xiàn)說明及相應(yīng)程序段個人總結(jié)參考資料源程序及適當?shù)淖⑨屩笇?dǎo)教師: 員工簽名:目錄、程序設(shè)計題目二、需求分析三、程序流程圖四、核心技術(shù)的實現(xiàn)方法、程序段及注釋1010五、個人總結(jié)六、參考文獻七、源程序II、程序設(shè)計題目某企業(yè)職工工資管理,具體要求如下:1、錄入職工信息2、對職工按工資排序并顯示3、能夠增加新職工數(shù)據(jù)并按工資高低排序4、退出注:每個員工數(shù)據(jù)至少應(yīng)該包括工號、姓名、工資,員工數(shù)據(jù)要保存在 worker.dat文件中。二、需求分析經(jīng)過對程序設(shè)計題
3、目的分析可知,整個程序的設(shè)計實 現(xiàn)大致分為四個模塊,其中每一個模塊對應(yīng)一個函數(shù),他 們的功能分別是:錄入職工信息函數(shù)(shuru),工資排序并 顯示函數(shù)(sore),增加新職工數(shù)據(jù)函數(shù)(add),主函數(shù)(main)。1、錄入職工信息函數(shù)主要實現(xiàn)程序最初運行時員工數(shù) 據(jù)的錄入;132、工資排序并顯示函數(shù)實現(xiàn)的功能是按照工資由多到少對員工的數(shù)據(jù)進行排序,把排序后的文件保存到sore.dat文件中,并打印目前所有的有效員工記錄信息;3、增加新職工數(shù)據(jù)函數(shù)按插入新職工并按工資高低排 序;4、主函數(shù)實現(xiàn)的是程序界面的設(shè)計和各功能函數(shù)的調(diào)用;除上面介紹的功能之外,程序還具有退出功能,可以 在程序的一次運行
4、當中循環(huán)執(zhí)行所有的功能, 并根據(jù)需要 終止程序的執(zhí)行。每一個員工記錄都包含工號、姓名、工資,在程序當 中,將員工記錄類型定義為結(jié)構(gòu)體類型, 添加以及追加的 員工信息直接寫入 worker.dat文件中,其他函數(shù)每次對員工記錄的訪問,其數(shù)據(jù)來源都是worker.dat文件,這樣做不但可以保證員工數(shù)據(jù)的一致性, 而且可以對員工數(shù)據(jù)進 行永久保存,保證每次運行程序都可以采用原來的數(shù)據(jù)。、程序流程圖1、程序總體結(jié)構(gòu)圖打印程序界面和功能選項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ù)量當i = l到n打印r青輸入第i個員丄的信息,從鍵盤錄入信息并保存到結(jié)構(gòu)體把結(jié)構(gòu)體中信息保存到文件關(guān)閉文件返回Cn)圖2錄入職工信息函數(shù)(2)工資排序并顯示函數(shù)sore當匚=0到n2當 j = 0Jjn-2-ij 4Lgongz4q交換 TOT
6、j -worj+1 itpl-topen( sore, dat , wb )NUJ丄printfC 打開文件 失??!、 exit(0);當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當i = l到j(luò)輸入第i個員工的信息寫入第i個員工的信息到文件sore (n+j)返回(Mj)圖4增加新職工數(shù)據(jù)函數(shù)四、核心技術(shù)的實現(xiàn)方法、程序段及注釋本程序主要由三個自定義函數(shù)和一個主函數(shù)組成, 其中主函數(shù)以菜單的形式調(diào)用其他函數(shù)來實現(xiàn)
7、要求的所有 功能。在這些函數(shù)當中,工資排序并顯示函數(shù)和增加新職 工數(shù)據(jù)函數(shù)是程序中較為核心的部分,下面分別進行說 明。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ù)將增加后的員工信息重新進行排序。最后把增加后的總?cè)藬?shù)返回給主函數(shù)。 具體程序段 如下:int add(int n)int i,j;FILE *fp;if(fp=fo pen("worker.dat","rb+")!=NULL) printf("請輸入要追加的員工數(shù)量,按回車鍵確認:");scanf("%d",&j);for(i=1;i<=j;i+)pr
11、intf("n請輸入第%d個員工的工號、姓名、工資,并按回車 鍵確認: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);五、個人總結(jié)通過這幾天的實習(xí),我對VC+ 6.0軟件有了新的認識,對c語言的應(yīng)用也有了一定能力,通過這次課程設(shè)計我學(xué) 到了以前沒有掌握的很多知識,同時,我對學(xué)過的知識又 進一步熟練掌握
12、了。我想這次課程設(shè)計對我未來的學(xué)習(xí)一 定會有很大的幫助。六、參考文獻1譚浩強.C程序設(shè)計.北京:清華大學(xué)出版社,2005 2劉成等.C語言程序設(shè)計實驗指導(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ù)量,按回車鍵確認:scan f("%d", &n);for(i=1;i<=n ;i+)printf("n請輸入第%d個員工的工號、姓名、工資,并按回車鍵確認: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("文件保存失?。"); 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ù)量,按回車鍵確認:scan f("%d",&j);for(i=1;i<=j;i+)printf("n請輸入第%d個員工的工號、姓名、工資,并按回車鍵確認: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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年5G網(wǎng)絡(luò)通信設(shè)備采購合同標準
- 2025年醋酸乙烯酯項目建議書
- 2025年摻混肥項目合作計劃書
- 2025年本地網(wǎng)傳輸系統(tǒng)項目合作計劃書
- 強化法治教育促進遵紀守法計劃
- 學(xué)習(xí)困難學(xué)生支持方案計劃
- 水庫管理與調(diào)度方案計劃
- 選擇合適的理財工具計劃
- 2025年金屬門窗及類似制品項目發(fā)展計劃
- 2025年中國顯控系統(tǒng)行業(yè)供需態(tài)勢、競爭格局及投資前景分析報告(智研咨詢)
- 1 聚聚散散 教案人教版美術(shù)四年級下冊
- 綜合實踐活動勞動與技術(shù)八年級下冊教案
- LS 8010-2014植物油庫設(shè)計規(guī)范
- GB/T 12618-1990開口型扁圓頭抽芯鉚釘
- GB/T 12006.2-2009塑料聚酰胺第2部分:含水量測定
- GA/T 458-2021居民身份證質(zhì)量要求
- 礦區(qū)水工環(huán)地質(zhì)工作
- 中國結(jié)英文介紹
- 全口義齒的制作課件
- 人教版2023年初中道法八年級下冊知識點匯總(思維導(dǎo)圖)
- 云停車平臺商戶使用說明
評論
0/150
提交評論