[求助]C++求助大佬解题 急急急急急急!!

weixin_46061928 2020-06-18 10:30:21
求助,利用C++语言完成以下任意一个题目,求助!!!!!!帮帮孩子!!!
1、多项式的加减乘法。
要求:
a、将多项式封装成一个类;
b、将加减乘封装成类的友元函数;
c、多项式的构造函数初始化一个多项式;
d、在main函数中分别输入两个多项式的系数,调用构造函数初始化成两个多项式对象,计算这两个多项式的加减乘法结果并输出。
e、(可选)用程序实现将多项式的系数,及运算结果保存到文件当中。

2、图形的面积。
要求:
a、将三角形、矩形、圆形等形状封装成相应的类;
b、实现相应图形的构造函数;
c、将计算相应图形的周长和面积函数封装成类的成员函数;
d、在main函数中分别输入相应图形的参数构造相应图形的对象,计算相应图形的周长和面积并输出。
e、(可选)用程序实现将图形的参数,及计算结果保存到文件当中。

3、复数的计算。
要求:
a、将复数封装成相应的类;
b、用成员函数的方式实现复数的加减乘除方法的操作符重载;
c、实现复数和实数之间的加减乘除方法;
d、在main函数中输入多个复数及实数,并调用各个方法计算相应的结果并输出。
e、(可选)用程序实现将复数及计算结果保存到文件当中。

4、矩阵计算
要求:
a、将矩阵封装成相应的类,选择合适的数据成员保存矩阵的相关数据;
b、用成员函数的方式实现矩阵的转置,加减乘除方法(在进行运算前,先验证能否进行运算);
c、在main函数中输入多个矩阵,并调用各个方法计算相应的结果并输出。
d、(可选)用程序实现将矩阵及计算结果保存到文件当中。

5、自拟题目
要求:
a、必须使用C++的类和对象实现;
b、每个类至少有一个构造函数;
c、程序不得少于130行。


写出自己编写的程序及过程
一、题目(将自己选择的大作业题目写在这一部分)




二、设计思路(将自己程序设计思路写在这一部分)



三、源代码(将源代码粘贴,并排版对齐)



四、总结(将自己作业总结写在这一部分)
...全文
189 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46061928 2020-06-19
  • 打赏
  • 举报
回复
引用 6 楼 遇见女神 的回复:

#include <iostream>
#include <vector>
using namespace std;
//=============================================================================================================================
/// 多项式类
/** 
    @remarks 
        p(x) = C[0]x^(N-1) + C[1]x^(N-2) + C[2]x^(N-3) + ... + C[N-1]
    @note
        a、将多项式封装成一个类;
        b、将加减乘封装成类的友元函数;
        c、多项式的构造函数初始化一个多项式;
        d、在main函数中分别输入两个多项式的系数,调用构造函数初始化成两个多项式对象,计算这两个多项式的加减乘法结果并输出。
        e、(可选)用程序实现将多项式的系数,及运算结果保存到文件当中。
**/
//=============================================================================================================================
class Polynomial
{
private:
    int m_length{};
    int *m_coefficients{};
public:
    Polynomial() = default;
    Polynomial(int coefficients[], int length):
        m_length{length},
        m_coefficients{new int[length]{}}
    {
		for (int i = 0; i < length; i++)
		{
			m_coefficients[i] = coefficients[i];	
        }
    }
    ~Polynomial()
    {
        delete[] m_coefficients;
    }
    friend Polynomial operator+(const Polynomial &p1, const Polynomial &p2)
    {
        int len = p1.m_length > p2.m_length ? p1.m_length : p2.m_length;
        int *coefs = new int[len];
        for(int i = len - p1.m_length; i < len; i++)
        {
            coefs[i] = p1.m_coefficients[i - len + p1.m_length];
        }
        for(int i = len - p2.m_length; i < len; i++)
        {
            coefs[i] += p2.m_coefficients[i - len + p2.m_length];
        }
        return Polynomial(coefs, len);
    }
    friend Polynomial operator-(const Polynomial &p1, const Polynomial &p2)
    {
       int len = p1.m_length > p2.m_length ? p1.m_length : p2.m_length;
       int *coefs = new int[len];
       for(int i = len - p1.m_length; i < len; i++)
       {
           coefs[i] = p1.m_coefficients[i - len + p1.m_length];
       }
       for(int i = len - p2.m_length; i < len; i++)
       {
           coefs[i] -= p2.m_coefficients[i - len + p2.m_length];
       }
       return Polynomial(coefs, len);
    } 
    friend Polynomial operator*(const Polynomial &p1, const Polynomial &p2)
    {
        int len = p1.m_length + p2.m_length;
        int *coefs = new int[len - 1];
        for(int i = 0; i < p1.m_length; i++)
        {
            for(int j = 0; j < p2.m_length; j++)
            {
                int index = len - p1.m_length - p2.m_length + i + j;
                coefs[index] += p1.m_coefficients[i] * p2.m_coefficients[j];
            }
        }
        return Polynomial(coefs, len - 1);
    }
    void print() const
    {
        if(m_length == 0)
        {
            return;
        }
        int len = m_length - 1;
        for(int i = 0 ; i < len; i++)
        {
            cout << m_coefficients[i] << "x^" << len - i << " + ";            
        }
        cout << m_coefficients[len] << endl;
    }
};
int main()
{
    int a[] = {3, 2, 1}, b[] = {2, 1};
    Polynomial p1(a, sizeof(a)/sizeof(a[0]));
    Polynomial p2(b, sizeof(b)/sizeof(b[0]));
    Polynomial p3 = p1 + p2;
    Polynomial p4 = p1 - p2;
    Polynomial p5 = p1 * p2;
    p1.print();
    p2.print();
    cout << "Result:" << endl;
    p3.print();
    p4.print();
    p5.print(); 
    return 0;
}
看懂了,谢谢
weixin_46061928 2020-06-19
  • 打赏
  • 举报
回复
引用 6 楼 遇见女神 的回复:

#include <iostream>
#include <vector>
using namespace std;
//=============================================================================================================================
/// 多项式类
/** 
    @remarks 
        p(x) = C[0]x^(N-1) + C[1]x^(N-2) + C[2]x^(N-3) + ... + C[N-1]
    @note
        a、将多项式封装成一个类;
        b、将加减乘封装成类的友元函数;
        c、多项式的构造函数初始化一个多项式;
        d、在main函数中分别输入两个多项式的系数,调用构造函数初始化成两个多项式对象,计算这两个多项式的加减乘法结果并输出。
        e、(可选)用程序实现将多项式的系数,及运算结果保存到文件当中。
**/
//=============================================================================================================================
class Polynomial
{
private:
    int m_length{};
    int *m_coefficients{};
public:
    Polynomial() = default;
    Polynomial(int coefficients[], int length):
        m_length{length},
        m_coefficients{new int[length]{}}
    {
		for (int i = 0; i < length; i++)
		{
			m_coefficients[i] = coefficients[i];	
        }
    }
    ~Polynomial()
    {
        delete[] m_coefficients;
    }
    friend Polynomial operator+(const Polynomial &p1, const Polynomial &p2)
    {
        int len = p1.m_length > p2.m_length ? p1.m_length : p2.m_length;
        int *coefs = new int[len];
        for(int i = len - p1.m_length; i < len; i++)
        {
            coefs[i] = p1.m_coefficients[i - len + p1.m_length];
        }
        for(int i = len - p2.m_length; i < len; i++)
        {
            coefs[i] += p2.m_coefficients[i - len + p2.m_length];
        }
        return Polynomial(coefs, len);
    }
    friend Polynomial operator-(const Polynomial &p1, const Polynomial &p2)
    {
       int len = p1.m_length > p2.m_length ? p1.m_length : p2.m_length;
       int *coefs = new int[len];
       for(int i = len - p1.m_length; i < len; i++)
       {
           coefs[i] = p1.m_coefficients[i - len + p1.m_length];
       }
       for(int i = len - p2.m_length; i < len; i++)
       {
           coefs[i] -= p2.m_coefficients[i - len + p2.m_length];
       }
       return Polynomial(coefs, len);
    } 
    friend Polynomial operator*(const Polynomial &p1, const Polynomial &p2)
    {
        int len = p1.m_length + p2.m_length;
        int *coefs = new int[len - 1];
        for(int i = 0; i < p1.m_length; i++)
        {
            for(int j = 0; j < p2.m_length; j++)
            {
                int index = len - p1.m_length - p2.m_length + i + j;
                coefs[index] += p1.m_coefficients[i] * p2.m_coefficients[j];
            }
        }
        return Polynomial(coefs, len - 1);
    }
    void print() const
    {
        if(m_length == 0)
        {
            return;
        }
        int len = m_length - 1;
        for(int i = 0 ; i < len; i++)
        {
            cout << m_coefficients[i] << "x^" << len - i << " + ";            
        }
        cout << m_coefficients[len] << endl;
    }
};
int main()
{
    int a[] = {3, 2, 1}, b[] = {2, 1};
    Polynomial p1(a, sizeof(a)/sizeof(a[0]));
    Polynomial p2(b, sizeof(b)/sizeof(b[0]));
    Polynomial p3 = p1 + p2;
    Polynomial p4 = p1 - p2;
    Polynomial p5 = p1 * p2;
    p1.print();
    p2.print();
    cout << "Result:" << endl;
    p3.print();
    p4.print();
    p5.print(); 
    return 0;
}
这位大哥你选的是哪个题目,可以写一下题目和思路吗?
遇见女神 2020-06-19
  • 打赏
  • 举报
回复

#include <iostream>
#include <vector>
using namespace std;
//=============================================================================================================================
/// 多项式类
/**
@remarks
p(x) = C[0]x^(N-1) + C[1]x^(N-2) + C[2]x^(N-3) + ... + C[N-1]
@note
a、将多项式封装成一个类;
b、将加减乘封装成类的友元函数;
c、多项式的构造函数初始化一个多项式;
d、在main函数中分别输入两个多项式的系数,调用构造函数初始化成两个多项式对象,计算这两个多项式的加减乘法结果并输出。
e、(可选)用程序实现将多项式的系数,及运算结果保存到文件当中。
**/
//=============================================================================================================================
class Polynomial
{
private:
int m_length{};
int *m_coefficients{};
public:
Polynomial() = default;
Polynomial(int coefficients[], int length):
m_length{length},
m_coefficients{new int[length]{}}
{
for (int i = 0; i < length; i++)
{
m_coefficients[i] = coefficients[i];
}
}
~Polynomial()
{
delete[] m_coefficients;
}
friend Polynomial operator+(const Polynomial &p1, const Polynomial &p2)
{
int len = p1.m_length > p2.m_length ? p1.m_length : p2.m_length;
int *coefs = new int[len];
for(int i = len - p1.m_length; i < len; i++)
{
coefs[i] = p1.m_coefficients[i - len + p1.m_length];
}
for(int i = len - p2.m_length; i < len; i++)
{
coefs[i] += p2.m_coefficients[i - len + p2.m_length];
}
return Polynomial(coefs, len);
}
friend Polynomial operator-(const Polynomial &p1, const Polynomial &p2)
{
int len = p1.m_length > p2.m_length ? p1.m_length : p2.m_length;
int *coefs = new int[len];
for(int i = len - p1.m_length; i < len; i++)
{
coefs[i] = p1.m_coefficients[i - len + p1.m_length];
}
for(int i = len - p2.m_length; i < len; i++)
{
coefs[i] -= p2.m_coefficients[i - len + p2.m_length];
}
return Polynomial(coefs, len);
}
friend Polynomial operator*(const Polynomial &p1, const Polynomial &p2)
{
int len = p1.m_length + p2.m_length;
int *coefs = new int[len - 1];
for(int i = 0; i < p1.m_length; i++)
{
for(int j = 0; j < p2.m_length; j++)
{
int index = len - p1.m_length - p2.m_length + i + j;
coefs[index] += p1.m_coefficients[i] * p2.m_coefficients[j];
}
}
return Polynomial(coefs, len - 1);
}
void print() const
{
if(m_length == 0)
{
return;
}
int len = m_length - 1;
for(int i = 0 ; i < len; i++)
{
cout << m_coefficients[i] << "x^" << len - i << " + ";
}
cout << m_coefficients[len] << endl;
}
};
int main()
{
int a[] = {3, 2, 1}, b[] = {2, 1};
Polynomial p1(a, sizeof(a)/sizeof(a[0]));
Polynomial p2(b, sizeof(b)/sizeof(b[0]));
Polynomial p3 = p1 + p2;
Polynomial p4 = p1 - p2;
Polynomial p5 = p1 * p2;
p1.print();
p2.print();
cout << "Result:" << endl;
p3.print();
p4.print();
p5.print();
return 0;
}
Simple-Soft 2020-06-19
  • 打赏
  • 举报
回复
引用 4 楼 weixin_46061928 的回复:
大哥们,有没有会写的,写一下代码

这要写也要花不少时间点
Simple-Soft 2020-06-19
  • 打赏
  • 举报
回复
选择第2吧,会简单一些
weixin_46061928 2020-06-19
  • 打赏
  • 举报
回复
大哥们,有没有会写的,写一下代码
  • 打赏
  • 举报
回复
引用 2 楼 Simple-Soft 的回复:
选择第2吧,会简单一些
选2吧,简单些
weixin_46061928 2020-06-18
  • 打赏
  • 举报
回复
希望有C++大佬帮忙

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧