當前位置:編程學習大全網 - 編程語言 - 用c語言寫壹個職工工資管理程序

用c語言寫壹個職工工資管理程序

思路:

使用結構體保存職工信息,設計單獨的函數,實現錄入,按職工工資排序,分解單雙數職工,讀取和寫入文件,顯示數據等功能。

1 - 從鍵盤錄入信息到數組結構並保存至文件,錄入+寫入文件。

2 - 從磁盤文件中讀出這些數據,依次打印出來, 讀取文件+顯示數據。

3 -?對職工數據按工資高低排序,將排好序的各記錄存放在文件worker2.dat中, 排序+寫入文件。

4 -?將職工號為單數和偶數的職工信息分別存放另兩個磁盤文件worker3.dat和worker4.dat中,?分解單雙數職工+寫入文件。

5 -?並從這兩個文件中讀出職工信息在顯示器上顯示出來, 讀取文件+顯示數據。

代碼片段如下:

int?main(int?argc,?char*?argv[])

{

worker?arr[WORKER_NUMBER];

int?cnt?=?WORKER_NUMBER;

worker?odd[WORKER_NUMBER];

int?oddnum?=?0;

worker?even[WORKER_NUMBER];

int?evennum?=?0;

clear_worker_array(arr,?cnt);

clear_worker_array(odd,?cnt);

clear_worker_array(even,?cnt);

//1.錄入並保存至worker1.dat

entering_data(arr,?cnt);

if(?save_file(arr,?cnt,?filename[0])?==?0?)

{

printf("原始記錄已成功保存至文件?-?%s\n",?filename[0]);

}

//2.讀取worker1.dat並顯示

clear_worker_array(arr,?cnt);

if(?load_file(arr,?&cnt,?filename[0])?==?0?)

{

printf("載入文件?-?%s\n",?filename[0]);

}

show_data(arr,?cnt);

//3.排序並保存至worker2.dat

sort_by_salary(arr,?cnt);

if(?save_file(arr,?cnt,?filename[1])?==0?)

{

printf("按工資排序後的記錄已成功保存至文件?-?%s\n",?filename[1]);

}

//4.保存單數和雙數職工號信息至worker3.dat和worker4.dat

filter_workers(arr,?cnt,?odd,?&oddnum,?even,?&evennum);

if(?save_file(odd,?oddnum,?filename[2])?==?0?)

{

printf("職工號為單數的記錄已成功保存至文件?-?%s\n",?filename[2]);

}

if(?save_file(even,?evennum,?filename[3])?==?0?)

{

printf("職工號為雙數的記錄已成功保存至文件?-?%s\n",?filename[3]);

}

//5.讀取worker3.dat和worker4.dat並顯示

clear_worker_array(odd,?oddnum);

oddnum?=?0;

if(?load_file(odd,?&oddnum,?filename[2])?==?0?)

{

printf("載入文件?-?%s\n",?filename[2]);

}

show_data(odd,?oddnum);

clear_worker_array(even,?oddnum);

evennum?=?0;

if(?load_file(even,?&evennum,?filename[3])?==?0?)

{

printf("載入文件?-?%s\n",?filename[3]);

}

show_data(even,?evennum);

return?0;

}

為了測試方便,此處的宏只指定了5個職工的信息,若要達到妳要求的,直接改成10即可。運行結果如下:

完整代碼請參考附件 -?worker_manager.c

:by never715

  • 上一篇:數控機床nc 電源怎麽接
  • 下一篇:39歲程序員開啟養老生活,年輕人住進養老院是種什麽體驗?
  • copyright 2024編程學習大全網