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);
}
C++程序设计实验报告学号:姓名:班级:指导老师:实验一、字符和格式的输出实验一,实验目的1、重点把握各种内部数据类型、数值和逻辑…
C语言程序设计实验报告1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之…
学生实验报告册(理工类)课程名称:JAVA程序设计实验专业班级:M11计算机科学与技术II学生学号:学生姓名:所属院部:XX学院指…
西南交通大学程序设计综合实验实验地点实验学期学生班级学生学号学生姓名任课教师龚勋信息科学与技术学院20xx年4月实验一ATM机用户…
C语言程序设计实验报告学号不告诉你哦班级信管一班姓名你猜猜哈哈一实验题目一编程实验猜数问题输入两个整数并求这两个整数的和输入所猜的…
C语言程序设计实验报告1实验目的(1)掌握函数的定义方法、调用方法、参数说明以及返回值;(2)掌握实参与形参的对应关系,以及参数之…
信息科学与工程学院高级语言程序设计课程设计报告学生成绩管理系统学科专业计算机科学与技术班级1301学号指导教师唐郑熠讲师学生二零年…
苏州科技学院天平学院模拟电子技术课程设计报告课设名称正弦波方波三角波信号发生器设计专业班级电子信息工程物联网1221学号姓名张琪梁…
江汉大学文理学院课程设计报告课程设计题目现代交通灯控制系统设计部系专业姓名学号指导教师20xx年6月26日目录一设计目的3二设计要…
XXXXXXX机电学院电子课程设计报告论文题目多功能电子表设计专业班级电气工程及其自动化123姓名时间20xx060920xx06…