计算器的编程
计算器很简单了,看你要做的是普通的计算器还是科学计算器?噢,java小程序啊~import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.*;
import javax.swing.*;
import java.util.*;
public class CalculatorA {
private JFrame jf;
private JButton[] jbs;
private JTextField jtf;
private JButton clear;
private double num1,num2,jieguo;
private char c;
/**
* 构造方法实例化属性
*
*/
public CalculatorA(){
jf=new JFrame(“我的计算器v1.0“);
jtf=new JTextField(20);
clear=new JButton(“clear“);
jbs=new JButton[16];
String str=“123+456-789*0./=“;
for(int i=0; i<str.length(); i++){
jbs[i]=new JButton(str.charAt(i)+““);
}
init();
addEventHandler();
// setFont();
// setColor();
showMe();
}
/**
* 布局图形界面
*
*/
public void init(){
// jf.setLayout(manager)
JPanel jp1=new JPanel();
jp1.add(jtf);
JPanel jp2=new JPanel();
jp2.setLayout(new GridLayout(4,4));
for(int i=0; i<16; i++){
jp2.add(jbs[i]);
}
JPanel jp3=new JPanel();
jp3.add(clear);
jf.add(jp1,BorderLayout.NORTH);
jf.add(jp2,BorderLayout.CENTER);
jf.add(jp3,BorderLayout.SOUTH);
}
public void setFont(){
}
public void setColor(){
}
public void addEventHandler(){
ActionListener lis=new ActionListener(){
public void actionPerformed(ActionEvent e){
// TODO Auto-generated method stub
JButton jb=(JButton)e.getSource();
// String key=(String)e.getActionCommand();
String str =jb.getText().trim();//把字符串的首尾空格去掉!
// String str2=e.getActionCommand().trim();//返回事件源的文本内容
if(“0123456789.“.indexOf(str)!=-1){//如果是数字或点号
jtf.setText(jtf.getText()+str);
return;
}
if(“+-*/“.indexOf(str)!=-1){
num1=Double.parseDouble(jtf.getText());
jtf.setText(““);
c=str.charAt(0);
jtf.setText(““);
return ;
}
B. 简单计算器编程
嘿嘿,C++实现个Console环境中的计算器很简单,鉴于你没给悬赏分,我也懒得打字了,从别处粘贴过来的代码,非常简单,你可以参考一下。
// Ex6_09Extended.cpp
// A program to implement a calculator accepting parentheses
#include <iostream> // For stream input/output
#include <cstdlib> // For the exit() function
#include <cctype> // For the isdigit() function
#include <cstring> // For the strcpy() function
using std::cin;
using std::cout;
using std::endl;
void eatspaces(char* str); // Function to eliminate blanks
double expr(char* str); // Function evaluating an expression
double term(char* str, int& index); // Function analyzing a term
double number(char* str, int& index); // Function to recognize a number
char* extract(char* str, int& index); // Function to extract a substring
const int MAX = 80; // Maximum expression length,
// including '\0'
int main()
{
char buffer[MAX] = {0}; // Input area for expression to be evaluated
cout << endl
<< "Welcome to your friendly calculator."
<< endl
<< "Enter an expression, or an empty line to quit."
<< endl;
for(;;)
{
cin.getline(buffer, sizeof buffer); // Read an input line
eatspaces(buffer); // Remove blanks from input
if(!buffer[0]) // Empty line ends calculator
return 0;
cout << "\t= " << expr(buffer) // Output value of expression
<< endl << endl;
}
}
// Function to eliminate spaces from a string
void eatspaces(char* str)
{
int i = 0; // 'Copy to' index to string
int j = 0; // 'Copy from' index to string
while((*(str + i) = *(str + j++)) != '\0') // Loop while character
// copied is not \0
if(*(str + i) != ' ') // Increment i as long as
i++; // character is not a space
return;
}
// Function to evaluate an arithmetic expression
double expr(char* str)
{
double value = 0.0; // Store result here
int index = 0; // Keeps track of current character position
value = term(str, index); // Get first term
for(;;) // Indefinite loop, all exits inside
{
switch(*(str + index++)) // Choose action based on current character
{
case '\0': // We're at the end of the string
return value; // so return what we have got
case '+': // + found so add in the
value += term(str, index); // next term
break;
case '-': // - found so subtract
value -= term(str, index); // the next term
break;
default: // If we reach here the string
cout << endl // is junk
<< "Arrrgh!*#!! There's an error"
<< endl;
exit(1);
}
}
}
// Function to get the value of a term
double term(char* str, int& index)
{
double value = 0.0; // Somewhere to accumulate
// the result
value = number(str, index); // Get the first number in the term
// Loop as long as we have a good operator
while((*(str + index) == '*') || (*(str + index) == '/'))
{
if(*(str + index) == '*') // If it's multiply,
value *= number(str, ++index); // multiply by next number
if(*(str + index) == '/') // If it's divide,
value /= number(str, ++index); // divide by next number
}
return value; // We've finished, so return what
// we've got
}
// Function to recognize a number in a string
double number(char* str, int& index)
{
double value = 0.0; // Store the resulting value
if(*(str + index) == '(') // Start of parentheses
{
char* psubstr = 0; // Pointer for substring
psubstr = extract(str, ++index); // Extract substring in brackets
value = expr(psubstr); // Get the value of the substring
delete[]psubstr; // Clean up the free store
return value; // Return substring value
}
while(isdigit(*(str + index))) // Loop accumulating leading digits
value = 10*value + (*(str + index++) - '0');
// Not a digit when we get to here
if(*(str + index) != '.') // so check for decimal point
return value; // and if not, return value
double factor = 1.0; // Factor for decimal places
while(isdigit(*(str + (++index)))) // Loop as long as we have digits
{
factor *= 0.1; // Decrease factor by factor of 10
value = value + (*(str + index) - '0')*factor; // Add decimal place
}
return value; // On loop exit we are done
}
// Function to extract a substring between parentheses
// (requires cstring)
char* extract(char* str, int& index)
{
char buffer[MAX]; // Temporary space for substring
char* pstr = 0; // Pointer to new string for return
int numL = 0; // Count of left parentheses found
int bufindex = index; // Save starting value for index
do
{
buffer[index - bufindex] = *(str + index);
switch(buffer[index - bufindex])
{
case ')':
if(numL == 0)
{
size_t size = index - bufindex;
buffer[index - bufindex] = '\0'; // Replace ')' with '\0'
++index;
pstr = new char[index - bufindex];
if(!pstr)
{
cout << "Memory allocation failed,"
<< " program terminated.";
exit(1);
}
strcpy_s(pstr, index-bufindex, buffer); // Copy substring to new memory
return pstr; // Return substring in new memory
}
else
numL--; // Rece count of '(' to be matched
break;
case '(':
numL++; // Increase count of '(' to be
// matched
break;
}
} while(*(str + index++) != '\0'); // Loop - don't overrun end of string
cout << "Ran off the end of the expression, must be bad input."
<< endl;
exit(1);
return pstr;
}
上面的代码来自《Lvor Horton's Begining Visual C++ 2008》一书,非常适合C++初学者。用上面代码实现的计算器可以进行诸如(1+3)*6/2之类的加减乘除和带括号的表达式运算。
此外,在Linux系统的Shell环境中,有个bc计算器程序,功能更强一些,有兴趣的话可以找来源代码看看。
C. 卡西欧计算器怎么编程啊
卡西欧计算器有很多种的,,每一种卡西欧计算器编程语言都大不一样,就比如卡西欧4800和卡西欧5800计算器,编程语句和关键字很多不一样的了,如果你问的仅仅是进入计算器编程界面的话,对于卡西欧5800计算器那就是:“MODE SRTUP”——5号键,PROG——1号键,NEW——输入程序名称——选择程序模式(一般情况下都是在COMP模式下)——进入代码输入界面,输入程序代码再运行就行了。
一、使用简单,最大的一个优点就是只要具有初中水平会运用数学公式对函数有一般的了解的人,能基本理解casio4x00的内装函数即可进行简单的编程。非常适合测量初学者和数学程序爱好者学习,也适合专业的测量人员的使用和能力提高。不像其它的专业一定要具有较高的专业技术水平才能进行电脑编程。
二、成本低廉,价格在400元左右。
三、携带方便,体积很小可随时放在口袋里随拿随用。casio系列较好的编程型号有casio4500(以下简称4500)、casio4800(以下简称4800),(好象近来还推出了一款casio4850)前者较内存小,只有1103个字节,能应付一些较为简单的公式计算和科学计算,但由于内存有限,对一些较复杂或子程序过多的程序就力不从心了,不能出色的完成测量任务。4800就比4500有较大的改进,4800内存达到的4500个字节,而且显示屏是4500的几倍大,能更准确的显示数据,内装函数字符一目了然。且具有简单的人机对话功能,出现了菜单子菜单。4800还在4500增加了啊佛加德罗常数、万有引力长常数、详见《操作说明书》。4800有很多很实用的功能如他有一个公式解答功能,其原理是用牛顿法解方程。
举个例子: 有一方程式:a=2b-c求 当a=2、c=5时的b值。 将该方程式存入公式存贮器中,:先按按解答键“SOLVE” a输入2 、c输入5,再按解答键“SOLVE”计算器就会显示:b=3.5。此项功能被称为自动解答功能。同时它也是非常实用的,在实际工作中通常要有一个经常使用的小公式,可借助它来完成。4800使用的程序语言可以算做简单的BASIC语言,有的命令如GOTO(转移到)、PAUSE(暂停)就与BASIC语言的一模一样。现在4800的程序语言来说说。 其主要命令有:
1、=>…… 条件转移成立符号,其用法相当于BASIC中的IF……THEN(假设语句相当于假如……然后,IF相当于条件……THEN相当于结果)语句
2、≠>……条件转移不成立符号,其用法相当于BASIC中的IF……ELSE语句通常二者连用,相当于BASIC中的IF……THEN……ELSE语句(它的英语形式一般为if a>b then c>d else if b>a the……)
3、⊿ …… 条件转移结束符号,与=>和≠>配合使用,放在条件语句最后面。
4、 LbI……标记命令。用于将一段语句作转换标记。后可接字母、数字、符号,但不能超过两个字节,如不能用≥10的数字作行标,否则会出现出错信息。
5、Goto…… (条件)转移命令。前面可加条件语句,与BASIC中的GOTO作用相同。通常与LbI一起用,如果所转移的行号无效,则会显示:GO ERROR(详见说明书)出错信息
6、 Dsz……减量循环命令。可减少未知数的数量。
7、 Isz……增量循环命令。
8、 Pause……暂停命令。后可接0~9之间的整数n,可使某一数据显示n/2秒钟,然后继续运行下面的程序。它被认为是一个语句。
9、 Fixm……变量锁定命令。该命令能使其所有变量值(A~Z)均当成定数处理。当程序运行时,将不需要输入变数(“{}”内的变数除外),而是将存贮器中原有的数值来完成计算。
10、{}…… 变量输入命令。只程序在循环使用时经常发生改变的数字,如里程、和宽度。它的输入方式可以使很多种如{AB}{A,B}{A B}都可以。注意“{”和“}”必需成对输入。否则会出现Syn ERROR(详见说明书)出错信息。
11、=、≠、>、<、≤、≥……条件运算关系算子,常与Goto命令构成条件转换语句。
12、Prog……在正常情况是下打开程序的快捷键。在编程过程中是运行子程序命令,后接子程序名(一定要加引号,且要注意空格,否则会出现Syn ERROR(详见说明书)的出错信息。
13、↓……换行,只保留计算过程不显示计算结果。当不想对其换行时也可用:代替。
14、◣……数据显示命令。该命令输入后会自动换行。保留计算过程并显示计算结果。有一条总原则即:①学会运用程序的语言,尽可能使程序变得简明扼要;我们编写程序应该尽可能地使程序变得简明扼要,能省略的要一定省略。烦琐的语句过多的字节只能使计算器的运算速度变慢没有任何好处,而且相当站用内存。学会节省字节和使用符号是相当重要的。尤其要灵活运用计算器语句因为它会使你更多的节省字节达到预期效果。比如下程序就灵活运用了 Dsz (减量循环命令)。比如使其能输入10个数值,并计算10个数值的平均值。一般程序求10个数字的平均值需要有11个数字的提示符号。但学会灵活运用了 Dsz (减量循环命令)那么只要有三个就可以了,这样就大大节省了字节的占用。 例程序如下:
A=10
C=0
Lbi 1
{B}
C=B+C
Dsz A
Goto 1
C÷10
但要注意的是:如果你是初学者或你对程序的编程不熟练,首先一定要先按照你的思路把程序步骤一步一步的列好在确定它能正确的计算后在想办法对其进行精简修改,否则只会使程序出现过多的错误;②尽可能使程序所包含的子程序减少;子程序过多就会造成程序结构松散,有的计算器主程序需要三个或四子程序,过多的子程序只会引起程序之间紊乱、混淆。子程序过多对在使用时查找也比较麻烦。而且子程序过多如果其中某个环节出现错误很难发现其错误所在,在编写程序时要尽量的少编写子程序,即使要编写子程序时也要注意尤其在容易出错的地方要多加注意。有弊就有利如果你对子程序了解得多了那么可以几个主程序合用一个之程序也到到了要求的减少程序的字节使程序更简化。例程序如下:
CX CD
Lbi 1 Lbi 1
Prog”V” Prog”V”
B=L-(K-S) ◣ B=L+(K-S) ◣
Goto 1 Goto 1
V
Y=√A2B2+B2X2÷A
③尽量少用或不使用扩充变数存贮器,如A[1]、A[2]等:使用扩充存贮器是一个利少弊多的做法。每扩充一个存贮器就要减少10个字节的容量,而每个扩充存贮器至少要占四个字节,比一个A~Z变量净增三个。有时你会觉得变量存贮器不够用。其实不尽然,一般程序变量数很少会超过26个,只是你不懂得去使用。一般来说,两个相对独立的程序步骤之间根本不需要考虑变量重复问题。针对某一个程序,只要不是固定变量({}内的变量),也就是那些通过计算出来的用于下一步计算的数值。我们就可以通过重复赋值来得到某些计算量。反正在下一轮循环中该量是变化的。明白了各种命令的含义和注意事项就可以编程了。 举例有公式如下:
CX 程序名称
Lbl 0↓ 起始标记命令语句
QMNFJ↓ 数据输入语句 (指公式循环运算时的不变量)
{KDE}↓ 数据输入语句(指公式循环运算时变量)
S=K—Q:G=F+J↓ 公式运算命令
X=M+ScosF↓ 公式运算命令
Y=M+SsinF↓ 公式运算命令
Prog ”j”↓ 运行子程序命令
Goto 0↓ 循环运算语句
J 子程序名称
H=X+DcosG◣ 公式运算、数据显示语
I=Y+DsinG◣ 公式运算、数据显示语
T=X—EcosG◣ 公式运算、数据显示语
U=Y—EsinG◣ 公式运算、数据显示语
最后计算器状态设定语句是大家最容易忽视的。如果将单位进行预设那么计算器就会默认其使用单位在进行下一单位换算时要一定要进行单位转换,否者会使计算结果错误。在显示屏幕的左下角可以清楚地发现小提示符号:如D代表度为现在的缺省单位、R代表弧度为现在的缺省单位、G 代表梯度为现在的缺省单位。
D. 如何在计算器上编程
可以在手机上安装可编程的计算器。例如使用易历知食软件内部的可编程计算器,就可以在计算器上编程,下面示例是编写一个计算圆面积的函数c,并在计算器中用函数c来计算半径为6的圆的面积,如下图所示:
E. 科学计算器怎么编程
如果你说的是电脑系统中自带的科学计数器的话,那东西没有编程功能,只有对不同进制的数进行辅助计算的功能,如果是其他的计算器可以查看产品说明书或网络相关资料。
F. 学生计算器怎么编程
貌似不能编程,要工程计算机
G. 计算器编程怎么编
易语言高仿计算器源码:
-----------------------------------
版本
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,
)
.如果结束
.如果结束
.如果结束
.如果结束
.子程序
_按钮清空_被单击
显示框.内容
=
“”
.子程序
_按钮清空_被双击,
逻辑型
.参数
横向位置,
整数型
.参数
纵向位置,
整数型
.参数
功能键状态,
整数型
第一个数.内容
=
“”
H. 请教一下如何编程一个简易计算器
方法/步骤
1
打开Microsoft Visual Studio 2010, 新建名字为【计算器】的程序。
2
在新程序界面空白窗口上放置合适的控件:包括,
显示过程数字和结果数字的textbox控件;
用于各数字输入和计算方式输入的按钮,包括1,2,3,4,5,6,7,9,0和加减乘除等符号。
15
同样可以验证减法和除法。
I. 计算器怎么编程
网上问问,或问关于这方面的朋友等