版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計學 號 _班 級 _ 姓 名 _指導教師 _ 年 月 日課程設計任務書一、課程設計題目:某企業(yè)職工工資管理系統(tǒng)二、課程設計工作自2007年7月9日起至2007年7月15日止三、課程設計內容:用c語言編寫軟件完成以下任務:1 錄入職工信息;2 對職工按工資排序并顯示; 3 能夠增加新職工數據并按工資高低排序。四、課程設計要求:程序質量:l 貫徹結構化程序設計思想。l 用戶界面友好,功能明確,操作方便;可以加以其它功能或修飾。l 用戶界面中的菜單至少應包括“職工信息錄入”、“按工資排序”、“插入新職工并按工資高低排序”、“退出”4項。l 代碼應適當縮進,并給出必要的注釋,以增強程序的可讀
2、性。課程設計說明書:課程結束后,上交課程設計說明書(打印稿和電子稿),其內容如下:l 封面l 課程設計任務書l 目錄l 需求分析(分析題目的要求)l 程序流程圖(總體流程圖和主要功能模塊流程圖)l 核心技術的實現說明及相應程序段l 個人總結l 參考資料l 源程序及適當的注釋指導教師:_員工簽名:_目錄一、程序設計題目1二、需求分析1三、程序流程圖3四、核心技術的實現方法、程序段及注釋7五、個人總結10六、參考文獻10七、源程序11一、程序設計題目某企業(yè)職工工資管理,具體要求如下:1、錄入職工信息2、對職工按工資排序并顯示3、能夠增加新職工數據并按工資高低排序4、退出注:每個員工數據至少應該包括
3、工號、姓名、工資,員工數據要保存在worker.dat文件中。二、需求分析經過對程序設計題目的分析可知,整個程序的設計實現大致分為四個模塊,其中每一個模塊對應一個函數,他們的功能分別是:錄入職工信息函數(shuru),工資排序并顯示函數(sore),增加新職工數據函數(add),主函數(main)。1、錄入職工信息函數 主要實現程序最初運行時員工數據的錄入;2、工資排序并顯示函數 實現的功能是按照工資由多到少對員工的數據進行排序,把排序后的文件保存到sore.dat文件中,并打印目前所有的有效員工記錄信息;3、增加新職工數據函數 按插入新職工并按工資高低排序;4、主函數 實現的是程序界面的設計
4、和各功能函數的調用;除上面介紹的功能之外,程序還具有退出功能,可以在程序的一次運行當中循環(huán)執(zhí)行所有的功能,并根據需要終止程序的執(zhí)行。每一個員工記錄都包含工號、姓名、工資,在程序當中,將員工記錄類型定義為結構體類型,添加以及追加的員工信息直接寫入worker.dat文件中,其他函數每次對員工記錄的訪問,其數據來源都是worker.dat文件,這樣做不但可以保證員工數據的一致性,而且可以對員工數據進行永久保存,保證每次運行程序都可以采用原來的數據。三、程序流程圖1、 程序總體結構圖圖1程序總體結構圖2、具體功能框圖(1) 錄入職工信息函數 shuru圖2錄入職工信息函數(2)工資排序并顯示函數 s
5、ore圖3工資排序并顯示函數(3)增加新職工數據函數(add)圖4增加新職工數據函數四、核心技術的實現方法、程序段及注釋本程序主要由三個自定義函數和一個主函數組成,其中主函數以菜單的形式調用其他函數來實現要求的所有功能。在這些函數當中,工資排序并顯示函數和增加新職工數據函數是程序中較為核心的部分,下面分別進行說明。1、工資排序并顯示函數 工資排序使用冒泡法,將結構體中的數據按照工資由多到少的順序排序,把排序后的結果保存打印到屏幕上,并將結果保存到sore.dat文件中。具體的程序段如下:void sore(int n) int i,j=1;struct worker temp;file *fp
6、1;for(i=0;in-1;i+)for(j=0;jn-1-i;j+) if(worj.gongziworj+1.gongzi) strcpy(temp.num,worj.num); strcpy(,); temp.gongzi=worj.gongzi; strcpy(worj.num,worj+1.num); strcpy(,worj+1.name); worj.gongzi=worj+1.gongzi; strcpy(worj+1.num,temp.num); strcpy(worj+1.name,); worj+1
7、.gongzi=temp.gongzi; if(fp1=fopen(sore.dat,wb)=null) printf(打開文件失??!); exit(0); printf(序號 工號 姓名 工資n); for(i=0;in;i+) fwrite(&wori,sizeof(struct worker),1,fp1);if(wori.gongzi=wori+1.gongzi) printf(%3d%5s%5s%8.2fn,j,wori.num,,wori.gongzi);else printf(%3d%5s%5s%8.2fn,j+,wori.num,,wori.
8、gongzi); fclose(fp1);2、增加新職工數據函數該函數的核心內容是增加新的員工信息,保存到結構體中,并調用sore()函數將增加后的員工信息重新進行排序。最后把增加后的總人數返回給主函數。具體程序段如下:int add(int n)int i,j;file *fp;if(fp=fopen(worker.dat,rb+)!=null) printf(請輸入要追加的員工數量,按回車鍵確認:); scanf(%d,&j); for(i=1;i=j;i+) printf(n請輸入第%d個員工的工號、姓名、工資,并按回車鍵確認:n,i); scanf(%s%s%f,&worn+i-1.n
9、um,&worn+,&worn+i-1.gongzi); fwrite(&worn+i-1,sizeof(struct worker),1,fp); sore(n+j);return (n+j);五、個人總結通過這幾天的實習,我對vc 6.0軟件有了新的認識,對c語言的應用也有了一定能力, 通過這次課程設計我學到了以前沒有掌握的很多知識,同時,我對學過的知識又進一步熟練掌握了。我想這次課程設計對我未來的學習一定會有很大的幫助。六、參考文獻1 譚浩強c程序設計北京:清華大學出版社,20052 劉成等c語言程序設計實驗指導與習題集北京:中國鐵道出版社,2006七、源程序#inclu
10、de #include #define n 5struct workerchar num20;char name10;float gongzi;worn;int shuru()int i,n;file *fp;if(fp=fopen(worker.dat,wb)=null)printf(文件打開失敗);exit(0); printf(請輸入要錄入的員工數量,按回車鍵確認:); scanf(%d,&n); for(i=1;i=n;i+) printf(n請輸入第%d個員工的工號、姓名、工資,并按回車鍵確認:n,i);scanf(%s%s%f,&wori-1.num,&,&w
11、ori-1.gongzi); if(fwrite(&wori-1,sizeof(struct worker),1,fp)!=1)printf(文件保存失??!n); fclose(fp);return (n);void sore(int n) int i,j=1;struct worker temp;file *fp1;for(i=0;in-1;i+)for(j=0;jn-1-i;j+) if(worj.gongziworj+1.gongzi) strcpy(temp.num,worj.num); strcpy(,); temp.gongzi=worj.gon
12、gzi; strcpy(worj.num,worj+1.num); strcpy(,worj+1.name); worj.gongzi=worj+1.gongzi; strcpy(worj+1.num,temp.num); strcpy(worj+1.name,); worj+1.gongzi=temp.gongzi; if(fp1=fopen(sore.dat,wb)=null) printf(打開文件失??!); exit(0); printf(序號 工號 姓名 工資n); for(i=0;in;i+) fwrite(&wori,sizeof(struct
13、 worker),1,fp1);if(wori.gongzi=wori+1.gongzi) printf(%3d%5s%5s%8.2fn,j,wori.num,,wori.gongzi);else printf(%3d%5s%5s%8.2fn,j+,wori.num,,wori.gongzi); fclose(fp1);int add(int n)int i,j;file *fp;if(fp=fopen(worker.dat,rb+)!=null) printf(請輸入要追加的員工數量,按回車鍵確認:); scanf(%d,&j); for(i=1;i=j;i+) printf(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);main()int i,n=0;printf(*n);printf(*n);printf(*歡迎使用員工工資管理系統(tǒng)*n);printf(*n);pr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年C語言程序設計教案編寫心得
- 夜間施工擾民整改報告
- EPC模式承包人建議書及承包人實施方案
- 食品檢驗工技師高級技師-綜合題(二)-真題-無答案
- 2024-2025學年新教材高中物理第九章靜電場及其應用第1節(jié)電荷課堂練習含解析新人教版必修3
- 四年級數學下冊四三角形三角形的分類教學反思西師大版
- 山東專用2024年高考生物二輪復習第一篇專題3考向2細胞的分化衰老凋亡和癌變學案
- 2024-2025學年高中歷史專題六穆罕默德阿里改革一亟待拯救的文明古國教學教案人民版選修1
- 2024年巴西經濟發(fā)展對全球影響分析
- 網絡通訊技術支持與服務合同
- 外貿業(yè)務與國際市場培訓課件
- 信創(chuàng)醫(yī)療工作總結
- 教師教育教學質量提升方案
- 滅火器的規(guī)格與使用培訓
- 2024《中央企業(yè)安全生產治本攻堅三年行動方案(2024-2026年)》
- 紀錄片《園林》解說詞
- 建筑專題攝影培訓課件
- 《民間文學導論》課件
- 《輸血查對制度》課件
- 拳擊賽策劃方案
- 分離性障礙教學演示課件
評論
0/150
提交評論