当前位置: 首页 > news >正文

第八课四则运算 设计运算器

课堂回顾:

认识小数:

之前有学习过GOC中的整数类型:int,今天我们来学习一下GOC中的小数类型:float/double

  课堂学习:

四则运算:

同学们数学课上都已经学过了四则运算: 加法 + 减法 - 乘法 x (编程里面是:*) 除法 ÷(编程里面是:/) 如果有两个整数我们就可以进行上述的四则运算,数学上做运算还是比较简单的,那么我们今天会用程序来实现四则运算

我们今天会画出一个计算器,来实现四则运算的功能

思维课:计算器

课堂任务:


今天我们画计算器需要三步: 输入两个整数来做运算 使用GOC中的button 按钮命令来新建四则运算的按钮 实现四则运算的规则,在界面上画出要做的运算的结果

1、输入两个整数

2、button按钮命令

名称:显示一个按钮

功能:button命令生成一个编号是id的按钮,按钮上的文字为string字符串,

col指定了文字的颜色,

size指定了文字的大小,

dir是方向,坐标(x,y)是文字的中心位置,

bgcol为按钮背景色,edge是边框颜色。

说明:如果是简单格式的button(id,string,col,size); 就在pen当前位置显示文字。缺省的bgcol为白色,缺省edgecol为灰色。

样例:

pen.button(1,"确认按钮",0,30,20,100,200,5,3);

现在我们就可以在起点上方100、200距离位置使用button命令显示4个四则运算按钮,即: 加法 +、减法 -、乘法 *、除法/

    pen.button(1,"加法 +",02,50,0,-100,200,5);pen.button(2,"减法 -",02,50,0,-100,100,5);pen.button(3,"乘法 *",02,50,0,100,200,5);pen.button(4,"除法 /",02,50,0,100,100,5);

3、显示结果

有了按钮之后,我们还需要鼠标点击按钮的监控,也就是检测什么时候这个按钮被点击了,那就需要buttonMP(id) 指令

名称:鼠标点击按钮

功能:buttonMP是buton mouse press的简写,buttonMP(id)是判断鼠标是否在点击编号为id的按钮,是返回1,否则返回0。

说明:不是pen的命令,格式不能“pen.”开头。 通常使用buttonMP函数配合button来简单实现判断点击按钮功能。

样例:

p.c(1).rt(90);
p.button(1,"点这里画黑色点",02,23,0,0,60,5);
for (;;){if ( buttonMP(1)) p.oo(10,0);p.fd(1).rt(1);
}
for (;;){if ( buttonMP(1)) {p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a+b, 1, 30);}if ( buttonMP(2)){p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a-b, 1, 30);}
    if ( buttonMP(3)){p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a*b, 1, 30);}if ( buttonMP(4)){p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a/b, 1, 30);}
}

最终代码:

//程序
int main() 
{     int a,b;cin>>a>>b;pen.c(1).rt(90);pen.up();pen.fd(200);pen.down();pen.text("数字:", 1, 30);pen.up();pen.fd(40);pen.down();pen.text(a, 1, 30);pen.up();pen.fd(30);pen.down();pen.text(b, 1, 30);pen.up();pen.bk(270);pen.down();
pen.button(1,"加法 +",02,50,0,-100,200,5);pen.button(2,"减法 -",02,50,0,-100,100,5);pen.button(3,"乘法 *",02,50,0,100,200,5);pen.button(4,"除法 /",02,50,0,100,100,5);
for (;;){if ( buttonMP(1)) {p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a+b, 1, 30);}if ( buttonMP(2)){p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a-b, 1, 30);}if ( buttonMP(3)){p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a*b, 1, 30);}if ( buttonMP(4)){p.fd(100).rt(90);pen.rr(30,30,15);pen.text(a/b, 1, 30);}
}return 0;
}

课后作业

计算器

课后同学们可以尝试完成三个数字运算的设计,第一次点击之后是前两个数字做运算,第二次点击之后是三个数字做运算,第二次点击之后再显示最后结果

简单运算

http://www.xdnf.cn/news/165223.html

相关文章:

  • 三维重建(二十)——思路整理与第一步的进行
  • 2025上海车展| 和芯星通发布覆盖车载全场景的产品方案
  • [Windows] 易剪媒 v0.0.8 绿色版 —— 跨平台AI批量自动剪辑视频工具
  • 罗技Flow跨电脑控制
  • 三菱PLC软元件 定时器 计数器 状态继电器 编码器
  • Volcano 进阶实战 (二) - (网络拓扑/负载感知)调度
  • 深入解析Dify中的文本清洗处理器:CleanProcessor详解
  • 玩转Pygame绘图:从简单图形到炫酷精灵
  • 构造函数有哪些种类?
  • 敦普水性低温烤漆:金属涂装80℃烘烤的防护体系
  • 牛客:BM1 反转链表
  • 利用 functools.lru_cache 优化递归算法
  • GPU 加速库(CUDA/cuDNN)
  • 每日面试实录·滴滴·校招·JAVA
  • MIL、SIL、HIL与Back-to-Back测试详解:从模型到硬件的完整验证链
  • ultralytics 目标检测 混淆矩阵 背景图像 没被记录
  • docker 常用配置
  • 信息系统项目管理工程师备考计算类真题讲解十
  • 数位 DP 详解
  • Python并行计算:2.Python多线程编程:threading模块详解与守护线程实战
  • B3791 [信息与未来 2023] 电路布线
  • c++-模板
  • 2.4.5goweb项目上传到csdn的git仓库
  • 【量化交易笔记】17.多因子的线性回归模型策略
  • 提取office最强悍的软件
  • asammdf 库的文件操作和数据导出:高效管理 MDF 文件
  • 刚体运动 (位置向量 - 旋转矩阵) 笔记 1.1~1.3 (台大机器人学-林沛群)
  • 职场十二法则-马方
  • AnimateCC教学:元件旋转当中平移
  • 桥接模式(Bridge Pattern)详解