用c语言写一个职工工资管理程序

用c语言写一个职工工资管理程序将10名职工的数据(职工号、职工名、性别、年龄、工资)从键盘输入,然后送到磁盘文件worker1.dat中保存起来。从磁盘文件中读出这些数据... 用c语言写一个职工工资管理程序将10名职工的数据(职工号、职工名、性别、年龄、工资)从键盘输入,然后送到磁
盘文件worker1.dat中保存起来。
从磁盘文件中读出这些数据,依次打印出来。
对职工数据按工资高低排序,将排好序的各记录存放在文件worker2.dat中。
将职工号为单数和偶数的职工信息分别存放另两个磁盘文件worker3.dat和worker4.dat中,并从这两个文件中读出职工信息在显示器上显示出来。
展开
 我来答
never715
2017-03-07 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:463万
展开全部

思路:

使用结构体保存职工信息,设计单独的函数,实现录入,按职工工资排序,分解单双数职工,读取和写入文件,显示数据等功能。

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

回忆在上辈子
2017-03-07 · TA获得超过1148个赞
知道大有可为答主
回答量:1211
采纳率:0%
帮助的人:899万
展开全部
可以使用一个结构体数组来做
结构体中存储各个职工的信息
然后对该结构体数组进行操作
保存到文件即将结构体数组保存到文件
显示时从文件读取数据到数组中
然后再遍历数组输出即可

如果代码不想自己写的话
我可以有偿代劳
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
痴情娃变了心
2017-03-07
知道答主
回答量:31
采纳率:0%
帮助的人:4.8万
展开全部
c语音。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式