




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、課 程 設(shè) 計服務(wù)課程名稱: C語言 系: 能源與動力工程 專業(yè): 熱能與動力工程 班級: 集控本112 學(xué)號: 01 姓名:薛小可 指導(dǎo)教師: 許薇薇 、 范彬課程設(shè)計周次: 15周 起始日期:2012.6.4 至 2012。6.8 目錄C語言課程設(shè)計成績評定表1C語言課程設(shè)計任務(wù)書2程序設(shè)計思路3程序基本框架結(jié)構(gòu)圖4系統(tǒng)運行界面截圖5源代碼清單7課程設(shè)計總結(jié)17C語言課程設(shè)計成績評定表班級集控本112學(xué)號01姓名薛小可項目組第五組項目組長李振華項目組組員 于丙洋 李振國 安寧 薛小可本人工作簡介:在這一周的課設(shè)實訓(xùn)中,我主要負(fù)責(zé)的是職工工資管理系統(tǒng)程序中的排序部分,結(jié)合平時所學(xué)的C語言知識
2、和老師、同學(xué)、教材的幫助,比較圓滿的完成了自己的任務(wù)。通過這一周的努力設(shè)計,使我對C語言有了更深刻的認(rèn)識。組長評語: 該組員積極參加分配任務(wù),遵守老師的要求,態(tài)度認(rèn)真,愛思考,能獨立完成分配的所屬任務(wù),并且與其他組員多次進行共同調(diào)試,最終使程序運行起來。成績評定標(biāo)準(zhǔn)ABCDE理論基礎(chǔ)很好好比較好一般不好報告完成情況很好好比較好一般不好紀(jì)律表現(xiàn)很好好比較好一般不好程序創(chuàng)意很好好比較好一般不好所選模塊完成情況很好好一般較差不好所選算法難易程度復(fù)雜比較復(fù)雜一般簡單很簡單程序可操作性很好好一般較差不好答辯表現(xiàn)很好好一般較差不好最后成績優(yōu)秀A=5B<=3C<=0D=0E=0良好A=3B=4C
3、<=1D=0E=0中等A=1B=2C=4D<=1E=0及格A=0B=0C<=4D>=4不及格A=0B=0C=0D=4E>=4負(fù)責(zé)指導(dǎo)教師: (簽名)指導(dǎo)教師: (簽名)集控本112C語言課程設(shè)計任務(wù)書一、設(shè)計目的通過本次課程設(shè)計使學(xué)生進一步加深對C語言課程內(nèi)容的理解,初步掌握一般應(yīng)用程序的開發(fā)方法和步驟,進一步了解與掌握C語言的編程方法和技巧,提高學(xué)生用C語言解決實際問題的能力。二、設(shè)計要求1、認(rèn)真查閱參考書、資料2、遵守課程設(shè)計時間安排3、按時上機,認(rèn)真調(diào)試程序4、認(rèn)真完成課程設(shè)計報告三、課設(shè)報告裝訂內(nèi)容及順序1、課程設(shè)計封皮2、目錄3、課程設(shè)計成績評定表4、課
4、程設(shè)計任務(wù)書5、程序基本框架圖 6、程序設(shè)計說明書7、源代碼清單8、課設(shè)總結(jié)與心得四、設(shè)計題目職工工資管理系統(tǒng)五、時間安排(一周:從 6 月 4 日到 6 月 8 日 )1、查閱資料及程序設(shè)計(1天)2、程序編制及調(diào)試(3天)3、成績評定(0.5天)3、打印報告(0。5天)六、參考文獻1、C語言程序設(shè)計李淑華/李貞編 大連理工大學(xué)出版社2、C語言程序設(shè)計孫連科/姚大鵬編 遼海出版社3、C+時尚編程百例網(wǎng)冠科技編。機械工業(yè)出版社4、TURBO C 實用大全徐金梧等編。 機械工業(yè)出版社程序設(shè)計思路在這次課設(shè)中,我的任務(wù)是編寫職工工資管理系統(tǒng)的排序職工工資信息這塊。我的思路是:首先,添加includ
5、e“stdio。h"等頭文件使其正常運行.定義結(jié)構(gòu)體變量struct people,里面用數(shù)組存放職工的各種信息。如char num20,char name9,float jbgz,float gwgz,float gxkkhj,float sfgz。接著定義一個排序函數(shù),定義文件指針struct people *p_people指向之前定義的結(jié)構(gòu)體變量,即struct people p_people=STU。還定義了實型的總數(shù)int total=0,int i,int用于標(biāo)記有要排序的職工在文件中的位置。然后編寫排序的職工姓名,工號.這里用了if 語句while循環(huán)以及打開文件的f
6、open函數(shù)和在磁盤文件中讀取塊數(shù)據(jù)的fread函數(shù)。然后將結(jié)構(gòu)體STU送給p people,用輸出函數(shù)輸出“請輸入排序職工的方法"。 最后用fclose函數(shù)關(guān)閉文件,顯示排序成功的信息。在這個程序中運用了文件指針,結(jié)構(gòu)體變量,for循環(huán),while循環(huán)if語句,其中文件這塊涉及很多,包含了fread函數(shù),fopen函數(shù),fclose函數(shù),fwrite函數(shù)等等。整個程序除了主函數(shù)外,再加菜單函數(shù)int(),顯示函數(shù)void(),查詢函數(shù)void,排序函數(shù),修改函數(shù)。既而實現(xiàn)了錄入、顯示、追加、查詢、修改、排序幾大功能。程序基本框架結(jié)構(gòu)圖職工工資管理系統(tǒng)管理系統(tǒng)退出系統(tǒng)數(shù)據(jù)排序數(shù)據(jù)修改
7、數(shù)據(jù)查詢數(shù)據(jù)顯示數(shù)據(jù)錄入按工號排序按姓名排序返回系統(tǒng)運行界面截圖源代碼清單#include ”stdio.h”include "stdlib.h”include "string。h” struct people char num20; char name9; float jbgz; float gwgz; float gxkkhj; float sfgz;STU100;/*/void input() /錄入職工工資信息/int i,n;struct people STU;FILE fp;system("cls”);if(fp=fopen(”e:file1"
8、;,"wb"))=NULL) printf("error!n”);exit(0);printf(”nt請輸入職工人數(shù): ");scanf(”d",&n);printf(”nt請按下面提示輸入職工數(shù)據(jù)n”);for(i=0;i<n;i+) printf("nt第%d個職工號: ”,i+1); scanf(”%s",STU。num); printf("t姓名: "); scanf("s”,STU。name); printf(”t基本工資(大于0): "); scanf(&qu
9、ot;%f”,STU.jbgz); if(STU。jbgz<0) printf(”t輸入有誤!請重新輸入:”); scanf("f”,STU.jbgz); printf("t崗位工資(大于0): ”); scanf("f”,STU.gwgz); if(STU。gwgz<0) printf("輸入有誤!請重新輸入:”); scanf("%f”,&STU.gwgz); printf("t各項扣款合計(大于0): ”); scanf(”f",&STU.gxkkhj); if(STU。gxkkhj0) p
10、rintf(”t輸入有誤!請重新輸入:"); scanf(”%f”,STU.gxkkhj); printf("t實發(fā)工資: "); STU.sfgz=STU。gwgz+STU.jbgzSTU.gxkkhj; printf("f",STU.sfgz); fwrite(&STU,sizeof(STU),1,fp);fclose(fp);/*/void showall() /*職工工資顯示/ struct people STU; FILE fp;system("cls"); if(fp=fopen("e:file
11、1","rb”))=NULL) printf(”文件有錯誤不能打開!"); exit(0); printf("nt編號 t姓名 t基本工資 t崗位工資 t各項扣款合計 t實發(fā)工資n”); while(fread(STU,sizeof(STU),1,fp) printf("nt%st%st%ft%ft%ft%ftn”,STU.num,STU。name,STU.jbgz,STU。gwgz,STU。gxkkhj,STU。sfgz); fclose(fp); system("pause”);/*/void append() /追加職工信息*/
12、 int i,n;struct people STU;FILE *fp;system(”cls”);if(fp=fopen("e:file1",”ab”))=NULL) printf("error!n”);exit(0);printf(”nnt請輸入追加的職工人數(shù): ”);scanf(”d",&n);printf("nt請按下面提示輸入職工數(shù)據(jù)n”);for(i=0;in;i+) printf("nt第%d個職工號: ",i+1); scanf(”%s”,STU.num); printf("t姓名: &qu
13、ot;); scanf("s",STU。name); printf("t基本工資(大于0): "); scanf("%f”,STU.jbgz); if(STU。jbgz0) printf("t輸入有誤!請重新輸入:"); scanf("%f",STU.jbgz); printf("t崗位工資(大于0): ”); scanf(”%f",STU.gwgz); if(STU。gwgz0) printf("t輸入有誤!請重新輸入:”); scanf(”%f”,&STU。gwg
14、z); printf("t各項扣款合計(大于0): "); scanf(”%f”,&STU。gxkkhj); if(STU.gxkkhj0) printf(”t輸入有誤!請重新輸入:”); scanf("f”,STU。gxkkhj); printf("t實發(fā)工資: ”); STU。sfgz=STU。gwgz+STU.jbgz-STU.gxkkhj; printf("f”,STU.sfgz); fwrite(&STU,sizeof(STU),1,fp);fclose(fp);/*/void searchbyhao() /職工工資查
15、詢/FILE fp;struct people STU;char s20;int b=0;system("cls");if((fp=fopen(”e:file1",”rb")=NULL) printf("文件有錯誤,不能打開!");exit(0);printf("n請輸入要查詢的工號:");scanf("%s",s);while(fread(&STU,sizeof(STU),1,fp))if(strcmp(STU。num,s)=0)b=1;break;if(b=0)printf(”n不存
16、在工號為s的職工",s);system("pause”);fclose(fp);if(b=1)printf("n=");printf(”n查詢成功n”);printf(”要查詢的職工信息為:");printf("nt編號 t姓名 t基本工資 t崗位工資 t各項扣款合計 t實發(fā)工資n");printf("ntst%stft%ft%ftftn”,STU。num,STU。name,STU。jbgz,STU。gwgz,STU。gxkkhj,STU.sfgz);rewind(fp);system("pause”);
17、void searchbyname()FILE fp;char b9;int i=0;struct people STU;system("cls");if(fp=fopen("e:file1","rb"))=NULL) printf(”error!n”);exit(0);printf("n請輸入要查詢到職工姓名: ");scanf(”s”,b);while(fread(STU,sizeof(STU),1,fp))if(strcmp(STU。name,b)=0)i=1;break;fclose(fp);if(i=0)
18、printf(”n不存在職工姓名為s的職工”,b);system("pause”);if(i=1)printf("n=");printf("n查詢成功n”);printf(”要查詢的職工信息為:”);printf("nt編號 t姓名 t基本工資 t崗位工資 t各項扣款合計 t實發(fā)工資n”);printf(”ntststftft%ft%ftn”,STU.num,STU.name,STU.jbgz,STU。gwgz,STU.gxkkhj,STU。sfgz);rewind(fp);system(”pause");void search()
19、system("cls”);printf(”t*歡迎使用職工工資查詢系統(tǒng)*tn”);printf(”tt1.按職工號查詢nntt2.按職工姓名查詢nntt0.退出程序nn");printf("請選擇 ");int i;scanf(”d",i);while(i0|i3)printf(”輸入有誤,請從新輸入!n”);printf(”請選擇 ”);scanf("d",&i);switch(i) case 1:searchbyhao();break;case 2:searchbyname();break; case 0:ex
20、it(0);/*/void xiugai() /修改職工工資信息*/struct people *p_people=STU;struct people people_edit;/*記錄修改后的信息/FILE *fp;int total=0;int i;int locate; /*用于標(biāo)記有要修改的職工在文件中的位置*/int flag=0; /標(biāo)記職工信息中是否存在要修改信息的職工,0表示不存在,1表示存在/char name_edit8; /*要修改信息的職工的姓名*/system("cls”);if(fp=fopen(”e:file1”,”rb+”))=NULL) printf(
21、"error!n”);exit(0);while(fread(p_people,sizeof(struct people),1,fp)p_people+;total+;p_people=STU;printf("n請輸入要修改信息的職工的姓名: ”);scanf("%s”,name_edit);for(i=0;itotal;i+)if(strcmp(p_people>name,name_edit)=0)locate=i;flag=1;break;else p_people+;if(flag=0)printf(”n信息表中不存在該姓名的職工!n”);system
22、("pause”);if(flag=1)printf("n=");printf(”n請輸入職工號:",p_people->num);scanf(”%s",people_edit。num);printf("n請輸入職工的姓名:",p_people-name);scanf("%s”,people_);printf(”n請輸入職工的基本工資:",p_peoplejbgz);scanf(”f”,people_edit。jbgz);printf(”n請輸入職工的崗位工資:",p_p
23、eople-gwgz);scanf(”f",people_edit.gwgz);printf(”n請輸入職工的各項扣款合計:”,p_peoplegxkkhj);scanf(”%f”,&people_edit。gxkkhj);printf("n請輸入職工的實發(fā)工資:”,p_people>sfgz);scanf("f”,people_edit。sfgz);fseek(fp,locatesizeof(struct people),SEEK_SET);/將文件指針定位到文件中原信息的位置/fwrite(people_edit,sizeof(struct pe
24、ople),1,fp);fclose(fp);printf("/n成功修改該職工信息!n");rewind(fp);system("pause”);/*/void sortbysfgz() /職工工資排序*/ struct people STU100,t; FILE fp; int total=0; int i,j; system("cls”); if(fp=fopen(”e:file1”,”rb”))=NULL) printf("文件有錯誤不能打開!”); exit(0); while(fread(&STUtotal,sizeof(s
25、truct people),1,fp)!=0)total+; for(i=0;i<total;i+) for(j=total1;ji;j-) if(STUj.sfgzSTUj1。sfgz) t=STUj;STUj=STUj1;STUj-1=t;printf(”nnnt按實際工資排序的結(jié)果如下;n”);printf(”nt職工號t姓名t基本工資t崗位工資t各項扣款合計t實發(fā)工資nn");for(i=0;itotal;i+)printf("nt%st%stftftft%ft",STUi。num,STU,STUi.jbgz,STUi。gwgz,STUi
26、。gxkkhj,STUi。sfgz); system("pause”);void sortbynum() struct people STU100; struct people t; FILE *fp; int total=0; int i,j; system("cls”); if((fp=fopen(”e:file1",”rb"))=NULL) printf(”文件有錯誤不能打開!"); exit(0); while(fread(STUtotal,sizeof(struct people),1,fp)!=0)total+; for(i=0;i
27、total;i+) for(j=total-1;ji;j-) if(strcmp(STUj。num,STUj1。num)0) t=STUj;STUj=STUj-1;STUj1=t;printf(”nnnt按職工號排序的結(jié)果如下;n");printf("nt職工號t姓名t基本工資t崗位工資t各項扣款合計t實發(fā)工資nn”);for(i=0;itotal;i+)printf(”nt%st%st%ftftftft",STUi.num,STU,STUi。jbgz,STUi.gwgz,STUi。gxkkhj,STUi。sfgz); printf("ntp
28、ress any key to continue.”); system(”pause");void sort()system(”cls”);printf(”t*歡迎使用職工工資排序系統(tǒng)*tn”);printf("ntt1。按職工號排序nntt2.按職工實際工資排序nntt0.退出程序nn");printf("請選擇");int i;scanf(”%d”,&i);while(i<0i>2)printf(”輸入有誤,請從新輸入!n”);printf(”請選擇");scanf(”d",&i);switc
29、h(i) case 1:sortbysfgz();break;case 2:sortbynum();break;case 0:exit(0);/*/main() /*主函數(shù)/ int i; char ss='Y; while(ss=Y'|ss='y) system(”cls”); printf(”nnnnnnnttt 歡迎訪問職工工資管理系統(tǒng)n"); printf(" t*n"); printf(”ttt1-錄入職工信息n" ); printf(”ttt2-顯示職工信息n” ); printf("ttt3-追加職工信息n" ); printf(”ttt4-查詢職工信息n” ); printf(”ttt5-修改職工信息n" ); print
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)-福建省龍巖市2025年高中畢業(yè)班三月教學(xué)質(zhì)量檢測(龍巖一檢)試題和答案
- 閥門拆除施工方案
- 石方靜態(tài)爆破施工方案
- 《千米的認(rèn)識》(教學(xué)設(shè)計)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 2025年中考物理模擬試卷猜題卷1(含答案)
- 醫(yī)院科室安裝監(jiān)控合同范例
- 合作租房合同范例
- 質(zhì)量控制標(biāo)準(zhǔn)提升計劃
- 人事部如何構(gòu)建企業(yè)形象計劃
- 幼兒園作業(yè)與學(xué)習(xí)反饋計劃
- 2025年山東核電有限公司招聘筆試參考題庫含答案解析
- 2025年宜賓人才限公司招聘高頻重點提升(共500題)附帶答案詳解
- 施工安全情況日常巡查表(完整版)
- 2025年醫(yī)院科教工作計劃
- 《亞洲概況及東亞》課件
- 河北交投物流有限公司所屬公司招聘筆試沖刺題2025
- 第二節(jié) 物業(yè)管理服務(wù)機構(gòu)設(shè)置及運作流程
- 2025年上半年江西宜春市事業(yè)單位招聘工作人員651人重點基礎(chǔ)提升(共500題)附帶答案詳解
- 初三心理健康 教育課件
- UL1650標(biāo)準(zhǔn)中文版-2019便攜式電纜UL中文版標(biāo)準(zhǔn)
- 高血壓課件教學(xué)課件
評論
0/150
提交評論