c++面向对象编程(一)

先说一点题外话,我本人入门学的C++,之前没有接触过其他语言。在C++中的学习中我比较喜欢面向对象这一板块,学的比较好。C语言是因为考试要考,临时抱佛脚学的,所以C++这边就直接从面向对象这边开始。C和C++它们之间差异也就以体现在这里。如果在代码中发现错误,请及时指出,我也是还在学习中,谢谢!
1、计算矩形的周长和面积
源程序 1代码

#include<iostream>

using namespace std;

class REC
{
	int a;
	int b;
public:
	REC(int a1, int b1)
	{
		a=a1;
		b=b1;
	}
	void  circum()//求周长
	{
		int arr=2*(a+b);
		cout<<"矩形的周长为:"<<arr<<endl; 
	}
	void area()//求面积
	{
		int arr1=a*b;
		cout<<"矩形的面积为:"<<arr1<<endl;
	}
};

void main()//实例化
{
	REC stu(2, 3);
	stu.circum ();
	stu.area ();
}

源程序 2代码

#include<iostream>

using namespace std;

class REC
{
	int a;
	int b;
public:
	REC(int t1, int t2)
	{
		a=t1;
		b=t2;
	}
	int circum()
	{
		return 2*(a+b);
	}
	int area()
	{
		return a*b;
	}
};

void main()
{
	int a1, b1;
	cout<<"请输入矩形的边长:";
	cin>>a1>>b1;
	REC r1(a1, b1);
	cout<<"矩形周长"<<r1.circum() <<endl;
	cout<<"矩形面积"<<r1.area ()<<endl;
}

2、创建一个购物的订单类Orders:订单号num、用户编号userNum、商品价 格price、商品编号goodsNum,
插入订单insertOreder(),显示订单showOrder(),更新订单updateOrder
要求:showOrder()方法通过一句cout实现所有的订单信息的打印

#include<iostream>

using namespace std;

class Orders
{
	char num[20];
	char userNum[50];
	char goodsNum[50];
	double price;
public:
	Orders(char *p, char *p1, char *p2,double price1)
	{
		strcpy(num,p);
		strcpy(userNum,p1);
		strcpy(goodsNum,p2);
		price=price1;
	}
	void insertOrder()
	{
	
	}
	void shhowOreder()
	{
		char *p=num;
		char *p1=userNum;
		char *p2=goodsNum;
		cout<<p<<" "<<p1<<" "<<p2<<" "<<price<<endl;
	}
	void undateOrder()
	{
		
	}
};
	void main()
	{
		Orders orders("鞋子"," 0505","1234567",100);
		orders.shhowOreder();
	}

3、用户信息类Userlnfo: name姓名、sex性别、num身份证、mobile手机号
显示用户信息的showUser().打印全部的用户的信息
完成对象的实例化以及初始化,调用showUser()方法

#include<iostream>

using namespace std;

class Userlnfo
{
public:
	char name[20];
	char sex;
	int num;
	int moblie;
public:
	Userlnfo(char *p, char sex1, int num1, int moblie1)
	{
		strcpy(name, p);
		sex=sex1;
		num=num1;
		moblie=moblie1;
	}
	void showUser()
	{
		char *p=name;
		cout<<p<<'\t'<<sex<<'\t'<<num<<'\t'<<moblie<<endl;
	}
};

void main()
{
	Userlnfo use("小明", 'F', 12, 123456789);
	use.showUser ();
	strcpy(use.name , "小红");
	use.sex ='M';
	use.num = 15;
	use.moblie =987654321;
	use.showUser ();
}

在这里插入图片描述
4、创建一个Hero类:name 、zhifu、pifu、gongjili、xueliang
规定:职业 战士2,辅助3;
jineng1(
战士:gongjili+10
辅助:xueliang+10
)
jineng2(
战士:gongjili+100
辅助:xueliang+100
)
要求:实例化两个对象,输出对战结果。

#include<iostream>

using namespace std;

class Hero 
{
public:
	char name[200];
    int zhiye;
	int pifu;
	int gongjili;
	int xueliang;
public:
	Hero(char *p, int zhiye1, int pifu1, int gongjili1, int xueliang1)
	{
		strcpy(name, p);
		zhiye=zhiye1;
		pifu=pifu1;
		gongjili=gongjili1;
		xueliang=xueliang1;
	}
	void jineng1()
	{
		if(zhiye==2)
		{
			int a=gongjili+=10;
			cout<<"战士"<<'\t'<<a<<endl;
		}
		else
		{
			int b=xueliang+=10;
			cout<<"辅助"<<'\t'<<b<<endl;
		}
	}
	void jineng2()
	{
		if(zhiye==2)
		{
			int a1=gongjili+=100;
			cout<<"战士"<<'\t'<<a1<<endl;
		}
		else
		{
			int b1=xueliang+=100;
			cout<<"辅助"<<'\t'<<b1<<endl;
		}
	}
};

void main()
{
	Hero hero1("战士", 2, 5, 100, 150);
	hero1.jineng1 ();
	Hero hero2("辅助", 3, 4, 80, 200);
	hero2.jineng2 ();
	if(hero1.gongjili > hero2.xueliang )
	{
		cout<<"战士赢!!!"<<endl;
	}
	else
	{
		cout<<"辅助赢!!!"<<endl;
	}
}

在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值