欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 面向对象程序设计-实验七

面向对象程序设计-实验七

2025/2/21 3:03:53 来源:https://blog.csdn.net/ZYS7078/article/details/145641387  浏览:    关键词:面向对象程序设计-实验七

6-1 计算捐款总量

这里需要设计一个捐款人类Donator及一个相关函数getMaxName( ),Donator类中包含捐款人的姓名及其捐款额

代码清单:

#include <iostream>

using namespace std;

class Donator {

private:

    string name;

    float money; //单位:元        

public:

    void setName(string _name);

    void setMoney(float _money);

    string getName() { return name; }

    float getMoney() { return money; }

    /* 你编写的代码将被嵌入这里*/

    static float totalMoney;

    static void printTotal()

    {

        cout << "total:" << totalMoney << endl;

    }

};

float Donator::totalMoney = 0;

void Donator::setName(string _name)

{

    name = _name;

}

void Donator::setMoney(float _money)

{

    money = _money;

    totalMoney = totalMoney + money;

}

string getMaxName(Donator dt[], int n)

{

    float max = dt[0].getMoney();

    int max_id = 0;

    for (int i = 1; i < n; i++)

    {

        if (dt[i].getMoney() > max)

        {

            max_id = i;

        }

    }

    return dt[max_id].getName();

}

    //读取n个捐款人的姓名和捐款额 

    void read(Donator dt[], int n) {

        string name;

        float money;

        for (int i = 0; i < n; i++) {

            cin >> name >> money;

            dt[i].setName(name);

            dt[i].setMoney(money);

        }

    }

    int main() {

        int n;

        cin >> n; 输入本批次将参与的捐款人数

        cin >> Donator::totalMoney; //输入目前已有的捐款总额 

        Donator::printTotal();

        Donator d[n];

        read(d, n);

        Donator::printTotal();

        cout << getMaxName(d, n) << endl;//输出本批次中捐款最高者姓名 

        return 0;

    }

运行结果截图

题目2

(给出题目描述)

6-2 是否是回文

代码清单:

#include <iostream>

using namespace std;

class Solution

{

public:

    /*

     * 判断以'@'结尾的字符串s是否为回文。

     * 如果是回文,返回true;不是回文,返回false

     */

    bool isPalindrome(char* s);

};

int main()

{

    Solution obj;

    char ss[100];

    cin >> ss;

    if (obj.isPalindrome(ss)) {

        cout << "YES\n";

    }

    else {

        cout << "NO\n";

    }

    return 0;

}

/* 你的代码将被嵌在这里 */

bool Solution::isPalindrome(char* s)

{

    char* p = s;

    while (*p != '\0')

    {

        p++;

    }

    int len = p - s;

    for (int i = 0; i < len / 2; i++)

    {

        if (s[i] != s[len - i - 2])

        {

            return false;

        }

    }

    return true;

}

运行结果截图

题目3

(给出题目描述)

7-1 复数类的操作

代码清单:

…………………………..

………………………….

#include<iostream>

using namespace std;

class Complex{

    private:

    double real;

    double image;

    public:

    Complex(double r=0,double i=0)

    {

        real=r;

        image=i;

    }

    Complex operator-()

    {

        Complex c;

        c.real=-real;

        c.image=-image;

        return c;

    }

    void setreal()

    {

        cin>>this->real;

    }

    void setimage()

    {cin>>this->image;}

    void Print()

    {

        cout<<"("<<this->real<<", "<<this->image<<")"<<endl;

    }

    friend Complex operator+(Complex &c1,Complex &c2);

};

Complex operator+(Complex &c1,Complex &c2)

{

    Complex c;

    c.real=c1.real+c2.real;

    c.image=c1.image+c2.image;

    return c;

}

    

int main()

{

    Complex c1,c2,c3,c4;

    c1.setreal();c1.setimage();

    c2.setreal();c2.setimage();

    c3=c1+c2;c3.Print();

    c4=-c2;

    c3=c4+c1;c3.Print();

    c2.Print();

    return 0;

    

}

运行结果截图

题目4

(给出题目描述)

7-2 宿舍谁最高?

代码清单:

…………………………..

………………………….

#include<bits/stdc++.h>

using namespace std;

class Student

{

public:

    int id;

    string name;

    int h;

    int w;

};

int main()

{

    int n,t=1,r=0;

    cin >> n;

    Student *s=new Student[n];

        for (int i = 0; i < n; i++)

        {

            cin >> s[i].id >> s[i].name >> s[i].h >> s[i].w;

        }

        if(n>1)

        {

        for (int w = 0; w < n - 1; w++)

        {

            for (int q = 0; q < n - 1; q++)

            {

                Student temp;

                if (s[q].id > s[q + 1].id)

                {

                    temp = s[q];

                    s[q] = s[q + 1];

                    s[q + 1] = temp;

                }

            }

        }

        for (; r <n - 1; )

        {

            if (s[r].id == s[r + 1].id)

            {

                if (s[r].h > s[r + 1].h)

                {

                    Student temp1;

                    temp1 = s[r];

                    s[r] = s[r + 1];

                    s[r + 1] = temp1;

                }

                r = r + 1;

            }

            else

            {

                cout << setw(6)<<setfill('0')<<s[r].id<<" " << s[r].name<<" " << s[r].h<<" " << s[r].w << endl;

                r = r + 1;

            }

        }

        

        cout << setw(6) << setfill('0') << s[r].id<<" " << s[r].name <<" "<< s[r].h<<" " << s[r].w << endl;

    }

    else

    {

        cout << setw(6) << setfill('0') << s[0].id<<" " << s[0].name<<" " << s[0].h<<" " << s[0].w << endl;

    }

    return 0;

}

运行结果截图

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词