c語言單鏈表實現(xiàn)職工工資管理_第1頁
c語言單鏈表實現(xiàn)職工工資管理_第2頁
c語言單鏈表實現(xiàn)職工工資管理_第3頁
c語言單鏈表實現(xiàn)職工工資管理_第4頁
c語言單鏈表實現(xiàn)職工工資管理_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精品文檔/* *職工工資管理小軟件*/#include#include#include#include/*職工變量定義*/typedef struct employee/* 數(shù)據(jù)域 */charsex10;/ 性別charage10;/ 年齡charpost10;/ 崗位charEmployeeID15;/ 工號charname10;/ 姓名intbasesalary;/ 基本工資intpostwage;/ 崗位工資floattotalwage;/ 總工資/* 指針域 */struct employee *next;LNode,*LinkList;/*全局變量定義*/int iCount=0;

2、int saveflag=0; /*是否需要存盤的標(biāo)志變量*/*函數(shù)聲明*/void MainMenu();/ 登陸函數(shù)int menu();/ 主菜單函數(shù)LinkList CreatLinkList();/ 職工信息創(chuàng)建函數(shù)void stringinput(char *t,int lens,char *notice);/ 字符長度判斷函數(shù)函數(shù)void ShowLinkList(pHead);/ 職工信息輸出函數(shù)void OutOneNode(LinkList PNode);/ 輸出一個節(jié)點的數(shù)據(jù)。1歡迎下載精品文檔LinkList FindWorker(LinkList pHead);/ 職

3、工信息查詢函數(shù)void update(LinkList pHead);/ 職工信息修改函數(shù)void sortList(LinkList pHead);/ 職工工資排序函數(shù)LinkList FindWorker(LinkList pHead);/ 按職工姓名查找LinkList Find_ByEmployeeID(LinkList pHead);/ 按職工工號查找LinkList LoadData(LinkList pHead);void UpdateInfo();/ 職工信息更新函數(shù)void SaveData(LinkList pHead);/ 職工信息保存函數(shù)/ 職工信息導(dǎo)入函數(shù)void a

4、uthor();/ 查詢作者信息函數(shù)void back();/ 返回上一界面函數(shù)/*系統(tǒng)主函數(shù)*/void main()int iChoice;for(;)system(cls);printf(nnnn);printf(歡迎進入職工工資管理系統(tǒng)nnn);printf(1進入管理系統(tǒng)nn);printf(2查看作者信息nn);printf(0退出nn);printf(nnnn);printf(請輸入您的選擇(0-2):n);scanf(%d,&iChoice);。2歡迎下載精品文檔while(iChoice2)system(cls);printf(nnnn);printf(歡迎進入職工工資管理系

5、統(tǒng)nnn);printf(1進入管理系統(tǒng)nn);printf(2查看作者信息nn);printf(0退 出nn);printf(nnnn);printf(您的輸入有誤!n);printf(請重新輸入您的選擇(0-2):n);scanf(%d,&iChoice);switch(iChoice)case 1:MainMenu();break;case 2:author();back();break;case 0:system(cls);printf(nnnnnn);printf(謝謝使用!nn);printf(t再見! nnnn);exit(0);fflush(stdin);getchar();s

6、ystem(cls);/*功能:登陸函數(shù),進行密碼驗證*/void MainMenu()char key10,password10=123;int iNum=1;LinkList pHead;/定義單鏈表結(jié)點指針。3歡迎下載精品文檔printf(請輸入密碼:t);scanf(%s,key);while(iNum2)if(strcmp(password,key)=0)continue;elseprintf(n輸入密碼錯誤3 次,系統(tǒng)將自動退出!nn);printf(歡迎下次使用!nn);exit(0);/*。5歡迎下載精品文檔功能 :主菜單函數(shù),用于主顯示菜單參數(shù): iChoice類型: int

7、說明:變量返回值 : iChoice*/int menu()int iChoice ;system(cls);printf(n您是合法用戶! );printf(nnn);printf(|*歡迎進入職工工資管理系統(tǒng)*|n);printf(|n);printf(|n);printf(|1職工信息創(chuàng)建|n);printf(|n);printf(|2職工信息瀏覽|n);printf(|n);printf(|3職工信息查詢|n);printf(|n);printf(|4職工信息添加|n);printf(|n);printf(|5職工信息修改|n);printf(|n);printf(|6職工信息保存|n

8、);printf(|n);printf(|7職工信息刪除|n);。6歡迎下載精品文檔printf(|n);printf(|8職工信息讀取|n);printf(|n);printf(|9職工工資排序|n);printf(|n);printf(|10職工工資統(tǒng)計|n);printf(|n);printf(|0退出系統(tǒng)|n);printf(|n);printf(|n);printf(|*|n);printf(nn);printf(請輸入你所選擇的選項(0-9) : );scanf(%d,&iChoice);while(iChoice12|iChoice(size_t)lens)printf(n輸入字

9、符過長!);/ 超過 lens只重新輸入while(strlen(n)(size_t)lens);strcpy(t,n);/ 將輸入的字符串拷貝到字符串t 中/*功能:職工信息創(chuàng)建*/LinkList CreatLinkList()/ 創(chuàng)建一個鏈表,包含n 個節(jié)點LinkList pHead;LinkList pNew,pTail;int i,iNum=0;pHead=(LinkList)malloc(sizeof(LNode);/ 為頭節(jié)點分配內(nèi)存空間if(pHead=NULL)printf(分配空間失??!);exit(1);elsepHead-next=NULL;/ 鏈表初始化system

10、(cls);printf(nnnn);printf(歡迎進入職工信息創(chuàng)建模塊nnnnn);printf(請輸入要添加職工的個數(shù):n );scanf(%d,&iNum);if(iNum0)/* 利用 for循環(huán)一次實現(xiàn)各節(jié)點的創(chuàng)建和數(shù)據(jù)的輸入*/for(i=0;iname,10,n請輸入職工姓名:tt);if(strcmp(pNew-name,0)=0)break;stringinput(pNew-post,10,n請輸入職工崗位:tt);stringinput(pNew-EmployeeID,15,n請輸入職工工號:tt);stringinput(pNew-sex,10,n請輸入職工性別:tt

11、);stringinput(pNew-age,10,n請輸入職工年齡:tt);printf(n請輸入職工基本工資:t);scanf(%d,&pNew-basesalary);printf(n請輸入職工崗位工資:t);scanf(%d,&pNew-postwage);if(pHead-next=NULL)pHead-next=pNew;pTail=pNew;iCount+;elsepTail-next=pNew;/ 將 pNew鏈到鏈表中pTail=pNew;iCount+;pTail-next=NULL;/ 將鏈表的最后一個節(jié)點的指針域置空printf(nn);printf(當(dāng)前共輸入 %d個

12、職工信息 nn,iCount);printf(nn);printf(職工信息創(chuàng)建完成!nn);return pHead;/*功能:輸出一個節(jié)點的數(shù)據(jù)*/void OutOneNode(LinkList pNew)。9歡迎下載精品文檔printf(n);printf( |姓名 |職工號 |性別 |年齡 |任職崗位 |基本工資 |崗位工資 |n);printf(n);printf(|%9s|%10s|%7s| %5s| %10s| %10d| %10d|n,pNew-name,pNew-EmployeeID,pNew-sex,pNew-age,pNew-post,pNew-basesalary,p

13、New-postwage);printf(n);printf(nn);/*功能:職工信息輸出*/void ShowLinkList(LinkList pHead)int iNum=0;LinkList pNew;pNew=pHead;system(cls);printf(nnnnn);printf(歡迎進入職工信息瀏覽模塊nnnn);if(pNew = NULL)printf(n提示 : 沒有記錄可以顯示!nn);return;printf(n);printf( |姓名 |職工號 |性別 |年齡 |任職崗位 |基本工資 |崗位工資 |n);printf(n);。10歡迎下載精品文檔for(pN

14、ew=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(nn職工信息輸出完成!n);printf(n當(dāng)前共有 %d個職工!nnn,iNum);/*功能:查找職工信息*/LinkList FindWorker(LinkList pHead)LinkList perNod

15、e;char WorkNumber15;if(pHead-next = NULL)printf(當(dāng)前沒有職工信息.);return NULL;printf( 請輸入工作者的工號或姓名: 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該職工信息如下:nn);OutOneNode(perNode);ret

16、urn perNode;elsefor(perNode = pHead-next ; perNode != NULL; perNode = perNode-next)if(strcmp(WorkNumber,perNode-name) = 0)break;。11歡迎下載精品文檔if (perNode != NULL)printf(n該職工信息如下:nn);OutOneNode(perNode);return perNode;printf( 沒有找到您要找的工人! nn); return NULL;/*功能:修改職工信息/*/void update(LinkList pHead)LNode *p

17、trWork = FindWorker(pHead);char type = 0;if (ptrWork != NULL)printf(請你輸入你要修改的屬性:n);printf(1:姓名 n);printf(2:職工號 n);printf(3:性別 n);printf(4:年齡 n);printf(5:任職崗位 n);printf(6:基本工資 n);printf(7:崗位工資 nn);doprintf(t請選擇: n);scanf(%d,&type); while (type 7 | type name,10,nt請輸入職工姓名:tt);break;case 2:stringinput(p

18、trWork-EmployeeID,15,nt請輸入職工工號:tt);break;case 3:stringinput(ptrWork-sex,10,nt請輸入職工性別:tt);break;。12歡迎下載精品文檔case 4:stringinput(ptrWork-age,10,nt請輸入職工年齡:tt);break;case 5:stringinput(ptrWork-post,10,nt請輸入職工崗位:tt);break;case 6:printf(nt請輸入職工基本工資:t);scanf(%d,&ptrWork-basesalary);break;case 7:printf(nt請輸入職

19、工崗位工資:t);scanf(%d,&ptrWork-postwage);break;/*/*對鏈表進行排序*/*/void sortList(LinkList pHead)LinkList seconde = pHead-next; /指向第一個結(jié)點/*pHead-next = NULL;LNode *perNode = pHead;/指向前面一個結(jié)點LNode *node = perNode-next; /指向正在比較的這個節(jié)點LNode * curNode; /是帶插入的結(jié)點pHead-next = NULL;while (seconde != NULL)curNode = second

20、e;seconde = seconde-next; /從鏈表里面讀取一個結(jié)點curNode-next = NULL;if (pHead-next = NULL)pHead-next = curNode;elsefor (perNode = pHead,node = perNode-next;node != NULL; node =。13歡迎下載精品文檔node-next,perNode = perNode-next)if(node-postwage+node-basesalary)(curNode-postwage+curNode-basesalary)perNode-next = curNo

21、de;curNode-next = node;/perNode = curNode;break;if( node = NULL)perNode-next = curNode;/*功能:把職工信息保存到文件*/void SaveData(LinkList pHead)FILE *fp;LinkList pNew;char filename20;system(cls);printf(nnnnn);printf(歡迎進入職工信息保存模塊nnnn);printf(請輸入文件的地址及文件名:n);scanf(%s,filename);if(fp=fopen(filename,w)=NULL)printf

22、(無法打開該文件!n);return;fprintf(fp, 目前共有 %d名學(xué)生信息: nn,iCount); /fprintf(fp,n);。14歡迎下載精品文檔fprintf(fp, |姓名 |職工號 |性別 |年齡 |任職崗位 |基本工資 |崗位工資 |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,p

23、New-basesalary,pNew-postwage);/fprintf(fp,n);printf(nn職工信息保存成功!nn);fclose(fp);/*功能:從文件讀取職工信息*LinkList LoadData(LinkList pHead)FILE *fp;LinkList pNew,pTail;char filename20;system(cls);printf(nnnnn);printf(歡迎進入職工信息導(dǎo)入模塊nnnn);printf(請輸入需加載的文件地址及文件名:n);scanf(%s,filename);if(fp=fopen(filename,r)=NULL)printf(無法打開該文件n);exit(0) ;fscanf(fp,目前共有 %d名學(xué)生信息:,&iCount);*/for(i=0;i7;i+)/ fscanf(fp,%s,&secondlinei);/*pHead=NULL;for(i=0;iname,pNew-EmployeeID,pNew-sex,pNew-age,pNew-post,&pNew-basesalary,&pNew-postwage);pNew-next=NULL;if(pHead=NULL)pHead=pNew;

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論