C++进阶01——示例

需求:开发一个用于四则运算的类

提供setOperator函数设置运算类型

提供setParameter函数设置运算参数

提供result函数进行运算,其返回值表示运算的合法性,通过引用参数返回结果

Operator.h

复制代码
class Operator{
private:
	char mOp;
	double mp1;
	double mp2;
public:
	bool setOperator(char op);
	void setParameter(double p1,double p2);
	bool result(double& r);		
};

Operator.cpp

复制代码
#include "Operator.h"
bool Operator ::setOperator(char op){
	bool ret=false;
	if((op=='+')||(op=='-')||(op=='*')||(op=='/')){
		ret=true;
		mOp=op;
	}
	else{
		mOp='\0';
	}
	return ret;
}
void Operator::setParameter(double p1,double p2){
	mp1=p1;
	mp2=p2;
}
bool Operator::result(double& r){
	bool ret=true;
	switch (mOp) {
		case '/':
			if(mP2==0){
				ret=false;
			}
			else{
				r=mP1/mP2;
			}
			break;
		case '+:
			r=mP1+mP2;
			//TODO
			break;
		case '-:
			r=mP1-mP2;
			//TODO
			break;
		case '*':
			r=mP1*mP2;
			//TODO
			break;
		default:
			ret=false;
			//TODO
			break;
	}
	return ret;
}

main.cpp

复制代码
#include "Operator.h"
int main(){
	Operator op;
	double r=0;
	op.setOperator('/');
	op.setParameter(9,3);
	if(op.result(r)){
		printf("r=%lf\n",r);
	}
	else{
		printf("Calculate error!\n");
	}
	return 0;
}
相关推荐
Lhan.zzZ1 天前
笔记_2026.4.28_004
c++·ide·笔记·qt
MATLAB代码顾问1 天前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
wuminyu1 天前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
万粉变现经纪人1 天前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒1 天前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼1 天前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
木喃的井盖1 天前
无锁队列细节
c++·工程
王老师青少年编程1 天前
csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:输出亲朋字符串
c++·字符串·csp·高频考点·信奥赛·专项训练·输出亲朋字符串
WBluuue1 天前
数据结构与算法:莫队(一):普通莫队与带修莫队
c++·算法
小郑加油1 天前
python学习Day12:pandas安装与实际运用
开发语言·python·学习