c++第四次实验报告

一·

1.draw()函数算法简介:利用for的嵌套,外层for用来换行,内层第一个for语句是用来打印空格,第二个for语句用来打印符号。每行空格数为行数减去行的序数,每行符号个数为行序数乘以2减1。

以下分别为(graph.h, graph.cpp, main.cpp)三个文件里的源码,其中类的定义文件和主函数实现文件与课件相比未做改动。

#ifndef GRAPH_H
#define GRAPH_H

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


#endif
// 类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 = 1; 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;
    }
}
#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.程序编译运行环境为vs2017


二.

1.

Fraction

-top:int

-bottom:int

+Fraction()

+Fraction(top0:int,bottom:int)

+Fraction(top0:int)

+Fraction(f0:Fraction)

+Add(f0:Fraction):void

+Subtract(f0:Fraction) :void

+Multiply(f0:Fraction) :void

+Divide(f0:Fraction):void

+Compare(f0:Fraction):void

+set_fraction():void

+get_fraction():void

+~Fraction()

2.Fracton.h

class Fraction {
public:
    Fraction();
    Fraction(int top0, int bottom0);
    Fraction(int top0);
    Fraction(Fraction&f0);
    void Add(Fraction&f0);
    void Subtract(Fraction&f0);
    void Multiply(Fraction&f0);
    void Divide(Fraction&f0);
    void Compare(Fraction&f0);
    void set_fraction();
    void get_fraction();
    ~Fraction();

private:
    int top;
    int bottom;
};

 Fraction.cpp

#include"Fraction.h"
#include<iostream>
using namespace std;
Fraction::Fraction():top(0),bottom(1) {}
Fraction::Fraction(int top0) : top(top0), bottom(1){}
Fraction::Fraction(int top0,int bottom0):top(top0),bottom(bottom0){}
Fraction::Fraction(Fraction&f0):top(f0.top),bottom(f0.bottom){}
Fraction::~Fraction() {}
void::Fraction::set_fraction() {
    cin >> top>> bottom;
}
void::Fraction::get_fraction() {
    cout << top << "/" << bottom << endl;
}
void::Fraction::Add(Fraction&f0) {
    int a=0, b=0;
    b = f0.bottom*bottom;
    a = f0.top*bottom + top * f0.bottom;
    cout << a << "/" << b << endl;
}
void::Fraction::Subtract(Fraction&f0) {
    int a=0, b=0;
    b = f0.bottom*bottom;
    a = top * f0.bottom - f0.top*bottom;
    cout << a << "/" << b << endl;
}
void::Fraction::Multiply(Fraction&f0) {
    int a=0, b=0;
    a = top * f0.top;
    b = f0.bottom;
    cout << a << "/" << b << endl;
}
void::Fraction::Divide(Fraction&f0) {
    int a=0, b=0;
    a = top * f0.bottom;
    b = bottom * f0.top;
    cout << a << "/" << b << endl;
}
void::Fraction::Compare(Fraction&f0) {
    if((top * f0.bottom - f0.top*bottom)>0)
        cout << top << "/" << bottom << ">" << f0.top << "/" << f0.bottom << endl;
    else if((top * f0.bottom - f0.top*bottom)<0)
        cout << top << "/" << bottom << "<" << f0.top << "/" << f0.bottom << endl;
    else
        cout << top << "/" << bottom << "=" << f0.top << "/" << f0.bottom << endl;
}

main.cpp

#include<iostream>
#include"Fraction.h"
using namespace std;
int main() {
    Fraction f1;
    Fraction f2(1,2);
    Fraction f3(5);
    f1.Add(f2);
    f1.Subtract(f2);
    f1.Multiply(f2);
    f1.Divide(f2);
    f2.get_fraction();
    f3.get_fraction();
    f1.Compare(f2);
    f1.set_fraction();
    f1.get_fraction();
    return 0;
}

运行环境为vs2017

猜你喜欢

转载自www.cnblogs.com/miaorui1314/p/8922244.html