实验四

实验2:

补足graph.cpp中的类成员函数draw()的实现,使其能产生显示的效果。

因为自己基础较差,所以在实验之前又复习了一下第四章的内容,不过其实在实验过程中仍然出了很多的问题,通过看书和向同学询问请教才解决问题。

//类graph.h的声明

复制代码

#ifndef GRAPH_H
#define GRAPH_H

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

//类graph.h的实现

复制代码

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

// 带参数的构造函数的实现 
Graph::Graph(char ch, int n): symbol(ch), size(n) {
}
// 成员函数draw()的实现
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」文档中展示的图形样式 
}
复制代码
 

//类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; 
} 
复制代码
 
运行截图:

 

实验内容3:

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; 
} 
复制代码
 

 

实验总结:

自己这次实验还有很多不熟练的地方,平时还应该多多练习。只有多写点代码才能多积累经验。

转载于:https://www.cnblogs.com/ANXX/p/8922309.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值