第八课四则运算 设计运算器
课堂回顾:
认识小数:
之前有学习过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;
}
课后作业
计算器
课后同学们可以尝试完成三个数字运算的设计,第一次点击之后是前两个数字做运算,第二次点击之后是三个数字做运算,第二次点击之后再显示最后结果