當前位置:首頁 » 編程軟體 » 計算器的編程

計算器的編程

發布時間: 2022-01-14 19:39:50

A. 計算器程序編程,用java編寫,怎麼寫

計算器很簡單了,看你要做的是普通的計算器還是科學計算器?噢,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. 計算器怎麼編程

網上問問,或問關於這方面的朋友等

熱點內容
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:298
手掛機腳本游 發布:2024-12-22 19:38:00 瀏覽:429
層次原理圖如何編譯 發布:2024-12-22 19:27:17 瀏覽:371
android計算緩存大小 發布:2024-12-22 19:16:54 瀏覽:660
php訪問模塊 發布:2024-12-22 19:05:24 瀏覽:272
電梯IC加密 發布:2024-12-22 19:04:47 瀏覽:376
腳本圈是引流加粉嗎 發布:2024-12-22 18:41:26 瀏覽:392
ajax文件上傳表單提交 發布:2024-12-22 17:55:00 瀏覽:856
win7無法共享的文件夾 發布:2024-12-22 17:53:39 瀏覽:41
華為手機密碼怎麼解鎖 發布:2024-12-22 17:53:38 瀏覽:554