《C++程序设计》实验报告模板(刘伟)

C程序设计实验报告模板刘伟

C程序设计实验报告模板刘伟

CENTRAL SOUTH UNIVERSITY

《C/C++程序设计》实验报告

实验名称 对象和类的更多内容

学生姓名学生学号 3901120508

专业班级 软件工程1205班 指导教师 刘伟 完成时间 20xx年1月5日

实验九 对象和类

练习10.1

代码如下:

头文件:class MyInteger

{

public:

int value;

MyInteger();

int getValue();

bool isEven();

bool isOdd();

bool idPrime;

bool static isEven(int);

bool static isOdd(int);

bool static isPrime(int);

bool static isEven(MyInteger);

bool static isOdd(MyInteger);

bool static isPrime(MyInteger);

bool equals(int);

bool equal(MyInteger);

int static parseInt(string);

};

源文件:#include"MyInteger.h"

int MyInteger::MyInteger()

{

value = 1;

}

int MyInteger::MyInteger(int newValue)

{

value = newValue;

}

int MyInteger::getValue()

{

return value;

}

bool MyInteger::isEven()

{

return(value%2==0);

}

bool MyInteger::isOdd()

{

return(value%2!=0);

}

bool MyInteger::isPrime()

{

for(int i=2;i < value; i++)

{

return(value % 1 != 0);

}

}

bool static MyInteger::isEven(int) {

return(1%2==0);

}

bool static MyInteger::isOdd(int) {

return(1%2!=0);

}

bool static MyInteger::isPrime(int) {

for(int i = 2; i < 1;i++)

{

return(1 % i !=0);

}

}

bool static MyInteger::isEven(MyInteger) {

return(value%2 == 0);

}

bool static MyInteger::isOdd(MyInteger) {

return(value%2 != 0);

}

bool static MyInteger::isPrime(MyInteger) {

for(int i =2; i<value; i++)

{

return( value % i != 0); }

}

bool MyInteger::equals(int) {

return(value == newValue); }

练习10.3

代码如下:

头文件:#ifndef STACK_H #define STACK_H

class StackOfIntegers {

public:

StackOfIntegers(); bool isEmpty(); int peek();

void push(int value); int pop();

int getSize();

private:

int elements[100]; int size;

};

#endif

声明:#include<iostream> #include"StackOfIntegers.h" using namespace std;

int main()

{

StackOfIntegers stack; cout <<"输入一个整数 :"; int value;

cin >> value;

for(int i = 2; i <= value; i++) {

while(value % i == 0); {

stack.push(i); value = value / i; }

}

while(!stack.isEmpty())

cout << stack.pop() <<" ";

return 0;

}

测试:#include"StackOfIntegers.h"

StackOfIntegers::StackOfIntegers() {

size = 0;

}

bool StackOfIntegers::isEmpty() {

return(size == 0);

}

int StackOfIntegers::peek() {

return elements[size - 1]; }

void StackOfIntegers::push(int value) {

elements[size++] = value; }

int StackOfIntegers::pop() {

return elements[--size]; }

int StackOfIntegers::getSize() {

return size; }

练习10.4

代码如下:

头文件:#ifndef STACK_H

#define STACK_H

class StackOfIntegers

{

public:

StackOfIntegers();

bool isEmpty();

int peek();

void push(int value);

int pop();

int getSize();

private:

int elements[100];

int size;

};

#endif

声明:#include<iostream>

#include<iomanip>

#include"StackOfIntegers.h"

using namespace std;

int main()

{

StackOfIntegers stack;

int number=2;

int count = 0;

while(number <= 120)

{

bool isPrime = true;

for(int i = 2; i <= number / 2; i++) {

if(number % i == 0) {

isPrime = false; break;

}

}

if(isPrime)

{

count++;

stack.push(number);

}

while(!stack.isEmpty())

{

if(count % 10 == 0)

cout << setw(4)<< stack.pop() << endl; else

cout << setw(4) << stack.pop() <<" "; }

number++;

}

return 0;

}

实现:#include"StackOfIntegers.h"

StackOfIntegers::StackOfIntegers()

{

size = 0;

}

bool StackOfIntegers::isEmpty()

{

return(size == 0);

}

int StackOfIntegers::peek()

{

return elements[size - 1];

}

void StackOfIntegers::push(int value)

{

elements[size++] = value;

}

int StackOfIntegers::pop()

{

return elements[--size];

}

int StackOfIntegers::getSize()

{

return size; }

练习10.5

代码如下:

#include<iostream>

#include<vector>

#include<string>

using namespace std;

int main()

{

vector<int> intVector;

for(int i = 0; i < 10; i++)

intVector.push_back(i+1);

cout << "Number in the vector: "; for(i = intVector.size(); i >= 0; i--) cout <<intVector[i-1] <<" ";

return 0;

}

练习10.6

代码如下:

#include<iostream>

#include<vector>

#include<string>

using namespace std;

int main()

{

vector<string> stringVector;

stringVector.push_back("Peter Jones"); stringVector.push_back("Brian Smith"); stringVector.push_back("Anne Kennedy");

cout << "Number of students in course1: " << stringVector.size() <<endl;

for(int i = 0; i < stringVector.size(); i++)

cout << stringVector[i] <<endl;

vector<string> v2;

v2.push_back("Peter Jones");

v2.push_back("Steve Smith");

cout << "Number of students in course2: " << v2.size() <<endl;

for(i = 0; i < v2.size(); i++)

cout << v2[i] <<endl;

return 0;

}

练习11.1

代码如下:

GeometricObject.H:

#ifndef GEOMETRICOBJECT_H

#define GEOMETRICOBJECT_H

#include<string>

using namespace std;

class GeometricObject

{

public:

GeometricObject();

GeometricObject(string color,bool filled);

string getColor();

void setColor(string color);

bool isFilled();

void setFilled(bool filled);

string toString();

private:

string color;

bool filled;

};

#endif

GeometricObject.Cpp:

#include"GeometricObject.h"

GeometricObject::GeometricObject()

{

color = "white";

filled = false;

}

GeometricObject::GeometricObject(string color,bool filled) {

this->color = color;

this->filled = filled;

}

string GeometricObject::getColor()

{

return color;

}

void GeometricObject::setColor(string color)

{

this ->color = color;

}

bool GeometricObject::isFilled()

{

return filled;

}

void GeometricObject::setFilled(bool filled)

{

this->filled = filled;

}

string GeometricObject::toString()

{

return "Geometric object color" + color +

"filled" + ((filled) ? "true" : "false");

}

Triangle.H:

#ifndef TRIANGLE_H

#define TRIANGLE_H

#include"GeometricObject.h"

class Triangle:public GeometricObject

{

public:

Triangle();

Triangle(double,double,double);

double getSide1();

double getSide2();

double getSide3();

double getArea();

double getPerimeter();

private:

double side1;

double side2;

double side3;

};

#endif

Triangle.CPP:

#include"Triangle.h"

#include<cmath>

Triangle::Triangle()

{

side1 = 1.0;

side2 = 1.0;

side3 = 1.0;

}

Triangle::Triangle(double side1,double side2,double side3) {

this->side1 = side1;

this->side2 = side2;

this->side3 = side3;

}

double Triangle::getSide1()

{

return side1;

}

double Triangle::getSide2()

{

return side2;

}

double Triangle::getSide3()

{

return side3;

}

double Triangle::getArea()

{

double m = side1*side2;

double n = pow(side3,2) - pow((side1 - side2),2); double area = sqrt((m * n)/8);

return area;

}

double Triangle::getPerimeter()

{

return(side1 + side2 + side3);

}

相关推荐