zoukankan      html  css  js  c++  java
  • 北京理工大学复试上机--2004

    1、建立一个角类,在这个类中重载减号运算符,并实现求出角度的正弦值的函数。

    #include <iostream>
    #include <cmath>
    using namespace std;
    
    class angel
    {
    public:
        double x1, x2;
        double getangel()
        {
            return (x1 - x2) / 180 * 3.1415926927;//转为角度
        }
        double getsin(void)
        {
            cout << sin(getangel()) << endl;
        }
    };
    
    int main() {
        angel a;
        while(cin >> a.x1 >> a.x2) {
            a.getangel();
            a.getsin();
        }
        return 0;
    }
    2、建立一个求一元二次方程解的类(a*x^2+b*x+c=0),输入系数 a,b,c 的值后打印出这个方程的解来,也比较简单。
    需要注意的是系数 a 不能为零以及方程有无解,单解还是双解的情况。
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    class anser
    {
    private:
        double a, b, c;
    public:
        anser (int x, int y, int z) {
            a = x;
            b = y;
            c = z;
        };
        void show() {
            double x1, x2;
            if(a == 0) {
                x1 = -c / b;
                x2 = -c / b;
                cout << "x1 = x2 = " << x1 << endl;
            }
            else if((b * b - 4 * a * c) < 0) {
                cout << "No solution" << endl;
            }
            else {
                x1 = (-b + sqrt(b * b - 4 * a * c)) / 2 * a;
                x2 = (-b - sqrt(b * b - 4 * a * c)) / 2 * a;
                if(x1 == -0 || x2 == -0) {
                    x1 = 0;
                    x2 = 0;
                }
                cout << "x1 = " << x1 << "  x2 = " << x2 << endl;
            }
        }
    };
    
    int main() {
        double a, b, c;
        while(cin >> a >> b >> c) {
            anser ans(a, b, c);
            ans.show();
        }
        return 0;
    }
    3、实现一个多项式的类(a+b*x+c*x^2+d*x^3+...+),要求输入该多项式的系数和x的值后打印出这个多项式的值。
    输入:
    第一行为多项式最高项次数n,接下来n+1个整数表示每项系数,最后一个整数x,n不超过10。
    输出:
    多项式代入x后的值。
    #include <iostream>
    #include <cmath>
    #include <vector>
    using namespace std;
    
    class formula
    { 
    public:
        vector<double> v;
        int n;
        double x;
        double fun(int n, int N, double x, vector<double> v) {
            if(n == 0) {
                return v[N];
            }
            else {
                return fun(n - 1, N, x, v) * x + v[N-n];
            }
        }
        void show(){
            cout << fun(n, n, x, v) << endl;
        }
    };
    
    
    
    int main() {
        int n;
        while (cin >> n) {
            vector<double> v(n + 1);
            double x;
            for(int i = 0; i <= n; i++) cin >> v[i];
            cin >> x;
            formula f;
            f.n = n;
            f.v = v;
            f.x = x;
            f.show();
        }
        return 0;
    }

    PS: 这个类我是真的搞不懂,裂开~  只能是照葫芦画瓢写一写,也不知道准不准确,希望复试不要遇到这种题。 T_T

  • 相关阅读:
    init_machine 在Kernel中被调用的过程
    maven-surefire-plugin的forkMode分析
    执行Maven install或Maven test命令时控制台输出乱码的解决办法
    Maven 中的dependencies与dependencyManagement的区别
    使用maven profile实现多环境可移植构建
    Maven最佳实践:划分模块
    MySQL的登陆错误:ERROR 1049 (42000): Unknown database 'root'
    Java 连接操作 Redis 出现错误
    关闭多个screen
    linux sed 批量替换字符串
  • 原文地址:https://www.cnblogs.com/ache/p/12534927.html
Copyright © 2011-2022 走看看