版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#include <conio.h>#define TITLE "n 月份 工號 姓名 應(yīng)發(fā)工資 各種折扣 實發(fā)工資 n" #define DATA " %2d %4ld %-10s %6.1f %6.1f %6.1fn",p1->month,p1->num,p1->na me,p1->should_pay,p1->r
2、ebate,p1->actual_paytypedef struct paylong num;short month;char name20;float gw,jn,zw,zl,jt,yj;float should_pay;float fz,gj,sd,others;float rebate;float actual_pay;struct pay *next;PAY;FILE *fp;PAY *p1=NULL,*p2=NULL,*head=NULL;void menu();PAY *input();void output();void save(PAY *head);PAY *open(
3、);PAY *insert();void search();PAY *del();PAY *revise();/* 主程序模塊 */void main(void)short sel;domenu();scanf("%d",&sel);switch(sel)case 1:head=input(); /輸入模塊break;case 2: head=insert(); /插入模塊 break;case 3: head=revise(); /修改模塊 break;case 4:head=del(); /刪除模塊 break;case 5:search(); /查找模塊bre
4、ak;case 6:output(); /輸出模塊break;case 7: save(head); /保存模塊 break;case 0: break;while(sel!=0);/*菜單 */ void menu()printf("nnnnnnn"); printf("tttt * 主菜單選項 *nn"); printf("tttt1. 創(chuàng)建工資檔案 n"); printf("tttt2. 新增工資信息 n"); printf("tttt3. 修改工資信息 n"); printf("
5、;tttt4. 刪除工資信息 n"); printf("tttt5. 查找工資信息 n"); printf("tttt6. 分類信息列表 n"); printf("tttt7. 保 存 信 息 n"); printf("tttt0. 退出 n");printf("nnnnnnnn");/* 輸入模塊 */PAY *input()short n=1; p1=(PAY*)malloc(sizeof(PAY);if(p1=NULL)printf(" 內(nèi)存不足,無法創(chuàng)建鏈表! &qu
6、ot;);getch();printf("n 請輸入第 %d 位職工的信息(以工號為 0 結(jié)束):n",n); printf(" 工號: ");scanf("%d",&p1->num);if(p1->num=0)printf(" 按任意鍵返回! ");getch();free(p1);return 0;getchar();printf(" 姓名: ");gets(p1->name);printf(" 工資月份: ");scanf("%d&q
7、uot;,&p1->month);n");printf(" 崗位工資,技能工資,職務(wù)津貼,職齡津貼,交通補(bǔ)貼,業(yè)績津貼: scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公積金,水電費(fèi),其它扣款: n");scanf("%f,%f,%f,%f",&p1->fz,&p1
8、->gj,&p1->sd,&p1->others); p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj; p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p1->rebate;while(p1!=NULL)if(n=1)head=p1;elsep2->next=p1;n+;p2=p1;p1=(PAY*)ma
9、lloc(sizeof(PAY);if(p1=NULL)printf(" 內(nèi)存不足,無法創(chuàng)建鏈表! ");getch();printf(" 請輸入第 %d 位職工的信息(以工號為 0 結(jié)束):n",n);printf(" 工號: ");scanf("%d",&p1->num);getchar();if(p1->num=0)p1=NULL;break;printf(" 姓名: ");gets(p1->name);printf(" 工資月份: ");sc
10、anf("%d",&p1->month);n");printf(" 崗位工資,技能工資,職務(wù)津貼,職齡津貼,交通補(bǔ)貼,業(yè)績津貼: scanf("%f,%f,%f,%f,%f,%f",&p1->gw,&p1->jn,&p1->zw,&p1->zl,&p1->jt,&p1->yj); printf(" 房租扣款,公積金,水電費(fèi),其它扣款: n");scanf("%f,%f,%f,%f",&p1-
11、>fz,&p1->gj,&p1->sd,&p1->others); p1->should_pay=p1->gw+p1->jn+p1->zw+p1->zl+p1->jt+p1->yj;p1->rebate=p1->fz+p1->gj+p1->sd+p1->others;p1->actual_pay=p1->should_pay-p1->rebate;p2->next=NULL;/edit by Yan-Xingyu Class Network-021pr
12、intf(" 職工信息已輸入,請按任意鍵返回,并存盤 ");getch();return head;/* 輸出模塊 */void output()short sel,flag,month;float min,max;dodoprintf("nn 請選擇您的列表方式: n");printf("tt1. 全部清單 n");printf("tt2. 按月輸出 n");printf("tt3. 按工資段輸出 n");printf("tt0. 返回 n");scanf("%d
13、",&sel);while(sel!=1&&sel!=2&&sel!=3&&sel!=0);head=open();if(head=NULL)return;elseswitch(sel)case 1:printf("nttt * 全部清單 *n");printf(TITLE);p1=head;doprintf(DATA);p1=p1->next;while(p1!=NULL);break;case 2:flag=0;printf(" 輸入要查的月份: ");scanf("%
14、d",&month);printf("nttt* 第 %d 月工資清單 *n",month);printf(TITLE);p1=head;doif(p1->month=month)printf(DATA);p1=p1->next;flag=1;elsep1=p1->next;while(p1!=NULL);if(flag=0)printf(" 沒有該月清單 n");break;case 3:flag=0;printf(" 輸入最低工資: ");scanf("%f",&mi
15、n);printf(" 輸入最高工資: ");scanf("%f",&max);printf("ntt *%5.1f 到 %5.1f 工資的名單 *n",min,max);printf(TITLE);p1=head;doif(p1->actual_pay>min&&p1->actual_pay<max)printf(DATA);p1=p1->next;flag=1;elsep1=p1->next;while(p1!=NULL);if(flag=0)printf("
16、沒有該工資段的職工 n");break;case 0:break;while(sel!=0);/* 保存文件 */void save(PAY *head)short write;fp=fopen("pay.txt","w");if(fp=NULL)printf(" 創(chuàng)建文件失?。?");getch();return;p1=p2=head;while(p1!=NULL)write=fwrite(p1,sizeof(PAY),1,fp);if(!write)printf(" 無法寫入文件! ");getch(
17、);return;p1=p1->next;fclose(fp);printf(" 成功存盤! ");getch();/* 打開文件 */PAY *open()short n=1,read; fp=fopen("pay.txt","r"); if(fp=NULL) printf(" 無法打開檔案文件! "); getch();return NULL; if(p1=p2=(PAY*)malloc(sizeof(PAY)=NULL) printf(" 內(nèi)存不足! "); getch();retu
18、rn NULL; read=fread(p1,sizeof(PAY),1,fp); if(!read) printf(" 文件讀取出錯! 1"); getch();return NULL; if(p1->next=NULL) head=p1;else do if(n=1) head=p1;else p2->next=p1;n+; p2=p1;if(p1=(PAY*)malloc(sizeof(PAY)=NULL) printf(" 內(nèi)存不足! "); getch();return NULL; read=fread(p1,sizeof(PAY)
19、,1,fp); if(!read)printf(" 文件讀取出錯! 2");getch();return NULL;while(p1->next!=NULL);p2->next=p1;return head;fclose(fp);/* 插入模塊 */PAY *insert()PAY *p3=NULL;char sel;head=open();if(head=NULL)return NULL;elsedoprintf(" 請輸入要插入的職工信息: n");p3=(PAY*)malloc(sizeof(PAY);if(p3=NULL)printf
20、(" 內(nèi)存不足,無法創(chuàng)建鏈表! ");getch();printf(" 工號: ");scanf("%d",&p3->num);getchar();printf(" 姓名: ");gets(p3->name);printf(" 工資月份: ");scanf("%d",&p3->month);n");printf(" 崗位工資,技能工資,職務(wù)津貼,職齡津貼,交通補(bǔ)貼,業(yè)績津貼: scanf("%f,%f,%f,%f
21、,%f,%f",&p3->gw,&p3->jn,&p3->zw,&p3->zl,&p3->jt,&p3->yj); printf(" 房租扣款,公積金,水電費(fèi),其它扣款: n");scanf("%f,%f,%f,%f",&p3->fz,&p3->gj,&p3->sd,&p3->others);p3->should_pay=p3->gw+p3->jn+p3->zw+p3->zl+
22、p3->jt+p3->yj; p3->rebate=p3->fz+p3->gj+p3->sd+p3->others;p3->actual_pay=p3->should_pay-p3->rebate;p1=head;while(p1!=NULL) p2=p1; p1=p1->next;p2->next=p3; p3->next=NULL;printf(" 成功插入,是否繼續(xù)?是( Y) 否( N)n"); sel=getch();while(sel='Y'|sel='y
23、9;);printf("n 任意鍵返回,并存盤 n"); getch();return head;/* 查找模塊 */void search()short sel;long num;char name20,choose; head=open(); if(head=NULL)return;elsedodoprintf("n 選擇查找方式: n"); printf("tt1. 按工號查找 n"); printf("tt2. 按姓名查找 n"); scanf("%d",&sel);getcha
24、r(); while(sel!=1&&sel!=2); switch(sel) case 1:printf(" 輸入要查的工號: "); scanf("%ld",&num);break;case 2:printf(" 輸入要查的姓名: "); gets(name);break;p1=head;while(p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0) / 用 成 p1!=NULL 有問題?p
25、1=p1->next;if(p1->num=num)|strcmp(p1->name,name)=0)printf(" 您要查找的信息如下: n");printf(TITLE);printf(DATA);elseprintf(" 沒有該信息! n");printf(" 是否繼續(xù)?是( Y) 否( N)n");choose=getch();while(choose='Y'|choose='y');printf(" 任意鍵返回 ");getch();/* 刪除模塊 */
26、PAY *del()short sel;long num;char name20,choose;head=open();if(head=NULL)return NULL;elsedodoprintf("n 選擇刪除方式: n");printf("tt1. 按工號刪除 n");printf("tt2. 按姓名刪除 n");scanf("%d",&sel);getchar();while(sel!=1&&sel!=2);switch(sel)case 1:printf(" 輸入要刪除的
27、工號: ");scanf("%ld",&num);break;case 2:printf(" 輸入要刪除的姓名: "); gets(name);break;p1=head;if(p1->num=num)|strcmp(p1->name,name)=0)head=p1->next;printf(" 刪除信息成功! ");else while(p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!
28、=0) p2=p1;p1=p1->next; if(p1->num=num)|strcmp(p1->name,name)=0)p2->next=p1->next;free(p1);printf("n 刪除信息成功! n");elseprintf("n 沒有該信息! n");printf(" 是否繼續(xù)?是( Y) 否( N)n");choose=getch(); while(choose='Y'|choose='y'); printf(" 任意鍵返回 ,并存盤 &q
29、uot;); getch();return head;/* 修改模塊 */PAY *revise()short sel;long num;char name20,choose;head=open();if(head=NULL)return NULL;elsedodoprintf("n 查找要修改的對象: n");printf("tt1. 按工號查找 n");printf("tt2. 按姓名查找 n");scanf("%d",&sel);getchar();while(sel!=1&&sel!
30、=2);switch(sel)case 1:printf(" 輸入要查的工號: ");scanf("%ld",&num);break;case 2:printf(" 輸入要查的姓名: ");gets(name);break;p1=head;while(p1->next!=NULL)&&(p1->num!=num)&&(strcmp(p1->name,name)!=0) p1!=NULL 有問題?p1=p1->next;if(p1->num=num)|strcmp(p1->
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度海上運(yùn)輸貨物保險合同文檔全文詳覽3篇
- 二零二五年度快遞派送車輛使用與維修服務(wù)合同3篇
- 二零二五年度智慧社區(qū)房地產(chǎn)策劃與智慧家居合作合同3篇
- 2024版規(guī)范房建分包勞務(wù)合同范例3篇
- 二零二五年度火鍋店裝修工程與裝修效果評估合同
- 二零二五年度電子商務(wù)平臺簡單附加協(xié)議合同范本3篇
- 2024版住宅小區(qū)保潔協(xié)議3篇
- 體驗課程銷售工作總結(jié)
- 二零二五年度物業(yè)服務(wù)合同-關(guān)于某小區(qū)的物業(yè)管理和維護(hù)3篇
- 土地占用流轉(zhuǎn)合同(2篇)
- 精細(xì)陶瓷 斷裂韌性試驗方法 單邊V型切口梁法
- 2024年海峽出版發(fā)行集團(tuán)有限責(zé)任公司招聘筆試沖刺題(帶答案解析)
- 第三十六屆全國電力行業(yè)風(fēng)力發(fā)電運(yùn)行檢修職業(yè)技能競賽基礎(chǔ)理論題庫附有答案
- 人教版三年級上冊數(shù)學(xué)期末測試卷a4版可打印
- 2024年紀(jì)檢監(jiān)察綜合業(yè)務(wù)知識題庫含答案(研優(yōu)卷)
- 科室醫(yī)療質(zhì)量與安全管理小組工作制度
- 歡樂喜劇人小沈陽《四大才子招親大會》劇本投稿:程祅祆
- 初二生地會考試卷及答案-文檔
- 保險公估服務(wù)行業(yè)發(fā)展史與現(xiàn)狀分析
- 著作權(quán)案例分析
- 人教版四年級上冊豎式計算400題及答案
評論
0/150
提交評論