实验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;
}
实验总结:
自己这次实验还有很多不熟练的地方,平时还应该多多练习。只有多写点代码才能多积累经验。