1樓:匿名使用者
我有乙個自己寫的工資管理系統,和你要求的很相似,你只要自己把一些功能刪除和一些字修改一下!(編譯環境 vc6.0)
#include
#include
/*******************定義結構體***********************/
typedef struct
pay;
file *fp;
pay *p1=null,*p2=null,*p3=null,*p4=null,*p5=null,*head=null;
/*******************宣告函式************************/
void zhuti(); //主題顯示
pay *chushihua(); //初始化
void baocun(pay *head); //儲存檔案
pay *open(); //讀取檔案
pay *jiaru(); //加入記錄
pay *xianshi(); //顯示記錄
pay *gonghaopaixu(); //工號排序
pay *xingmingpaixu(); //姓名排序
pay *shanchu(); //刪除記錄
pay *xingmingshanchu(); //姓名刪除
pay *gonghaoshanchu(); //工號刪除
pay *xiugai(); //修改記錄
pay *xingmingxiugai(); //姓名修改
pay *gonghaoxiugai(); //工號修改
pay *zxgai(pay *p1); //執行修改
void chaxun(); //查詢模組
//////////////////////// 主 函 數 /////////////////////
main()
system("cls");
switch(i)
//退出系統
if(j==0) break; //初始化失敗退出
default: break;}}
while(i!=0);
void zhuti()
pay *chushihua()
}if(head!=0) printf("\n\t\t\t\t 初始化成功!");
if(head==0) printf("\n\t\t\t\t 初始化失敗!\n");
sleep(2000);return head;
}/********************儲存模組***********************/
void baocun(pay *head)
if(head==0);head=&a;}
p1=head;
while(p1!=null)
p1=p1->next;
}fclose(fp);
printf("\t\t\t\t 資訊儲存成功!\n");
sleep(1000);
pay *open()
if((p1=p2=(pay*)malloc(sizeof (pay)))==null)
read=fread(p1,sizeof(pay),1,fp);
if(!read)
if(p1->next==null)head=p1;
else
read=fread(p1,sizeof(pay),1,fp);
if(!read)
}while(p1->next!=null);
p2->next=p1;
}return head;
fclose(fp);
pay *jiaru()
if(head->next==0)
zhuti();
printf("\t\t\t\t第%d位職工資訊\n\n\t\t\t請輸入職工號(輸入0退出!):\n\t\t\t \t\t",n++);
scanf("%d",&p1->gh);
if(p1->gh==0)
getchar();
printf("\t\t\t\t姓名:\n\t\t\t\t\t");
gets(&p1->name);
printf("\t\t\t\t所屬部門:\n\t\t\t\t\t");
gets(&p1->bm);
printf("\t\t\t基本工資 獎勵工資 補貼金額 扣款金額:\n\t\t\t\t");
scanf("%f %f %f %f",&p1->jb,&p1->jl,&p1->bt,&p1->kk);
printf("\n\t\t\t\t加入? 1.是 0.否
if(!i)return head;
p1->next=null;head->next=p1;
baocun(head);
}p3=head;
while(p3->next!=0)p3=p3->next;
while(1)
zhuti();
printf("\t\t\t\t第%d位職工資訊\n\n\t\t\t請輸入職工號(輸入0退出!):\n\t\t\t\t\t",n++);
scanf("%d",&p1->gh);
if(p1->gh==0)
getchar();
printf("\t\t\t\t姓名:\n\t\t\t\t\t");
gets(&p1->name);
printf("\t\t\t\t所屬部門:\n\t\t\t\t\t");
gets(&p1->bm);
printf("\t\t\t基本工資 獎勵工資 補貼金額 扣款金額:\n\t\t\t\t");
scanf("%f %f %f %f",&p1->jb,&p1->jl,&p1->bt,&p1->kk);
printf("\n\t\t\t\t加入? 1.是 0.否
if(i!=1)jiaru();
p1->next=0;p3->next=p1;p3=p1;
baocun(head);}}
pay *xianshi()
printf("\t\t\t\t所有工資記錄\n");
printf(" 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");
while(p1->next!=0)
if(n==1)printf("\n\n\t\t\t\t 0.返回主選單\n\t\t\t\t\t");
if(n>1)printf("\n\n\t\t\t1.按職工號排序 2.按姓名排序 0.返回主選單\n\t\t\t\t\t");
if(!n) printf("\n\n\t\t\t\t 無記錄!\n\n\t\t\t\t 0.返回主選單\n\t\t\t\t\t");
scanf("%d",&i);
if(i==1)head=gonghaopaixu();if(i==2)head=xingmingpaixu();
if(head!=0&&n>1)
}return head;
pay *gonghaopaixu()
if(p3->next==0)break;
}p1=head;
while(p1->next!=0)
printf("\n\n\t\t\t1.按姓名排序 0.返回主選單\n\t\t\t\t\t");
scanf("%d",&j);
if(j==1)head=xingmingpaixu();
return head;
pay *xingmingpaixu()
if(p3->next==0)break;
}p1=head;
while(p1->next!=0)
printf("\n\n\t\t\t1.按工號排序 0.返回主選單\n\t\t\t\t\t");
scanf("%d",&j);
if(j==1)head=gonghaopaixu();
return head;
pay *shanchu()
return head;
pay *xingmingshanchu()
getchar();
printf("\t\t\t\t請輸入姓名:\n\t\t\t\t\t");
gets(a);
printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");
while(1)
if(!n)
else
while(1)
printf("\t\t\t\t刪除?1.是 0.否
if(j==1)
}printf("\n\t\t\t1.按姓名刪除 2.按職工號刪除\n");
printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");
scanf("%d",&i);
if(i==1)head=xingmingshanchu();
if(i==2)head=gonghaoshanchu();
return head;
pay *gonghaoshanchu()
printf("\t\t\t\t請輸入職工號:\n\t\t\t\t\t");
scanf("%d",&a);
printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");
while(1)
if(!n)
else
while(1)
printf("\t\t\t\t刪除?1.是 0.否
if(j==1)
}printf("\n\t\t\t1.按姓名刪除 2.按職工號刪除\n");
printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");
scanf("%d",&i);
if(i==1)head=gonghaoshanchu();
if(i==2)head=xingmingshanchu();
return head;
pay *xiugai()
return head;
pay *xingmingxiugai()
getchar();
printf("\t\t\t\t請輸入姓名:\n\t\t\t\t\t");
gets(a);
printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");
while(1)
if(!n)
else
while(1)
printf("\t\t\t\t修改?1.是 0.否
if(j==1)
}printf("\n\t\t\t1.按姓名修改 2.按職工號修改\n");
printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");
scanf("%d",&i);
if(i==1)head=xingmingxiugai();
if(i==2)head=gonghaoxiugai();
return head;
pay *gonghaoxiugai()
printf("\t\t\t\t請輸入職工號:\n\t\t\t\t\t");
scanf("%d",&a);
printf("\n n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");
while(1)
if(!n)
else
while(1)
printf("\t\t\t\t修改?1.是 0.否
if(j==1)
}printf("\n\t\t\t1.按職工號修改 2.按姓名修改\n");
printf("\t\t\t\t0.返回主選單\n\t\t\t\t\t");
scanf("%d",&i);
if(i==1)head=gonghaoxiugai();
if(i==2)head=xingmingxiugai();
return head;
pay *zxgai(pay *p1)
void chaxun()
printf("\n\n\n\t\t\t\t *工資查詢*\n\n\n");
printf("\t\t\t\t 1.基 本工 資\n");
printf("\t\t\t\t 2.獎 勵工 資\n");
printf("\t\t\t\t 3.補 貼金 額\n");
printf("\t\t\t\t 4.扣 款金 額\n");
printf("\t\t\t\t 0.返回主選單\n\n\n\n");
printf("\t\t\t\t 選擇:");
scanf("%d",&i);
if(i==1||i==2||i==3||i==4)
printf("\n 姓 名 職工號 所 屬 部 門 基本工資 獎勵工資 補貼金額 扣款金額\n");
while(1)
if(p1->next==0)break;
}if(!n)printf("\n\n\n\t\t\t\t 無記錄!\n\n\n");
printf("\n\t\t\t 1.繼續查詢 0.返回主選單\n\t\t\t\t\t");
scanf("%d",&i);
if(i==1)chaxun();}}
用C語言編寫“背單詞程式”,用C語言編寫如下程式?
董俊錕 include include include struct word 定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯 int point 0 統計分數的 int count1 0 測試的次數 void tianjia struct word str 100 int ...
用C 語言編寫程式,遞迴函式,用c 編寫程式用遞迴法計算一個整數的所有數字之和
1 在數學上,關於遞迴函式的定義如下 對於某一函式f x 其定義域是集合a,那麼若對於a集合中的某一個值x0,其函式值f x0 由f f x0 決定,那麼就稱f x 為遞迴函式。在程式語言中,把直接或間接地呼叫自身的函式稱為遞迴函式。函式的構建通常需要一個函式或者一個過程來完成。2 遞迴函式 是建立...
用C語言編寫2023年曆(急求,用C語言編寫2023年曆(急求!!!)
mfc 和 delphi嗎?你知道這樣沒有意義又很麻煩嗎 沒價值 自己動手修改乙個函式就好了 include include define days 366 struct calendar void createcal struct calendar year 建立2008年日曆 int findw...