




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第頁(yè)職工工資管理小軟件#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>職工變量定義typedefstructemployee /*數(shù)據(jù)域*/ charsex[10]; //性別 charage[10]; //年齡 charpost[10]; //崗位 charEmployeeID[15]; //工號(hào) charname[10]; //姓名 intbasesalary; //基本工資 intpostwage; //崗位工資 floattotalwage; //總工資 /*指針域*/ structemployee *next;}LNode,*LinkList;全局變量定義intiCount=0;intsaveflag=0;/*是否需要存盤(pán)的標(biāo)志變量*/函數(shù)聲明voidMainMenu(); //登陸函數(shù)intmenu(); //主菜單函數(shù)LinkListCreatLinkList(); //職工信息創(chuàng)建函數(shù)voidstringinput(char*t,intlens,char*notice); //字符長(zhǎng)度判斷函數(shù)函數(shù)voidShowLinkList(pHead); //職工信息輸出函數(shù)voidOutOneNode(LinkListPNode); //輸出一個(gè)節(jié)點(diǎn)的數(shù)據(jù)LinkListFindWorker(LinkListpHead); //職工信息查詢(xún)函數(shù)voidupdate(LinkListpHead); //職工信息修改函數(shù)voidsortList(LinkListpHead); //職工工資排序函數(shù)LinkListFindWorker(LinkListpHead); //按職工姓名查找LinkListFind_ByEmployeeID(LinkListpHead); //按職工工號(hào)查找LinkListLoadData(LinkListpHead);voidUpdateInfo(); //職工信息更新函數(shù)voidSaveData(LinkListpHead); //職工信息保存函數(shù) //職工信息導(dǎo)入函數(shù)voidauthor(); //查詢(xún)作者信息函數(shù)voidback(); //返回上一界面函數(shù)系統(tǒng)主函數(shù)voidmain() intiChoice; for(;;) system("cls"); printf("\n\n\n\n"); printf("歡迎進(jìn)入職工工資管理系統(tǒng)\n\n\n"); printf("1進(jìn)入管理系統(tǒng)\n\n"); printf("2查看作者信息\n\n"); printf("0退出\n\n"); printf("\n\n\n\n"); printf("請(qǐng)輸入您的選擇(0-2):\n"); scanf("%d",&iChoice); while(iChoice<0||iChoice>2) system("cls"); printf("\n\n\n\n"); printf("歡迎進(jìn)入職工工資管理系統(tǒng)\n\n\n"); printf("1進(jìn)入管理系統(tǒng)\n\n"); printf("2查看作者信息\n\n"); printf("0退出\n\n"); printf("\n\n\n\n"); printf("您的輸入有誤!\n"); printf("請(qǐng)重新輸入您的選擇(0-2):\n"); scanf("%d",&iChoice); switch(iChoice) case1: MainMenu();break; case2: author();back();break; case0: system("cls"); printf(" \n\n\n\n\n\n"); printf("謝謝使用!\n\n"); printf("\t再見(jiàn)!\n\n\n\n"); exit(0); fflush(stdin); getchar(); system("cls");功能:登陸函數(shù),進(jìn)行密碼驗(yàn)證voidMainMenu() charkey[10],password[10]="123"; intiNum=1; LinkListpHead; //定義單鏈表結(jié)點(diǎn)指針 printf("請(qǐng)輸入密碼:\t"); scanf("%s",key); while(iNum<=3) if(strcmp(password,key)==0) while(1) intiChoice; iChoice=menu(); system("cls"); switch(iChoice) case1: pHead=CreatLinkList();back();break; //創(chuàng)建職工信息 case2: ShowLinkList(pHead);back();break; //顯示職工信息 case3: printf("\n\n\n\n"); printf("歡迎進(jìn)入職工信息查詢(xún)模塊\n\n\n\n\n"); FindWorker(pHead);back();break; //查詢(xún)職工信息 case4: update(pHead);back();break; //職工信息添加 case5: printf("\n\n\n\n"); printf("歡迎進(jìn)入職工信息修改模塊\n\n\n\n\n"); update(pHead);back();break; //職工信息修改 case6: SaveData(pHead);back();break; //職工信息保存 case7: sortList(pHead);back();break; //職工信息 case8: //save(pHead);break; //職工信息 case9: author();back();break; case10: //copy();break; //職工信息 case11: //pHead=load(pHead);break; //職工信息 case0: system("cls"); printf("\n\n\n\n"); printf("謝謝使用!\n\n"); printf("\t再見(jiàn)!\n\n\n\n"); //save(); exit(0); fflush(stdin); getchar(); system("cls"); else iNum++; printf("\n您是非法用戶(hù)!請(qǐng)輸入密碼:\t"); scanf("%s",key); if(iNum>2) if(strcmp(password,key)==0) continue; else printf("\n輸入密碼錯(cuò)誤3次,系統(tǒng)將自動(dòng)退出!\n\n"); printf(" 歡迎下次使用!\n\n"); exit(0);功能:主菜單函數(shù),用于主顯示菜單參數(shù):iChoice類(lèi)型:int說(shuō)明:變量返回值:iChoiceintmenu() intiChoice; system("cls"); printf("\n您是合法用戶(hù)!"); printf("\n\n\n"); printf("|*****************歡迎進(jìn)入職工工資管理系統(tǒng)************************|\n"); printf("||\n"); printf("||\n"); printf("|1職工信息創(chuàng)建|\n"); printf("||\n"); printf("|2職工信息瀏覽|\n"); printf("||\n"); printf("|3職工信息查詢(xún)|\n");printf("||\n"); printf("|4職工信息添加|\n");printf("||\n");printf("|5職工信息修改|\n");printf("||\n"); printf("|6職工信息保存|\n");printf("||\n");printf("|7職工信息刪除|\n");printf("||\n");printf("|8職工信息讀取|\n");printf("||\n");printf("|9職工工資排序|\n"); printf("||\n");printf("|10職工工資統(tǒng)計(jì)|\n");printf("||\n");printf("|0退出系統(tǒng)|\n");printf("||\n");printf("||\n");printf("|*****************************************************************|\n"); printf("\n\n"); printf("請(qǐng)輸入你所選擇的選項(xiàng)(0-9):"); scanf("%d",&iChoice); while(iChoice>12||iChoice<0) printf("您的輸入有誤!\n"); printf("請(qǐng)重新輸入你所選擇的選項(xiàng)(0-9):"); scanf("%d",&iChoice); returniChoice;功能:輸入字符長(zhǎng)度判斷函數(shù),判斷輸入字符長(zhǎng)度是否超過(guò)原定長(zhǎng)度voidstringinput(char*t,intlens,char*notice) charn[50]; do printf(notice); //顯示提示信息 scanf("%s",n); //輸出字符串 if(strlen(n)>(size_t)lens) printf("\n輸入字符過(guò)長(zhǎng)!"); //超過(guò)lens只重新輸入 }while(strlen(n)>(size_t)lens); strcpy(t,n); //將輸入的字符串拷貝到字符串t中功能:職工信息創(chuàng)建LinkListCreatLinkList() //創(chuàng)建一個(gè)鏈表,包含n個(gè)節(jié)點(diǎn) LinkListpHead; LinkListpNew,pTail; inti,iNum=0; pHead=(LinkList)malloc(sizeof(LNode)); //為頭節(jié)點(diǎn)分配內(nèi)存空間 if(pHead==NULL) printf("分配空間失??!"); exit(1); else pHead->next=NULL; //鏈表初始化 system("cls"); printf("\n\n\n\n"); printf("歡迎進(jìn)入職工信息創(chuàng)建模塊\n\n\n\n\n"); printf("請(qǐng)輸入要添加職工的個(gè)數(shù):\n"); scanf("%d",&iNum); if(iNum>0) /*利用for循環(huán)一次實(shí)現(xiàn)各節(jié)點(diǎn)的創(chuàng)建和數(shù)據(jù)的輸入*/ for(i=0;i<iNum;i++) pNew=(LinkList)malloc(sizeof(LNode)); //為后繼節(jié)點(diǎn)分配內(nèi)存空間 if(pNew==NULL) printf("分配空間失敗!"); exit(1); else printf(" \n\n"); printf("請(qǐng)輸入第%d個(gè)職工信息: \n\n",i+1); printf("提示:輸入職工姓名為0則終止創(chuàng)建!\n\n"); stringinput(pNew->name,10,"\n請(qǐng)輸入職工姓名:\t\t"); if(strcmp(pNew->name,"0")==0) break; stringinput(pNew->post,10,"\n請(qǐng)輸入職工崗位:\t\t"); stringinput(pNew->EmployeeID,15,"\n請(qǐng)輸入職工工號(hào):\t\t"); stringinput(pNew->sex,10,"\n請(qǐng)輸入職工性別:\t\t"); stringinput(pNew->age,10,"\n請(qǐng)輸入職工年齡:\t\t"); printf("\n請(qǐng)輸入職工基本工資:\t"); scanf("%d",&pNew->basesalary); printf("\n請(qǐng)輸入職工崗位工資:\t"); scanf("%d",&pNew->postwage); if(pHead->next==NULL) pHead->next=pNew; pTail=pNew; iCount++; else pTail->next=pNew; //將pNew鏈到鏈表中 pTail=pNew; iCount++; pTail->next=NULL; //將鏈表的最后一個(gè)節(jié)點(diǎn)的指針域置空 printf("\n\n"); printf("當(dāng)前共輸入%d個(gè)職工信息\n\n",iCount); printf("\n\n"); printf("職工信息創(chuàng)建完成!\n\n"); returnpHead;功能:輸出一個(gè)節(jié)點(diǎn)的數(shù)據(jù)voidOutOneNode(LinkListpNew) printf("\n"); printf("|姓名|職工號(hào)|性別|年齡|任職崗位|基本工資|崗位工資|\n"); printf("\n"); printf("|%9s|%10s|%7s|%5s|%10s|%10d|%10d|\n",pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->postwage); printf("\n"); printf(" \n\n");功能:職工信息輸出voidShowLinkList(LinkListpHead)intiNum=0; LinkListpNew; pNew=pHead; system("cls"); printf("\n\n\n\n\n");printf("歡迎進(jìn)入職工信息瀏覽模塊\n\n\n\n"); if(pNew==NULL) printf("\n 提示:沒(méi)有記錄可以顯示!\n\n"); return; printf("\n"); printf("|姓名|職工號(hào)|性別|年齡|任職崗位|基本工資|崗位工資|\n"); printf("\n"); for(pNew=pHead->next;pNew!=NULL;pNew=pNew->next) printf("|%9s|%10s|%7s|%5s|%10s|%10d|%10d|\n",pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->postwage); printf("\n"); iNum++; printf("\n\n 職工信息輸出完成!\n"); printf("\n 當(dāng)前共有%d個(gè)職工!\n\n\n",iNum);功能:查找職工信息LinkListFindWorker(LinkListpHead) LinkListperNode; charWorkNumber[15]; if(pHead->next==NULL) printf("當(dāng)前沒(méi)有職工信息..."); returnNULL; printf(" 請(qǐng)輸入工作者的工號(hào)或姓名: \n"); scanf("%s",WorkNumber); for(perNode=pHead->next;perNode!=NULL;perNode=perNode->next) if(strcmp(WorkNumber,perNode->EmployeeID)==0) break; if(perNode!=NULL) printf("\n 該職工信息如下: \n\n"); OutOneNode(perNode); returnperNode; else for(perNode=pHead->next;perNode!=NULL;perNode=perNode->next) if(strcmp(WorkNumber,perNode->name)==0) break; if(perNode!=NULL) printf("\n 該職工信息如下: \n\n"); OutOneNode(perNode); returnperNode; printf(" 沒(méi)有找到您要找的工人!\n\n"); returnNULL;功能:修改職工信息voidupdate(LinkListpHead) LNode*ptrWork=FindWorker(pHead); chartype=0; if(ptrWork!=NULL) printf(" 請(qǐng)你輸入你要修改的屬性:\n"); printf(" 1:姓名\n"); printf(" 2:職工號(hào)\n"); printf(" 3:性別\n"); printf(" 4:年齡\n"); printf(" 5:任職崗位\n"); printf(" 6:基本工資\n"); printf(" 7:崗位工資\n\n"); do printf("\t請(qǐng)選擇:\n"); scanf("%d",&type); }while(type>7||type<0); switch(type) case1: stringinput(ptrWork->name,10,"\n\t請(qǐng)輸入職工姓名:\t\t"); break; case2: stringinput(ptrWork->EmployeeID,15,"\n\t請(qǐng)輸入職工工號(hào):\t\t"); break; case3: stringinput(ptrWork->sex,10,"\n\t請(qǐng)輸入職工性別:\t\t"); break; case4: stringinput(ptrWork->age,10,"\n\t請(qǐng)輸入職工年齡:\t\t"); break; case5: stringinput(ptrWork->post,10,"\n\t請(qǐng)輸入職工崗位:\t\t"); break; case6: printf("\n\t請(qǐng)輸入職工基本工資:\t"); scanf("%d",&ptrWork->basesalary); break; case7: printf("\n\t請(qǐng)輸入職工崗位工資:\t"); scanf("%d",&ptrWork->postwage); break;/*對(duì)鏈表進(jìn)行排序*/voidsortList(LinkListpHead) LinkListseconde=pHead->next; //指向第一個(gè)結(jié)點(diǎn) //*pHead->next=NULL; LNode*perNode=pHead;//指向前面一個(gè)結(jié)點(diǎn) LNode*node=perNode->next;//指向正在比較的這個(gè)節(jié)點(diǎn) LNode*curNode;//是帶插入的結(jié)點(diǎn) pHead->next=NULL; while(seconde!=NULL) curNode=seconde; seconde=seconde->next;//從鏈表里面讀取一個(gè)結(jié)點(diǎn) curNode->next=NULL; if(pHead->next==NULL) pHead->next=curNode; else for(perNode=pHead,node=perNode->next;node!=NULL;node=node->next,perNode=perNode->next) if((node->postwage+node->basesalary)>(curNode->postwage+curNode->basesalary)) perNode->next=curNode; curNode->next=node; //perNode=curNode; break; if(node==NULL) perNode->next=curNode;功能:把職工信息保存到文件voidSaveData(LinkListpHead) FILE*fp; LinkListpNew; char[20]; system("cls"); printf("\n\n\n\n\n");printf("歡迎進(jìn)入職工信息保存模塊\n\n\n\n"); printf("請(qǐng)輸入文件的地址及文件名:\n"); scanf("%s",); if((fp=fopen(,"w"))==NULL) printf("無(wú)法打開(kāi)該文件!\n"); return; fprintf(fp,"目前共有%d名學(xué)生信息:\n\n",iCount); //fprintf(fp,"\n"); fprintf(fp,"|姓名|職工號(hào)|性別|年齡|任職崗位|基本工資|崗位工資|\n"); //fprintf(fp,"\n"); for(pNew=pHead->next;pNew!=NULL;pNew=pNew->next) fprintf(fp,"|%9s|%10s|%7s|%5s|%10s|%10d|%10d|\n",pNew->name,pNew->EmployeeID,pNew->sex,pNew->age,pNew->post,pNew->basesalary,pNew->postwage); //fprintf(fp,"\n"); printf("\n\n職工信息保存成功!\n\n"); fclose(fp);功能:從文件讀取職工信息LinkListLoadData(LinkListpHead) FILE*fp; LinkListpNew,pTail; char[20]; system("cls"); printf("\n\n\n\n\n");printf("
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025重慶市建筑安全員-B證考試題庫(kù)及答案
- 單位安全培訓(xùn)合同范本
- 寫(xiě)字樓出租三方合同范本
- 北京私人司機(jī)合同范本
- 傳統(tǒng)文化在小學(xué)數(shù)學(xué)教學(xué)中的應(yīng)用
- 農(nóng)場(chǎng)蔬菜大棚承包合同范本
- 化學(xué)教學(xué)中“資料卡片”的應(yīng)用
- 臨時(shí)施工押金合同范本
- 探究式教學(xué)在小學(xué)語(yǔ)文教學(xué)中的運(yùn)用
- SI2302-N溝道MOS管中文數(shù)據(jù)資料
- 2024年無(wú)人駕駛環(huán)衛(wèi)行業(yè)研究報(bào)告-通渠有道
- (中職)中職生創(chuàng)新創(chuàng)業(yè)能力提升教課件完整版
- 中班健康課件《我不挑食》
- 人教版(2024新版)七年級(jí)上冊(cè)英語(yǔ)各單元重點(diǎn)語(yǔ)法知識(shí)點(diǎn)講義
- 生豬屠宰獸醫(yī)衛(wèi)生人員考試題庫(kù)答案(414道)
- 《完善中國(guó)特色社會(huì)主義法治體系》課件
- 2025版 高考試題分析-數(shù)學(xué)-部分4
- 湘教版三年級(jí)美術(shù)下冊(cè)教案全冊(cè)
- 重癥監(jiān)護(hù)-ICU的設(shè)置、管理與常用監(jiān)測(cè)技術(shù)
- 2024版高一上冊(cè)語(yǔ)文模擬試卷
- 法律顧問(wèn)服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
評(píng)論
0/150
提交評(píng)論