实验 4 类和对象-2

四.实验

Graph

1.类Graph的声明

#ifndef GRAPH_H
#define GRAPH_H

// 类Graph的声明
class Graph {
    public:
        Graph(char ch, int n);   // 带有参数的构造函数
        void draw();     // 绘制图形
    private:
        char symbol;
        int size;
};

2.类Graph的实现

#include "graph.h"
#include <iostream>
using namespace std;

// 带参数的构造函数的实现
Graph::Graph(char ch, int n): symbol(ch), size(n) {
}

// 成员函数draw()的实现
// 功能:绘制size行,显示字符为symbol的指定图形样式
//       size和symbol是类Graph的私有成员数据
void Graph::draw() {
    for(int i=0;i<size;i++)
    {
        for(int j=1;j<size-i;j++)
        {
        cout<<‘ ‘;
        }
        for(int k=1;k<2*(i+1);k++)
        {
            cout<<symbol;
        }
        cout<<endl;
    }
    // 补足代码,实现「实验4.pdf」文档中展示的图形样式
}

3.类Graph的测试

#include <iostream>
#include "graph.h"
using namespace std;

int main() {
    Graph graph1(‘*‘,5), graph2(‘$‘,7) ;  // 定义Graph类对象graph1, graph2
    graph1.draw(); // 通过对象graph1调用公共接口draw()在屏幕上绘制图形
    graph2.draw(); // 通过对象graph2调用公共接口draw()在屏幕上绘制图形

    return 0;
} 

4.运行结果

Fraction

1.类Fraction的声明

class Fraction {
    public:
        Fraction();
        Fraction(int a);
        Fraction(int a, int b);
        void plus(Fraction &p,Fraction &q);
        void minus(Fraction &p,Fraction &q);
        void multiply(Fraction &p,Fraction &q);
        void divide(Fraction &p,Fraction &q);
        void compare(Fraction &p,Fraction &q);
        void output();
    private:
        int top;
        int bottom;
};

2.类Fraction的实现

#include <iostream>
#include "fraction.h"
using namespace std;

Fraction::Fraction(): top(0), bottom(1){
}
Fraction::Fraction(int a): top(a),bottom(1){
}
Fraction::Fraction(int a, int b): top(a),bottom(b){
}
void Fraction::output(){cout<<top<<‘/‘<<bottom<<endl;
}
void Fraction::plus(Fraction &p,Fraction &q){
    top=p.top*q.bottom+p.bottom*q.top;
    bottom=p.bottom*q.bottom;
}
void Fraction::minus(Fraction &p,Fraction &q){
    top=p.top*q.bottom-p.bottom*q.top;
    bottom=p.bottom*q.bottom;
}
void Fraction::multiply(Fraction &p,Fraction &q){
    top=p.top*q.top;
    bottom=p.bottom*q.bottom;
}
void Fraction::divide(Fraction &p,Fraction &q){
    top=p.top*q.bottom;
    bottom=p.bottom*q.top;
}
void Fraction::compare(Fraction &p,Fraction &q){
    if(p.top/p.bottom>q.top/q.bottom)
    cout<<"a>b"<<endl;
    else if (p.top/p.bottom<q.top/q.bottom)
    cout<<"a<b"<<endl;
    else if (p.top/p.bottom==q.top/q.bottom)
    cout<<"a=b"<<endl;
}

3.类Fraction的测试

#include <iostream>
#include "fraction.h"
using namespace std;

int main() {
    Fraction a;
    Fraction b(3,4);
    Fraction c(5);
    Fraction d;
    d.plus(b,c);
    d.output();
    d.minus(b,c);
    d.output();
    d.multiply(b,c);
    d.output();
    d.divide(b,c);
    d.output();
    d.compare(b,c);
    return 0;
} 

4.运行结果

五.总结

这次实验让我对类的使用有了更进一步的掌握,但在第二题中如何简便的在通分后进行约分仍是一个问题

原文地址:https://www.cnblogs.com/sjcnb/p/8908303.html

时间: 2024-10-09 09:45:51

实验 4 类和对象-2的相关文章

JAVA实验4 类与对象(封装继承多态等机制的使用)

实验四 类与对象(封装.继承.多态等机制的使用) 实验内容: 1. 编写一个名为TwoDimensionalShape的抽象类,拥有属性area和circumference表示面积和周长,以及抽象方法getArea()和getCircumference(),用于获取面积和周长. 2. 编写Printable接口,包括一个抽象方法printShapeInfo,用于输出图形信息. 3. 分别编写Rectangle.Triangle.Circular三个类,用于描述矩形.三角形和圆形,要求继承于Two

JAVA实验3 类与对象

实验要求: 掌握类与对象的基本思想 能够熟练地使用Java设计并编写类 能够灵活运用各种对象 实验内容: 希腊神话中,宙斯战胜了泰坦之后成为众神之王,以此为背景,通过构造相应对象.属性和方法,并用随机的方式,模拟宙斯与泰坦的战斗过程. 构建类Titan,要求如下: 整形字段HP,以及相应的getter和setter 空参数列表构造方法Titan(),创造出的HP默认为700 带参数构造方法Titan(int HP),创造出指定HP的对象 方法attack(Zues z),参数为宙斯对象,每次调用

实验三 类与对象(zxt)

//以下为课上的实现虚数相加的内容,以及我的疑惑(懵逼) 这个代码存在问题,只能运行整数不能运行浮点数,以下为2.0版本 这回的又有一些问题,这个源代码是老师ppt上的,main函数中的部分是我写的.但是由于我想既能进行整数和浮点数的加法,所以我设置为了double类型.由此导致我只能调用double add( ),int add( )完全没用,如果不把m,n,p,q都设置为double类型,比如:把m,p设置为整型值,说明你已经知道m,p为整型值,这样的话输入的范围就有了限制,我又不想这样,是

实验4 类与对象2

实验结论 1.实验内容2 (2)文件源码 graph.h #ifndef GRAPH_H #define GRAPH_H // 类Graph的声明 class Graph { public: Graph(char ch, int n); // 带有参数的构造函数 void draw(); // 绘制图形 private: char symbol; int size; }; #endif graph.cpp // 类graph的实现 #include "graph.h" #include

实验3 类和对象

实验结论 4-11 定义并实现一个矩形类,有长,宽两个属性,由成员函数计算矩形的面积. #include <iostream> using namespace std; class rectangle{ public: rectangle(float length, float wide); float area(); private: float l, w; }; rectangle::rectangle(float length, float wide){ l=length; w=wide

实验五 类和对象-3 zxt

实验一:运行ex1.cpp 实验二:ex2.cpp   实验三:补全ex3.cpp并运行 我以为是自己喜欢和不喜欢的呢...... 实验四:习题6-17 实验五:习题6-18 实验六:matrix类 我智障的没看见matrix.h,自己写的matrix,我都要写傻了,还运行不出来......求解决 实验七:期中考试第一题 写完突然意识到,忘了释放,要不然会造成内存泄漏,会有很严重的后果,尴尬 我真是老年人的脑袋,啥都忘...... 修改以后如下: 实验八:期中考试第二题 当密码输入错误时 实验九

【C++ 实验5 类和对象】

1. 1 #include <iostream> 2 #include <vector> 3 #include <string> 4 using namespace std; 5 6 // 函数声明 7 void output1(vector<string> &); 8 void output2(vector<string> &); 9 10 int main() 11 { 12 vector<string>likes

实验5 类和对象3

四.实验结论 实验内容1 vector3.cpp 完整程序 #include <iostream> #include <vector> #include <string> using namespace std; // 函数声明 void output1(vector<string> &); void output2(vector<string> &); int main() { vector<string>likes

实验3类与对象

4-11 #include<iostream> using namespace std; class Rectangle{ public: Rectangle(float length,float width); private: float l; float w; }; Rectangle::Rectangle(float length,float width){ l=length; w=width; } int main(){ float l; float w; cout<<&