zoukankan      html  css  js  c++  java
  • C++第九章作业(mooc)

    问题一

    题目内容:

    定义如下形式的point 类,其对象表示平面上的一个点(x,y),设计一个友元函数dis()求出两个对象(平面点)间的距离。并编制主函数,通过类对象验证相关函数的正确性。

    class point {

    double x,y;

    public:

    point (double x0=0, double y0=0) {x=x0; y=y0;}

    void display();

    };

    运用两点间的距离公式,开根号函数为sqrt()。

    输入格式:

    四个实数,前两个实数是一个点的坐标,后两个实数是另一个点的坐标。坐标中前一个数是横坐标,后一个数是纵坐标。

    输出格式:

    输出三行数据,第一行是第一个点坐标,第二行是第二个点坐标,坐标输出形式为(x,y),第三行是一个实数,代表两个点之间的距离。

    输入样例:

    1.2 -3.5 -1.5 6

    输出样例:

    (1.2,-3.5)

    (-1.5,6)

    9.87623

    #include<iostream>
    #include<cmath>
    using namespace std;
    class point
    {
        
    public:
        double x, y;
        point(double x0 = 0, double y0 = 0) { x = x0; y = y0; }
        void display()
        {
            cout << '(' << x << ',' << y << ')' << endl;
        }
        friend double dis();
    };
    double dis(point& p1, point& p2)
    {
        return sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
    }
    int main()
    {
        double x1, y1, x2, y2;
        cin >> x1 >> y1 >> x2 >> y2;
        point p1(x1, y1);
        point p2(x2, y2);
        p1.display();
        p2.display();
        cout << dis(p1, p2);
        return 0;
    }

    按照题目意思,x,y应该是私有成员,但是vs2019友元函数访问不了私有成员,就很离谱。所以只能把x,y改成公有成员了

    问题二

    题目内容:

    根据下面部分代码,补充完成学生成绩类Score。在主函数中定义学生成绩对象数组。用Sum()计算每个学生的总成绩、用Show()显示每个学生的成绩。增加静态成员函数getAvg(),用于返回学生的总平均分。

    #include <iostream>

    #include <cstdio>

    #include <cstdlib>

    #include <iomanip>

    using namespace std;

    class Score {

    private:

        int Chinese, Math, English;

        static int TotalScore;

        static int TotalStudent;

    public:

        Score() {}

        void setScore (int c, int m, int e) {

            /*补充代码*/

        }

        int Sum() {

           /*补充代码*/

        }

        void Show() {

           /*补充代码*/

        }

        double static getAve() {

           /*补充代码*/

        }

    };

    int main() {

        int n, op, i, c, m, e;

        cin >> n;

        int id = 1;

        Score sco[11];

    while(n--)

    {

            cin >> op;

            if(op == 1) {

                cin >> c >> m >> e;

                 /*补充代码*/  }

            else if(op == 2) {

                cin >> i;

                /*补充代码*/   }

            else if(op == 3) {

                cin >> i;

                /*补充代码*/   }

            else {

                /*补充代码*/   }

        }

        return 0;

    }

    输入格式:

    包含一组测试数据。第一行输入一个整数n1<=n<=100)。

    接下来n行。每行先输入一个整数op

    op==1时,输入x, y, z。代表输入一位新同学i(i1开始编号)的语文、数学、英语成绩,无需输出。

    op==2时,输入i,输出第i同学的总成绩。数据保证这位同学的成绩已经录入。

    op==3时,输入i,依次输出第i同学的语文数学英语成绩,成绩之间用空格隔开。

    op==4时,输出当前已经录入学生的总平均分,结果保留两位小数。

    (1<=n<=100, 1<=id<=10, 1<=op<=3, 0<=x,y,z<=100,全部输入都为整型数)

    输出格式:

    op==234时,输出所求答案,每个答案占一行。

    输入样例:

    【样例输入】                             【对应样例输出】

    10

    1 90 85 90

    1 80 90 75

    2 1                                                   265

    3 2                                                   80 90 75

    4                                                      255.00

    1 80 80 85

    1 50 60 65

    1 30 90 75

    3 5                                                  30 90 75

    4                                                     225.00

    输出样例:

    注意输入之间会有一些输出,但测试只看cout结果。

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <iomanip>
    using namespace std;
    class Score {
    private:
        int Chinese, Math, English;
        static int TotalScore;
        static int TotalStudent;
    public:
        Score() {}
        void setScore(int c, int m, int e) {
            Chinese = c;
            Math = m;
            English = e;
            TotalStudent++;
            TotalScore += Chinese + Math + English;
        }
        int Sum() {
            return Chinese + Math + English;
        }
        void Show() {
            cout << Chinese << " " << Math << " " << English << endl;
        }
        double static getAve() {
            return (double(TotalScore)  /double( TotalStudent));
        }
    };
    int Score::TotalScore = 0;
    int Score::TotalStudent = 0;
    int main() {
        int n, op, i, c, m, e;
        cin >> n;
        int id = 1;
        int p = 1;
        Score sco[11];
        while (n--)
        {
            cin >> op;
            if (op == 1) {
                cin >> c >> m >> e;
                sco[p++].setScore(c, m, e);
            }
            else if (op == 2) {
                cin >> i;
                cout << sco[i].Sum() << endl;
            }
            else if (op == 3) {
                cin >> i;
                sco[i].Show();
            }
            else {
                cout << setiosflags(ios::fixed) << setprecision(2) << Score::getAve() << endl;
            }
        }
        return 0;
    }

    要初始化静态成员,实型强制转换整型

  • 相关阅读:
    js修改input的type属性问题(兼容所有浏览器,主要用于密码类的默认有提示文字的效果)
    让一个div始终固定在页面的某一固定位置的方法
    js在IE8+兼容String没有trim方法,写一个兼容ie8一下的浏览器的trim()方法
    js用new Object创建json数据
    js+php实现文件上传显示文件上传进度条的插件
    关于一个页面的tab切换整体页面刷新而tab标签处是同一个文件怎么做焦点的问题
    B树及2-3树的python实现
    二叉查找树转变为有序双向链表
    Django中的静态文件管理
    Django文档——Model中的ForeignKey,ManyToManyField与OneToOneField
  • 原文地址:https://www.cnblogs.com/dk2154/p/14162942.html
Copyright © 2011-2022 走看看