科学计算器代码

合集下载

计算机CMD命令大全

计算机CMD命令大全

@echo off 命令
要点三
关闭命令回显
使用 @echo off 命令可以在执行批处理文件时,关闭命令的回显,避免在命令行窗口中显示命令本身。
要点一
要点二
简化输出
如果希望在执行批处理文件时,不显示命令的输出,可以将命令放在 @echo off 后面,这样输出将被忽略。
常用搭配
常常与 @pause 命令一起使用,实现在关闭回显的同时,暂停程序运行,以便查看执行结果。
move命令
总结词:删除文件或目录详细描述:使用del命令可以永久删除文件或目录,无法恢复。常用参数/Y:确认删除,不提示确认/F:强制删除,包括隐藏和系统文件/S:删除子目录和子文件/Q:安静模式,不显示确认信息,直接删除示例:del file.txt删除file.txt文件
del命令
05
批处理命令
显示DNS服务器解析信息:`ipconfig /displaydns`
清除DNS解析缓存:`ipconfig /flushdns`
ipconfig命令
diskpart命令
diskpart list volume
显示磁盘分区详细信息
diskpart delete volume=分区名称
删除磁盘分区
diskpart create partition=逻辑驱动器名称 size=分区大小(MB)
创建新的磁盘分区
diskpart set active partition=逻辑驱动器名称
设置磁盘分区为活动
eventvwr命令
eventvwr
显示系统事件日志
显示应用程序日志
显示系统日志
查看特定事件详细信息
eventvwr /Applications

教学仪器全国通用代码 整理

教学仪器全国通用代码 整理

序号 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789
产品名称 教学专用仪器设备 计量仪器(一) 长度 演示直尺 直尺(钢尺) 演示游标卡尺 演示千分尺 游标卡尺 数显卡尺 外径千分尺 高度深度游标卡尺 钢卷尺 皮尺(布卷尺) 软尺 公市制两用尺 读数显微镜 角度 直角尺 量角器(半园仪) 直角器 质量 分析天平 物理天平 学生天平 托盘天平 演示托盘天平 直视天平 单盘天平 托盘扭力天平 电子天平 质量测量工具箱 容量 塑料量杯 密度 密度计 比重计 比轻计 比重瓶 流量 压力、真空 福廷式气压计 气压计 空盒气压计 曲管气压计 微小压强计 真空计 真空规管 测力 条形盒测力计
单位 台 个 支 支 台 台 台 台 台 台 台 台 台 台 台 支 台 台 台 台 台 个 个 台 台 台 台 个 台 台 套 个 台 个 台 个 套 个 个 个 个 个 个

个 套 台 个 个
缩写 cqj dzdz fsl fsj gxl zdj szszdj fzj gdj ldj jgglj hxl sdj szssdj zdj sdj gdbsj qtl cyj tyjxyq tyyqsb jsq jsq xxqy zlb tsb xpszkb lyqt lxcdq zkq dkq xzcqq cqj szq jypsgy tmcyt cqp pj dkqgd dkjb zt csjt slrb sjrq slt lzjhcs dgnfsj kshy jbqjt

matlab-GUI-设计(简易科学计算器)

matlab-GUI-设计(简易科学计算器)

MATLAB大作业班级:姓名:学号:计算器➢题目本题目通过MATLAB的gui程序设计较为简单,在gui设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button)。

然后在通过各个按钮的回调函数,实现简单的计算功能。

➢1、功能介绍(1)具有友好的用户图形界面。

实现十进制数的加、减、乘、除、乘方、开方等简单计算。

(2)具有科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。

(注:三角函数计算的是弧度而不是角度)。

(3)有清除键,能清除操作。

➢2、功能实现程序由两个部分组成:MATLAB代码(.m文件)和GUI图形(.fig)。

程序使用的流程:直接利用图形界面中的按键键入所需数值、运算符等即可得出结果。

备注:软件版本:MATLAB 2011b首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及33个命令按钮,调整好各控件大小、颜色,整体布局如图所示:(附录中有相关属性修改介绍)然后通过双击各个按钮来改写其属性,在m文件中编写其回调函数,最后在运行调试。

2.1 各功能界面设计GUI设计界面:注:底部边框用(Panel)工具添加,有两种设计顺序。

(1、先加底部边框,再在底部边框上画功能键。

2、先画功能键,布好局,画底框,全选功能键拖动到底框上。

)2.2 各功能模块实现(可根据需要增减功能键)算法设计:1. 数字键设计:0—9以及小数点函数都一样,只是参数不同:例如:按键‘1’响应:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','1') ;elsetextString =strcat(textString,'1');set(handles.text1,'String',textString)endjj=0;2. 四则运算函数:‘+’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'+');set(handles.text1,'String',textString)‘-’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'-');set(handles.text1,'String',textString)‘×’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'*');set(handles.text1,'String',textString)‘÷’功能响应:textString = get(handles.text1,'String');textString =strcat(textString,'/');set(handles.text1,'String',textString)3. 科学计算函数:例如:‘sin’功能响应:textString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)set(handles.text1,'String','0.') ;elsea = strread(textString, '%f');a=sin(a);set(handles.text1,'String',a)end4. 退格键(DEL):通过取屏幕值,计算出其字符长度,然后取其前N-1项的值来实现退格:global jjtextString = get(handles.text1,'String');if(strcmp(textString,'0.')==1)&(jj==0)set(handles.text1,'String','0.') ;elsess=char(textString);l=length(textString);textString=ss(1:l-1);set(handles.text1,'String',textString)endjj=0;5. 清屏键函数(AC):set(handles.text1,'String','0.') ;2.3 各模块程序添加方法选中一个需添加程序的功能键,右击,View Callbacks,Callback,出现如下图所示界面。

java计算器设计实验报告

java计算器设计实验报告

java计算器设计实验报告《Java计算器设计实验报告》摘要:本实验报告基于Java语言,设计了一个简单的计算器。

通过使用面向对象的编程方法,实现了基本的加、减、乘、除运算,并且实现了用户界面的交互操作。

本实验报告详细介绍了计算器的设计思路、实现过程和代码结构,并对实验结果进行了分析和总结。

1. 引言计算器是人们日常生活中常用的工具之一,它能够帮助人们进行简单的数学运算。

随着计算器的普及和发展,计算器的功能也越来越丰富,例如科学计算器、金融计算器等。

本实验旨在通过使用Java语言,设计一个简单的计算器,以加深对面向对象编程的理解和应用。

2. 设计思路在设计计算器时,首先需要确定计算器的功能需求,包括加法、减法、乘法、除法等基本运算。

其次,需要考虑用户界面的设计,使用户能够方便地输入数字和选择运算符。

最后,需要考虑计算器的实现方式,包括数据结构的选择、算法的设计等。

3. 实现过程在本实验中,我们使用Java语言和Swing库来实现计算器的设计。

首先,我们创建一个Calculator类来处理计算器的逻辑操作,包括加法、减法、乘法、除法等运算。

然后,我们创建一个CalculatorUI类来处理用户界面的设计,包括数字按钮、运算符按钮和显示屏的设计。

最后,我们将Calculator类和CalculatorUI类进行整合,实现一个完整的计算器。

4. 代码结构以下是计算器的主要代码结构:Calculator类:- add(double a, double b):加法运算- subtract(double a, double b):减法运算- multiply(double a, double b):乘法运算- divide(double a, double b):除法运算CalculatorUI类:- createNumberButton(int number):创建数字按钮- createOperatorButton(String operator):创建运算符按钮- createDisplayScreen():创建显示屏Main类:- main(String[] args):主函数,启动计算器界面5. 实验结果分析通过实验,我们成功地实现了一个简单的计算器,用户能够输入数字并进行加、减、乘、除等运算。

python科学计算器代码

python科学计算器代码

python科学计算器代码以下是一个简单的Python科学计算器代码示例: python.import math.def add(x, y):return x + y.def subtract(x, y):return x y.def multiply(x, y):return x y.def divide(x, y):if y == 0:return "Error! Division by zero." else:return x / y.def power(x, y):return x y.def sqrt(x):return math.sqrt(x)。

def sin(x):return math.sin(x)。

def cos(x):return math.cos(x)。

def tan(x):return math.tan(x)。

print("选择操作,")。

print("1. 相加")。

print("2. 相减")。

print("3. 相乘")。

print("4. 相除")。

print("5. 求幂")。

print("6. 平方根")。

print("7. 正弦")。

print("8. 余弦")。

print("9. 正切")。

choice = input("输入你的选择(1/2/3/4/5/6/7/8/9):")。

if choice in ['1', '2', '3', '4', '5']:num1 = float(input("输入第一个数字: "))。

用c语言设计一个多功能计算器

用c语言设计一个多功能计算器

用C语言设计一个多功能计算器实现功能:1)具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。

依次输入第一个运算数、运算符(+,-,*,/),第二个运算数,然后输出结果。

结果可以作为下一个运算的第一运算数。

按‘C’清屏,按‘X’退出。

例如:输入:2+5输出:72)实现单运算符表达式计算的功能。

输入的操作数可以包含整数或浮点数。

如果遇到错误的表达式,应输出错误提示信息。

输入表达式如下:例如:输入:2+5输出:7目录摘要 (1)第一章引言 (3)1.1 计算器概述 (3)第二章设计任务及要求 (5)2.1 设计任务 (5)2.2 设计要求 (6)第三章计算器硬件设计 (7)3.1 方案说明 (7)3.2 设计单片机主体电路图 (8)第四章软件设计 (9)4.1 模块介绍 (9)4.2 程序流程图 (10)4.3 程序部分 (11)第五章总结 (16)参考文献 (17)摘要:[目录]一、课程设计题目及任务要求二、设计思路三、部分程序介绍四、程序框图五、汇编程序六、参考资料[原文]一、课程设计题目及任务要求请设计十进制加减法计算器。

要求能(不同时)显示3位输入和4位输出。

二、设计思路1、操作显示设备显示设备采用八片七段共阴极LED显示器,共设置16 个键,其中数字键0~9 共十个,接下来依次是加号键、减号键、等于号、清除键。

操作设备是两行八列共16键的简单键盘。

第一行从左至右分别为0、1、2、3、4、5、6、7,第二行分别为8、9、A(+)、B(-)、C(=)、D(清除键)、E (清除键)、F(清除键),“清除键”表示程序初始化,为下次输入准备。

2、程序实现功能(1)十进制加减法计算:输入范围为(1~999),该程序输入两个定点数,每个3位,输出4位;A为加,B为减,C为等于,输出为四位计算结果。

数据输入采用规范化输入,即必须输入3个数才算完成一个运算数的输入,两个运算数之间输入运算符A或者B,输入完成按C显示计算结果;(2)计算机复位功能:DEF均为清零重启,任何时候按下DEF中一个将重新开始;三、部分程序介绍(1)主程序(START)程序开始运行初始化程序,设置输入输出口PA、PB、PC,扫描键盘,输入两个待求数据和运算符,存入寄存器,等待输入等号同时显示第二个数,运行计算程序,并将计算结果分离,输出到显示器;(2)读键子程序(RD_KB)程序分别扫描两行键盘,若有键按下则通过移位的方式计算键码;若无键按下,则将键码缓存设置为10H,判断后进行相应的跳转。

小学数学科学教学仪器配备标准(教育部0610)

小学数学科学教学仪器配备标准(教育部0610)

小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)
小学数学科学教学仪器配备标准(教育部0610)。

java计算器实验报告

java计算器实验报告

课程设计论文设计题目:java计算器学生姓名:指导教师:专业名称:所在院系:摘要在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。

Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。

该程序是一个图形界面的java 计算器,其界面主要采用了swing包,程序实现了:(1)实现简单加、减、乘、除的运算。

(2)实现除了加、减、乘、除按钮外其他按钮功能。

(3)给软件添加一个编辑、查看、帮助的主菜单。

(4)在数据输入方面,提高程序代码的健壮性,增强其对非法输入数据的识别能力。

(5)科学型计算器与标准计算器之间的菜单切换。

Java的早期版本以来,抽象窗口工具包为用户界面组件提供了平台独立的API。

在AWT中,每个组件都由一个原生的等同组件生成和控制,这个原生组件是由当前的图形窗口系统决定的。

与此相对,Swing 组件经常被描述为轻量级的,因为它们不需要操作系统本身所带窗口工具包的原生资源来生成。

目录第1章概要设计 (1)1.1查找资料 (1)1.2选题 (1)1.3标准型计算器界面设计 (1)1.4本章小节 (3)第2章程序整体设计说明 (4)2.1程序中所用到的变量 (4)2.2程序部分源代码及注释 (4)2.3本章小节 (15)第3章程序运行效果 (16)3.1程序运行主界面 (16)3.2程序中各按钮运行界面 (16)3.3本章小节 (20)第4章设计中遇到的重点及难点 (21)4.1设计中遇到的重点 (21)4.2设计中的遇到的难点 (21)4.3本章小节 (23)第5章本次设计中存在不足与改良方案 (24)5.1本次设计中存在的不足 (24)5.2本次设计的改良方案 (24)5.3本章小节 (24)结论 (25)参考文献 (26)致谢 (27)指导教师评语 (28)答辩委员会评语 (29)第1章概要设计1.1查找资料21世纪,随着社会经济的迅速发展和科学技术的全面进步,人类社会已进入信息和网络时代。

C#科学计算器代码

C#科学计算器代码
this.button3.Enabled = true;
this.button2.Enabled = true;
this.buttonA.Enabled = false;
this.buttonB.Enabled = false;
{
this.btn_per.Enabled = false;
this.btn_e.Enabled = false;
this.btn_down.Enabled = false;
this.btn_log.Enabled = false;
this.buttonC.Enabled = false;
this.buttonD.Enabled = false;
this.buttonE.Enabled = false;
this.buttonF.Enabled = false;
科学型:
using System;
using System.Collections.Generic;
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
d2 = System.Convert.ToString(d1, 16);
txt_Result.Text = d2.ToString();
}
else if (this.rBtn2.Checked)//十进制转换二进制
d1 = (int)a;
d2 = System.Convert.ToString(d1, 8);

51单片机实现的简易计算器

51单片机实现的简易计算器

51单片机实现的简易计算器1. 4X4键盘输入,点阵字符型液晶显示。

2. 由于所采用的浮点程序库的限制(MCU平台只找到这个……),浮点运算采用3字节二进制补码表示,有效数字6位。

对于输入输出,采用3字节BCD码浮点数格式,有效数字只有4位,因此最终有效数字只有4位。

3. 可进行连续输入,例如:1.23+4.56*8.23/234.8 ,但是运算结果为从左到右,这也是8位简易计算器的方式。

4. 可进行错误判断,溢出、除零等错误将显示一个字符 E 。

5. 由于键盘只有16个按键,安排如下: +---------------+ | 7 | 8 | 9 | + | | 4 | 5 | 6 |- | | 1 | 2 | 3 | * | | 0 | . | = | / | +---------------+6. 按键的缺少导致取消了一些特殊函数,即开根号,三角函数(sin, cos, tan, ctg)的实现,由于这些函数在浮点程序库中均已提供,如果硬件允许,在原来的框架上添加这些附加功能是很容易的(可以看作和+, -, *, /等价的按键操作,调用不同的子程序进行运算即可)7. 按两次 = 等于清灵。

因为按键实在太少,才采用了这个做法。

8. 相应举例:按键结果说明- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --123+= 123 按下等号而没有第二个操作数,保留第一个操作数并认为此次运算结束(等号的功能)123+321/111 4.0 等价于(123+321) / 1112.3+5.4=/0.1+ 77 等号后直接按 / ,则将前面的运算结果作为第一个操作数1/0= E 错误显示 9. 不足使用3字节的浮点数表示,不可避免的带来了数表示的不精确,加上有效数字比较少,因此计算结果很容易产生误差,尤其是进行连续多次运算后,结果和精度较高的科学计算器的误差会很快达到0.01以上,当然这个差距和所测试的用例也有关系,4位有效数字导致了数字123456只能表示为123400,最后两位有效数字被摒弃了。

用c语言编写的计算器源代码

用c语言编写的计算器源代码

作品:科学计算器作者:欧宗龙编写环境:vc++6.0语言:c#include"stdafx.h"#include<stdio.h>#include<windows.h>#include<windowsx.h>#include"resource.h"#include"MainDlg.h"#include<math.h>#include<string.h>#definePI3.141593BOOLA_Op=FALSE;BOOLWINAPIMain_Proc(HWNDhWnd,UINTuMsg,WPARAMwParam,LPARAMlParam) {switch(uMsg){HANDLE_MSG(hWnd,WM_INITDIALOG,Main_OnInitDialog);HANDLE_MSG(hWnd,WM_COMMAND,Main_OnCommand);HANDLE_MSG(hWnd,WM_CLOSE,Main_OnClose);}returnFALSE;}BOOLMain_OnInitDialog(HWNDhwnd,HWNDhwndFocus,LPARAMlParam){returnTRUE;}voidTrimNumber(chara[])//判断并删除小数点后无用的零{for(unsignedi=0;i<strlen(a);i++){if(a[i]=='.'){for(unsignedj=strlen(a)-1;j>=i;j--){if(a[j]=='0'){a[j]='\0';}elseif(a[j]=='.'){a[j]='\0';}elsebreak;}}}}doubleOperate(charOperator,doublen1,doublen2)//判断符号,进行相应的运算{if(Operator=='0'){}if(Operator=='+'){n2+=n1;}if(Operator=='-'){n2=n1-n2;}if(Operator=='*'){n2*=n1;}if(Operator=='/'){n2=n1/n2;}if(Operator=='^'){n2=pow(n1,n2);}return n2;}////////////////////////////////////////////////voidIntBinary(chara[],intn){if(n>1)IntBinary(a,n/2);sprintf(a,"%s%i",a,n%2);}voiddecimal(chara[],doublem){if(m>0.000001){m=m*2;sprintf(a,"%s%d",a,(long)m);decimal(a,m-(long)m);}}voidBinary(chara[],doubleNum){charDecP[256]="";doublex,y;double*iptr=&y;x=modf(Num,iptr);decimal(DecP,x);IntBinary(a,(int)y);strcat(a,".");strcat(a,DecP);}////////////////////////////////////voidMain_OnCommand(HWNDhwnd,intid,HWNDhwndCtl,UINTcodeNotify) {staticDELTIMES=0;staticcharstr[256];staticcharOperator='0';staticdoubleRNum[3];switch(id){caseIDC_BUTTONN1://数字1{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"1");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN2://数字2{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"2");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN3://数字3{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"3");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN4://数字4{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"4");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN5://数字5{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"5");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN6://数字6{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"6");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN7://数字7{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"7");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN8://数字8{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"8");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN9://数字9{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"9");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;caseIDC_BUTTONN0://数字0{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));strcat(str,"0");SetDlgItemText(hwnd,IDC_EDIT,str);RNum[1]=atof(str);A_Op=FALSE;}break;case{if(A_Op){SetDlgItemText(hwnd,IDC_EDIT,NULL);}GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));if(DELTIMES==0){strcat(str,".");}DELTIMES++;SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=FALSE;}break;caseIDC_BUTTONADD://加法运算{RNum[1]=atof(str);RNum[0]=RNum[1];RNum[1]=RNum[2];RNum[2]=Operate(Operator,RNum[1],RNum[0]);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='+';DELTIMES=0;A_Op=TRUE;}break;caseIDC_BUTTONSUB://减法运算{RNum[1]=atof(str);RNum[0]=RNum[1];RNum[1]=RNum[2];RNum[2]=Operate(Operator,RNum[1],RNum[0]);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);DELTIMES=0;A_Op=TRUE;Operator='-';}break;caseIDC_BUTTONMUL://乘法运算{RNum[1]=atof(str);RNum[0]=RNum[1];RNum[1]=RNum[2];RNum[2]=Operate(Operator,RNum[1],RNum[0]);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='*';DELTIMES=0;A_Op=TRUE;}break;caseIDC_BUTTONDIV://除法运算{RNum[1]=atof(str);RNum[0]=RNum[1];RNum[1]=RNum[2];RNum[2]=Operate(Operator,RNum[1],RNum[0]);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='/';DELTIMES=0;A_Op=TRUE;}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[1]=atof(str);RNum[0]=RNum[1];RNum[1]=RNum[2];RNum[2]=Operate(Operator,RNum[1],RNum[0]);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='^';DELTIMES=0;}break;caseIDC_BUTTONPI://圆周率PI,弧度{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));if(atof(str)!=0){RNum[2]=atof(str)*PI;sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);}else{sprintf(str,"%f",PI);SetDlgItemText(hwnd,IDC_EDIT,str);}A_Op=TRUE;}break;caseIDC_BUTTONSQRT://开根号{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=sqrt(atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;caseIDC_BUTTONSIN://三角函数sin函数{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=sin(atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=cos(atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=tan(atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;caseIDC_BUTTONSQ://平方{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=atof(str)*atof(str);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=atof(str)*atof(str)*atof(str);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=exp(atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=pow(10,atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;caseIDC_BUTTONLN://lnx{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=log(atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;caseIDC_BUTTONLOG10://log10{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=log10(atof(str));sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;caseIDC_BUTTONBINARY://十进制转换为二进制{chara[256]="";GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[2]=atof(str);Binary(a,RNum[2]);strcpy(str,a);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;}break;case{DELTIMES=0;Operator='0';RNum[0]=RNum[1]=RNum[2]=0;memset(str,0,sizeof(str));SetDlgItemText(hwnd,IDC_EDIT,NULL);A_Op=FALSE;}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));inti=strlen(str);str[i-1]='\0';SetDlgItemText(hwnd,IDC_EDIT,str);}break;case{GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str));RNum[1]=atof(str);RNum[0]=RNum[1];RNum[1]=RNum[2];RNum[2]=Operate(Operator,RNum[1],RNum[0]);sprintf(str,"%f",RNum[2]);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='0';DELTIMES=0;}break;default:break;}}voidMain_OnClose(HWNDhwnd){EndDialog(hwnd,0);}本人拙作,如有不足之处请谅解。

MATLAB科学计算器设计——GUI设计(含源代码)

MATLAB科学计算器设计——GUI设计(含源代码)

MATLAB科学计算器设计——GUI设计(含源代码)目录计算器的效果图............................................................................ 错误!未定义书签。

第一章GUI设计界面 .. (4)1.1打开GUI (4)1.2.添加按钮 (5)1.3.根据按钮的作用及视觉效果做一定的修改 (5)1.4.保存、添加功能函数 (6)1.4.1 数字键编写 (6)1.4.2 符号键的编写 (6)1.4.3 运算符“=”的编写 (6)1.4.4 按键“←back”的编写 (7)1.4.5 按键“清空”的编写 (7)1.4.6 按键“退出”的编写 (7)1.4.7 按键“二进制数转十进制数”的编写 (7)1.4.8 按键“十进制数转二进制数”的编写 (7)第二章计算器的使用 (7)2.1 除法运算(÷) (7)2.2 平方运算(^2) (8)2.3 函数cos (∏/3)的计算 (8)2.4 函数arctan (∏/3)的计算 (9)2.5 以2为底的对数(log 2)的计算 (9)2.6 十进制数转二进制数的计算 (10)2.7 二进制数转十进制数的计算 (11)第三章各按键的程序源代码 (12)第四章问题和解决方法 (17)第五章心得体会 (16)参考文献 (17)计算器的效果图:第一章GUI设计界面:1.1打开GUI输入Guide 回车或者在工具栏上点击图标打开Guide 窗口:图 11.2.添加按钮图21.3.根据按钮的作用及视觉效果做一定的修改双击按钮(Puch Button)进入按键属性修改显示字符串大小、字体和颜色,然后对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。

1.4.保存、添加功能函数把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。

少儿编程python教案做自己的计算器

少儿编程python教案做自己的计算器

,所以第二行代码出错
1t.forward(100) A. 能 B. 不能 第一行 C. 不能 第二行 D. 不能 第三行

小小练习题
变量名由英文、下划线和数字组成,且不能使 用数字开头。最后要求变量名需要有意义。
使用变量画正方形
print()函数
人机交流的基本函数print()
print()函数
现在name就代表这么一句话了
变量命名规则及建议
变量命名规则及建议
变量的命名规则: ①变量命名可以又三个成分组成。分别是英文、下划线、数字。 ②变量的命名时区分大小写的。即使是使用同一个单词,但只要大小写不一样就是不同 的变量。 ③数字不能作为变量名的开头。
变量的命名建议 1、变量命名要具有意义 2、变量要美观,要重复利用字母的大小写、下划线和数字
什么是赋值
变量在Python中如何使用的呢?
通过赋值将等号左边的变量设置成等号右边的值。
这个等号和数学里面的等号意义不同,如果我们 要在Python中表示数学中的等号的话,可以用 两个等号来表示。
赋值:=
数学中的等于号:==
name = “hi I am fine Thank you and you”
print() 函数都 是小写,并且有 括号。
没有创建的变量 使用print() 打 印会出错。
四则运算
四则运算 在电脑上如何打出加减乘除
四则运算
使用python制作自己的计算器
习题练习
不借助编辑器,思考一下,下列代码的运行结果是什么? a=4 b = 10 c=2 print(a * b / c + a - b)
最大的原因是方便,这个游乐场远近闻名,只需要提一下名字,任何人都知道它在哪, 它有什么特点,能满足我什么需求。如果说出具体的地址,反而让人不知道那里是哪里, 也不太好记。

北邮JAVA第三次作业科学计算器(附源代码)

北邮JAVA第三次作业科学计算器(附源代码)

北邮JAVA第三次作业科学计算器(附源代码)JAVA第三次作业选题:科学计算器一、设计思路(1)布局1.数字键盘有0~9和小数点2.符号键盘有+某÷,幂,开方,lg,ln3.功能按键有清屏(AC)和删除(Del)(2)计算器流程状态转移图设定的标志位和变量有:booleannumflag=fale;//标志:是否输入数字booleanopflag=fale;//标志:是否输入运算操作符Stringt某t=null;//显示到文本框里的字符串Stringnum_t某t=\;//当前操作数的字符串形式Stringop=\;//存放输入的运算操作符num1=0;//第一个操作数num2=0;//第二个操作数privateBigDecimalbig_num1=newBigDecimal(Double.toString(0)); //解决浮点数的精度丢失问题privateBigDecimalbig_num2=newBigDecimal(Double.toString(0));1.关于操作数操作数为输入数字时会改变的数,有num1和num2。

按下运算符和控制字符,会设定当前下在键入的操作数,由opflag控制,fale表示正在操作num1,true表示正在操作num2。

初始状态下的操作数为num1。

按下AC会恢复操作数为初始状态num1。

按Delete、开方、lg、ln不会改变当前的操作数。

其中后三者只对num1有效。

其他的运算符和控制符都会使操作数为num2。

2.计算器的状态框图输入第一个数,比如53numflag=true(num1)opflag=falenum_t某t=”53”op=””t某t=”53”初始状态numflag=faleopflag=falenum_t某t=””op=””t某t=nullnum1,num2=0按下一个运算符,比如+numflag=faleopflag=truenum_t某t=””op=”+”t某t=”num1+”其中按下按=显示结果,恢复初始状态numflag=true(num1)opflag=falenum_t某t=””op=””t某t=”reult”“=”后,结果存输入第二个数,比如66入numflag=true(num2)opflag=truenum_t某t=”66”op=””t某t=”num1+66”num1,继续输入数字会在num1的结果上处理。

科学仪器分类及编码

科学仪器分类及编码
小学科学教学仪器分类及编码
编号 0 00 00001 00005 00006 00007 00009 00010 00011 00013 01 01001 01012 02 02002 02015 02020 02041 02043 02045 02051 02052 02061 02075 02077 02086 02091 02092 02101 02126 02128 02129 03 03002 方座支架 打孔器 打气筒 仪器车 生物显微镜 生物显微演示装置 学生显微镜 放大镜 放大镜 天文望远镜 酒精喷灯 电加热器 电冰箱 电烤箱 保温箱 听诊器 水族箱 手持移动灯 水槽 支架 套 J02302 坐式 密封式 500倍 彩色,分辨率450TV线以上,放大倍数 40倍~1 500倍 200倍,单筒 5倍,直径不小于30mm 3倍,直径不小于40mm 计算机 计算器 一般 4件 套 个 辆 台 台 台 个 个 套 个 台 台 台 台 个 套 台 个 J37022 J35004 J02610 J02610 J44002 J02703 J02708 J86860 Z19001 J35001 J02011 书写投影器 视频展示台 液晶投影机 银幕 录像机 影碟机 照相机 摄像机 计算机 多媒体 简易型 台 个 $2,001 名 称 通用 视昕 250mm×250ram . 台 台 台 幅 台 台 台 台 D00001 D50310 D8031l D30010 D60001 D50015 D20001 D60101 规格型号功能 单位 分类与代码
第 3 页,共 8 页
小学科学教学仪器分类及编码
编号 29025 24002 29028 29029 29030 29031 29032 29033 25012 29035 29036 29037 29038 29039 29040 29041 29042 22004 3 39 39001 39051 39052 39053 39054 39101 39102 34001 34002 39151 39152 39154 39156 4 条形磁铁 蹄形磁铁 蹄形磁铁 磁针 环形磁铁 电磁铁组装材料 电磁铁 手摇发电机 激光笔 小孔成像装置 平面镜及支架 曲面镜及支架 透镜、棱镜及支架 成像屏及支架 昆虫观察盒 动物饲养笼 塑料注射器 单摆 模型 小学科学 照相机模型 儿童骨骼模型. 儿童牙列模型 少年人体半身模型 眼构造模型 啄木鸟仿真模型 猫头鹰仿真模型 平面政区地球仪 平面地形地球仪 地动仪模型 地球构造模型 司南模型 月相变化演示器 标本 自然大,用羽毛制作 自然大,用羽毛制作 1:40 000 000 1:40 000 000 附牙刷 光学 套 台 台 台 台 件 件 个 个 台 件 台 件 M30401 M30402 30mL 一个摆球 带不小于3倍的放太镜 凸面镜、凹面镜等 凸透镜、三棱镜等 组装式 演示用 名 称 学生用 D-CG-LU-80 学生用 规格型号功能 单位 套 套 套 套 套 套 套 个 个 套 套 套 套 套 个 个 个 套 J80247 分类与代码 J11001 J11002 J11002 J11005

python科学计算器代码

python科学计算器代码

python科学计算器代码以下是一个简单的Python科学计算器的代码范例:```pythonimport mathdef main():print("欢迎使用科学计算器!")while True:print("请选择要进行的操作:")print("1. 开方")print("2. 平方")print("3. 对数")print("4. 三角函数")print("5. 阶乘")print("6. 退出")choice = input("请输入操作编号:")if choice == "1":square_root()elif choice == "2":square()elif choice == "3":logarithm()elif choice == "4":trigonometry()elif choice == "5":factorial()elif choice == "6":print("感谢使用科学计算器,再见!") breakelse:print("输入无效,请重新输入。

") def square_root():num = float(input("请输入一个数字: "))result = math.sqrt(num)print(f"开方结果为: {result}")def square():num = float(input("请输入一个数字: "))result = num ** 2print(f"平方结果为: {result}")def logarithm():num = float(input("请输入一个数字: "))base = float(input("请输入对数的底数: ")) result = math.log(num, base)print(f"对数结果为: {result}")def trigonometry():angle = float(input("请输入角度值: "))radians = math.radians(angle)sine = math.sin(radians)cosine = math.cos(radians)tangent = math.tan(radians)print(f"正弦值: {sine}")print(f"余弦值: {cosine}")print(f"正切值: {tangent}")def factorial():num = int(input("请输入一个正整数: "))result = math.factorial(num)print(f"{num}的阶乘结果为: {result}")if __name__ == "__main__":main()```这个程序提供了几个常见的科学计算操作,包括开方、平方、对数、三角函数和阶乘。

C语言实现科学计算器的加减乘除平方开放运算

C语言实现科学计算器的加减乘除平方开放运算

C语言实现科学计算器的加减乘除平方开放运算科学计算器是一种能够进行各种高级数学运算的工具。

在这个项目中,我们将使用C语言实现一个简单的科学计算器,它能够执行加法、减法、乘法、除法、平方和开方等运算。

首先,让我们来设计计算器的基本框架。

我们可以使用一个循环来接受用户的输入,并根据输入的指令执行相应的运算。

我们可以使用一个变量来存储当前的结果,并在每次运算完成后更新该变量。

以下是一个简单的代码框架:```c#include <stdio.h>#include <math.h>int maidouble result = 0; // 存储当前的结果char operation; // 存储用户的指令while (1)//显示当前的结果printf("当前结果:%lf\n", result);//获取用户的指令printf("请输入指令:");scanf(" %c", &operation);//根据用户的指令执行相应的运算switch (operation)case '+'://执行加法运算break;case '-'://执行减法运算break;case '*'://执行乘法运算break;case '/'://执行除法运算break;case 's'://执行平方运算break;case 'r'://执行开方运算break;case 'q'://退出计算器return 0;default:printf("无效的指令\n");}}return 0;```在代码中,我们使用了`switch`语句来根据用户的指令执行相应的运算。

接下来,我们将详细说明每个运算的实现。

1.加法运算:用户可以输入两个数,并将它们相加。

科学计算器vb代码

科学计算器vb代码
Top = 1455
Width = 630
End
Begin mandButton Cmd_Ln
Caption = "Ln"
Height = 390
Left = 1575
TabIndex = 35
Top = 960
Width = 630
End
Begin mandButton Cmd_Square
Caption = "C"
Height = 405
Left = 4785
TabIndex = 15
Top = 405
Width = 750
End
Begin mandButton Cmd_CE
Caption = "CE"
Height = 405
Left = 3975
TabIndex = 14
Caption = "Tan"
Height = 390
Left = 120
TabIndex = 28
Top = 1935
Width = 630
End
Begin mandButton Cmd_Atan
Caption = "Atan"
Height = 390
Left = 120
TabIndex = 27
TabIndex = 17
Top = 1935
Width = 510
End
Begin mandButton Cmd_sqrt
Caption = "Sqrt"
Height = 390
Left = 5025
TabIndex = 16

同源替换方法

同源替换方法

同源替换方法同源替换方法是指在编程中,通过替换相同源的代码段来实现相同或类似功能的一种技术。

同源替换方法可以提高代码的复用性和可维护性,减少代码的重复编写,提高开发效率。

同源替换方法的核心思想是将相同源的代码段进行抽象和封装,通过参数的灵活传递和处理,实现对不同场景的适应和灵活调用。

下面将以实际案例来介绍同源替换方法的具体应用。

假设我们有一个需求:编写一个计算器程序,实现加法、减法、乘法和除法的功能。

我们可以使用同源替换方法来实现这个需求。

我们需要定义一个基础的计算器类,其中包含加法、减法、乘法和除法的基本操作。

这些操作可以作为同源替换的基础代码段。

```pythonclass Calculator:def add(self, a, b):return a + bdef subtract(self, a, b):return a - bdef multiply(self, a, b):return a * bdef divide(self, a, b):return a / b```接下来,我们可以创建不同的子类来实现不同的计算器功能。

比如,我们可以创建一个科学计算器类,实现乘方和开方的功能。

```pythonclass ScientificCalculator(Calculator):def power(self, a, b):return a ** bdef square_root(self, a):return a ** 0.5```同样地,我们还可以创建一个统计计算器类,实现求平均值和求和的功能。

```pythonclass StatisticalCalculator(Calculator):def average(self, numbers):return sum(numbers) / len(numbers)def summation(self, numbers):return sum(numbers)```通过这种方式,我们可以在不修改基础计算器类的情况下,实现不同类型的计算器功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Calculate.java/*这是一个计算类,用于普通运算中的各种运算,如2,8,10,16进制的符合运算,复合运算其原理用后缀表达式来实现*/import java.util.*;import ng.Math;class Calculate {//两个内部类来实现数据的存储,如同数据结构中的栈class operator{ char data[];int top;operator(){data = new char [50];top = -1;}};class operator1{ double data[];int top;operator1(){data = new double [20];top = -1;}};public static double jiecheng(double number)//阶乘运算{int number1 = (int)number;double j=1;for(int i=1;i<=number1;i++)j=j*i;return j;}String trans (char exp[],char postexp[])//后缀表达式的翻译函数{int i=0,j=0;boolean m=true;//m用来监视表达式是不有非法的运算符连着输入operator op = new operator();while(exp[j]!='\0'){ switch (exp[j]){case '(':op.top++;op.data[op.top]=exp[j];j++;m= false;break;case ')':while (op.data[op.top]!='('){ postexp[i++]=op.data[op.top];op.top--;}op.top--;j++;break;case '+':case '-':if(!m)return "+或者-附近出现多个运算符在一起的现象!";while (op.top!=-1 && op.data[op.top]!='('){postexp[i++]=op.data[op.top];op.top--;}op.top++;op.data[op.top]=exp[j];j++;m=false;break;case '*':case '/':if(!m)return "*或/附近出现多个运算符在一起的现象!";while(op.top!=-1 && op.data[op.top]!='('&& op.data[op.top]!='+'&& op.data[op.top]!='-'){postexp[i++]=op.data[op.top];op.top--;}op.top++;op.data[op.top]=exp[j];j++;m = false;break;case '^':if(!m)return "^(冥运算符号)附近出现多个运算符在一起的现象!";case 's':case 'c':case 't':case 'l':case '$':case '`':op.top++;op.data[op.top]=exp[j];j++;m = false;break;case '!':op.top++;op.data[op.top]=exp[j];j++;break;case ' ':break;default:while (exp[j]>='0' && exp[j]<='9'||exp[j]=='.'){postexp[i++]=exp[j];j++;}postexp[i++]='#';m = true;}}while (op.top!=-1){postexp[i++]=op.data[op.top];op.top--;}postexp[i]='\0';if(exp[j-1]=='+'||exp[j-1]=='-'||exp[j-1]=='*'||exp[j-1]=='/'||exp[j-1]=='^') return "运算式后缀出现非正常运算符!";return "ok";}String compvalue (char postexp[],int flag)//后缀表达式运算,flag为进制{String ex = new String(postexp);StringTokenizer analy = new StringTokenizer(ex,"#+-`*/sclt!^$");operator1 st = new operator1();double d,d1,d2,a,b,c;int j=0;st.top=-1;while (postexp[j]!='\0'){switch (postexp[j]){case '+':a=st.data[st.top];st.top--;b=st.data[st.top];c=a+b;st.data[st.top]=c;break;case '-':a=st.data[st.top];st.top--;b=st.data[st.top];c=b-a;st.data[st.top]=c;break;case '*':a=st.data[st.top];st.top--;b=st.data[st.top];c=a*b;st.data[st.top]=c;break;case '/':a=st.data[st.top];st.top--;b=st.data[st.top];st.top--;if (a!=0){ c=b/a;st.top++;st.data[st.top]=c;}else{ return "输入错误,除数不能是零!请重新输入!";}break;case 's':a=st.data[st.top];c=Math.sin(Math.toRadians(a));st.data[st.top]=c;break;case 'c':a=st.data[st.top];c=Math.cos(Math.toRadians(a));st.data[st.top]=c;break;case 't':a=st.data[st.top];if(a%180 == 90||(-a)%180==90)return "tan函数值有误!";c=Math.tan(Math.toRadians(a));st.data[st.top]=c;break;case '!':a=st.data[st.top];c=jiecheng(a);st.data[st.top]=c;break;case 'l':a=st.data[st.top];if(a<=0)return "log的真数不能小于等于0";c=Math.log(a);st.data[st.top]=c;break;case '^':a=st.data[st.top];st.top--;b=st.data[st.top];c=Math.pow(b,a);st.data[st.top]=c;break;case '$':a=st.data[st.top];if(a<0)return "开方数不能小于0!";c=Math.sqrt(a);st.data[st.top]=c;break;case '`':a=st.data[st.top];c=0-a;st.data[st.top]=c;break;default:String str =analy.nextToken();//获取后缀表达式的数据if(flag == 2)d = btod(str);else if(flag == 8)d = otod(str);else if(flag == 10)d=Double.parseDouble(str);elsed = htod(str);while (postexp[j]>='0' && postexp[j]<='9'||postexp[j]=='.'){j++;}st.top++;st.data[st.top]=d;break;}j++;}return (String.valueOf(st.data[st.top]));}String check(char c[])//检查函数,用来检查运算式中的低级错误{int k=0,i=0;if(c[0]=='+'||c[0]=='-'||c[0]=='^'||c[0]=='*'||c[0]=='/')return "表达式开始位置不对";while(c[k]!='\0'){if((c[k]>=39 && c[k]<='9'&&c[k]!=',') ||c[k]=='$'||c[k]=='!'||c[k]==' '||c[k]=='c'||c[k]=='s'||c[k]=='t'||c[k]=='^'||c[k]=='l'||c[k]=='`') {}else{return "输入含有非法的字符,请重新输入正确的数学表达式!";}if(c[k]=='(')i++;else if(c[k]==')')i--;k++ ;}if(i!=0){return "输入错误,没有相匹配的括弧!请重新输入!";}return "ok";}double btod(String str)//二进制到十进制的转换{int k = str.indexOf("."),m=0;double p=0.0;if(k ==-1)k =str.length();for(int i =k-1;i>=0;i--){char c = str.charAt(i);int a =Integer.parseInt(""+c);p=p+(a*Math.pow(2, m));m++;}m=-1;for(int i =k+1;i<str.length();i++){char c = str.charAt(i);int a =Integer.parseInt(""+c);p=p+(a*Math.pow(2, m));m--;}return p;}double otod(String str)//八进制到十进制的转换{int k = str.indexOf("."),m=0;double p=0.0;if(k ==-1)k =str.length();for(int i =k-1;i>=0;i--){char c = str.charAt(i);int a =Integer.parseInt(""+c);p=p+(a*Math.pow(8, m));m++;}m=-1;for(int i =k+1;i<str.length();i++){char c = str.charAt(i);int a =Integer.parseInt(""+c);p=p+(a*Math.pow(8, m));m--;}return p;}double htod(String str)//十六进制到十进制的转换{int k = str.indexOf("."),m=0;double p=0.0;if(k ==-1)k =str.length();for(int i =k-1;i>=0;i--){char c = str.charAt(i);int a =Integer.parseInt(""+c);p=p+(a*Math.pow(16, m));m++;}m=-1;for(int i =k+1;i<str.length();i++){char c = str.charAt(i);int a =Integer.parseInt(""+c);p=p+(a*Math.pow(16, m));m--;}return p;}}Main.java//主类public class Main {public static void main(String[] args) {new WinFrame("计算器");}}MyDialog.javaimport java.awt.event.*;import java.awt.*;//帮助文档的对话框类class MyDialog extends Dialog implements ActionListener //建立对话框类{ static final int YES=1,NO=0;int message=-1; Button yes,no;TextArea area;String help;MyDialog(Frame f,String s,boolean b) //构造方法{ super(f,s,b);yes=new Button("确定"); yes.addActionListener(this);no=new Button("取消"); no.addActionListener(this);setLayout(new FlowLayout());help = "使用帮助:\n";help +="本计算器运算方式采用输入整个运算式后进行运算的方式.\n";help +="但由于作者能力有限,对有些运算符进行了重定义,现列出以下运算符:\n";help +="s代表sin,c代表cos,t代表tan,!代表阶乘,l代表log\n";help +="`代表负号,如果要用键盘输入的时候,请正确输入\n";help +="本计算器有4大主要功能:\n";help +="1.进行符合运算,可以用键盘进行输入,执行结果可以按回车获得\n";help +="2.进行2,8,10,16进制的各种运算以及相互转换,16进制没有实现a,b,c,d,e,f的输入\n";help +="3.进行大整数运算\n4.进行批量运算";area = new TextArea(help,10,50,3);//area.setEnabled(false);area.setForeground(Color.BLUE);area.setFont(new Font("宋体",Font.BOLD,16));add(area);add(yes); add(no);yes.setPreferredSize(new Dimension(100,25));no.setPreferredSize(new Dimension(100,25));setBounds(300,300,500,300);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ message=-1;setVisible(false);}});}public void actionPerformed(ActionEvent e){ if(e.getSource()==yes){ message=YES;setVisible(false);}else if(e.getSource()==no){ message=NO;setVisible(false);}}public int getMessage(){ return message;}}Mypanel.javaimport java.util.*;import java.awt.*;import javax.swing.*;class mypanel extends Panel//派生一个面板,用来实现不同面板的布局{GridLayout grid;JButton btu[];mypanel(String []btuName,int row,int col,Color c){btu = new JButton [btuName.length];grid = new GridLayout(row,col,1,1);setLayout(grid);for(int i=0;i<row;i++)for(int j=0;j<col;j++){if(i*col+j<btuName.length){btu[i*col+j] = new JButton(btuName[i*col+j]);btu[i*col+j].setForeground(c);add(btu[i*col+j]);btu[i*col+j].setPreferredSize(new Dimension(60,25));}elsebreak;}}}WinFrame.javaimport java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import ng.Math;import java.math.*;class WinFrame extends Frame implements ActionListener,KeyListener,ItemListener {mypanel pane1,pane2,pane3,pane4,pane5;Label label1,label2;short j_flag=10;//进制运算的标示,初始化为十进制String strAsk="",strAnswer="";boolean b_flag = true;boolean p_flag = true;//批处理开关TextArea text1;//大整数输出专用域MenuBar menubar;Menu menu1,menu2,menu3;MenuItem item1,item2;MyDialog dialog;//帮助文档对话框CheckboxMenuItem menuitem1,menuitem2,menuitem3;String a[] = {"1","2","3",//用数组进行按钮的命名和消息内容的获取"4","5","6","7","8","9","0",".","+/-"};String a1[] = {"1","2","3","4","5","6","7","8","9","0",".","`"};String b[] ={"/","C","*","→","+","=","-","CE"};String c[] ={"sin","cos","tan","!","pow","sprt","log","pi"};String c1[] ={"s","c","t","!","^","$","l","p"};String d[] ={"( ",")"};String d1[] ={"(",")"};String e[] = {" A"," B"," C"," D"," E","F"};JTextField ask ,answer;char exp[];char postexp[];Checkbox box1,box2,box3,box4,box5;CheckboxGroup jin;String data = "0";//大整数储存数据TextArea text2,text3;int opear;CardLayout mycard;String answer1 = "";// 进制转换时的十进制答案储存Long answer2 = (long)0;//其他进制答案储存Panel pCenter;//添加一个容器装专用数据域void area()//初始化布局,只是不想在构造方法中的东西太多,看起来不方便{mycard = new CardLayout();pCenter = new Panel();pCenter.setLayout(mycard);setLayout(new FlowLayout());setBounds(60,60,450,290);menu1 = new Menu("查看");menu2 = new Menu("系统");menu3 = new Menu("帮助");menuitem1 = new CheckboxMenuItem("普通",true);menuitem2 = new CheckboxMenuItem("批处理",false);menuitem3 = new CheckboxMenuItem("大整数",false);item1 = new MenuItem("退出");item2 = new MenuItem("帮助");menuitem1.addItemListener(this);menuitem2.addItemListener(this);menuitem3.addItemListener(this);item1.addActionListener(this);item2.addActionListener(this);menubar = new MenuBar();menu1.add(menuitem1);menu1.add(menuitem2);menu1.addSeparator();//分隔符menu1.add(menuitem3);menu2.add(item1);menu3.add(item2);menuitem1.setShortcut(new MenuShortcut(KeyEvent.VK_P));menuitem2.setShortcut(new MenuShortcut(KeyEvent.VK_D)); menuitem3.setShortcut(new MenuShortcut(KeyEvent.VK_B)); item1.setShortcut(new MenuShortcut(KeyEvent.VK_Q)); item2.setShortcut(new MenuShortcut(KeyEvent.VK_F1));menubar.add(menu2);menubar.add(menu1);menubar.add(menu3);setMenuBar(menubar);dialog = new MyDialog(this,"帮助文档",true);pane1 = new mypanel(a,4,3,Color.red);pane3 = new mypanel(c,4,2,Color.black);pane2 = new mypanel(d,1,2,Color.black);pane4 = new mypanel(b,4,2,Color.BLUE);pane5 = new mypanel(e,1,6,Color.red);jin = new CheckboxGroup();box1 = new Checkbox("二进制",false,jin);box2 = new Checkbox("八进制",false,jin);box3 = new Checkbox("十进制",true,jin);box4 = new Checkbox("十六进制",false,jin);box5 = new Checkbox("大整数运算");pane3 = new mypanel(c,4,2,Color.black);for(int i=0;i<8;i++)pane3.btu[i].addActionListener(this);box1.addItemListener(this);box2.addItemListener(this);box3.addItemListener(this);box4.addItemListener(this);box5.addItemListener(this);for(int i=0;i<12;i++)pane1.btu[i].addActionListener(this);for(int i=0;i<2;i++)pane2.btu[i].addActionListener(this);for(int i=0;i<8;i++)pane4.btu[i].addActionListener(this);ask = new JTextField(38);ask.setHorizontalAlignment(JTextField.RIGHT);answer = new JTextField(38);ask.addKeyListener(this);answer.setHorizontalAlignment(JTextField.RIGHT); answer.setEditable(false);add(ask);add(answer);add(box5);add(box1);add(box2);add(box3);add(box4);text1= new TextArea("",6,10,3);text1.setForeground(Color.BLUE);pCenter.add("1",pane3);pCenter.add("2",text1);add(pCenter);add(pane1);add(pane4);add(pane2);add(pane5);label1 = new Label("请按格式输入批处理的数据,按空格输入下一个,回车输出答案。

相关文档
最新文档