简单计算器实验报告

合集下载

汇编语言简单计算器程序实验报告

汇编语言简单计算器程序实验报告

课程设计说明书题目: 简单计算器院系:专业班级:学号:学生姓名:指导教师:2010年12月31日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室2010年12月17 日安徽理工大学课程设计(论文)成绩评定表摘要本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。

计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。

想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。

用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。

通过对各种指令的合理使用,设计各个功能模块。

当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。

关键词:计算器,汇编语言,四则运算,功能模块,调用目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 程序流程图及说明 (3)3详细设计 (5)3.1 主模块及子模块说明 (5)3.2 各模块详细设计 (7)4程序调试 (11)4.1 运行界面分析 (11)4.2 调试过程及分析 (11)5心得体会 (13)5.1 设计体会 (13)5.2 系统改进 (13)参考文献 (15)1设计目的汇编语言是计算机能够提供给用户使用的最快而又最有效的语言。

同时,汇编语言也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

因而,对程序的空间和时间要求很高的场合,汇编语言的应用是必不可少的。

至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。

由于汇编语言如此地接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。

用汇编语言编写的程序速度通常要比高级语言快几倍、几十倍、甚至成百上千倍,解释语言其程序速度更无法与汇编语言程序同日而语。

计算器实验报告

计算器实验报告

计算器实验报告一实验目的学习使用AT89S52单片机实现简易计算器。

二实验要求1:可以通过键盘输入,并能显示输入相对应的数字.2:能够进行加,减,乘,除准确的基本运算.3:能够进行3位或3位的以上的乘,除运算.4:自由发挥其他功能.三实验基本原理本设计利用AT89S52单片机来控制液晶显示器和矩阵式键盘,实现了简易的计算器功能。

通过键盘输入需要计算的计算式子,该式子会显示在液晶的第一行,当键入等于号后,计算结果会显示在液晶的第二行。

本设计中液晶选用1602字符型液晶显示器,显示参与运算的数字以及最终的运算结果,键盘采用 4*4 矩阵式键盘。

四实验要求实现1.硬件设计如下图:2.软件设计程序流程图:程序:#include<reg52.h>char code V[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x80,0x48,0x70,0x40,0x5c,0x0c}; // 17. 18= 19+ 20- 21x 22/char code D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};int temp,num,keyp,n1,n2,n3,n4,n5,n6,n7,n8,f;long tn,store;void delay(unsigned int x0); //延迟x0*2毫秒void display(long);void showError();void enter();void key();void main(){x: P0=0x00;tn=0;f=16;store=0;while(1){enter();if(num<23&&num>17){if(store>9999999||store<-999999)while(1){showError();key();if(keyp==1)goto x;}else display(store);}else display(tn);}}void delay(unsigned int x0){int x1,x2;for(x1=0;x1<x0;x1++)for(x2=0;x2<113;x2++);}void display(long disnum){if(disnum>=0){n1=disnum%10;if(disnum>9)n2=disnum/10%10;else n2=16;if(disnum>99)n3=disnum/100%10;else n3=16;if(disnum>999)n4=disnum/1000%10;else n4=16;if(disnum>9999)n5=disnum/10000%10;else n5=16;if(disnum>99999)n6=disnum/100000%10;else n6=16;if(disnum>999999)n7=disnum/1000000%10;else n7=16;}if(disnum<0){disnum=disnum*(-1);n1=disnum%10;if(disnum>9)n2=disnum/10%10;else n2=16;if(disnum>99)n3=disnum/100%10;else n3=16;if(disnum>999)n4=disnum/1000%10;else n4=16;if(disnum>9999)n5=disnum/10000%10;else n5=16;if(disnum>99999)n6=disnum/100000%10;else n6=16;n7=20;}n8=f;P0=V[n1];P2=D[0];delay(1);P2=D[8];P0=V[n2];P2=D[1];delay(1);P2=D[8];P0=V[n3];P2=D[2];delay(1);P2=D[8];P0=V[n4];P2=D[3];delay(1);P2=D[8];P0=V[n5];P2=D[4];delay(1);P2=D[8];P0=V[n6];P2=D[5];delay(1);P2=D[8];P0=V[n7];P2=D[6];delay(1);P2=D[8];P0=V[n8];P2=D[7];delay(1);P2=D[8]; }void showError(){P0=V[14];P2=D[5];delay(1);P2=D[8];P0=0x50;P2=D[4];delay(1);P2=D[8];P0=0x50;P2=D[3];delay(1);P2=D[8];P0=0x5c;P2=D[2];delay(1);P2=D[8];P0=0x50;P2=D[1];delay(1);P2=D[8];f=16;store=0;}void enter(){x1: key();if(keyp==1&&num<16&&num>=0){if(f==18){f=16;store=0;}if(tn<=999999)tn=tn*10+num;keyp=0;}if(keyp==1&&num<23&&num>17){if(f==19||f<=16)store=store+tn;if(f==20)store=store-tn;if(f==21){store=store*tn;}if(f==22){if(tn==0){while(1){showError();keyp=0;key();if(keyp==1)goto x1;}}else store=store/tn;}f=num;tn=0;keyp=0;}}void key(){P3=0xf7;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){temp=P3;keyp=1;switch(temp){case 0xe7: num=1;break;case 0xd7: num=2;break;case 0xb7: num=3;break;case 0x77: num=19;break; //+}while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){keyp=1;temp=P3;//num++;if(num==10)num=0;switch(temp){case 0xeb: num=4;break;case 0xdb: num=5;break;case 0xbb: num=6;break;case 0x7b: num=20;break; //- }while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){keyp=1;temp=P3;//num++;if(num==10)num=0;switch(temp){case 0xed: num=7;break;case 0xdd: num=8;break;case 0xbd: num=9;break;case 0x7d: num=21;break; //* }while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){keyp=1;temp=P3;//num++;if(num==10)num=0;switch(temp){case 0xee: num=0;break;case 0xde: num=17;break; //.case 0xbe: num=18;break; //=case 0x7e: num=22;break; ///}while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}}五设计总结对于我们这些实践中的新手来说,设计一个简易计算器,这是一次考验。

简易计算器报告

简易计算器报告

tong datain[35..0]
dataout[27..0]
inst9
XOR inst19
模块说明: 当乘法符号的上升沿的时候读入反馈的结果 (包括数据及正负号) 并输出到
data1 、data1_pn; 当乘法符号的下降沿的时候读入数据 (包括数据及正负号) 并输出到 data2 、
data2_pn 。并进行计算,结果的数据由乘法器计算得到;结果的正负号即为两个 相乘数据的正负号取异或。
data1_pn:outstd_logic; data2_pn:outstd_logic
); end entity mul; architecturebehaveof mul is signal temp1:std_logic; signal temp2:std_logic; begin process(reset,clk) begin if(reset='0')then
data2_pn 。并进行计算,结果的数据由除法器计算得到;结果的正负号即为两个 相除数据的正负号取异或。
数据为保留两位小数,输出的当成被除数的数乘上 100。
3.乘或除数据选择输出模块:
7
tt
reset pn1 pn2 res1[27..0] res2[27..0] clk1 clk2
inst6
6.加减运算模块:
add
clk reset data[27..0] data_pn
dout[27..0] dout_pn
inst11
模块说明:
由于上一级已考虑加减情况,此模块只需实现加法运算。 A+B 有四种情况:
1、A>0,B>0 输出数据 A+B,正负号为正

嵌入式实验报告-简易计算器

嵌入式实验报告-简易计算器

一目的及要求1实验目的根据计算器的原理设计一个具有加减乘除功能的简易计算器。

2实验要求(1)数字和结果用数码管显示。

(2)数字、+-*/、=、C用4X4键盘实现。

(3)计算结果正确,有出错提示。

二实验原理框图基本工作原理:本设计利用数码管和4*4矩阵式键盘实现了简易计算器的功能。

接通电源,数码管显示全0。

计算时,通过键盘输入需要计算的数字,该数字显示在数码管上,当键入等号时,计算结果显示在数码管上。

进行第二次运算时,按C键清除键盘结果。

当计算出现错误时,LED灯亮报警。

当计算结果超出数码管显示出现溢出时,报警电路也会报警。

报警输出为--。

四系统软件设计1.数据输入模块原理:通过4*4矩阵模块输入数字,在数码管上显示出来。

2.运算模块原理:四种运算同步运行,通过按键加、减、乘、除选择输出对应的计算结果,当按键等号时,将所得结果反馈给运算模块输入端。

3.输出模块原理:通过按键等号来控制显示运算对象还是运算结果,当等号按下时,输出计算结果,否则显示当前输入的数据。

当输出结果溢出是LED亮四次,同时数码管显示都为--。

五实验调试首先按清零键清零。

然后进行调试。

输入数据2,再按乘法键,输入第二个数字6,按等号键,数码管显示12;再按除法键,输入第二个数据3,按等号键,数码管显示4;再按加法键,输入第三个数据7,依次按等号键,数码管显示11;按减法键,输入第四个数据99,依次按等号键,数码管显示-88。

若输入超出显示管的最大值或者超出数码管的位数,结果溢出,LED亮报警,同时数码管显示都为--。

如输入999999加上2 ,结果就溢出,LED灯亮四次报警。

六程序#include "LPC2468.h" /* LPC24xx definitions */ #include "type.h"#include "irq.h"#include "target.h"#include "timer.h"#include "fio.h"#include "keyboard.h"#include "SPI.h"extern BYTE seg_buf[50]; // LPC2468开发板使用此数组的0~5显示六个数码管;LPC2478板使用1~6BYTE seg_copy1[7];BYTE seg_copy2[7];unsigned long Num1 =0;/*第一个输入的数字*/unsigned long Num2 =0;/*第二个输入的数字*/unsigned long Num3 =0;/*第二个输入的数字*/extern BYTE KEY; // LPC2468开发板使用此数组的0~5显示六个数码管;LPC2478板使用1~6enum {Add =1,Dec,Mut,Div,nofuntion}funtion;/******************************************************************** *********** Main Function main()********************************************************************* *********/int main (void){unsigned char counter = 0; /*计算输入的数字的个数,超过6个则报警,运算结果超过6位数也报警*/unsigned char cal_allow = 1; /*允许输入数字标志*/unsigned char input_allow = 1;/*允许输入数字标志*/unsigned char funtion_type = 0;/*运算功能*/unsigned char Ne_num = 0;/*负数标志*/DWORD value=0,i=0;TargetResetInit();enable_timer(1);SPI_Init(8); // SPI总线速率为28.8/8 = 3.6 MHz Seg_Init(); // 数码管初始化LedsInit();for(i=0;i<7;i++){seg_copy1[i]=0;seg_copy2[i]=0;seg_buf[i]=0;}counter = 0;cal_allow = 1;input_allow = 1;funtion_type = nofuntion;while ( 1 ){value = KEY;/*输入数字*/if(value>0 && value<11){if(counter < 6&&input_allow==1){if(counter == 0) seg_buf[1] = value-1;else{for(i=0;i<counter;i++){seg_buf[counter+1-i] = seg_buf[counter-i]; }seg_buf[1] = value-1;}counter++;}if(counter == 6){input_allow = 0;LedOn(1);LedOn(2);LedOn(3);LedOn(4);}}/*如果是“C”键,则清除显示,清除计算标志*/if(value == 11){for(i=0;i<7;i++){seg_copy1[i]=0;seg_copy2[i]=0;seg_buf[i]=0;}counter = 0;Num1 = 0;Num2 = 0;Num3 = 0;cal_allow = 1;input_allow = 1;Ne_num = 0;/*负数标志*/funtion_type = nofuntion;}/*如果是“+”键,则显示结果*/if(value == 13 ){if(cal_allow == 1){for(i=0;i<7;i++){seg_copy1[i] = seg_buf[i];/*备份第一次输入的数字*/seg_buf[i]=0; /*显示清零以准备第二次输入数字*/}funtion_type = Add;counter = 0; /*计数器清零允许第二次计数*/cal_allow =1; /*再等号按下前不能再按第二次*/input_allow = 1; /*允许第二次输入数据*/}else{input_allow = 0; /*禁止按下2次功能键时候输入数据*/}/*如果是“-”键,则显示结果*/if(value == 14&& cal_allow == 1){if(cal_allow == 1){for(i=0;i<7;i++){seg_copy1[i] = seg_buf[i];/*备份第一次输入的数字*/seg_buf[i]=0; /*显示清零以准备第二次输入数字*/}funtion_type = Dec;counter = 0; /*计数器清零允许第二次计数*/cal_allow =1; /*再等号按下前不能再按第二次*/input_allow = 1; /*允许第二次输入数据*/}else{input_allow = 0; /*禁止按下2次功能键时候输入数据*/ }}/*如果是“X”键,则显示结果*/if(value == 15 && cal_allow == 1){if(cal_allow == 1){for(i=0;i<7;i++)seg_copy1[i] = seg_buf[i];/*备份第一次输入的数字*/seg_buf[i]=0; /*显示清零以准备第二次输入数字*/}funtion_type = Mut;counter = 0; /*计数器清零允许第二次计数*/cal_allow =1; /*再等号按下前不能再按第二次*/input_allow = 1; /*允许第二次输入数据*/}else{input_allow = 0; /*禁止按下2次功能键时候输入数据*/ }}/*如果是“/”键,则显示结果*/if(value == 16 && cal_allow == 1){if(cal_allow == 1){for(i=0;i<7;i++){seg_copy1[i] = seg_buf[i];/*备份第一次输入的数字*/seg_buf[i]=0; /*显示清零以准备第二次输入数字*/}funtion_type = Div;counter = 0; /*计数器清零允许第二次计数*/cal_allow =1; /*再等号按下前不能再按第二次*/input_allow = 1; /*允许第二次输入数据*/}else{input_allow = 0; /*禁止按下2次功能键时候输入数据*/ }}/*如果是“=”键,则清除显示,清除计算标志*/if(value == 12){for(i=0;i<7;i++){seg_copy2[i] = seg_buf[i];/*拷贝第二次输入的数字*/}/*把输入的数字串1合成运算数字*/Num1 = seg_copy1[6]*100000+seg_copy1[5]*10000+seg_copy1[4]*1000 +seg_copy1[3]*100+seg_copy1[2]*10 +seg_copy1[1];/*把输入的数字串2合成运算数字*/Num2 = seg_copy2[6]*100000+seg_copy2[5]*10000+seg_copy2[4]*1000 +seg_copy2[3]*100+seg_copy2[2]*10 +seg_copy2[1];switch(funtion_type){case Add:{Num1 = Num1+Num2;/*计算结果存在Num1中*/break;}case Dec:{if(Num1==Num2) Num1 = 0;else if(Num1>Num2){Num3 = Num1-Num2;/*计算结果存在Num1中*/ Num1 = Num3;}else if(Num2 > Num1){Num3 = Num2-Num1;Ne_num =1;Num1 = Num3;}break;}case Mut:{Num3 = Num1*Num2;/*计算结果存在Num1中*/ Num1 = Num3;break;}case Div:{if(Num1>=Num2&&Num2!=0){Num3 = Num1/Num2;/*计算结果存在Num1中*/}Num1 = Num3;break;}default:break;}/*显示结果*/if(Num1>999999||(Ne_num ==1&&Num1>99999)||Num2 ==0) {for(i=0;i<7;i++){seg_copy1[i]=0;seg_copy2[i]=0;seg_buf[i]=10;/*显示横杠表示计算溢出错误!*/}for(i=0;i<5;i++){LedOn(1);LedOn(2);LedOn(3);LedOn(4);delayMs(1,200);LedOff(1);LedOff(2);LedOff(3);LedOff(4);delayMs(1,200);}}else{seg_buf[1] = Num1%10;seg_buf[2] = (Num1%100)/10;seg_buf[3] = (Num1%1000)/100;seg_buf[4] = (Num1%10000)/1000;seg_buf[5] = (Num1%100000)/10000;seg_buf[6] = Num1/100000;if(Ne_num ==1){seg_buf[6] = 10;/*显示负号*/}}}delayMs(1,200);}}/******************************************************************** *********** End Of File********************************************************************* ********/七实验现象(1)运行成功以后的计算机界面如图一:图一(2)正确输入6+6=12的现象如图二和图三:图二图三(3)当进行除操作且除数为0时的现象如图四:图四七实验小结在设计计算机的过程中,我们遇到了很多问题,但是都通过查资料和请教同学得到了解决。

C#计算器实验报告

C#计算器实验报告

C#计算器实验报告班级:2010134学号:*********姓名:***一实验目的和要求设计一个简单计算器,具有一般计算功能,能进行基本的加减乘除运算,还具有求根号,倒数等功能。

特点是能进行不同进制的运算和不同进制间的转换。

主要的工作主要是操作数与被操作数进行简单的加、减、乘、除运算来完成基本的,而且还可以进行简单的科学运算例如计算一个数的平方、开方、正弦、余弦、log、ln等操作还可以计算面积、周长、体积和表面积等。

通过新的技术和新方法来实现计算功能显示界面为Windows From窗体。

二功能模块设计标准计算器通过Windows Form窗体中的对应按钮接受用户输入数据提交对应的方法中来完成相应的功能计算再将结果显示在显示框内。

显示界面为Windows From窗体。

下面是一个简单的计算器的基本功能:1加法两个数据进行加操作可以为小数。

2减法两个数据进行减操作可以为负数相减。

3乘法两个数相乘4除法两个数相除5 倒数可以求得一个数的倒数6开方开方后的结果可以精确到16位。

科学计算器1平方接收的数相乘结果保留一位小数。

2立方接收的数相乘两次3正弦正弦结果精确度同开方。

4余弦余弦结果精确度同上。

5 LogLog运算精确到16位。

6 Ln以e为底的对数。

7 二进制二进制数的运算8 八进制八进制数的运算9 十进制十进制数的运算11 十六进制十六进制的运算12 倒数可以求得一个数的倒数13 开方开方后的结果可以精确到16位。

14 颜色可以选择输入字体的颜色三设计界面标准型科学型四详细设计过程(一)打开VS2010创建项目(二)界面设计1.进入界面2.菜单设计(1)选择VS201的菜单栏中的“视图|工具箱”单击,调出工具箱(出现在VS用户区左侧。

(2)在工具箱中选择“菜单和工具栏|MenuStrip”,拖到程序界面用户区,并根据自己的喜好在“属性窗口”(可以使用“视图|属性窗口”调出,一般在用户区右下角)设置菜单栏宽度、颜色等。

计算器实验报告

计算器实验报告

计算器实验报告一,实验目的1、学习按键扫描及LED数码管显示的设计方法。

2、设计任务及要求利用实验平台上8个LED数码管,设计可以通过键盘输入,并能显示输入相对应的数字、能够进行加,减,乘,除准确的基本运算、能够进行3位或3位的以上的乘,除运算.二,实验要求基本要求:1、可以通过键盘输入,并能显示输入相对应的数字.2、能够进行加,减,乘,除准确的基本运算、3、能够进行3位或3位的以上的乘,除运算.三,实验基本原理利用单片机实现简单计算器的加减乘除,通过键盘输入数据并在数码管上显示出数据,然后按下加减乘除任意一个键,再输入第二个数并显示,再按下等于号时,执行第一次输入的数与第二个数的加减乘除函数,并显示出最终结果。

四,实验设计分析针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

程序可分为按键扫描、数码管显示输入数据、加减乘除函数,延时程序等。

运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。

这是前期准备工作。

第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要键盘扫描,输出需要显示驱动电路和数码管电路等。

第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。

第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文

java实验报告——简单计算器的编写五篇范文第一篇:java实验报告——简单计算器的编写JAVA实验报告——简单计算器的编写班级:学号:姓名:一、实验目的1.掌握java图形用户界面(GUI)的设计原理和程序结构2.能设计复核问题要求的图形用户界面程序3.掌握常用组件的事件接口4.应用awt和swing组件进行应用程序设计二、实验条件1.计算机一台2.java软件开发环境三、实验步骤1、编写代码:mport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JCalculator extends JFrame implements ActionListener {private static final long serialVersionUID =-***457Lprivate class WindowCloser extends WindowAdapter {public void windowClosing(WindowEvent we){System.exit(0);}}int i;private final String[] str = { “7”, “8”, “9”, “/”, “4”, “5”, “6”, “*”, “1”,“2”, “3”, “-”, “.”, “0”, “=”, “+” };JButton[] buttons = new JButton[str.length]; JButton reset = new JButton(“CE”); JTextField display = new JTextField(“0”);public JCalculator(){super(“Calculator”);JPanel panel1 = new JPanel(new GridLayout(4, 4)); for(i = 0;i < str.length;i++){buttons[i] = new JButton(str[i]);panel1.add(buttons[i]);}JPanel panel2 = new JPanel(new BorderLayout()); panel2.add(“Center”, display);panel2.add(“East”, reset);getContentPane().setLayout(new BorderLayout()); getContentPane().add(“North”, panel2); getContentPane().add(“Center”, panel1);for(i = 0;i < str.length;i++)buttons[i].addActionListener(this);reset.addActionListener(this);display.addActionListener(this); addWindowListener(new WindowCloser()); setSize(800, 800);setVisible(true);pack();}public void actionPerformed(ActionEvent e){ Object target = e.getSource();String label = e.getActionCommand();if(target == reset)handleReset();else if(“0123456789.”.indexOf(label)> 0)handleNumber(label);elsehandleOperator(label);}boolean isFirstDigit = true;public void handleNumber(String key){if(isFirstDigit)display.setText(key);else if((key.equals(“.”))&&(display.getText().indexOf(“.”)< 0))display.setText(display.getText()+ “.”);else if(!key.equals(“.”))display.setText(display.getText()+ key);isFirstDigit = false;}public void handleReset(){display.setText(“0”);isFirstDigit = true;operator = “=”;}double number = 0.0;String operator = “=”;public void handleOperator(String key){if(operator.equals(“+”))number += Double.valueOf(display.getText());else if(operator.equals(“-”))number-= Double.valueOf(display.getText());else if(operator.equals(“*”))number *= Double.valueOf(display.getText());else if(operator.equals(“/”))number /= Double.valueOf(display.getText());else if(operator.equals(“=”))number = Double.valueOf(display.getText());display.setText(String.valueOf(number));operator = key;isFirstDigit = true;}public static void main(String[] args){new JCalculator();} }2、运行结果,见截图计算测试:123+456=579结果正确,程序无误。

C#计算器实验报告

C#计算器实验报告

C#计算器实验报告C#计算器实验报告班级:2010134学号:201013432姓名:蔡启林一实验目的和要求设计一个简单计算器,具有一般计算功能,能进行基本的加减乘除运算,还具有求根号,倒数等功能。

特点是能进行不同进制的运算和不同进制间的转换。

主要的工作主要是操作数与被操作数进行简单的加、减、乘、除运算来完成基本的,而且还可以进行简单的科学运算例如计算一个数的平方、开方、正弦、余弦、log、ln等操作还可以计算面积、周长、体积和表面积等。

通过新的技术和新方法来实现计算功能显示界面为Windows From窗体。

二功能模块设计标准计算器通过Windows Form窗体中的对应按钮接受用户输入数据提交对应的方法中来完成相应的功能计算再将结果显示在显示框内。

显示界面为Windows From窗体。

下面是一个简单的计算器的基本功能:1加法两个数据进行加操作可以为小数。

2减法两个数据进行减操作可以为负数相减。

3乘法两个数相乘4除法两个数相除 5 倒数可以求得一个数的倒数6开方开方后的结果可以精确到16位。

科学计算器1平方接收的数相乘结果保留一位小数。

2立方接收的数相乘两次3正弦正弦结果精确度同开方。

4余弦余弦结果精确度同上。

5 Log Log运算精确到16位。

6Ln 以e为底的对数。

7 二进制二进制数的运算8 八进制八进制数的运算9 十进制十进制数的运算11 十六进制十六进制的运算12 倒数可以求得一个数的倒数13 开方开方后的结果可以精确到16位。

14 颜色可以选择输入字体的颜色三设计界面标准型科学型四详细设计过程(一) 打开VS2010创建项目界面设计 1.进入界面 2.菜单设计选择VS201的菜单栏中的“视图|工具箱”单击,调出工具箱(出现在VS用户区左侧。

(2)在工具箱中选择“菜单和工具栏|MenuStrip”,拖到程序界面用户区,并根据自己的喜好在“属性窗口”设置菜单栏宽度、颜色等。

在菜单栏中“请在此处键入”编辑第一个菜单选项及其下拉子菜单选项“编辑”“复制”“粘贴”。

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

简单计算器实验报告
《简单计算器实验报告》
实验目的:通过使用简单计算器进行数学运算,探究其在日常生活中的实际应用价值。

实验材料:简单计算器、纸笔
实验步骤:
1. 使用简单计算器进行加法、减法、乘法和除法运算,记录运算过程和结果。

2. 尝试使用计算器进行复杂运算,如求平方根、求倒数等。

3. 计算器的功能和使用方法的讨论。

实验结果:
通过实验,我们发现简单计算器在日常生活中有着非常重要的应用价值。

它可以帮助我们快速准确地进行数学运算,节省时间和精力。

同时,计算器还具有一些高级的功能,如求平方根、求倒数等,这些功能在科学计算和工程计算中也具有很大的作用。

结论:
简单计算器是我们日常生活中必不可少的工具之一,它的实际应用价值是非常高的。

通过这次实验,我们更加深入地了解了计算器的功能和使用方法,对于我们的学习和工作都有着重要的帮助。

通过这次实验,我们不仅对计算器有了更深入的了解,也增加了对数学运算的兴趣,希望我们在日常生活中能够更加灵活地运用计算器,提高我们的数学运算能力。

相关文档
最新文档