




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
信息技術(shù)和工程學(xué)院課程設(shè)計報告課程名稱高級語言程序設(shè)計設(shè)計題目職職員資管理系統(tǒng)專業(yè)班級14級計本一班小組組員張亢元仝亞超王佩指導(dǎo)老師溫娟娟成績06月17日目錄TOC\o"1-2"\h\z\u1需求分析 11.1問題描述 11.2功效描述 12系統(tǒng)設(shè)計 22.1總體設(shè)計 22.2具體設(shè)計 33系統(tǒng)測試 53.1輸入功效測試 53.2顯示功效測試 63.3修改功效測試 73.4查找功效測試 83.5刪除功效測試 93.6統(tǒng)計功效測試 103.7排序功效測試 113.8打印功效測試 124總結(jié) 135調(diào)試分析 13參考文件 13附錄 141需求分析1.1問題描述設(shè)計一個職職員資管理系統(tǒng),實現(xiàn)功效以下:(1)輸入統(tǒng)計:將每一個職員姓名、ID號、基礎(chǔ)工資、職務(wù)工資、崗位津貼、醫(yī)療保險、公積金數(shù)據(jù)作為一個結(jié)構(gòu)體。(2)顯示統(tǒng)計:依據(jù)職員姓名或ID號顯示一個或多個職員各項工資。(3)修改統(tǒng)計:對任何一個結(jié)構(gòu)體中組員根據(jù)要求進行修改,并顯示修改前后結(jié)構(gòu)體中全部組員信息。(4)查找統(tǒng)計:查找滿足條件職員信息,要求顯示全部職員組員信息。(5)刪除統(tǒng)計:刪除滿足條件職員信息。(6)統(tǒng)計:a.計算各項工資總工資及平均工資。b.統(tǒng)計符合指定條件(如職職員資前三項之和在3000元以上、3000~元、~1000元以內(nèi))職員人數(shù)及占總職員人數(shù)百分比。c.按職員總工資進行排序,可從小到大,也可從大到小。d.按字符表格形式打印全部職職員資信息表及平均工資(包含各項總平均工資)。1.2功效描述職職員資管理:經(jīng)過1-5能夠選擇對職員工資信息編輯:添加查找刪除等。職員工資輸出:經(jīng)過6-8能夠?qū)⒙殕T工資按不一樣次序輸出。2系統(tǒng)設(shè)計2.1總體設(shè)計structworker定義了一個結(jié)構(gòu)體類型職員信息。intinput(structworkerwork[],inta)//輸入函數(shù),輸入職員信息voidxianshi(structworkerwork[],inta)//顯示,按要求顯示需要顯示職員信息voidxiugai(structworkerwork[],inta)//修改函數(shù),修改需要修改職員信息voidsearch(structworkerwork[],inta)//查找函數(shù),查找符合條件職員,并輸出其信息voiddele(structworkerwork[],inta)//刪除函數(shù),刪除滿足條件職員信息voidtongji(structworkerwork[],inta)//統(tǒng)計函數(shù),統(tǒng)計職員信息voidpaixu(structworkerwork[],inta)//排序函數(shù),根據(jù)要求將職員信息排序voiddayin(structworkerwork[],inta)//打印,將全部職員信息輸出2.2具體設(shè)計依據(jù)題目需要,定義職員信息結(jié)構(gòu)體。職員信息結(jié)構(gòu)體包含學(xué)生姓名、ID號、基礎(chǔ)工資、職務(wù)工資、崗位津貼、醫(yī)療保險、公積金。查詢職員信息功效:能夠經(jīng)過ID號和姓名查詢。經(jīng)過姓名查詢話是用strcmp函數(shù)比較姓名是否相等。編輯職員信息功效:首先判定是否有該職員信息,假如有話再進行編輯,不然話退出。刪除職員功效:經(jīng)過ID號找到職員,進行刪除。系統(tǒng)主窗體系統(tǒng)主窗體系統(tǒng)主窗體輸入職員確定?NY輸入職員信息操作成功顯示信息經(jīng)過姓名查詢存在?NY操作成功經(jīng)過ID查詢存在?N操作成功Y修改信息輸入職員ID操作成功篩選信息輸入篩選信息操作成功刪除信息輸入刪除條件操作成功統(tǒng)計信息操作成功排序信息1、總工資從小到大2、總工資從小到大操作成功操作成功打印信息操作成功3系統(tǒng)測試3.1輸入功效測試輸入“1”顯示“系統(tǒng)已經(jīng)有職員工資統(tǒng)計,再次輸入將覆蓋原統(tǒng)計,要繼續(xù)嗎?(請輸入'y'或'n'):”接著輸入“y”顯示輸入職員人數(shù)輸入職員信息以下:01張望1286794198109135203402李明118562813594114174003王小民895438986473129404張效章1350868210116150216205彭山74539884616810983.2顯示功效測試3.3修改功效測試3.4查找功效測試3.5刪除功效測試3.6統(tǒng)計功效測試3.7排序功效測試3.8打印功效測試4總結(jié)此次課程設(shè)計名稱是職員工資管理系統(tǒng),因為我們組能力有限,加之近期課程任務(wù)比較緊迫,所以該系統(tǒng)還是有很多不完善地方。系統(tǒng)完全實現(xiàn)功效有輸入統(tǒng)計、顯示統(tǒng)計、修改統(tǒng)計、查找統(tǒng)計、刪除統(tǒng)計、統(tǒng)計等。盡管還是有很多不完善之處,總來說還是收獲很大,因為經(jīng)過這次團體合作,我們組首先對c只是有了很深了解,就是程序分析和設(shè)計也有了很深體會。我們將會在以后學(xué)習(xí)和工作中發(fā)揚團體精神,而且會認(rèn)真虛心向有經(jīng)驗大家學(xué)習(xí)交流。期望我們以后能再接再厲,做出愈加優(yōu)異id程序。5調(diào)試分析在此次課程設(shè)計實踐過程中出現(xiàn)了很多問題,這些問題對我來說一時間難以處理。在程序運行過程中出現(xiàn)問題以下:在信息輸入時,未能依據(jù)需求確定職員人數(shù),造成以后輸出出現(xiàn)問題。處理方案:在設(shè)計子函數(shù)時利用了值傳輸來確定職員總?cè)藬?shù)在統(tǒng)計函數(shù)中不能正確輸出百分比值,輸出全是“0%”,原因是:忽略了整形變量和整形變量相除得到結(jié)果是整形結(jié)果。處理方案:將變量轉(zhuǎn)化為浮點型變量。修改職員信息時不能保留,原因:修改時保留地址不是原來變量地址,修改方案:將修改地址改回到原來地址。此程序仍存在問題:實施完每一個任務(wù)后,要按兩次回車鍵才能繼續(xù)循環(huán)。參考文件1《C語言課程設(shè)計案例精編》郭翠英
2《C程序設(shè)計教程》孫淑霞
代世雄著3《C程序設(shè)計語言》.北京:機械工業(yè)出版社.楊濤4《C語言程序設(shè)計教程[M]》.第3版.高等教育出版社,譚浩強,張基溫.附錄#include<stdio.h>#include<string.h>#defineN100structworker{ intID; charname[20]; floatbase;//base基礎(chǔ)工資 floatrate;//rate職務(wù)工資 floatsubsidy;//subsidy崗位津貼 floatmedicare;//medicare醫(yī)療保險 floatfund;//fund公積金 floattotal;//tootal總工資};intmain(){ intinput(structworkerwork[],inta);//輸入函數(shù),輸入職員信息 voidxianshi(structworkerwork[],inta);//顯示,按要求顯示需要顯示職員信息 voidxiugai(structworkerwork[],inta);//修改函數(shù),修改需要修改職員信息 voidsearch(structworkerwork[],inta);//查找函數(shù),查找符合條件職員,并輸出其信息 intdele(structworkerwork[],inta);//刪除函數(shù),刪除滿足條件職員信息 voidtongji(structworkerwork[],inta);//統(tǒng)計函數(shù),統(tǒng)計職員信息 voidpaixu(structworkerwork[],inta);//排序函數(shù),根據(jù)要求將職員信息排序 voiddayin(structworkerwork[],inta);//打印,將全部職員信息輸出 structworkerwork[N],*p=work; inta=N,select; /*printf("請輸入職員人數(shù):"); scanf("%d",&a);*/ printf("您是首次登陸本系統(tǒng),請先輸入職員信息:\n"); a=input(p,a); do {//打印菜單選項 printf("\n**************職職員資管理系統(tǒng)**************\n"); printf("\n1.輸入職員信息\n"); printf("\n2.經(jīng)過姓名顯示職員信息\n"); printf("\n3.修改職員信息\n"); printf("\n4.查找信息\n"); printf("\n5.刪除信息\n"); printf("\n6.統(tǒng)計信息\n"); printf("\n7.按總工資排序\n"); printf("\n8.打印全部職員信息\n"); printf("\n0.退出系統(tǒng)\n"); printf("\n********************************************\n"); printf("請輸入您選擇操作:"); scanf("%d",&select); switch(select) { case1: printf("系統(tǒng)已經(jīng)有職員工資統(tǒng)計,再次輸入將覆蓋原統(tǒng)計,要繼續(xù)嗎?(請輸入'y'或'n'):"); getchar(); if((getchar()=='y')||(getchar()=='Y')) a=input(p,a); break; case2: xianshi(p,a); break; case3: xiugai(p,a); break; case4: search(p,a); break; case5: a=dele(p,a); break; case6: tongji(p,a); break; case7: paixu(p,a); break; case8: dayin(p,a); break; case0: printf("要繼續(xù)操作嗎?(請輸入'y'或'n'):"); } getchar(); if((getchar()=='y')||(getchar()=='Y')) break; } while(1); printf("職職員資管理系統(tǒng)此次運行結(jié)束!\n"); return0;}//輸入函數(shù),輸入職員信息intinput(structworkerwork[],inta){ inti; printf("請輸入職員人數(shù):\n"); scanf("%d",&a); printf("輸入格式為:\nID號,姓名\n基礎(chǔ)工資,職務(wù)工資,崗位津貼,醫(yī)療保險,公積金\n"); for(i=0;i<a;i++) { scanf("%d,%s",&work[i].ID,work[i].name); scanf("%f,%f,%f,%f,%f",&work[i].base,&work[i].rate,&work[i].subsidy,&work[i].medicare,&work[i].fund); } returna;}//顯示,按要求顯示需要顯示職員信息voidxianshi(structworkerwork[],inta){ inti,select,t; char*next,r[20]; printf("\n1.按姓名查找\n"); printf("\n2.按ID查找\n"); scanf("%d",&select); switch(select) { case1: printf("請輸入要顯示姓名:\n"); scanf("%s",r); next=r; printf("ID號姓名基礎(chǔ)工資職務(wù)工資崗位津貼醫(yī)療保險公積金\n"); for(i=0;i<a;i++) if(strcmp(next,work[i].name)==0) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); break; case2: printf("請輸入要查詢ID:\n"); scanf("%d",&t); printf("ID號姓名基礎(chǔ)工資職務(wù)工資崗位津貼醫(yī)療保險公積金\n"); for(i=0;i<a;i++) if(t==work[i].ID) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); break; }}//修改函數(shù),修改需要修改職員信息voidxiugai(structworkerwork[],inta){ inti,ID,t; printf("請輸入要修改職員ID:\n"); scanf("%d",&ID); printf("修改前職員信息:\n"); printf("ID號姓名基礎(chǔ)工資職務(wù)工資崗位津貼醫(yī)療保險公積金\n"); for(i=0;i<a;i++) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); for(i=0;i<a;i++) if(ID==work[i].ID) t=i; printf("請輸入該職員信息:"); printf("輸入格式為:\nID號,姓名\n基礎(chǔ)工資,職務(wù)工資,崗位津貼,醫(yī)療保險,公積金\n"); scanf("%d,%s",&work[t].ID,work[t].name); scanf("%f,%f,%f,%f,%f",&work[t].base,&work[t].rate,&work[t].subsidy,&work[t].medicare,&work[t].fund); printf("修改后職員信息:\n"); printf("ID號姓名基礎(chǔ)工資職務(wù)工資崗位津貼醫(yī)療保險公積金\n"); for(i=0;i<a;i++) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund);}//查找函數(shù),查找符合條件職員,并輸出其信息voidsearch(structworkerwork[],inta){ inti; floatn; printf("請輸入篩選條件總工資大于多少"); scanf("%f",&n); printf("ID號姓名基礎(chǔ)工資職務(wù)工資崗位津貼醫(yī)療保險公積金\n"); for(i=0;i<a;i++) { work[i].total=work[i].base+work[i].rate+work[i].subsidy+work[i].medicare+work[i].fund; if(work[i].total>n) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); }}//刪除函數(shù),刪除滿足條件職員信息intdele(structworkerwork[],inta){ inti,n; printf("請輸入篩選條件總工資小于多少"); scanf("%d",&n); for(i=0;i<a;i++) { work[i].total=work[i].base+work[i].rate+work[i].subsidy+work[i].medicare+work[i].fund; if(work[i].total<n) { printf("ID號姓名基礎(chǔ)工資職務(wù)工資崗位津貼醫(yī)療保險公積金\n"); printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work[i].fund); printf("您確定要刪除該職員信息嗎?(請輸入'y'或'n'):"); getchar(); if((getchar()=='y')||(getchar()=='Y')) { work[i]=work[i+1]; i--; a--; } else break; } } returna;}//統(tǒng)計函數(shù),統(tǒng)計職員信息voidtongji(structworkerwork[],inta){ inti,b=0,c=0,d=0; floatadd[5]; for(i=0;i<a;i++) { add[i]=work[i].base+work[i].rate+work[i].subsidy; if(add[i]>3000) b++; if(add[i]<3000&&add[i]>) c++; if(add[i]<&&add[i]>1000) d++; } b=b*100/a; c=c*100/a; d=d*100/a; printf("前三項工資之和在3000元以上占%d%%\n",b); printf("前三項工資之和在3000~占%d%%\n",c); printf("前三項工資之和在~1000占%d%%\n",d);}//排序函數(shù),根據(jù)要求將職員信息排序voidpaixu(structworkerwork[],inta){ inti,j,select; structworkertemp; printf("\n1.按從小到大排\n"); printf("\n2.按從大到小排\n"); scanf("%d",&select); switch(select) { case1: /*for(i=0;i<a;i++) work[i].total=work[i].base+work[i].rate+work[i].subsidy+work[i].medicare+work[i].fund;*/ for(j=0;j<a;j++) for(i=0;i<a-j;i++) if(work[i].total>work[i+1].total) { temp=work[i]; work[i]=work[i+1]; work[i+1]=temp; } printf("ID號姓名基礎(chǔ)工資職務(wù)工資崗位津貼醫(yī)療保險公積金\n"); for(i=0;i<a;i++) printf("%4d%s%4f%4f%4f%4f%4f\n",work[i].ID,work[i].name,work[i].base,work[i].rate,work[i].subsidy,work[i].medicare,work
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房地產(chǎn)項目增資入股投資協(xié)議
- 二零二五年度辦公室文員聘用與企業(yè)文化融合協(xié)議
- 二零二五年度新能源汽車碰撞責(zé)任免除合同
- 2025年度現(xiàn)代農(nóng)業(yè)病蟲害防治藥害賠償協(xié)議書
- 二零二五年度勞動局標(biāo)準(zhǔn)合同:養(yǎng)老服務(wù)業(yè)員工就業(yè)保障協(xié)議范本
- 2025年度賬戶變更補充服務(wù)協(xié)議
- 高性能計算中心設(shè)備采購及安裝合同
- 企業(yè)辦公室裝飾設(shè)計與施工服務(wù)合同
- 教育培訓(xùn)行業(yè)線上課程開發(fā)與運營計劃書
- 電氣設(shè)備安裝工程施工合同新
- DB5101-T 71-2020 成都市電動汽車充電設(shè)施 安全管理規(guī)范
- 2025年七臺河職業(yè)學(xué)院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 監(jiān)理人員安全培訓(xùn)考試試卷(答案)
- 2025年北京電子科技職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 【MOOC】數(shù)據(jù)庫系統(tǒng)(上):模型與語言-哈爾濱工業(yè)大學(xué) 中國大學(xué)慕課MOOC答案
- 高教版2023年中職教科書《語文》(基礎(chǔ)模塊)下冊教案全冊
- HCCDP 云遷移認(rèn)證理論題庫
- 譯林英語五年級下冊單詞表(孩子自己默寫不用提)
- DLT 1055-2021 火力發(fā)電廠汽輪機技術(shù)監(jiān)督導(dǎo)則
- 杭州房建工程監(jiān)理大綱范本
- 現(xiàn)代交換原理與技術(shù)課件:第5章 分組交換技術(shù)
評論
0/150
提交評論