易语言计算器源码(学习)
- 格式:doc
- 大小:37.00 KB
- 文档页数:4
简易计算器(源码)以下是一个简易计算器的Python源码,用于执行基本的加、减、乘、除运算:```python#简易计算器def add(x, y):"""相加"""return x + ydef subtract(x, y):"""相减"""return x - ydef multiply(x, y):"""相乘"""return x * ydef divide(x, y):"""相除"""if y != 0:return x / yelse:return "除数不能为零!"print("选择操作:")print("1. 相加")print("2. 相减")print("3. 相乘")print("4. 相除")choice = input("输入你的选择(1/2/3/4): ")num1 = float(input("输入第一个操作数: "))num2 = float(input("输入第二个操作数: "))if choice == '1':print(num1, "+", num2, "=", add(num1, num2))elif choice == '2':print(num1, "-", num2, "=", subtract(num1, num2)) elif choice == '3':print(num1, "*", num2, "=", multiply(num1, num2)) elif choice == '4':print(num1, "/", num2, "=", divide(num1, num2)) else:print("无效的选择")```以上代码中,我们定义了四个函数:`add`、`subtract`、`multiply`和`divide`,分别用于执行相加、相减、相乘和相除的操作。
易语⾔编写计算器教学教⼤家⽤易语⾔实现加减乘除的运算!
1、先打开易语⾔!添加4个按钮!3个编辑框!布置好
2、把标题改⼀下
3、然后开始写代码!先写加的吧!双击加的按钮!来到代码区域!代码如下!看图!⼤家照着写就可以了!
4、再到减的!看图!也是照着写就⾏了!
5、这是乘法的!照着写!那个乘号是按Shift再按U上⾯的8!易语⾔会⾃动转化成乘号的!
6、接下来是除法!如图那个除号打右斜杠就可以了!易语⾔也会⾃动转化成除号的!
7、好接下来我们试试看!按F5运⾏!先试试加法!如图⼀!12+2=14!没有错!再试试减法!图⼆!乘法图三!除法图四!看吧!都对了!
8、/8
是不是很简单啊?⼤家可以⾃⼰制作⼀个⼩计算器哦!
是不是很简单啊?⼤家可以⾃⼰制作⼀个⼩计算器哦!
总结:上⾯就是通过8个简单的步骤⽤易语⾔编写⼀款技巧器⼩软件,感谢⼤家的阅读和对的⽀持。
说明(数值1。
数值2。
请输入需要计算的数值都是标签。
计算结果显示在“请输入需要计算的数值”那个位置。
输入计算数值的位置是两个编辑框。
其他六个是按钮,先把图形界面做好,名字按下面程序中给定的命名,代码完全复制过去,那么就能够用了)
.版本2
.程序集窗口程序集1
.子程序_结果标签_反馈事件, 整数型
.参数参数一, 整数型
.参数参数二, 整数型
.子程序_相加_被单击
结果标签.标题=“相加结果:”+到文本(到数值(数值1编辑框.内容) +到数值(数值2编辑框.内容))
.子程序_按钮2_被单击
结果标签.标题=“相减结果:”+到文本(到数值(数值1编辑框.内容) -到数值(数值2编辑框.内容))
.子程序_相乘_被单击
结果标签.标题=“相乘结果:”+到文本(到数值(数值1编辑框.内容) ×到数值(数值2编辑框.内容))
.子程序_相除_被单击
.如果(到数值(数值2编辑框.内容) =0)
信息框(“除数不能为0”, #错误图标, “错误!”)
.否则
.如果结束
结果标签.标题=“相除结果:”+到文本(到数值(数值1编辑框.内容) ÷到数值(数值2编辑框.内容))
.子程序_清零_被单击
数值1编辑框.内容=“”
数值2编辑框.内容=“”
结果标签.标题=“请输入需要计算的数值”
.子程序_退出_被单击
.局部变量返回值, 整数型
.局部变量如果真, 整数型
返回值=信息框(“确定要退出程序吗?”, #是否钮+#信息图标, )
.如果真(返回值=#是钮)
结束()
.如果真结束。
VB+易语言简单编写计算器语音教程
VB+易语言简单编写计算器语音教程
网址收藏夹
这节课要学习的是VB与易语言简单编写计算器同详细介绍VB 与易语言的一些相同之处
进阶学习--更容易掌握基础
首先打开网址收藏夹易语言同VB,我们先添加组件.
然后修改组件标题.由于是语音教程,大家看操作.
且
英文名称:and
如果
英文名称:if
到数值
英文名称:val
或
英文名称:or
信息框
英文名称:MsgBox
VB不等于
<>
简单的计算器就演示完成了
用易语言打基础然后去学习VB 易语言--VB--1.JAVA 2.VC++。
. 版本2.程序集窗口程序集1.子程序_按钮1_被单击显示框.加入文本(“1”).子程序_按钮2_被单击显示框.加入文本(“2”).子程序_按钮3_被单击显示框.加入文本(“3”).子程序_按钮4_被单击显示框.加入文本(“4”).子程序_按钮5_被单击显示框.加入文本(“5”).子程序_按钮6_被单击显示框.加入文本(“6”).子程序_按钮7_被单击显示框.加入文本(“7”).子程序_按钮8_被单击显示框.加入文本(“8”).子程序_按钮9_被单击显示框.加入文本(“9”).子程序_按钮0_被单击显示框.加入文本(“0”).子程序_按钮点_被单击显示框.内容=显示框.内容+“.”.子程序_按钮加_被单击第一个数.内容=显示框.内容符号框.内容=“+”显示框.内容=“”.子程序_按钮减_被单击第一个数.内容=显示框.内容符号框.内容=“-”显示框.内容=“”.子程序_按钮乘_被单击第一个数.内容=显示框.内容符号框.内容=“*”显示框.内容=“”.子程序_按钮除_被单击第一个数.内容=显示框.内容符号框.内容=“/”显示框.内容=“”.子程序_按钮等于_被单击.如果(符号框.内容=“+”)显示框.内容=到文本(到数值(第一个数.内容) +到数值(显示框.内容)).否则.如果(符号框.内容=“-”)显示框.内容=到文本(到数值(第一个数.内容) -到数值(显示框.内容)) .否则.如果(符号框.内容=“*”)显示框.内容=到文本(到数值(第一个数.内容) ×到数值(显示框.内容)).否则.如果(显示框.内容≠“0”).如果(符号框.内容=“/”)显示框.内容=到文本(到数值(第一个数.内容) ÷到数值(显示框.内容)).否则.如果结束.否则信息框(“错误,被除数不能为0 ”, 0, ).如果结束.如果结束.如果结束.如果结束.子程序_按钮清空_被单击显示框.内容=“”.子程序_按钮清空_被双击, 逻辑型.参数横向位置, 整数型.参数纵向位置, 整数型.参数功能键状态, 整数型第一个数.内容=“”/book_3869.html。
.程序集程序集1.子程序_启动子程序, 整数型, , 本子程序在程序启动后最先执行.局部变量数字1, 文本型.局部变量数字2, 文本型.局部变量符号, 文本型.局部变量a, 文本型标准输出(, #换行符+“欢迎使用加减乘除计算器”).循环判断首()标准输出(, #换行符+#换行符+“请输入第一个数字:”)数字1 =标准输入()标准输出(, “请输入第二个数字:”)数字2 =标准输入()标准输出(, “请输入运算的符号:”)符号=标准输入().如果(符号=“+”)标准输出(, “两数和为:”+到文本(到数值(数字1) +到数值(数字2))).否则.如果(符号=“-”)标准输出(, “两数差为:”+到文本(到数值(数字1) -到数值(数字2))) .否则.如果(符号=“*”)标准输出(, “两数积为:”+到文本(到数值(数字1) ×到数值(数字2))).否则.如果(符号=“/”).判断循环首(数字2 =“0”)标准输出(, #换行符+“除数不能为零请重新输入”)数字2 =标准输入().判断循环尾()标准输出(, “两数商为:”+到文本(到数值(数字1) ÷到数值(数字2))).否则标准输出(, “符号请选择+-*/中的一个”).如果结束.如果结束.如果结束.如果结束标准输出(, #换行符+#换行符+“退出请按q键”)a =标准输入().循环判断尾(a ≠“q”且a ≠“Q”)标准输出(, #换行符+#换行符+#换行符+“感谢您对本产品的支持,欢迎再次使用!”)延时(2500)返回(0) ' 可以根据您的需要返回任意数值。
易语言常用源码1000例
目录
1.易语言简介
2.易语言源码的作用
3.1000 例源码的涵盖范围
4.如何学习和使用这些源码
5.总结
正文
易语言是一门以中文编程为特点的编程语言,它具有简单易学、高效实用的优势,深受广大程序员喜爱。
在易语言的学习和应用过程中,源码的作用不可忽视,它能帮助我们快速掌握编程技巧,理解程序运行原理,提高编程效率。
本文为大家整理了 1000 例易语言常用源码,这些源码涵盖了易语言的各个方面,包括基础语法、函数库、窗口与对话框、文件操作、网络编程等。
通过学习这些源码,可以让你更深入地了解易语言编程的各个细节,为你的项目开发提供有力的支持。
在学习和使用这些源码的过程中,建议采取以下方法:
1.先了解源码的原理和功能,再动手实践。
这样可以让你更好地理解源码的运行机制,为以后的开发工作打下坚实基础。
2.学会举一反三,根据源码的实现原理,尝试修改或扩展功能,以满足不同的需求。
3.多与同行交流,分享学习心得和经验,提高自己的编程水平。
第1页共1页。
基于S3C2410 ARM9 的计算器小程序,下面是源代码。
以及7279 接口和相应的驱动程序。
#include "2410addr.h"//加载地址一些最基本的地址#include <string.h>#include "7279.h"//7279控制数码管和键盘的int counter=0,operation=0,edge=0;//counter是用来计算你输入的次数的你琽peration 用来判断是否有intkey_number1=0,key_number2=0,key_number3=0,key_number=0,math=0,out_bit[6] ,yes_key=0; int allnumber[20];void result(){int n=counter-1;int i=0;key_number1=0;key_number2=0;key_number3=0;for(i=0;i<edge-1;i++)key_number1= (key_number1*10+allnumber[i]);for(i=edge;i<=n;i++)key_number2= (key_number2*10+allnumber[i]);i=edge-1;switch(allnumber[i]){case 10: key_number3 = key_number1 + key_number2;break;case 11: key_number3 = key_number1 - key_number2;break;case 12: key_number3 = key_number1 * key_number2;break;case 13: key_number3 = key_number1 / key_number2;break;}for(i=0;i<6;i++){out_bit[i]= key_number3%0x0a;key_number3 = key_number3/0x0a;write7279(DECODE1+i,out_bit[i]);}}void __irq Keyaddnumb(void){yes_key=1;rINTMSK|=(BIT_EINT2);//key_number=read7279(CMD_READ);key_number=read7279(CMD_READ);ClearPending(BIT_EINT2); //清除中断标志rINTMSK&=~(BIT_EINT2);//yes_key=0;}void Main(){int j=0;Init7279();//EINT2 RiserGPFCON = (rGPFCON&0xff0f)|0x0060; //GPF2:Interrupt;GPF3:Out 7279CS //extern int p=0;//for(p=0;p<20;p++)allnumber[p]=0;send_byte(CMD_RESET);write7279(0x98,0xff);rEXTINT0= (rEXTINT0&0xffff00FF)|0x00000400; pISR_EINT2=(unsigned)Keyaddnumb; rINTMOD=0x0; //设置为IRQ模式rINTMSK&=~(BIT_EINT2); //打开keyboard中断do{if(yes_key==1){switch(key_number){case 0x03: key_number = 0;operation=0;break; case 0x0b: key_number = 1;operation=0;break; case 0x13: key_number = 2;operation=0;break; case 0x1b: key_number = 3;operation=0;break; case 0x04: key_number = 4;operation=0;break; case 0x0c: key_number = 5;operation=0;break; case 0x14: key_number = 6;operation=0;break; case 0x1c: key_number = 7;operation=0;break; case 0x05: key_number = 8;operation=0;break; case 0x0d: key_number = 9;operation=0;break; case 0x15: key_number = 10;operation=1;break; case 0x1d: key_number = 11;operation=2;break; case 0x06: key_number = 12;operation=3;break; case 0x0e: key_number = 13;operation=4;break; case 0x16: key_number = 14;operation=5;break;case 0x1e: key_number = 15;operation=6;break; } if(key_number==14) { result(); for(j=0;j<19;j++) allnumber[j]=0; counter=0;edge=0; } else if(key_number ==15) { // while(1){ //for(j=0;j<1000000;j++)short_delay(); send_byte(CMD_RESET); } /*Init7279();//EINT2 Rise rGPFCON = (rGPFCON&0xff0f)|0x0060;//GPF2:Interrupt;GPF3:Out 7279CS rEXTINT0= (rEXTINT0&0xffff00FF)|0x00000400; pISR_EINT2=(unsigned)Keyaddnumb; rINTMOD=0x0; //设置为IRQ模式rINTMSK&=~(BIT_EINT2); //打开keyboard中断//result(); */ //break; // } else{ allnumber[counter++]=key_number; } yes_key=0; } if(yes_key==0&&operation==0) { int j=0,p; if(edge<1&&counter>0) { //if(edge<1){ for(j=1;j<=counter;j++)write7279(DECODE1+5-j+1,allnumber[j-1]); }elseif(edge>1&&counter>0){send_byte(CMD_RESET);write7279(0x98,0xff);for(j=1;j<=counter-edge;j++)write7279(DECODE0+5+1-j,allnumber[edge+j-1]);}//else send_byte(CMD_RESET);}elseif(0<operation<5){edge=counter;operation=0;}}while(1);#include "2410addr.h"#include "7279.h"void Init7279(void){rGPEUP = rGPEUP|0x3800; //使用GPE11 GPE12 GPE13,去掉对应上拉功能rGPECON = (rGPECON&0xf03fffff)|0x05000000; // GPE11:In Data;GPE12:Out Data;GPE13:Out CLKrGPFUP = rGPFUP|0x0c;//使用GPF2 GPF3//rGPFCON = (rGPFCON&0xff0f)|0x0040; //GPF2:In Key;GPF3:Out 7279CS rGPFCON = (rGPFCON&0xff0f)|0x0060; //GPF2:In Key;GPF3:Out 7279CSrGPFDAT = rGPFDAT|0x08; //GPF3=1rGPFDAT = rGPFDAT&0xf7; //GPF3=0 选通7279rGPGUP = rGPGUP|0x0040; //使用GPG6,去掉对应上拉功能rGPGCON = (rGPGCON&0xffffcfff)|0x01000; //GPG6:Out 74H125 C1&(~C2) rGPGDAT = rGPGDAT&0xffbf; //GPG6=0}void write7279(unsigned char cmd ,unsigned char dta){send_byte(cmd);send_byte(dta);}unsigned char read7279(unsigned char command) {send_byte(command);return(receive_byte());}void send_byte(unsigned char out_byte) { unsigned char i;setcsLOW;long_delay();for(i=0;i<8;i++){if(out_byte&0x80){setdatHIGH;}else{setdatLOW;}setclkHIGH;short_delay();setclkLOW;short_delay();out_byte= out_byte*2;}setdatLOW;}unsigned char receive_byte(void){unsigned char i, in_byte;setdatZ;short_delay();for(i=0;i<8;i++){setclkHIGH;short_delay();in_byte=in_byte*2;if(dat){in_byte = in_byte|0x01; } setclkLOW;short_delay();}setdatL;return (in_byte);}void long_delay(void) {unsigned char i;for(i=0;i<0x30;i++);}void short_delay(void) {unsigned char i;for(i=0;i<0x0a;i++);}void delay10ms(unsigned char time) {unsigned char i;unsigned int j;for(i=0;i<time;i++){for(j=0;j<0x3300;j++){if(!key){//key_int();}}}}#ifndef __7279_H__#define __7279_H__void write7279(unsigned char,unsigned char); unsigned char read7279(unsigned char); void send_byte(unsigned char);unsigned char receive_byte(void);。
易语言九九乘法表源码
易语言是一种基于中文的编程语言,它的语法和结构与中文语言类似,使得编程更加容易理解和学习。
下面是一个易语言的九九乘法表的源码示例:
.程序集网络支持库
主程序
.局部变量ret,文本型
For i As 文本型= "1" To "9"
For j As 文本型= "1" To i
ret.内容= ret.内容& i.内容& "x" & j.内容& "=" & (i*j).内容& " "
Next
ret.内容= ret.内容& 换行符
Next
输出(ret.内容)
以上代码会在屏幕上输出一个九九乘法表。
你可以根据自己的需要修改这个代码,例如改变输出的格式,或者将结果输出到文件等。
AStack.h#ifndef ASTACK_HEADER#define ASTACK_HEADER#include <iostream>using namespace std;template <class Elem> class AStack{private:int size;int top;Elem* listArray;public:AStack(){ size = 100; top = 0; listArray = new Elem[100]; }~AStack(){ delete [] listArray; }void clear() { top = 0; }bool push(Elem& item){if (top == size) return false;else { listArray[top++] = item; return true; } }bool pop(Elem& it){if (top == 0) return false;else { it = listArray[--top]; return true; }}bool topValue(Elem& it) const{if (top == 0) return false;else { it = listArray[top - 1]; return true; } }int length() const { return top; }};#endifFunction.cpp#include "function.h"#include "AStack.h"#include <math.h>#include <stdio.h>void calUserInfo(){cout<<"\t* 智能计算器V1.0*"<<endl;cout<<"\t*********************"<<endl;cout<<"\t* 1 * 2 * 3 * + * - *"<<endl;cout<<"\t* 4 * 5 * 6 * * * / *"<<endl;cout<<"\t* 7 * 8 * 9 * 0 * % *"<<endl;cout<<"\t* & * ^ * = * ( * ) *"<<endl;cout<<"\t*********************"<<endl; }int isp(char& ch){switch(ch){case '=':return 0;break;case '+':case '-':return 3;break;case '*':case '/':case '%':return 5;case '(':return 1;break;case ')':return 8;break;case '^':case '&':return 7;break;}}int osp(char& ch) {switch(ch) {case '=':return 0;break;case '+':case '-':return 2;break;case '*':case '/':case '%':return 4;break;case '(':return 8;break;case ')':break;case '^':case '&':return 6;break;}}double extract(double x,double y){return pow(x,1/y);}bool cal(char op, double x, double y, double& r) {int o = 0;switch(op){case '-':r = x - y;break;case '+':r = x + y;break;case '/':r = x / y;break;case '%':(int) o = (int)x % (int)y;r = (double)o;break;case '*':r = x * y;case '&':r = extract(x,y);break;case '^':r = pow(x,y);break;}return true;}bool isDigit(char ch){if (((int)ch >= 48) && ((int)ch <= 57))return true;else return false;}bool isPoint(char ch){if (ch == '.')return true;else return false;}bool isOperator(char ch){if ((ch == '=') || (ch == '-') || (ch == '+') || (ch == '(') || (ch == ')') || (ch == '*') || (ch == '&') ||(ch == '/') ||(ch == '%') ||(ch == '^'))return true;else return false;}double turnDigit(char ch){double value;value = (double)ch - 48;return value;}double newDigit(double prior_digit, double now_digit, bool isHavePoint, double point_num){double value;if(!isHavePoint){value = prior_digit*10 + now_digit;}else{value = prior_digit + now_digit/(pow(10,point_num));}return value;}Function.h#ifndef FUNCTION_HEADER#define FUNCTION_HEADER//友好的用户界面void calUserInfo();//用于记录处于栈内的优先级int isp(char& ch);//用于记录栈外的优先级int osp(char& ch);//相当于value = x op y;如果cal成功,然后将value的值返回r,用r来保存bool cal(char op, double x, double y, double& r);//判断是否为字符bool isDigit(char ch);//判断是否为小数点bool isPoint(char ch);//判断是否为操作运算符bool isOperator(char ch);//将数字的字符状态转化成double状态double turnDigit(char ch);//如果几个数字或加一个小数点连在一起,这说明他们是同一个数字的不同位数,此函数将不同连在一起的数字//组成新的数字double newDigit(double prior_digit, double now_digit, bool isHavePoint, double point_num);#endifMain.cpp#include "AStack.h"#include "function.h"#include <iostream>#include <stdlib.h>#include <string.h>using namespace std;int main(){char str[100] = "\0";AStack<double> opnd; //用于存放数据AStack<char> optr; //用于存放操作符char now_ch = '='; //用于记录当前字符char prior_ch = '\0'; //用于记录前一个字符double now_dig = 0; //用于记录当前一个数字double prior_dig = 0; //用于记录前一个数字double value = 0; //用于存放计算后的值bool point = false; //用于判断是否有小数点int point_num = 1; //用于记录数字后面的小数点位数char topValue; //用于记录opnd的top上的值char option = 'Y'; //用于判断是否要继续运算do{prior_dig = 0; //在opnd中提前放一个0now_ch = '=';opnd.push(prior_dig);optr.push(now_ch);system("cls");calUserInfo();cout << "请输入表达式(以等号结束):" << endl;cin >> str;bool exitPoint = false;/*对每个字符的处理*/for(int i = 0; i < strlen(str); i++){now_ch = str[i];/*判断是不是数字以及相关操作*/if (isDigit(now_ch)){now_dig = turnDigit(now_ch);if (isDigit(prior_ch)){opnd.pop(prior_dig);if(exitPoint){point = true;now_dig = newDigit(prior_dig, now_dig,point,point_num);point_num++;}elsenow_dig = newDigit(prior_dig, now_dig,point,point_num);}if(isPoint(prior_ch)){opnd.pop(prior_dig);now_dig = newDigit(prior_dig, now_dig,point,point_num);exitPoint = true;point_num++;}value = now_dig;opnd.push(now_dig);prior_ch = now_ch;}/*判断是不是小数点以及相关操作*/else if (isPoint(now_ch)){point = true;prior_ch = now_ch;}/*判断是不是操作符以及相关操作*/else if (isOperator(now_ch)){/*对用于数字操作的相关标记量进行清空,方便下一次数字操作*/point = false;point = 0;exitPoint = false;point_num = 1;/*看optr中是否有操作符存在,若不存在,则只放一个操作符进去*//* 但不进行任何操作*/if(optr.length() <= 1){optr.push(now_ch);prior_ch = now_ch;}/*optr已有操作符存在的话,开始进行优先级的比较*/else{optr.pop(topValue);/* 栈内优先级小于栈外优先级*/if(isp(topValue) < osp(now_ch)){optr.push(topValue);optr.push(now_ch);prior_ch = now_ch;}/*栈内优先级大于栈外优先级*/else if(isp(topValue) > osp(now_ch)){if(now_ch == ')' && topValue == '('){break;}do{double x = 1,y = 0;opnd.pop(x);opnd.pop(y);if( cal(topValue,y,x,value) ){opnd.push(value);}if(!optr.pop(topValue))break;}while(isp(topValue) > osp(now_ch));// if((topValue != '('))if (now_ch != ')'){optr.push(topValue);optr.push(now_ch);}prior_ch = now_ch;}/*其他情况报错*/elsebreak;}}/*其他情况报错*/elsecout << "输入的表达式错误,请检查!" << endl; }optr.pop(prior_ch);/*打印最后的计算值*/if(prior_ch == '='){cout << "最终得出的数据为: " << value << endl;}elsecout << "输入的表达式错误,请检查!" << endl;/*判断是否还要继续*/cout << "是否继续? ,继续'Y'/结束'N' :" << endl;cin >> option;/*清空数字栈和操作符栈*/opnd.clear();optr.clear();}while(option == 'Y');return 0;}。
1,java语言的,写的不是很,有个不是很好的界面import java.awt.*;import java.awt.event.*;class cal extends WindowAdapter implements WindowListener,ActionListener{boolean h=false;boolean k=false;double a=0.0;double b=0.0;double c=0.0;String v;Frame f;Panel p1,p2,p3;Menu m1,m2,m3;MenuBar s;TextField t;Dialog d,d1;TextArea l,l1;public void dis(){f=new Frame("计算器");Da(f);Me();p1=new Panel();p2=new Panel();p3=new Panel();p2.setLayout(new GridLayout(4,5,5,5));p3.setLayout(new GridLayout(3,4,5,5));t=new TextField("0",25);t.setEditable(false);p1.add(t);f.add(p1,"North");f.setSize(220,320);f.setLocation(200,200);f.setBackground(Color.lightGray);f.addWindowListener(this);Button []b=new Button[32];String[]a={"7","8","9","+","clear","4","5","6","-","sqrt","1","2","3","×","cqrt","0",".","+/-","/","ln","log10","log(x)Y","%","x^y","sin","cos","tan","exp","asin","acos","atan","="};int i,j;for (i=0;i<=19;i++){b[i]=new Button(a[i]);b[i].addActionListener(this);p2.add(b[i]);}for (j=20;j<=31;j++){b[j]=new Button(a[j]);b[j].addActionListener(this);p3.add(b[j]);}f.add(p2,"Center");f.add(p3,"South");f.setV isible(true);}public void Me(){s=new MenuBar();f.setMenuBar(s);m1=new Menu("编辑(E)");m2=new Menu("查看(V)");m3=new Menu("帮助(H)");s.add(m1);s.add(m2);s.add(m3);m1.add(new MenuItem("Open"));m1.add(new MenuItem("Copy"));m1.add(new MenuItem("pastye"));m1.add(new MenuItem("Save",new MenuShortcut(KeyEvent.VK_S)));m1.add(new MenuItem("Exit"));m2.add(new MenuItem("Standard"));m2.add(new MenuItem("Science"));m1.addActionListener(this);m2.addActionListener(this);m3.add(new MenuItem("About"));m3.add(new MenuItem("Instructions"));m3.addActionListener(this);}public void windowClosing(WindowEvent e){if(e.getSource()==d)d.setV isible(false);else if(e.getSource()==d1)d1.setV isible(false);elseSystem.exit(0);}public void Da(Frame f){d=new Dialog(f,"Dialog",true);d.setSize(36,120);d.setLocation(200,200);d1=new Dialog(f,"使用说明",true);d1.setSize(200,202);d1.setLocation(200,200);l=new TextArea("",4,15,TextArea.SCROLLBARS_VERTICAL_ONLY);l1=new TextArea("",4,15,TextArea.SCROLLBARS_NONE);d.add(l);d1.add(l1);d.addWindowListener(this);d1.addWindowListener(this);}public void actionPerformed(ActionEvent e){float x;String q=e.getActionCommand();if(q=="Exit")System.exit(0);if(q=="About"){l.setText(" 该计算器实现加减乘除开方等基本运算,而且能够计算三角函数以及反三角函数的值,能够进行对数、乘方运算。
易语言cmd程序例子易语言是一种易于学习的编程语言,其语法简单易懂,适合初学者入门。
本文将介绍几个易语言编写的cmd程序例子,帮助初学者更好地掌握该语言。
1. CMD打开指定文件夹此程序实现了在cmd中打开指定文件夹的功能,代码如下:```strFolderName = 'C:WindowsSystem32'ShellExecute(NULL, 'open', 'explorer.exe', strFolderName, NULL, SW_SHOW);```2. 计算器程序此程序实现了一个简单的计算器功能,代码如下:```input '请输入第一个数:', num1input '请输入第二个数:', num2input '请输入运算符(+、-、*、/):', opselect opcase '+':result = num1 + num2case '-':result = num1 - num2case '*':result = num1 * num2case '/':if num2 = 0 thenprint '除数不能为0'endend ifresult = num1 / num2case else:print '运算符无效'endend selectprint '计算结果为:', result```3. 文件重命名程序此程序实现了批量重命名文件的功能,代码如下:```input '请输入文件目录:', strFilePathinput '请输入文件名前缀:', strPrefixinput '请输入文件名后缀:', strSuffixdeclare strOldFileName, strNewFileNamefor eachfile strFilePath + '*.*' to strOldFileNameif right(strOldFileName, 1) <> '.' thenstrNewFileName = strFilePath + '' + strPrefix + strOldFileName + strSuffixrenamefile strOldFileName to strNewFileNameend ifnextprint '文件重命名完成'```以上是三个易语言编写的cmd程序例子,希望能够帮助初学者更好地理解该语言的使用。
//计算器,已经编译通过import java.awt.*;import java.awt.event.*;import javax.swing.*;public class testZ extends JFrame implements ActionListener{private JPanel jPanel1,jPanel2;private JTextField resultField;private JButton s1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,f1,f2; private boolean end,add,sub,mul,div;private String str;private double num1,num2;public testZ(){super("计算器");setSize(300,240);Container con=getContentPane();con.setLayout(new BorderLayout());jPanel1=new JPanel();jPanel1.setLayout(new GridLayout(1,1));jPanel2=new JPanel();jPanel2.setLayout(new GridLayout(4,4));resultField=new JTextField("0");jPanel1.add(resultField);con.add(jPanel1,BorderLayout.NORTH);s1=new JButton(" 1 "); s1.addActionListener(this);s2=new JButton(" 2 "); s2.addActionListener(this);s3=new JButton(" 3 "); s3.addActionListener(this);s4=new JButton(" 4 "); s4.addActionListener(this);s5=new JButton(" 5 "); s5.addActionListener(this);s6=new JButton(" 6 "); s6.addActionListener(this);s7=new JButton(" 7 "); s7.addActionListener(this);s8=new JButton(" 8 "); s8.addActionListener(this);s9=new JButton(" 9 "); s9.addActionListener(this);s0=new JButton(" 0 "); s0.addActionListener(this);b1=new JButton(" + "); b1.addActionListener(this);b2=new JButton(" - "); b2.addActionListener(this);b3=new JButton(" * "); b3.addActionListener(this);b4=new JButton(" / "); b4.addActionListener(this);f1=new JButton(" . "); f1.addActionListener(this);f2=new JButton(" = "); f2.addActionListener(this);jPanel2.add(s1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b3);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f2);jPanel2.add(b4);con.add(jPanel2,BorderLayout.CENTER);}public void num(int i){String s = null;s=String.valueOf(i);if(end){//如果数字输入结束,则将文本框置零,重新输入resultField.setText("0");end=false;}if((resultField.getText()).equals("0")){//如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);}else{//如果文本框的内容不为零,则在内容后面添加数字str = resultField.getText() + s;resultField.setText(str);}}public void actionPerformed(ActionEvent e){ //数字事件 if(e.getSource()==s1)num(1);else if(e.getSource()==s2)num(2);else if(e.getSource()==s3)num(3);else if(e.getSource()==s4)num(4);else if(e.getSource()==s5)num(5);else if(e.getSource()==s6)num(6);else if(e.getSource()==s7)num(7);else if(e.getSource()==s8)num(8);else if(e.getSource()==s9)num(9);else if(e.getSource()==s0)num(0);//符号事件else if(e.getSource()==b1)sign(1);else if(e.getSource()==b2)sign(2);else if(e.getSource()==b3)sign(3);else if(e.getSource()==b4)sign(4);//等号else if(e.getSource()==f1){str=resultField.getText();if(str.indexOf(".")<=1){str+=".";resultField.setText(str);}}else if(e.getSource()==f2){num2=Double.parseDouble(resultField.getText());if(add){num1=num1 + num2;}else if(sub){num1=num1 - num2;}else if(mul){num1=num1 * num2;}else if(div){num1=num1 / num2;}resultField.setText(String.valueOf(num1));end=true;}}public void sign(int s){if(s==1){add=true;sub=false;mul=false;div=false;}else if(s==2){add=false;sub=true;mul=false;div=false;}else if(s==3){add=false;sub=false;mul=true;div=false;}else if(s==4){add=false;sub=false;mul=false;div=true;}num1=Double.parseDouble(resultField.getText()); end=true;}public static void main(String[] args){testZ th1=new testZ();th1.show();}}。
这几天在做一个小计算器,经过两天的调试终于算是做完了(可能还有小Bug)。
最多可以到10的15次方。
源代码如下(源码我已经放到Skydrive上了,点这里下载):// CalculatorDlg.cpp : implementation file//#include "stdafx.h"#include "Calculator.h"#include "CalculatorDlg.h"#include "math.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// CAboutDlg dialog used for App AboutDisplay *Pdisplay;class CAboutDlg : public CDialog{public:CAboutDlg();// Dialog Dataenum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support// Implementationprotected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()// CCalculatorDlg dialogCCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/): CDialog(CCalculatorDlg::IDD, pParent), Cal_display(_T("WELCOME")){m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);Pdisplay=new Display(this);}void CCalculatorDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT1, Cal_display);}BEGIN_MESSAGE_MAP(CCalculatorDlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()//}}AFX_MSG_MAP// ON_WM_KEYDOWN()ON_BN_CLICKED(IDOK, &CCalculatorDlg::OnBnClickedOk)ON_BN_CLICKED(IDCANCEL, &CCalculatorDlg::OnBnClickedCancel)ON_BN_CLICKED(IDCANCEL2, &CCalculatorDlg::OnBnClickedCancel2) ON_BN_CLICKED(IDOK4, &CCalculatorDlg::OnBnClickedOk4)ON_BN_CLICKED(IDOK6, &CCalculatorDlg::OnBnClickedOk6)ON_BN_CLICKED(IDOK2, &CCalculatorDlg::OnBnClickedOk2)ON_BN_CLICKED(IDCANCEL3, &CCalculatorDlg::OnBnClickedCancel3) ON_BN_CLICKED(IDOK3, &CCalculatorDlg::OnBnClickedOk3)ON_BN_CLICKED(IDCANCEL4, &CCalculatorDlg::OnBnClickedCancel4) ON_BN_CLICKED(IDCANCEL6, &CCalculatorDlg::OnBnClickedCancel6) ON_BN_CLICKED(IDCANCEL5, &CCalculatorDlg::OnBnClickedCancel5) ON_BN_CLICKED(IDCANCEL8, &CCalculatorDlg::OnBnClickedCancel8) ON_BN_CLICKED(IDCANCEL9, &CCalculatorDlg::OnBnClickedCancel9) ON_BN_CLICKED(IDCANCEL7, &CCalculatorDlg::OnBnClickedCancel7) ON_BN_CLICKED(IDOK5, &CCalculatorDlg::OnBnClickedOk5)ON_BN_CLICKED(IDOK7, &CCalculatorDlg::OnBnClickedOk7)ON_BN_CLICKED(IDCANCEL10, &CCalculatorDlg::OnBnClickedCancel10) ON_BN_CLICKED(IDOK8, &CCalculatorDlg::OnBnClickedOk8)ON_BN_CLICKED(IDCANCEL12, &CCalculatorDlg::OnBnClickedCancel12)ON_BN_CLICKED(IDCANCEL11, &CCalculatorDlg::OnBnClickedCancel11)ON_BN_CLICKED(IDOK9, &CCalculatorDlg::OnBnClickedOk9)ON_BN_CLICKED(IDCANCEL13, &CCalculatorDlg::OnBnClickedCancel13)ON_BN_CLICKED(IDOK10, &CCalculatorDlg::OnBnClickedOk10)ON_BN_CLICKED(IDCANCEL15, &CCalculatorDlg::OnBnClickedCancel15)ON_BN_CLICKED(IDCANCEL14, &CCalculatorDlg::OnBnClickedCancel14)ON_WM_KEYUP()END_MESSAGE_MAP()// CCalculatorDlg message handlersBOOL CCalculatorDlg::OnInitDialog(){CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization herereturn TRUE; // return TRUE unless you set the focus to a control}//--------------------------------------------------------------------------------------------------//void CCalculatorDlg::OnKeyDown(UINT nChar,UINT nRepCnt,UINT nFlags) //{//int a=1;//CDialog::OnKeyDown(nChar, nRepCnt, nFlags);//}//void CCalculatorDlg::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) //{// int a=1;//// CDialog::OnKeyUp(nChar, nRepCnt, nFlags);//}void CCalculatorDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else if(nID==SC_CLOSE){CCalculatorDlg::OnOK();}else{CDialog::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below// to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework.void CCalculatorDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}// The system calls this function to obtain the cursor to display while the user drags// the minimized window.HCURSOR CCalculatorDlg::OnQueryDragIcon(){return static_cast<HCURSOR>(m_hIcon);}//------------------------------OnButtonnClicked 部分-------------------------------------------------------------------------void CCalculatorDlg::OnBnClickedOk(){Caldata.CLEAR();UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel(){Caldata.MC();UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel2() {Caldata.MR();UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk4() {Caldata.KEYIN(1);UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk6() {Caldata.KEYIN(4);UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk2() {Caldata.MM();UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel3() {Caldata.MA();UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk3() {Caldata.PN();UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel4() {Caldata.ADD();UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel6() {Caldata.KEYIN(2);UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel5() {Caldata.KEYIN(3);UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel8() {Caldata.KEYIN(6);UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel9() {Caldata.KEYIN(5);UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel7() {Caldata.MINUS();UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk5(){Caldata.Mode_Error=Caldata.SQRT(); UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk7(){Caldata.SQR();UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel10() {Caldata.BY();UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk8(){Caldata.KEYIN(7);UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel12() {Caldata.KEYIN(8);UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel11() {Caldata.KEYIN(9);UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk9(){Caldata.Mode_Error=Caldata.REC(); UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel13() {Caldata.DIV();UpdateDisplay();}void CCalculatorDlg::OnBnClickedOk10() {Caldata.Dot();UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel15() {Caldata.KEYIN(0);UpdateDisplay();}void CCalculatorDlg::OnBnClickedCancel14() {Caldata.Mode_Error=Caldata.EQUAL();UpdateDisplay();}//------------------------------------------Display部分-----------------------------------------------------------------void CCalculatorDlg::UpdateDisplay(){if(!Caldata.Mode_Error){if(!(Caldata.Mode_Dot)){Cal_display.Format(_T("%lf"),Caldata.Data_Display);for(int i=Cal_display.GetLength()-1;i>1;i--) //去掉尾部多余的0,这个方法可共用,可以写成STATIC{if(Cal_display.GetAt(i)=='.')break;if(Cal_display.GetAt(i)=='0')Cal_display.Delete(i);else break;}}else {if(Caldata.Data_Display!=0){int j=0;Cal_display.Format(_T("%lf"),Caldata.Data_Display);for(int i=Cal_display.GetLength()-1;i>1;i--){if(Cal_display.GetAt(i)=='.')break;if(Cal_display.GetAt(i)=='0')Cal_display.Delete(i);else break;}for(int i=Cal_display.GetLength()-1;i>1;i--){ if(Cal_display.GetAt(i)=='.') break;j++;}if(j<=Caldata.Digi_Dot)for(int i=0;i<Caldata.Digi_Dot-j;i++) //小数输入,尾部补0Cal_display.Append(_T("0")); }else{Cal_display.Format(_T("0."));for(int i=0;i<Caldata.Digi_Dot;i++){Cal_display.Append(_T("0"));}}}}else Cal_display.Format(_T("ERROR"));UpdateData(false);}void CCalculatorDlg::ResetDisplay(){}//--------------------------------CALDATA 部分-----------------------------------------------------------Cal_Data::Cal_Data(){Data_Display=0;Data_Remember=0;Data_Last=0;Mode_Remenber=false;Mode_Input=false;Mode_Dot=false;Mode_Error=false;Digi_Dot=0;calaction=Cal_Action::Action_Null;}void Cal_Data::CLEAR(){Data_Display=0;Data_Last=0;Mode_Input=false;Mode_Error=false;Mode_Dot=false;calaction=Cal_Action::Action_Null;}void Cal_Data::MA(){Data_Remember=Data_Remember+Data_Display; }void Cal_Data::MM(){Data_Remember=Data_Remember-Data_Display; }void Cal_Data::MR(){Data_Display=Data_Remember;Mode_Input=false;}void Cal_Data::MC(){Data_Remember=0;Mode_Remenber=false;}void Cal_Data::ADD(){Data_Last=Data_Display;Mode_Dot=Mode_Input=false; calaction=Cal_Action::Action_Add;}void Cal_Data::MINUS(){Data_Last=Data_Display;Mode_Dot=Mode_Input=false;calaction=Cal_Action::Action_Minus;}void Cal_Data::BY(){Data_Last=Data_Display;Mode_Dot=Mode_Input=false;calaction=Cal_Action::Action_By;}void Cal_Data::DIV(){Data_Last=Data_Display;Mode_Dot=Mode_Input=false;calaction=Cal_Action::Action_Divide;}bool Cal_Data::EQUAL(){double TMP;Digi_Dot=0;Mode_Dot=false;switch(calaction){case Cal_Action::Action_Add : Data_Display+=Data_Last; Mode_Dot=Mode_Input=false;break;case Cal_Action::Action_Minus: Data_Display=Data_Last-Data_Display;Mode_Dot=Mode_Input=false;break;case Cal_Action::Action_By: Data_Display*=Data_Last;Mode_Dot=Mode_Input=false;break;case Cal_Action::Action_Divide: if(Data_Display==0)return true;else Data_Display=Data_Last/Data_Display;Mode_Dot=Mode_Input=false;break;case Cal_Action::Action_Null: Mode_Dot=Mode_Input=false;break;}calaction=Cal_Action::Action_Null;return false;}void Cal_Data::SQR(){Data_Display*=Data_Display;Mode_Dot=Mode_Input=false;}bool Cal_Data::SQRT(){Mode_Dot=Mode_Input=false;if(Data_Display<0)return true;Data_Display=sqrt(Data_Display);return false;}bool Cal_Data::REC(){Mode_Dot=Mode_Input=false;if(Data_Display==0)return true;else Data_Display=1/Data_Display;return false;}void Cal_Data::PN(){if(Data_Display!=0) Data_Display=-Data_Display;}void Cal_Data::Dot(){if(!Mode_Dot) { Mode_Dot=true;Digi_Dot=0;}}void Cal_Data::KEYIN(int value){ if(Data_Display>=100000000000000) //double型的数大于100000000000000后精度不高,所以限定为15位return;if(!Mode_Input){ Mode_Input=true;Data_Display=0;}if(!Mode_Dot){Data_Display*=10.0;Data_Display=Data_Display>=0? Data_Display+(double)value: Data_Display-(double)value;}else{if(Digi_Dot>=6) //小数点后面最多输入到第6位,否者会出错(double的精度不高)return;Digi_Dot++;double TMP=value;for(int i=0;i<Digi_Dot;i++){TMP=TMP/10.0;}Data_Display=Data_Display>=0? Data_Display+TMP:Data_Display-TMP;。
1.截图一:截图二:2.问题:计算结果绝对值如果小于或等于0.1时会以e的次方表示,此时关闭程序定会报错。
要如何解决输出结果显示问题以及为何会报错?VC运行,代码如下:#include <windows.h>#include <stdio.h>#include<stdlib.h>#include<math.h>#define ICO_MAIN 1000#define DLG_MAIN 1#define IDB_0 4400 //0#define IDB_1 4401 //1#define IDB_2 4402 //2#define IDB_3 4403 //3#define IDB_4 4404 //4#define IDB_5 4405 //5#define IDB_6 4406 //6#define IDB_7 4407 //7#define IDB_8 4408 //8#define IDB_9 4409 //9#define IDB_PLUS 4410 //加#define IDB_SUB 4411 //减#define IDB_EQU 4412 //等于#define IDB_DOT 4413 //.#define IDB_PAS 4414 //正负号#define IDB_EDIT 4415 //编辑框int num1=0 ;int num2=0 ;double b,num3=0,num4=0;char s[13];//为了方面参数的传递,定义了这个全局变量UINT fushu=0 ;UINT xiaoshu=0 ;UINT qxiaoshu=0 ;UINT sn=1 ;//把字符串转化成数字int StrToNum(char*str){return atoi(str);}//把数字转化成字符串char*NumToStr(int nNum){ itoa(nNum,s,10);return s ;}char*tostr(double Num){ gcvt(Num,12,s);return s ;}//修改编辑框控件的文字void SetEditValue(int nNum,HWND hEdit){ if(fushu==0){ if(xiaoshu==0){ num2=num2*10+nNum ;//可以使数字进位(向左移)num3=(double)num2 ;SetWindowText(hEdit,NumToStr(num2));}else{ sn=sn*10 ;b=(double)nNum/(double)sn ;num3=num3+b ;SetWindowText(hEdit,tostr(num3));}}else{ if(xiaoshu==0){ nNum=0-nNum ;num2=num2*10+nNum ;//可以使数字进位(向左移)num3=(double)num2 ;SetWindowText(hEdit,NumToStr(num2));}else{ sn=sn*10 ;b=0-(double)nNum/(double)sn ;num3=num3+b ;SetWindowText(hEdit,tostr(num3));}}}LRESULT WINAPI DialogProc(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) 3.{HICON hIcon ;HWND hEdit=GetDlgItem(hWnd,IDB_EDIT);switch(Msg){case WM_INITDIALOG : //设置图标hIcon=LoadIcon(GetModuleHandle("MyCalculator.exe"),MAKEINTRESOURCE(ICO_MAIN ));SendMessage(hWnd,WM_SETICON,ICON_BIG,(long)hIcon);SetWindowText(hEdit,"0.");//让编辑框控件的内容为"0."break ;case WM_COMMAND ://LOWORD(wParam)用来取出命令IDswitch(LOWORD(wParam)){ case IDB_0 : SetEditValue(0,hEdit);break ;case IDB_1 : SetEditValue(1,hEdit);break ;case IDB_2 : SetEditValue(2,hEdit);break ;case IDB_3 : SetEditValue(3,hEdit);break ;case IDB_4 : SetEditValue(4,hEdit);break ;case IDB_5 : SetEditValue(5,hEdit);break ;case IDB_6 : SetEditValue(6,hEdit);break ;case IDB_7 : SetEditValue(7,hEdit);break ;case IDB_8 : SetEditValue(8,hEdit);break ;case IDB_9 : SetEditValue(9,hEdit);break ;case IDB_PLUS : //加号fushu=0 ;sn=1 ;if(qxiaoshu==0)SetWindowText(hEdit,NumToStr(num1+num2)); elseSetWindowText(hEdit,tostr(num4+num3)); num4+=num3 ;num1+=num2 ;xiaoshu=0 ;num2=0 ;num3=0;break ;case IDB_SUB : //减号fushu=1 ;sn=1 ;if(qxiaoshu==0)SetWindowText(hEdit,NumToStr(num1+num2)); elseSetWindowText(hEdit,tostr(num4+num3)); xiaoshu=0 ;num1+=num2 ;num4+=num3 ;num2=0 ;num3=0;break ;case IDB_DOT : //小数点xiaoshu=1 ;qxiaoshu=1;break ;case IDB_PAS : //负号fushu=1;break ;case IDB_EQU : //等号if(qxiaoshu==0)SetWindowText(hEdit,NumToStr(num1+num2));elseSetWindowText(hEdit,tostr(fabs(num4+num3)<1e-15 ? 0 : (num4+num3))); num1=0;num2=0;num3=0;num4=0;xiaoshu=0 ;sn=1 ;fushu=0 ;qxiaoshu=0;break ;}break ;case WM_CLOSE ://关闭消息EndDialog(hWnd,0);//终止模态对话框return 0 ;}return FALSE;}int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){//很简单的创建了窗口DialogBoxParam(hInstance,MAKEINTRESOURCE(DLG_MAIN),NULL,DialogProc,0); return 1 ;}。
易语言源码-数学计算练习题(小数除法)新建一个程序:加入以下组件:并调整各组件的属性、名称。
进入代码编辑页面:输入以下代码:练习题采用随机函数,除数“÷10”代表除数是小数,目前商还是整数。
试运行,显示以下结果:被除数和除数都是小数。
商是9。
将练习题(编辑框)组件的属性:输入方式设为“只读方式”,程序运行时练习题(编辑框)不能编辑里面的题目。
双击击确定按钮,在代码编辑框中输入以下代码:试运行,在结果编辑框中输入正确的“商”,然后按确定键。
输入错误的“商”,按下确定键。
接下来再添加随机产生数学公式的代码:在程序窗口,添加以下组件,为了显示分数。
增加改变分数的代码。
(前面要加上“分数值”这一变量)试运行:显示以下结果。
再增加能提高习题难度的代码:以下是完成后的所有代码:.版本2.程序集窗口程序集1.程序集变量商, 小数型.程序集变量除数, 小数型.程序集变量被除数, 小数型.程序集变量分数值, 整数型.程序集变量级别, 整数型.子程序__启动窗口_创建完毕级别=1置随机数种子()商=取随机数(1, 10)除数=取随机数(1, 10) ÷10被除数=除数×商练习题.内容=到文本(被除数) +“÷”+到文本(除数).子程序_确定按钮_被单击.局部变量A, 整数型.局部变量B, 整数型.局部变量D, 整数型.如果(到文本(商) =结果.内容)信息框(“答对了”, 0, )分数值=分数值+5.否则信息框(“错,答案是:”+到文本(商), 0, )分数值=0.如果结束分数显示.内容=到文本(分数值).如果真(分数值=100)级别=级别+1分数值=0分数显示.内容=“”.如果真(级别=4)信息框(“恭喜你,顺利通关!”, 0, )结束().如果真结束信息框(“进入第”+到文本(级别) +“级”, 0, ) .如果真结束.判断开始(级别=1)A =10C =10D =10.判断(级别=2)A =10B =1C =99D =10.判断(级别=3)A =999B =100C =99D =10.默认.判断结束练习题.内容=“”结果.内容=“”置随机数种子()商=取随机数(1, A) ÷B除数=取随机数(1, C) ÷D被除数=除数×商练习题.内容=到文本(被除数) +“÷”+到文本(除数)再以上基础进行修改,做一个能够输入计算小数除法过程的程序,增加以下组件:下面是更改后最终的运行结果:以下是全部代码:.版本2.程序集窗口程序集1.程序集变量商, 整数型.程序集变量除数, 整数型.程序集变量被除数, 整数型.程序集变量分数值, 整数型.程序集变量级别, 整数型.程序集变量A, 整数型.程序集变量B, 整数型.程序集变量C, 整数型.程序集变量D, 整数型.程序集变量E, 整数型.程序集变量步骤, 整数型.子程序__启动窗口_创建完毕级别=1步骤=1置随机数种子()A =9B =10C =0D =9E =9商=取随机数(1, A) ×B +取随机数(1, A)除数=取随机数(1, D) ×C +取随机数(1, E)被除数=除数×商练习题.内容=到文本(被除数÷100) +“÷”+到文本(除数÷10)商填框.可视=假被除数填框.可视=假第一行乘积填框.可视=假第二行结果填框.可视=假第二行乘积填框.可视=假第三行结果填框.可视=假第三行乘积填框.可视=假下一题按钮.禁止=真提示标签.标题=“请输入除数,(注意除数的小数点要移位,变成整数)。
. 版本2
.程序集窗口程序集1
.子程序_按钮1_被单击
显示框.加入文本(“1”)
.子程序_按钮2_被单击
显示框.加入文本(“2”)
.子程序_按钮3_被单击
显示框.加入文本(“3”)
.子程序_按钮4_被单击
显示框.加入文本(“4”)
.子程序_按钮5_被单击
显示框.加入文本(“5”)
.子程序_按钮6_被单击
显示框.加入文本(“6”)
.子程序_按钮7_被单击
显示框.加入文本(“7”)
.子程序_按钮8_被单击
显示框.加入文本(“8”)
.子程序_按钮9_被单击
显示框.加入文本(“9”)
.子程序_按钮0_被单击
显示框.加入文本(“0”)
.子程序_按钮点_被单击
显示框.内容=显示框.内容+“.”.子程序_按钮加_被单击
第一个数.内容=显示框.内容
符号框.内容=“+”
显示框.内容=“”
.子程序_按钮减_被单击
第一个数.内容=显示框.内容
符号框.内容=“-”
显示框.内容=“”
.子程序_按钮乘_被单击
第一个数.内容=显示框.内容
符号框.内容=“*”
显示框.内容=“”
.子程序_按钮除_被单击
第一个数.内容=显示框.内容
符号框.内容=“/”
显示框.内容=“”
.子程序_按钮等于_被单击
.如果(符号框.内容=“+”)
显示框.内容=到文本(到数值(第一个数.内容) +到数值(显示框.内容))
.否则
.如果(符号框.内容=“-”)
显示框.内容=到文本(到数值(第一个数.内容) -到数值(显示框.内容)) .否则
.如果(符号框.内容=“*”)
显示框.内容=到文本(到数值(第一个数.内容) ×到数值(显示框.内容))
.否则
.如果(显示框.内容≠“0”)
.如果(符号框.内容=“/”)
显示框.内容=到文本(到数值(第一个数.内容) ÷到数值(显示框.内容))
.否则
.如果结束
.否则
信息框(“错误,被除数不能为0 ”, 0, )
.如果结束
.如果结束
.如果结束
.如果结束
.子程序_按钮清空_被单击
显示框.内容=“”
.子程序_按钮清空_被双击, 逻辑型
.参数横向位置, 整数型
.参数纵向位置, 整数型
.参数功能键状态, 整数型
第一个数.内容=“”
/book_3869.html。