職工工資標準管理系統報告_第1頁
職工工資標準管理系統報告_第2頁
職工工資標準管理系統報告_第3頁
職工工資標準管理系統報告_第4頁
職工工資標準管理系統報告_第5頁
已閱讀5頁,還剩23頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

信息技術和工程學院課程設計報告課程名稱高級語言程序設計設計題目職職員資管理系統專業班級14級計本一班小組組員張亢元仝亞超王佩指導老師溫娟娟成績06月17日目錄TOC\o"1-2"\h\z\u1需求分析 11.1問題描述 11.2功效描述 12系統設計 22.1總體設計 22.2具體設計 33系統測試 53.1輸入功效測試 53.2顯示功效測試 63.3修改功效測試 73.4查找功效測試 83.5刪除功效測試 93.6統計功效測試 103.7排序功效測試 113.8打印功效測試 124總結 135調試分析 13參考文件 13附錄 141需求分析1.1問題描述設計一個職職員資管理系統,實現功效以下:(1)輸入統計:將每一個職員姓名、ID號、基礎工資、職務工資、崗位津貼、醫療保險、公積金數據作為一個結構體。(2)顯示統計:依據職員姓名或ID號顯示一個或多個職員各項工資。(3)修改統計:對任何一個結構體中組員根據要求進行修改,并顯示修改前后結構體中全部組員信息。(4)查找統計:查找滿足條件職員信息,要求顯示全部職員組員信息。(5)刪除統計:刪除滿足條件職員信息。(6)統計:a.計算各項工資總工資及平均工資。b.統計符合指定條件(如職職員資前三項之和在3000元以上、3000~元、~1000元以內)職員人數及占總職員人數百分比。c.按職員總工資進行排序,可從小到大,也可從大到小。d.按字符表格形式打印全部職職員資信息表及平均工資(包含各項總平均工資)。1.2功效描述職職員資管理:經過1-5能夠選擇對職員工資信息編輯:添加查找刪除等。職員工資輸出:經過6-8能夠將職員工資按不一樣次序輸出。2系統設計2.1總體設計structworker定義了一個結構體類型職員信息。intinput(structworkerwork[],inta)//輸入函數,輸入職員信息voidxianshi(structworkerwork[],inta)//顯示,按要求顯示需要顯示職員信息voidxiugai(structworkerwork[],inta)//修改函數,修改需要修改職員信息voidsearch(structworkerwork[],inta)//查找函數,查找符合條件職員,并輸出其信息voiddele(structworkerwork[],inta)//刪除函數,刪除滿足條件職員信息voidtongji(structworkerwork[],inta)//統計函數,統計職員信息voidpaixu(structworkerwork[],inta)//排序函數,根據要求將職員信息排序voiddayin(structworkerwork[],inta)//打印,將全部職員信息輸出2.2具體設計依據題目需要,定義職員信息結構體。職員信息結構體包含學生姓名、ID號、基礎工資、職務工資、崗位津貼、醫療保險、公積金。查詢職員信息功效:能夠經過ID號和姓名查詢。經過姓名查詢話是用strcmp函數比較姓名是否相等。編輯職員信息功效:首先判定是否有該職員信息,假如有話再進行編輯,不然話退出。刪除職員功效:經過ID號找到職員,進行刪除。系統主窗體系統主窗體系統主窗體輸入職員確定?NY輸入職員信息操作成功顯示信息經過姓名查詢存在?NY操作成功經過ID查詢存在?N操作成功Y修改信息輸入職員ID操作成功篩選信息輸入篩選信息操作成功刪除信息輸入刪除條件操作成功統計信息操作成功排序信息1、總工資從小到大2、總工資從小到大操作成功操作成功打印信息操作成功3系統測試3.1輸入功效測試輸入“1”顯示“系統已經有職員工資統計,再次輸入將覆蓋原統計,要繼續嗎?(請輸入'y'或'n'):”接著輸入“y”顯示輸入職員人數輸入職員信息以下:01張望1286794198109135203402李明118562813594114174003王小民895438986473129404張效章1350868210116150216205彭山74539884616810983.2顯示功效測試3.3修改功效測試3.4查找功效測試3.5刪除功效測試3.6統計功效測試3.7排序功效測試3.8打印功效測試4總結此次課程設計名稱是職員工資管理系統,因為我們組能力有限,加之近期課程任務比較緊迫,所以該系統還是有很多不完善地方。系統完全實現功效有輸入統計、顯示統計、修改統計、查找統計、刪除統計、統計等。盡管還是有很多不完善之處,總來說還是收獲很大,因為經過這次團體合作,我們組首先對c只是有了很深了解,就是程序分析和設計也有了很深體會。我們將會在以后學習和工作中發揚團體精神,而且會認真虛心向有經驗大家學習交流。期望我們以后能再接再厲,做出愈加優異id程序。5調試分析在此次課程設計實踐過程中出現了很多問題,這些問題對我來說一時間難以處理。在程序運行過程中出現問題以下:在信息輸入時,未能依據需求確定職員人數,造成以后輸出出現問題。處理方案:在設計子函數時利用了值傳輸來確定職員總人數在統計函數中不能正確輸出百分比值,輸出全是“0%”,原因是:忽略了整形變量和整形變量相除得到結果是整形結果。處理方案:將變量轉化為浮點型變量。修改職員信息時不能保留,原因:修改時保留地址不是原來變量地址,修改方案:將修改地址改回到原來地址。此程序仍存在問題:實施完每一個任務后,要按兩次回車鍵才能繼續循環。參考文件1《C語言課程設計案例精編》郭翠英

2《C程序設計教程》孫淑霞

代世雄著3《C程序設計語言》.北京:機械工業出版社.楊濤4《C語言程序設計教程[M]》.第3版.高等教育出版社,譚浩強,張基溫.附錄#include<stdio.h>#include<string.h>#defineN100structworker{ intID; charname[20]; floatbase;//base基礎工資 floatrate;//rate職務工資 floatsubsidy;//subsidy崗位津貼 floatmedicare;//medicare醫療保險 floatfund;//fund公積金 floattotal;//tootal總工資};intmain(){ intinput(structworkerwork[],inta);//輸入函數,輸入職員信息 voidxianshi(structworkerwork[],inta);//顯示,按要求顯示需要顯示職員信息 voidxiugai(structworkerwork[],inta);//修改函數,修改需要修改職員信息 voidsearch(structworkerwork[],inta);//查找函數,查找符合條件職員,并輸出其信息 intdele(structworkerwork[],inta);//刪除函數,刪除滿足條件職員信息 voidtongji(structworkerwork[],inta);//統計函數,統計職員信息 voidpaixu(structworkerwork[],inta);//排序函數,根據要求將職員信息排序 voiddayin(structworkerwork[],inta);//打印,將全部職員信息輸出 structworkerwork[N],*p=work; inta=N,select; /*printf("請輸入職員人數:"); scanf("%d",&a);*/ printf("您是首次登陸本系統,請先輸入職員信息:\n"); a=input(p,a); do {//打印菜單選項 printf("\n**************職職員資管理系統**************\n"); printf("\n1.輸入職員信息\n"); printf("\n2.經過姓名顯示職員信息\n"); printf("\n3.修改職員信息\n"); printf("\n4.查找信息\n"); printf("\n5.刪除信息\n"); printf("\n6.統計信息\n"); printf("\n7.按總工資排序\n"); printf("\n8.打印全部職員信息\n"); printf("\n0.退出系統\n"); printf("\n********************************************\n"); printf("請輸入您選擇操作:"); scanf("%d",&select); switch(select) { case1: printf("系統已經有職員工資統計,再次輸入將覆蓋原統計,要繼續嗎?(請輸入'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("要繼續操作嗎?(請輸入'y'或'n'):"); } getchar(); if((getchar()=='y')||(getchar()=='Y')) break; } while(1); printf("職職員資管理系統此次運行結束!\n"); return0;}//輸入函數,輸入職員信息intinput(structworkerwork[],inta){ inti; printf("請輸入職員人數:\n"); scanf("%d",&a); printf("輸入格式為:\nID號,姓名\n基礎工資,職務工資,崗位津貼,醫療保險,公積金\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號姓名基礎工資職務工資崗位津貼醫療保險公積金\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號姓名基礎工資職務工資崗位津貼醫療保險公積金\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; }}//修改函數,修改需要修改職員信息voidxiugai(structworkerwork[],inta){ inti,ID,t; printf("請輸入要修改職員ID:\n"); scanf("%d",&ID); printf("修改前職員信息:\n"); printf("ID號姓名基礎工資職務工資崗位津貼醫療保險公積金\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基礎工資,職務工資,崗位津貼,醫療保險,公積金\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號姓名基礎工資職務工資崗位津貼醫療保險公積金\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);}//查找函數,查找符合條件職員,并輸出其信息voidsearch(structworkerwork[],inta){ inti; floatn; printf("請輸入篩選條件總工資大于多少"); scanf("%f",&n); printf("ID號姓名基礎工資職務工資崗位津貼醫療保險公積金\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); }}//刪除函數,刪除滿足條件職員信息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號姓名基礎工資職務工資崗位津貼醫療保險公積金\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;}//統計函數,統計職員信息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);}//排序函數,根據要求將職員信息排序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號姓名基礎工資職務工資崗位津貼醫療保險公積金\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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論