创建了 #2016级面向对象程序设计(C++)# 任务:

任务01_1 将字符串逆序存放
问题描述: 用string类创建一个对象,给这个对象从键盘输入一个字符串,然后将字符串逆序存放,并输出。 程序要求: 用string类创建一个对象; 使用cin和cout完成数据输入和输出; 通过循环语句来完成string...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务10_1 矩阵的运算
使用运算符重载完成矩阵的运算。 问题描述: 编写矩阵类MyMatrix,要求:实现构造函数,析构函数,拷贝构造函数以及 + - * =等操作,矩阵中元素既可以连续存放也可以非连续存放,二者选其一即可。 程序要求: MyMatrix...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务05_1 通讯录程序
Record.cpp #include "Record.h" //构造函数 Record::Record(string aName , string aPhone, string aAddress ) { m_strName=aName; m_strPhon...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务06_1 统计箱子数量
#include <iostream> using namespace std; class Box { public: Box(int aL,int aW,int aH); Box(); Box(const Box &r); ~Box(); ...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务06_3 改错题
#include <iostream> using namespace std; class MyClass { public: MyClass(int a); ~MyClass(); void setB(int b); void displayData...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务04_1 直线相交问题
#include <iostream> using namespace std; class Line { public: Line(double a = 0,double b = 0); void display(); ...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务06_3 改错题
问题描述: 阅读下面类的定义,找出程序中的错误,说明错误的原因,并改正(不能修改的也可删除语句)。 程序如下: #include <iostream> using namespace std; class MyClass ...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务09_2 写出构造、析构顺序并解释派生类对象组成成员
1、输出结果: 第一行:0 A |10 B | 第二行:0 A |11 B |33 C |11 D | 第三行:11 -B |11 -A | 第四行:11 -D |33 -C |11 -B |11 -A | 注意:以上的换行是通过main函数中cout<< ...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务12_01 应用抽象类求面积周长
应用抽象类求圆和矩形的面积和周长。 问题描述: 编写形状类Shape是一个抽象类,里面含有输出面积和输出周长的纯虚函数,Circle类和Rectangle类以公有继承的方式继承抽象类,并且完成Shape类中纯虚函数的功能。 程序要求: Sh...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务08_1 日志打印器(Logger)
#include #include using namespace std; class Logger { public: static Logger* GetLogger(); void print(); ...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务12_01 应用抽象类求面积周长
#include #include using namespace std; const double pi = 3.14; class Shape { public: Shape(double a...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务09_1 通过组合和继承实现一个轿车类
设计一个程序实现一个轿车类Car,其中汽车类Vehicle是它的基类,发动机类Engine是汽车类的子对象成员。 问题描述: 写一个Engine类和Vehicle类并利用组合和继承实现Car类。 程序要求: Engine类公有成员包括:...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务05_1 通讯录程序
请认真阅读任务要求完成任务。 问题描述: 编写一个通讯录应用程序,应至少具有添加记录、删除记录、浏览记录、查找记录四种功能,程序的项目文件结构如图所示,部分文件代码已已经在下面给出,只需实现Record.cpp、Node.cpp、List.cp...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务12_02 编写冒泡排序函数模板
#include <iostream> using namespace std; template <typename T> inline void mySwap(T & a, T & b) { T temp = a; a = ...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务03_1 判断两圆是否相交。
问题描述: 写一个圆类,通过全局函数funJudge来判断两个圆是否相交? 程序要求: 通过类Circle来存储圆的信息。 私有成员变量包括: 圆的X坐标:int m_iX; 圆的Y坐标...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务07_2 定义类A实现main函数中的调用方式。
问题描述: 写一个A类,借助this指针实现main函数中调用方式。 程序要求: 私有成员包括: 数据成员m:int m_im; 数据成员n:int m_in; 公有成员包括: 含...

创建了 #2016级面向对象程序设计(C++)# 任务:

参考答案任务09_1 通过组合和继承实现一个轿车类
#include <iostream> using namespace std; class Engine { public: Engine(int aED,int aEP); int m_iDisplacement; int m_iPower; }; ...

创建了 #2016级面向对象程序设计(C++)# 任务:

任务11_1 共用接口的队列和栈的实现
    编写一个程序,建立两种类型的表:队列和栈,利用纯虚函数的方法,使它们可以共用相同接口访问。 问题描述: 写一个抽象类List里面含有Node类的指针成员,和两个纯虚函数。Queue类和Stack类是List的子类,通过实现纯虚函数完成存储和删除功能...

嘿嘿嘿,日常忘记作业

//任务12-01
#include<iostream>
#include<string>
using namespace std;
class Shape
{
public:
	Shape(double a = 0, double p = 0){
		m_dArea=a;
		m_dPerimeter=p;
	}
	virtual void displayArea() = 0;
	virtual void displayPerimeter() = 0;
private:
	double m_dArea;
	double m_dPerimeter;
};
class Circle:public Shape
{
public:
	Circle(double r = 0)
	{
		m_dR=r;
	}
	virtual void displayArea()
	{
		cout<<"The Circle's Area is"<<3.14*m_dR*m_dR<<endl;
	}
	virtual void displayPerimeter()
	{
		cout<<"The Circle's Perimeter is "<<2*3.14*m_dR<<endl;
	}
private:
	double m_dR;
};
class Rectangle:public Shape
{
public:
	Rectangle(double l = 0, double w = 0)
	{
		m_dLength=l;
		m_dWidth=w;
	}
	virtual void displayArea()
	{
		cout<<"The Rectangle's Area is"<<m_dLength*m_dWidth<<endl;
	}
	virtual void displayPerimeter()
	{
		cout<<"The Rectangle's Perimeter is"<<2*m_dWidth+2*m_dLength<<endl;
	}
private:
	double m_dLength;
	double m_dWidth;
};
void displayAreaAndPerimeter(Shape &r)
{
	r.displayArea();
	r.displayPerimeter();
}
int main(void){
	Circle c1(9);
	Rectangle r1(2,4);
	displayAreaAndPerimeter(c1);
	displayAreaAndPerimeter(r1);
	return 0;
}
//任务12-02
#include<iostream>
#include<string>
using namespace std;
template <typename T>
inline void mySwap(T & a,T & b)
{
	T t;
	t=a;
	a=b;
	b=t;
}
template <typename T>
void bubbleSort(T* const arr,int size)
{
	int i,j=1,m=1;
	for(;m&&j<size;j++)
	{
		m=0;
		for(i=0;i<size-j;i++)
		{
			if(arr[i]>arr[i+1])
			{
				mySwap<T>(arr[i],arr[i+1]);
				m=1;
			}
		}
	}
}
template <typename T >
void printResult(T* const arr, int size)
{
	int i=1;
	for(i=0;i<size;i++)
	{
		cout<<arr[i];
	}
	cout<<endl;
}
int main(void){
         int arri[10] = { 4, 2, 5, 7, 9, 1, 3, 8, 0, 6 };
         bubbleSort<int>(arri, 10);
         printResult<int>(arri,10);
 
         double arrd[10] = {4.4,2.2,5.5,7.7,9.9,1.1,3.3,8.8,0,6.6};
         bubbleSort<double>(arrd, 10);
         printResult<double>(arrd,10);
 
         char arrc[10] = "aefdighcb";
         bubbleSort<char>(arrc, strlen(arrc));
         printResult<char>(arrc, strlen(arrc));   
         return 0;
}

老师昨晚忘记交了,不好意思

#include<iostream>
#include<stdlib.h>
using namespace std;
class Engine{
public:
	Engine(int aED=0,int aEP=0){
		m_iDisplacement=aED;
		m_iPower=aEP;
	};
	int m_iDisplacement;
	int m_iPower;
};
class Vehicle{
protected:
	Engine m_Engine;	//组合
	double m_dWeight;
	int m_iWheels;
};
class Car:public Vehicle{
public:
	Car(int aED,int aEP,double aVWe,int aVWh,int aCP)
	{
		m_dWeight=aVWe;
		m_iWheels=aVWh;
		m_iPassengers=aCP;
	};
	void PrintData(){
		cout<<"马力:"<<m_iPower<<"匹"<<endl;
		cout<<"排量:"<<m_iDisplacement<<"L"<<endl;
		cout<<"车重:"<<m_dWeight<<"吨"<<endl;
		cout<<"车轮数:"<<m_iWheels<<"个"<<endl;
		cout<<"载客数:"<<m_iPassengers<<"人"<<endl;
	};
private:
	int m_iDisplacement;
	int m_iPower;
	int m_iPassengers;
};
int main(void)
{   
	Car c1(2,140,1.5,4,6);
	c1.PrintData();
	system("pause");
	return 0;
}
//1&2:分析输出结果: 
//	0 A | 10 B |  
//	在堆区定义一个B类的对象,B类的protectde中A类定义,故先调用A的构造函数,再调用B的构造函数。
//	0 A | 11 B | 33 C | 11 D |  
//	对D类定义一个对象objd,因为D类公有继承了类B,C,所以先调用A的构造函数,再调用B的构造函数,
//	又有D中有对C的定义,故再调用C的构造函数,最后调用D的构造函数。
//      11 -B | 11 -A |
//	将对象objd继承自基类B,C中的值赋值给B类之前的m_ia;
//	释放内存空间,先调用B类的析构函数,再调用A类的析构函数。
//       11-D| 33-C| 11-B|11 –A|
//	调用析构函数,调用顺序跟构造函数相反。
//3:对象objd的数据成员和访问权限: //	公有继承自基类B,C的数据成员;protected m_ib;D类中定义的public m_ic
//      public m_ia;
//	派生类D自己的私有数据成员m_id
#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
class zero
{
public:
	string a0,b0,c0,d0,e0,f0,g0;
	zero()
	{
		a0=".###.";
		b0="#...#";
		c0="#...#";
		d0=".....";
		e0="#...#";
		f0="#...#";
		g0=".###.";
	}
};
class one
{
public:
	string a1,b1,c1,d1,e1,f1,g1;
	one()
	{
		a1="...";
		b1=".#.";
		c1=".#.";
		d1=".#.";
		e1=".#.";
		f1=".#.";
		g1="...";
	}
};
class two
{
public:
	string a2,b2,c2,d2,e2,f2,g2;
	two()
	{
		a2=".###.";
		b2="....#";
		c2="....#";
		d2=".###.";
		e2="#....";
		f2="#....";
		g2=".###.";
	}
};
class three
{
public:
	string a3,b3,c3,d3,e3,f3,g3;
	three()
	{
		a3=".###.";
		b3="....#";
		c3="....#";
		d3=".###.";
		e3="....#";
		f3="....#";
		g3=".###.";
	}
};
class four
{
public:
	string a4,b4,c4,d4,e4,f4,g4;
	four()
	{
		a4=".....";
		b4="#...#";
		c4="#...#";
		d4=".###.";
		e4="....#";
		f4="....#";
		g4=".....";
	}
};
class five
{
public:
	string a5,b5,c5,d5,e5,f5,g5;
	five()
	{
		a5=".###.";
		b5="#....";
		c5="#....";
		d5=".###.";
		e5="....#";
		f5="....#";
		g5=".###.";
	}
};
class six
{
public:
	string a6,b6,c6,d6,e6,f6,g6;
	six()
	{
		a6=".###.";
		b6="#....";
		c6="#....";
		d6=".###.";
		e6="#...#";
		f6="#...#";
		g6=".###.";
	}
};
class seven
{
public:
	string a7,b7,c7,d7,e7,f7,g7;
	seven()
	{
		a7=".###.";
		b7="....#";
		c7="....#";
		d7=".....";
		e7="....#";
		f7="....#";
		g7=".....";
	}
};
class eight
{
public:
	string a8,b8,c8,d8,e8,f8,g8;
	eight()
	{
		a8="..###..";
		b8=".#...#.";
		c8=".#...#.";
		d8="..###..";
		e8=".#...#.";
		f8=".#...#.";
		g8="..###..";
	}
};
class nine
{
public:
	string a9,b9,c9,d9,e9,f9,g9;
	nine()
	{
		a9="..###..";
		b9=".#...#.";
		c9=".#...#.";
		d9="..###..";
		e9=".....#.";
		f9=".....#.";
		g9="..###..";
	}
};
class add
{
public:
	string aa,ba,ca,da,ea,fa,ga;
	add()
	{
		aa=".....";
		ba="..#..";
		ca="..#..";
		da=".###.";
		ea="..#..";
		fa="..#..";
		ga=".....";
	}
};
class minus
{
public:
	string am,bm,cm,dm,em,fm,gm;
	minus()
	{
		am=".....";
		bm=".....";
		cm=".....";
		dm=".###.";
		em=".....";
		fm=".....";
		gm=".....";
	}
};
class times
{
public:
	string at,bt,ct,dt,et,ft,gt;
	times()
	{
		at=".....";
		bt=".....";
		ct=".#.#.";
		dt="..#..";
		et=".#.#.";
		ft=".....";
		gt=".....";
	}

};

class Pic:public zero,public one,public two,public three,public four,public five,public six,public seven,public eight,public nine,public add,public minus,public times
{
public:
	void input()//输入式子
	{
		cout<<"请输入算式:";
		cin>>p1>>ch>>p2;
	}
	void output(char* S,int len)//输出结果和式子
	{
		string a="",b="",c="",d="",e="",f="",g="";
		int i=len;
		while(i>0)
		{
			switch (S[i-1])
			{
			case 0:
				{a=a+a0;b=b+b0;c=c+c0;d=d+d0;e=e+e0;f=f+f0;g=g+g0;break;}
			case 1:
				{a=a+a1;b=b+b1;c=c+c1;d=d+d1;e=e+e1;f=f+f1;g=g+g1;break;}
			case 2:
				{a=a+a2;b=b+b2;c=c+c2;d=d+d2;e=e+e2;f=f+f2;g=g+g2;break;}
			case 3:
				{a=a+a3;b=b+b3;c=c+c3;d=d+d3;e=e+e3;f=f+f3;g=g+g3;break;}
			case 4:
				{a=a+a4;b=b+b4;c=c+c4;d=d+d4;e=e+e4;f=f+f4;g=g+g4;break;}
			case 5:
				{a=a+a5;b=b+b5;c=c+c5;d=d+d5;e=e+e5;f=f+f5;g=g+g5;break;}
			case 6:
				{a=a+a6;b=b+b6;c=c+c6;d=d+d6;e=e+e6;f=f+f6;g=g+g6;break;}
			case 7:
				{a=a+a7;b=b+b7;c=c+c7;d=d+d7;e=e+e7;f=f+f7;g=g+g7;break;}
			case 8:
				{a=a+a8;b=b+b8;c=c+c8;d=d+d8;e=e+e8;f=f+f8;g=g+g8;break;}
			case 9:
				{a=a+a9;b=b+b9;c=c+c9;d=d+d9;e=e+e9;f=f+f9;g=g+g9;break;}
			case '+':
				{a=a+aa;b=b+ba;c=c+ca;d=d+da;e=e+ea;f=f+fa;g=g+ga;break;}
			case '-':
				{a=a+am;b=b+bm;c=c+cm;d=d+dm;e=e+em;f=f+fm;g=g+gm;break;}
			case '*':
				{a=a+at;b=b+bt;c=c+ct;d=d+dt;e=e+et;f=f+ft;g=g+gt;break;}
			default:
			break;
			}
			i--;
		}
		cout<<"..."<<a<<endl;
		cout<<"..."<<b<<endl;
		cout<<"..."<<c<<endl;
		cout<<"..."<<d<<endl;
		cout<<"..."<<e<<endl;
		cout<<"..."<<f<<endl;
		cout<<"..."<<g<<endl;
	}
	void calculate()//计算,存入数组
	{
		leny=0;
		switch (ch)
		{
		case '+':
			{p3=p1+p2;break;}
		case '-':
			{p3=p1-p2;break;}
		case '*':
			{p3=p1*p2;break;}
		default:
			break;
		}
		lenx=0;
		int q1=p1,q2=p2,q3=p3;
		if(q1<0)q1=q1*(-1);
		if(q2<0)q2=q2*(-1);
		if(q3<0)q3=q3*(-1);
		if(q2==0){x[lenx]=0;lenx++;}
		while(q2)
		{
			x[lenx]=q2%10;
			lenx++;
			q2=q2/10;
		}
		if(p2<0)
		{
			x[lenx]='-';
			lenx++;
		}
		x[lenx]=ch;
		lenx++;
		if(q1==0){x[lenx]=0;lenx++;}
		while(q1)
		{
			x[lenx]=q1%10;
			lenx++;
			q1=q1/10;
		}
		if(p1<0)
		{
			x[lenx]='-';
			lenx++;
		}if(q3==0){y[leny]=0;leny++;}
		while(q3)
		{
			y[leny]=q3%10;
			leny++;
			q3=q3/10;
		}
		if(p3<0)
		{
			y[leny]='-';
			leny++;
		}
	}
	char x[23],y[11];//存储算式和结果
	int lenx,leny;
	int p1,p2,p3;//两个操作数和结果
	char ch;//运算符
};

int main(void)
{
	Pic a;
	a.input();
	a.calculate();
	cout<<"输入的算式为:"<<endl;
	a.output(a.x,a.lenx);
	cout<<"输出的结果为:"<<endl;
	a.output(a.y,a.leny);
	system("pause");
    return 0;
}
/*
 说明:字符串逆置
 姓名:白新正
 学号:2016011328
 班级:1班
 日期:2017/09/24
*/
#include<iostream>
#include<string>
using namespace std;

int main()
{
	string str;
	cout<<"请输入字符串"<<endl;
	cin>>str;
	cout<<"您输入的字符串为"<<endl;
	cout<<str<<endl;
	int len=str.size();
	for(int i=0;i<=len/2;i++)
	{
		int temp;
		temp=str[i];
		str[i]=str[len-1-i];
		str[len-1-i]=temp;
	}
	cout<<"逆置后的字符串为"<<endl;
	cout<<str<<endl;
	system("pause");
	return 0;
}
/*
 说明:角谷猜想
 姓名:白新正
 学号:2016011328
 班级:1班
 日期:2017/09/24
*/
#include<iostream>
using namespace std;

int main(void)
{
	//输入一个整数
	int n;
	cout<<"请输入一个正整数"<<endl;
	cin>>n;
	//循环进行角谷猜想
	while(n!=1)
	{
		if(n%2==0)
		{
			cout<<n<<"/2"<<"="<<n/2<<endl;
			n=n/2;
		}
		else
			n=n*3+1;

	}
	cout<<"输出数n为"<<n<<endl;
	system("pause");
	return 0;
}
/*
 说明:猴子吃桃
 姓名:白新正
 学号:2016011328
 班级:1班
 日期:2017/09/24
*/
#include<iostream>
using namespace std;

int main(void)
{
	//猴子吃桃的天数N
	int N;
	cout<<"请输入猴子吃桃的天数"<<endl;
	cin>>N;
	//迭代计算桃子总数
	int i,si,s=1;
	for(i=N-1;i>=1;i--)
	{
		si=2*s+2;
		s=si;
		cout<<"第"<<i<<"天,桃子的个数为"<<s<<endl;
	}
	cout<<"共"<<N<<"天,第一天桃子的总数为"<<si<<endl;
	system("pause");

	return 0;
}
一.将字符串逆序存放
#include<iostream>
#include<string>
using namespace std;
int main ()
{
	string s;
	cin >> s;
	int n=0,i=0,j,t;
	while(s[n]!=0)
	{
		n++;
	}
	for(j=n-1;i<j;i++)
	{
		t=s[i];
		s[i]=s[j];
		s[j]=t;
		j--;
	}
	cout << s;
	return 0;
}
二.角谷猜想
#include<iostream>
using namespace std;
int main ()
{
	int n;
	cin >> n;
	cout <<"演算过程:" << endl;
	while(n!=1)
	{
		if(n%2==0)
		{
			cout << n << "/" << 2 << "=" << n/2 << endl;
			n=n/2;
		}
		else
		{
			cout << n << "*" << 3 << "+" << 1 << "=" << n*3+1 << endl;
			n=3*n+1;
		}
	}
	cout << "计算结果:" << n;
	return 0;
}
三.猴子吃桃
#include<iostream>
using namespace std;
int main ()
{
	int n,s=1;
	cin >> n;
	while(n!=1)
	{
		s=s+1;
		s=2*s;
		n--;
	}
	cout << s;
	return 0;
}

我是武永亮,跟我学C++,保证上清华。