计算机科学-第6周 文件 题目及参考解答

简介: 《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597题目:文件salary1.txt是某单位100名员工的工号、基本工资和绩效工资。编程序(1)从文件中读取数据,求出总工资,并在屏幕上显示信息;(2)将完整的工资单保存到文件salary2.txt中。(3)将总工资超过5000元的员工的工号保存到文件ric

《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597


题目:文件salary1.txt是某单位100名员工的工号、基本工资和绩效工资。编程序
(1)从文件中读取数据,求出总工资,并在屏幕上显示信息;
(2)将完整的工资单保存到文件salary2.txt中。
(3)将总工资超过5000元的员工的工号保存到文件rich.txt中。
(4)在屏幕上显示工资最高的员工的工资信息
提示:
(1)定义一个结构体数组保存从文件中读入的信息
(2)采用渐增式策略,逐步完成上述4项功能。


参考解答:

#include<stdio.h>
struct Stuff
{
    int num;
    float pay;
    float PRP;    //Performance Related Pay;
    float total;
};

int main()
{
    FILE *fp;
    fp = fopen("salary1.txt", "r");
    if (fp == NULL)
    {
        printf("cannot open file salary.txt.\n");
        return 0;
    }
    struct Stuff s[100];
    int i;
    //(1)从文件中读取数据,求总工资,并在屏幕上显示;
    for (i=0; i<100; i++)
    {
        fscanf(fp,"%d %f %f",&s[i].num,&s[i].pay,&s[i].PRP);
        s[i].total=s[i].pay+s[i].PRP;
        printf("%d %.2f %.2f %.2f\n", s[i].num,s[i].pay,s[i].PRP,s[i].total);
    }
    fclose(fp);
    //(2)将完整的工资单保存到文件salary2.txt中。
    FILE *fp2 = fopen("salary2.txt", "w");
    if (fp == NULL)
    {
        printf("cannot open file salary2.txt.\n");
        return 0;
    }
    for (i=0; i<100; i++)
    {
        fprintf(fp2,"%d %.2f %.2f %.2f\n", s[i].num,s[i].pay,s[i].PRP,s[i].total);
    }
    fclose(fp2);
//(3)将总工资超过5000元的员工的工号保存到文件rich.txt中。
    FILE *fp3 = fopen("rich.txt", "w");
    if (fp == NULL)
    {
        printf("cannot open file rich.txt.\n");
        return 0;
    }
    for (i=0; i<100; i++)
    {
        if(s[i].total>=5000)
            fprintf(fp3,"%d\n", s[i].num);
    }
    fclose(fp3);
//(4)在屏幕上显示工资最高的员工的工资信息
    float max = s[0].total;
    int h=0;
    for (i=1; i<100; i++)
    {
        if(max<s[i].total)
        {
            max=s[i].total;
            h=i;
        }
    }
    printf("收入最高的是: ");
    printf("%d %.2f %.2f %.2f\n", s[h].num,s[h].pay,s[h].PRP,s[h].total);
    return 0;
}





目录
相关文章
|
Windows
计算机科学-第13周 函数 题目及参考解答
《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1、阅读程序:阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解函数的用法(1) #include &lt;stdio.h&gt; void fun(int x, int y) { x=x*10; y=y+x; pri
1150 0
|
C语言
计算机科学-第4周 结构 题目及参考解答
《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597   例1: 用一个结构表示点,输入点的横纵坐标,输出该点到原点的距离 #include &lt;stdio.h&gt; #include &lt;math.h&gt; struct Point { float x; float y; };
1193 0
|
人工智能 存储
计算机科学-第7周 指针及应用 题目及参考解答
《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/137055971、阅读程序:阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解指针的用法(1)#include&lt;stdio.h&gt; int main() { int a, b, temp; int *p1, *p2; p
1141 0
|
机器学习/深度学习 算法 BI
法133计算机科学课第15周实践题目及参考解答
课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 编程练习1:输出1000以内的所有素数。 参考解答: #include&lt;stdio.h&gt; #include&lt;math.h&gt; int main() { int m,i,k,prime; for(m=2;m&lt;=200;m++
1029 0
|
算法
法133计算机科学课第12周实践题目及参考解答
课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597Problem A:2447: 求N组数的最大公约数Description计算一组数的最大公约数Input第一行是数据的组数N,从第二行是N组由两个整数(a和b)构成的输入,a和b之间用空格隔开,每组输入单独占一行Output每组的两个整数(a和b)的最大 公约数,每个结
1063 0
|
人工智能 C++ C语言
法133计算机科学课第9、10周实践题目及参考解答
课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 2398:分段函数求值【双分支】 Description 编程序,计算下面函数的值并输出: y = x - 1 (当x&gt;=1), y = -x + 1 (当x&lt;1) Input 一个整型数x Output 按公式计算出的y Sample Input 2
1173 0
|
C++
法133计算机科学课第13周实践题目及参考解答
课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597   【课后练习1】  完成下面“歌手大奖赛计分程序”的设计(至少一项要求):  1、在歌手大奖赛中,有10位评委为参赛的选手打分,分数为0~10分(运行时由人控制)。选手最后得分为去掉一个最高分和一个最低分后的平均值。请编写一个程序实现计分。  2、做一个更通用的计分
1243 0
|
C++ C语言 iOS开发
法133计算机科学课第11周实践题目及参考解答
课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 Problem  A 求n以内奇数的平方和【简单循环】   Description 输入n,求n以内奇数的平方和 Input 整型数n Output n以内奇数的平方和(例如,输入7,输出为12+32+52+72=84) Sample Input 7 Sample 
1139 0
|
机器学习/深度学习
计算机科学-第15周 递归函数 题目及参考解答
《计算机科学》课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1、阅读下面关于递归函数的程序,在草稿纸上画出函数调用“递推-回归”的过程,得出运行结果,并和实际运行结果进行对照(1) #include &lt;stdio.h&gt; int fact(int n); int main(){ long x=0
1107 0
基础编程题目集 - 7-37 整数分解为若干项之和(20 分)
基础编程题目集 - 7-37 整数分解为若干项之和(20 分)
163 0

热门文章

最新文章

相关实验场景

更多