实验 4 类和对象-2

Posted sjcnb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验 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.运行结果

技术分享图片

 

五.总结

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

以上是关于实验 4 类和对象-2的主要内容,如果未能解决你的问题,请参考以下文章

实验3 类和对象

实验5 类和对象-3(未完)

Java类和对象-学习笔记(超级详细~~~)

Java实验项目三——面向对象定义职工类和日期类

Java——类和对象超详细总结

实验5 类和对象3