简单计算器—实训报告

合集下载

计算器实习报告

计算器实习报告

计算器实习报告计算器实习报告终于走进了大学生活的最后阶段,大学生活马上就要结束了,我们要证明一下自己所学的知识能不能在社会上派上用场,毕业实习就是最好证明自己的方法。

实习是我们从大学走向社会的第一步,为了是让我们今后走向工作岗位后能很快地适应。

实习的方法有很多,可以到各公司去工作实习,也可以在学校里用自己所学的东西做出点实际的东西来。

我的实习就是在学校里用Delphi做了一个简单的程序。

程序虽然小但很实用,就是做一个简单的计算器。

计算器是大家在日常生活中经常用到的,其功能也越来越强大。

在我看来Delphi是一种功能很强大的开发工具,不论是从程序语言结构的严谨性,还是从模块功能的完整性来看都不次与C++。

Delphi语言的结构很有条理,思路很清晰,让人看了一目了然,而且语法结构也很简单,程序设计相对容易。

在日常的数据库管理工作中,Delphi起了很的大的作用,所以对Delphi的学习对我们今后的工作是相当重要的。

Delphi是我最近才开始学的,有很多语句我用的不是很熟练,有的跟本就不会用。

虽然是做一个小小的计算器,但还是困扰了我很长时间。

只能请教懂Delphi的同学和知道老师了。

最后做出的计算器外观是不怎么好看,功能也只有四则运算,但我觉得已经很欣慰了。

不关怎么说毕竟我付出了劳动。

下面是我做的计算器的界面:其源代码如下:unitUnit1; interf-aceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,Buttons,StdCtrls,ExtCtrls;typeTForm1=class( TForm)Panel1:TPanel;Panel2:TPanel;SpeedButton7:TSpeedButton;S peedButton8:TSpeedButton;SpeedButton9:TSpeedButton;SpeedButto n13:TSpeedButton;SpeedButton4:TSpeedButton;SpeedButton5:TSpee dButton;SpeedButton6:TSpeedButton;SpeedButton12:TSpeedButton; SpeedButton1:TSpeedButton;SpeedButton2:TSpeedButton;SpeedButt on3:TSpeedButton;SpeedButton11:TSpeedButton;SpeedButton14:TSp eedButton;SpeedButton15:TSpeedButton;SpeedButton10:TSpeedButt on;StaticText1:TStaticText;SpeedButton0:TSpeedButton;SpeedBut ton16:TSpeedButton;SpeedButton17:TSpeedButton;GroupBox1:TGrou pBox;procedureSpeedButton1Click(Sender:TObject);procedureForm Create(Sender:TObject);procedureSpeedButton11Click(Sender:TOb ject);procedureSpeedButton15Click(Sender:TObject);procedureSp eedButton16Click(Sender:TObject);procedureSpeedButton17Click( Sender:TObject);private{Privatedeclarations}public{Publicdecl arations}end;varForm1:TForm1;restart:Boolean;isfirst:Boolean; fir_num,sec_num:String;sign:integer;result:real;save:String;i mplementation{$R*.dfm}functioncount(sign:integer):real;beginc asesignof1:result:=strtofloat(fir_num)+strtofloat(sec_num);//为加号时2:result:=strtofloat(fir_num)-strtofloat(sec_num);//为减号时3:result:=strtofloat(fir_num)*strtofloat(sec_num);//为乘号时4:begintryresult:=strtofloat(fir_num)/strtofloat(sec_num);//为除号时exceptShowMessage('错误!');form1.close;end;//除数为0时,做出异常处理end; end;end;procedureTForm1.SpeedButton1Click(Sender:TObject);vari:integer; beginifrestartthen//如果是重新开始输入,则清除原来的操作数,并设置isfirst为Truebeginisfirst:=True;fir_num:='';sec_num:='';restart:=False ;end;ifisfirstthen//如果是第一个操作数beginif(senderasTSpeedButton).Caption='.'then//如果输入的是小数点beginif(strlen(pChar(fir_num)) =0)then//如果第一个操作数并未输入fir_num:='0.'elsefori:=1tostrlen(pChar(fir_num))doiffir_num[i ]='.'thenexit;//如果第一个中已含有小数点而又输入小数点,则退出end;if(strlen(pChar(fir_num)) 0)and(fir_num[1]='0')then//如果最高位为0beginif((senderasTSpeedButton).Caption='.')thenfir_num:='0.' elsebeginifstrlen(pChar(fir_num)) 1then//如果是小数,则继续输入fir_num:=fir_num+(senderasTSpeedButton).Captionelsefir_num:=( senderasTSpeedButton).Caption;//如果不是小数,则去掉最高位的0end; endelsefir_num:=fir_num+(senderasTSpeedButton).Caption;StaticTex t1.Caption:=fir_num;end elsebeginif(senderasTSpeedButton).Caption='.'then//如果第二个操作数并未输入beginif(strlen(pChar(sec_num))=0)thensec_num:='0.'elsefori:=1tostrlen(pChar(sec_num))doifsec_num[i]='.'thenexit;//如果第二个中已含有小数点而又输入小数点,则退出end;if(strlen(pChar(sec_num))0)and(sec_num[1]='0')then//如果最高位为0beginif((senderasTSpeedButton).Caption='.')thensec_num:='0.' elsebeginifstrlen(pChar(sec_num)) 1then//如果是小数,则继续输入sec_num:=sec_num+(senderasTSpeedButton).Captionelsesec_num:=( senderasTSpeedButton).Caption;//如果不是小数,则去掉最高位的0end; endelsesec_num:=sec_num+(senderasTSpeedButton).Caption;StaticTex t1.Caption:=sec_num;end;end;procedureTForm1.FormCreate(Sender :TObject);beginStaticText1.Caption:='0.';//设置StaticText1初始显示为0.restart:=False;Isfirst:=True;fir_num:='';sec_num:='';end;procedureTForm1.SpeedButton11Click(Sender:TObject);begini f(fir_num '')and(sec_num '')then//如果两各操作数都不为空beginresult:=count(sign);//调用函数,返回计算结果fir_num:=floattostr(result);sec_num:='';StaticText1.Caption:= floattostr(result);end;sign:=(senderasTSpeedButton).Tag;isfir st:=False;restart:=False;end;procedureTForm1.SpeedButton15Cli ck(Sender:TObject);beginif(sec_num '')then//如果第二个操作数不为空则返回结果beginresult:=count(sign);fir_num:='';fir_num:=fir_num+floatto str(result);StaticText1.Caption:=floattostr(result);sec_num:='';end;restart:=true;end;procedureTForm1.SpeedButton16Click(S ender:TObject);beginrestart:=True;fir_num:='';sec_num:='';sel f.StaticText1.Caption:='0.';end;procedureTForm1.SpeedButton17 Click(Sender:TObject);begin Close; end; end.根据计算器的原理对各按键的功能进行设置,如名称,属性,事件等。

java简易计算器实训报告(一)

java简易计算器实训报告(一)

java简易计算器实训报告(一)Java简易计算器实训报告实训目的通过编写一个简易的Java计算器,深入了解Java基础语法,并掌握对象的属性和行为。

实训过程本次实训采用Eclipse编写Java程序,具体过程如下:1.首先创建一个名为“Calaulator”的Java项目,再在其中创建一个名为“Calaulator”的类。

2.在Calaulator类中定义一个名为“calculate”的方法,此方法接收3个参数:一个char类型的操作符,两个double类型的操作数,返回值为double类型。

3.在方法体中根据传入的操作符进行相应的加、减、乘、除运算。

4.创建一个主函数,在其中调用calculate方法并输出结果。

实训收获通过本次实训,我掌握了Java的基础语法,并深入了解了对象的属性和行为。

同时,我还学会了如何使用Eclipse编写Java程序,提高了自己的编程水平。

实训总结Java语言作为一种强大而稳定的编程语言,具有广泛的应用场景。

通过本次实训,我深刻认识到Java的重要性,并希望能够在以后的学习中不断探索Java语言的更多使用方法。

实训反思在实训过程中,我发现自己对Java的基础语法了解不够深入,导致编写代码时遇到一些困难,需要不断查阅相关资料。

同时,在调试代码时也遇到了许多问题,发现自己对IDE的使用不够熟练,需要更多的实践和学习。

实训展望通过本次实训,我已经初步掌握了Java的基础语法和编程思想,但我认为这只是一个开始。

我需要不断地练习,深入了解Java的各种特性,将其应用到实际开发中。

未来,我希望能够成为一名优秀的Java工程师,为社会做出自己的贡献。

结语本次Java简易计算器实训让我收获颇丰,不仅加深了对Java的认识,也增强了自己的编程实践能力。

希望今后能够在Java的学习和实践中不断提高自己,取得更好的成果。

简单计算器实验报告

简单计算器实验报告

简单计算器实验报告简单计算器实验报告引言:在现代社会,计算器已经成为人们生活中不可或缺的工具之一。

无论是在学校、办公室还是家庭,计算器都扮演着重要的角色。

本实验旨在设计和构建一个简单的计算器,并通过实验验证其功能和准确性。

实验步骤:1. 设计计算器的外观和功能:我们首先对计算器进行了外观设计,选择了简洁、易于使用的界面。

然后确定了计算器的基本功能,包括加法、减法、乘法和除法。

2. 选择合适的硬件和软件:为了构建计算器,我们选择了合适的硬件和软件。

硬件方面,我们选用了一块Arduino开发板、液晶显示屏和按键。

软件方面,我们使用了Arduino编程语言。

3. 连接硬件和编写代码:我们将液晶显示屏和按键与Arduino开发板连接起来,并编写了相应的代码。

代码中包括了计算器的逻辑运算和界面显示。

4. 测试计算器的功能和准确性:在完成硬件连接和代码编写后,我们对计算器进行了测试。

我们输入了一系列的算术表达式,包括简单的加减乘除运算,以及复杂的多步运算。

通过与手动计算的结果进行对比,我们验证了计算器的功能和准确性。

实验结果:经过多次测试,我们的计算器表现出了良好的功能和准确性。

无论是简单的加法还是复杂的多步运算,计算器都能够正确地给出结果。

液晶显示屏清晰地显示了算术表达式和计算结果,而按键的响应速度也非常迅速。

讨论:虽然我们的计算器在功能和准确性方面表现出色,但仍有一些改进的空间。

首先,我们可以增加更多的功能,如开方、求余等。

其次,我们可以改进界面设计,使其更加美观和易于使用。

此外,我们还可以考虑加入更强大的处理器和更大的内存,以提高计算器的性能。

结论:通过本次实验,我们成功设计和构建了一个简单的计算器,并验证了其功能和准确性。

计算器在各种算术运算中表现出色,并且具有清晰的界面和快速的响应速度。

然而,我们也意识到计算器仍有改进的空间,包括增加更多功能和改进界面设计。

总的来说,本次实验为我们深入了解计算器的原理和构造提供了宝贵的经验。

简单计算器—实训报告

简单计算器—实训报告

Linux应用与编程实习报告学院名称专业班级学生姓名学号指导教师山东科技大学一、实习题目: B2-简单计算器二、实习时间:19周~ 20周实习地点: J13- 128三、实习任务:实现一个简单计算器,计算器包括加、减、乘、除四种运算。

用户通过鼠标进行数据输入,输入的数据以及计算结果显示在文本框中四、小组分工说明:独立完成五、实习成绩六、指导教师对实习的评语:指导教师(签章):2015年月日目录1. 概述 -------------------------------------------------------- 42. 相关技术 -------------------------------------------------- 42.1 QT中信号和槽 -------------------------------------- 42.2 字符串输出数据组 -------- 错误!未定义书签。

3. 需求分析 -------------------------------------------------- 54. 总体设计与详细设计 ----------------------------------- 54.1 系统模块划分 --------------------------------------- 54.2 主要功能模块 --------------------------------------- 55. 编码实现 -------------------------------------------------- 6 6.测试情况说明------------------------------------------- 157. 实训中遇到的主要问题及解决方法 ---------------- 168. 实训收获与体会 ---------------------------------------- 161. 概述1.1 实训项目简介本次实训项目是应用Linux系统中的QT编译器编写一个界面简洁,操作简单的简易计算器。

C课程设计简易计算器实验报告

C课程设计简易计算器实验报告

《程序设计基础》(C++)课程设计报告计算器姓名:班级:学号:指导教师:成绩:完成时间:完成地点:计算器1 基本功能描述计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。

可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。

同时包含清除功能。

2 设计思路如图1是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把m_edit 传递给op1,并传递给变量calculator相对运算符对应的值,输入的第二个操作数传递给op2,点击等号根据calculator的值进行相应运算并输出结果。

若点击的是单目运算符,则直接对其处理得出结果。

若点击清零,则m_edit等于0。

设计思路流程图如下(见下页)。

图1 计算器设计思路总流程图3 软件设计3.1 创建步骤打开Microsoft Visual C++ 6.0,选择新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名Calculator及其所在位置。

将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成。

MFC AppWizard建立基于对话窗口的程序框架。

3.2 界面设计1、创建控件在对话框上的合适的位置画出编辑框和下压式按钮。

如图2所示。

图2 绘制编辑框在按钮和编辑框属性对话框中输入控件的ID值和标题属性。

如图3所示。

图3 Push Button属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。

表1 各对象属性对象ID 标题或说明编辑框IDC_EDIT1 结果显示按钮IDC_BUTTON0 0按钮IDC_BUTTON1 1按钮IDC_BUTTON2 2按钮IDC_BUTTON3 3按钮IDC_BUTTON4 4按钮IDC_BUTTON5 5按钮IDC_BUTTON6 6按钮IDC_BUTTON7 7按钮IDC_BUTTON8 8按钮IDC_BUTTON9 9按钮IDC_ BUTTONneg +/-按钮IDC_ BUTTONpot .按钮IDC_ BUTTONadd +按钮IDC_BUTTONsub -按钮IDC_BUTTONmul *按钮IDC_BUTTONdiv /按钮IDC_BUTTONsqrt sqrt按钮IDC_BUTTONCE CE完成后界面如图4所示。

简单计算器实验报告

简单计算器实验报告

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

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

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

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

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

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

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

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

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

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

实训报告参考(计算器)

实训报告参考(计算器)

实训项目一——Java电子计算器【需求分析】在日常生活中经常需要用到计算器,比如科学计算、数值计算、会计业务等,在Applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便地进行数据运算,可增加页面的实用性,同时让用户的操作也更方便与快捷。

本项目需要实现一个简单的四则运算的计算器,拥有加、减、乘、除功能。

【项目目的】理解并掌握Java中的类、对象、继承、方法等概念,以及Applet的基本框架和事件处理的方法。

学会使用JDK编写、调试和运行Java Applet应用程序。

利用awt组件编写一个计算器,实现基本的四则运算。

【项目分解】1、界面设计整个界面由3个面板组成,第1个面板放置输入信息和运算结果的显示文本域以及一个清除输入的按钮。

setLayout方法用于设置容器的布局管理器,这里采用流布局,即FlowLayout,所有放置的组件按大小依次排列。

第2个面板放置数字按钮、点按钮及等于按钮。

在for循环中,依次实例化9个数字按钮,并将按钮用add方法加入到第2面板中。

setForeground方法可为组件设置前景色,这里将按钮文字设置为红色(Color.red)显示,以将功能按钮与数字按钮区分开来。

第3个面板放置4个运算符:加、减、乘、除。

最后,将3个面板放置到Applet中,Applet按照FlowLayout布局,依次加入的3个面板会按照加入的顺序及它们的尺寸放置到合适的位置。

2.事件处理事件处理流程如下图所示:事件处理通过action方法来完成,方法体如下所示:public boolean action(Event e, Object o) {}可通过Event类的target变量来获取事件来源,如下面的语句,将e.target与等于按钮bEqual相比较,如果相符,则事件来源于等于按钮,这里应调用对应的方法处理运算结果,并显示出来。

if(e.target == bEqual) {doOperator();}初始化过程:(1)定义相关组件和变量(2)Applet的初始化(init)(3).事件处理 (actionPerformed)(4).其他自定义方法方法:doOperator,doClear, doForeText按钮输入的处理过程如下:(1)输入数据→ForeText(2)输入运算符→CurrentOpForeText→BackText(第一运算数), ForeText=""CurrentOp→PreOp(3)输入数据→ForeScreen(4)输入运算符→OpCurrent3. 数值运算从输入得到的都是字符串,在运算之前,需要转换成其他数据类型。

简单的计算器实验报告

简单的计算器实验报告

HUNAN UNIVERSITY程序设计训练——简单的计算器报告学生姓名田博鑫学生学号***********专业班级工业工程(1)班指导老师吴蓉晖2012年6月16日至2012年7月10日1.程序设计目的和要求目的:此次程序设计的目的主要是为了我们能更好的理解和熟悉C语言这门计算机课程,自己有对计算机程序设计的的初步认识。

要求:运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时利用键盘或鼠标进行相应操作。

程序基本功能要求实现完整,并有简单的验证。

在计算器运行中,输入数据时如果输入错误的情况,能够通过键盘上的退格键进行删除,并且重新输入正确的数据。

在数据输入完成,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行调整。

2.程序设计的任务和内容这个简单的计算器要求能够进行简单的四则运算,要求运用所学的知识和查阅相关的资料来完成这个简单的计算器的设计,要求这个简单的计算器尽量在windows界面下进行,计算器界面不做要求。

该简单的计算器包含有基本的四则运算、正弦函数、余弦函数、正切函数、余切函数、平方、开方,以及平均值、标准差、方差的运算。

3.程序设计说明该简单的计算器能进行基本的四则运算和乘方,开方,以及三角函数的运算。

操作需要逐步根据提示来完成所要进行的运算。

比如要进行81的开方运算的话首先在屏幕上可以看到开放运算的命令是5,所以先要输入5,然后再输入要开方的数据81可以在屏幕上看到运行的结果。

4.详细设计说明包含流程图5.程序的调试及结果调试与运行(没有错误)主界面加法运算减法运算乘法运算平方运算平均值,方差,标准差6.程序设计心得与体会本次程序设计我的是设计一个简单的计算器,我以为是很简单的,但是做起来就不是那么容易了,首先参考网上的有不怎么看懂,自己想自己做但却没有思路,就拿那个c++6.0的程序软件来说吧,刚开始的时候还不知道怎么用,只好花时间到网上去现学现卖。

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结果正确,程序无误。

简易计算器实训报告

简易计算器实训报告

简易计算器实训报告
一、实训目的:熟悉基本的Python编程知识和数据类型的使用,掌握基本的计算器功能实现
二、实训步骤:
1.首先导入math模块,因为本次实训中需要使用到math模块中的一些函数,如sqrt()
2.定义四个基本运算函数:add()、sub()、mul()、div(),并使用if语句判断用户需要执行的运算操作
3.如果用户输入的操作符不是四个基本运算符之一,则提示用户输入正确的操作符,直到用户输入正确的符号为止
4.通过while循环实现:如果用户输入的数字不是float类型或者用户输入的操作符不是字符串类型,则一直提示用户输入正确的数字或者操作符
5.通过格式化字符串实现结果的输出,保留两位小数
6.通过input()函数实现用户输入数字和操作符的交互
三、实训感想:
通过本次实训,我对Python编程语言有了更深入的了解和掌握,并且熟练掌握了Python中的数据类型、运算符和基本函
数的使用方法。

另外,本次实训也提高了我对问题解决的能力和编程思路,让我更加深入地理解了编程思维的本质。

最后,我希望自己能够不断地学习和探索,进一步扩展自己的编程知识,提升自己的实践能力和创新能力。

简易计算器实验报告

简易计算器实验报告

简易计算器实验报告一、实验目的本次实验的目的是设计并实现一个简易计算器,能够进行基本的四则运算(加、减、乘、除),以及处理括号的优先级运算,提高对程序设计和逻辑思维的理解与应用能力。

二、实验原理1、四则运算的优先级规则在数学运算中,先计算括号内的表达式,然后按照先乘除后加减的顺序进行计算。

乘除法的优先级高于加减法,如果在同一级运算中,按照从左到右的顺序进行。

2、数据结构的选择使用栈(Stack)数据结构来存储操作数和运算符。

栈具有先进后出的特点,非常适合处理表达式中的括号和优先级。

3、算法思路首先,将输入的表达式进行解析,将数字和运算符分别存储到不同的栈中。

然后,根据运算符的优先级进行计算,将计算结果重新压入栈中,直到表达式计算完毕。

三、实验设备及环境1、编程工具:选择了 Python 语言作为主要的编程工具,使用PyCharm 集成开发环境进行代码编写和调试。

2、操作系统:Windows 10 操作系统。

四、实验步骤1、定义数据结构定义两个栈,一个用于存储操作数(operandStack),一个用于存储运算符(operatorStack)。

2、表达式解析遍历输入的表达式字符串,将数字转换为整数并压入操作数栈,将运算符压入运算符栈。

遇到左括号直接压入运算符栈,遇到右括号则进行括号内的运算。

3、运算处理当运算符栈不为空时,取出栈顶的运算符和两个操作数进行计算。

根据运算符的优先级进行相应的运算,将结果压入操作数栈。

4、最终结果当表达式解析完毕后,操作数栈中的唯一元素即为表达式的计算结果。

五、代码实现```pythonclass SimpleCalculator:def __init__(self):selfoperandStack =selfoperatorStack =def calculate(self, expression):for char in expression:if charisdigit():selfoperandStackappend(int(char))elif char in '+/()':if char =='(':selfoperatorStackappend(char)elif char ==')':while selfoperatorStack-1!='(':operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackpop()else:while selfoperatorStack and selfhasHigherPrecedence(selfoperatorStack-1, char):operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)selfoperatorStackappend(char)while selfoperatorStack:operator = selfoperatorStackpop()operand2 = selfoperandStackpop()operand1 = selfoperandStackpop()result = selfperformOperation(operand1, operand2, operator)selfoperandStackappend(result)return selfoperandStackpop()def hasHigherPrecedence(self, op1, op2):if op1 in '/' and op2 in '+':return Trueelif op1 in '+' and op2 in '+':return Falseelif op1 in '/' and op2 in '/':return Falsereturn Falsedef performOperation(self, operand1, operand2, operator):if operator =='+':return operand1 + operand2elif operator =='':return operand1 operand2elif operator =='':return operand1 operand2elif operator =='/':if operand2 == 0:raise ValueError("除数不能为 0")return operand1 / operand2if __name__ =="__main__":calculator = SimpleCalculator()expression ="2 + 3 (4 1) / 2"result = calculatorcalculate(expression)print("计算结果:", result)```六、实验结果与分析1、测试用例及结果输入表达式:"2 + 3 4",计算结果:14输入表达式:"(2 + 3) 4",计算结果:20输入表达式:"5 2 3",计算结果:-1输入表达式:"10 / 2 + 1",计算结果:62、结果分析对于简单的四则运算表达式,计算器能够正确计算出结果。

简易计算器实验报告

简易计算器实验报告

目录1.概述 (1)2.系统软件设计 (1)2.1设计目标和实现方法 (1)2.2整体方案论证 (1)3.系统硬件的设计 (2)3.1复位电路的设计 (2)3.2时钟振荡器电路的设计 (3)3.3输入电路的设计 (4)3.4输出电路的设计 (7)4.系统程序的设计与介绍 (9)4.1读键输入程序流程图设计 (9)4.2 LED显示程序流程图设计 (11)4.3主程序流程图设计 (12)5.程序设计体会........................................... . (12)附 1 源程序代码 (14)附 2 计算器电路图 (24)1.概述随着社会的发展,科学的进步,人们的生活水平在逐步地提高,尤其是微电子技术的发展犹如雨后春笋般的变化。

电子产品的更新速度快就不足惊奇了。

计算器在人们的日常中是比较常见的电子产品之一,如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好地为各个行业服务,成了如今电子领域重要的研究课题。

现如今,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店、办公室、学校……因此设计一款简单实用的计算器会有很大的实际意义。

本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。

通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。

1、对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶显示模块的驱动和操作;2、在充分分析内部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。

单片机实训计算器报告

单片机实训计算器报告

一、引言随着科技的飞速发展,单片机技术作为嵌入式系统的重要组成部分,已经在各个领域得到了广泛的应用。

为了提高学生对单片机技术的理解和实践能力,我们开展了单片机实训课程。

本次实训报告以设计一个简易计算器为例,详细介绍单片机在计算器中的应用及其设计过程。

二、实训目的1. 熟悉单片机的基本原理和编程方法。

2. 掌握单片机外围设备的接口技术。

3. 培养学生的实际动手能力和创新意识。

三、实训内容1. 设计要求本次实训要求设计一个基于单片机的简易计算器,能够实现以下功能:(1)加、减、乘、除四则运算;(2)结果显示在LCD1602显示屏上;(3)具有简单的错误处理功能。

2. 系统组成本计算器系统主要由以下几部分组成:(1)AT89C51单片机:作为系统的核心控制器,负责控制整个计算器的运行;(2)LCD1602显示屏:用于显示输入的数字、运算符和计算结果;(3)矩阵键盘:用于输入数字和运算符;(4)按键:用于控制计算器的开关、清零和退出等功能。

3. 硬件设计(1)AT89C51单片机:选用AT89C51单片机作为核心控制器,具有丰富的I/O端口和片内资源,可以满足计算器的需求。

(2)LCD1602显示屏:通过单片机的PORTD端口与LCD1602显示屏相连,实现数据显示功能。

(3)矩阵键盘:采用4x4矩阵键盘,将行线连接到单片机的PB0-PB3端口,列线连接到PB4-PB7端口。

(4)按键:设置三个按键,分别用于控制计算器的开关、清零和退出功能。

4. 软件设计(1)初始化:首先对单片机的I/O端口、LCD1602显示屏和矩阵键盘进行初始化。

(2)键盘扫描:通过扫描矩阵键盘,获取用户输入的数字和运算符。

(3)运算逻辑处理:根据用户输入的数字和运算符,进行相应的运算。

(4)结果显示:将计算结果显示在LCD1602显示屏上。

(5)错误处理:当输入错误或发生溢出时,显示错误信息。

四、实训过程1. 硬件电路搭建:根据设计要求,将AT89C51单片机、LCD1602显示屏、矩阵键盘和按键连接到一起,搭建计算器的硬件电路。

简易计算器实验报告

简易计算器实验报告
2.系统软件设计
2.1 设计目标和实现方法
为了满足简易计算器的基本要求,可以进行基本的加、减、乘、除运算以及数据归零操作,我们采用基于51单片机设计计算器,并用七段共阴极LED数码管显示数据,4*4的矩阵键盘实现数据的输入。
2.2 整体方案论述
根据简单计算器的功能和本方案中的设计指标要求,本系统选用了MCS 51单片机为主控机。通过扩展必要的外围接口电路,实现对简单计算器的设计。具体设计考虑如下:
现如今,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店、办公室、学校……因此设计一款简单实用的计算器会有很大的实际意义。
本设计旨在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌握单片机程序设计和微机接口应用的基本方法,并能综合运用本科阶段所学软、硬件知识分析实际问题,提高解决毕业设计实际问题的能力,为单片机应用和开发打下良好的基础。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用此振动器。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
综上所述我们在本方案中选用了上电自动复位电路。
上位自动复位电路图和手动复位电路图如下图
如图3—1两种复位方式
3.2 时钟振荡电路的设计
能够产生振荡电流的电路叫做振荡电路。一般由电阻、电感、电容等元件和电子器件所组成。由电感线圈l和电容器c相连而成的lc电路是最简单的一种振荡电路,其固有频率为f=[sx(]1[]2πlc。 § 一种不用外加激励就能自行产生交流信号输出的电路。它在电子科学技术领域中得到广泛地应用,如通信系统中发射机的载波振荡器、接收机中的本机振荡器、医疗仪器以及测量仪器中的信号源等。

简易计算器实训报告(一)

简易计算器实训报告(一)

简易计算器实训报告(一)简易计算器实训报告实训目的本次简易计算器实训的目的在于让学生了解python语言的基本语法和运算符,同时通过实践操作,提升学生的编程思维和实际应用能力。

实训内容本次实训内容主要包括以下方面:1.简易计算器的基本功能:加、减、乘、除。

2.计算器的界面设计与功能实现。

3.错误处理与异常捕获。

实训步骤步骤一:设计计算器界面在本次实训中,我们采用tkinter库来设计计算器的用户界面。

具体步骤如下:1.创建一个窗口;2.在窗口中添加各种按钮和文本框,用于输入和显示计算结果;3.将按钮按照功能分类,为每个按钮设置对应的事件处理函数。

步骤二:实现基本计算功能根据下拉菜单中所选的运算符,我们可以对输入的两个数进行相应的计算。

具体实现方法如下:1.在计算器窗口中添加一个下拉菜单,用于选择运算符;2.根据所选运算符,获取相应的输入数据,并调用对应的计算函数;3.将计算结果输出到窗口中。

步骤三:错误处理与异常捕获在实际应用中,我们不能保证用户输入的一定是数字,所以我们需要对输入做一些错误处理。

具体方法如下:1.在获取用户输入时,先对输入的字符串进行判断,如果用户输入不合法,弹出提示窗口;2.对于除数为0等异常情况进行相应的异常捕获处理,避免程序崩溃。

实训总结通过本次实训,我们学习了python语言的基本语法和运算符,并通过实践操作,学习了tkinter库的使用方法。

通过本次实训,我们还深入了解了计算器的界面设计和功能实现过程。

此外,我们也学会了一些常用的错误处理和异常捕获方法。

未来拓展本次实训只是简易计算器的基本实现,还有很多可以拓展的功能,如:1.添加科学记数法、三角函数、对数函数、平方根等高级数学运算;2.设计多个数字输入框,实现多操作数的计算;3.添加历史记录功能,记录用户计算过程和结果;4.将计算器移植到移动设备或网页上,提供更为便捷的计算服务。

5.添加输入历史记录及回显功能,便于用户查错和复查。

计算器的使用实训报告

计算器的使用实训报告

一、实训目的随着科技的不断发展,计算器作为一种便捷的计算工具,在我们的日常生活和学习中扮演着重要的角色。

本次实训旨在让学生熟练掌握计算器的使用方法,提高计算效率,同时培养学生严谨、细致的学习态度。

二、实训内容1. 计算器的基本操作(1)开机与关机(2)数字输入与符号输入(3)运算符的使用(4)计算结果的显示与存储2. 高级功能(1)百分比计算(2)三角函数计算(3)指数与对数计算(4)科学计算器中的统计与概率计算3. 计算器的维护与保养三、实训过程1. 讲解与演示教师首先对计算器的基本操作进行讲解,并现场演示如何进行开机、关机、数字输入、符号输入等操作。

接着,教师介绍计算器的高级功能,如百分比计算、三角函数计算、指数与对数计算等,并现场演示其操作方法。

2. 学生实践在教师讲解和演示的基础上,学生开始进行实践操作。

教师巡回指导,解答学生在操作过程中遇到的问题。

3. 小组讨论学生分组讨论,交流各自在操作过程中遇到的问题及解决方法,共同提高计算器的使用技能。

4. 实训总结实训结束后,学生撰写实训报告,总结自己在实训过程中的收获与不足。

四、实训结果通过本次实训,学生掌握了计算器的基本操作和高级功能,提高了计算效率。

以下是部分学生的实训心得:1. 张三:通过本次实训,我学会了如何使用计算器进行百分比计算、三角函数计算等,这对我的学习有很大的帮助。

2. 李四:在实训过程中,我发现自己在操作过程中存在一些错误,通过教师的指导,我改正了这些错误,提高了计算准确性。

3. 王五:实训让我认识到,熟练掌握计算器的使用方法对提高学习效率具有重要意义。

在今后的学习中,我将更加注重计算器的使用。

五、实训总结1. 计算器作为一种便捷的计算工具,在我们的日常生活和学习中具有重要作用。

通过本次实训,学生掌握了计算器的基本操作和高级功能,提高了计算效率。

2. 教师在实训过程中应注重培养学生的实践操作能力,提高学生的计算准确性。

3. 学生在实训过程中要注重总结经验,不断提高自己的计算技能。

计算机c语言实训报告(精选5篇)

计算机c语言实训报告(精选5篇)

计算机c语言实训报告(精选5篇)计算机c语言实训报告篇1一、课题名称:简单计算器设计一个简单的程序来模拟计算器的功能。

二、设计目的:1、通过理论知识与实际需求相结合,编辑解决一些日常中的实际问题,培养初步的独立分析和设计能力。

2、了解应用程序设计解决实际问题的具体过程和实现方法,掌握应用C语言进行程序设计的基本规范;3、重点掌握C语言的程序编写、函数设计、算法设计和程序调试方法;4、初步掌握系统开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。

三、设计任务:1、通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、_、等运算符号),然后将其信息存入文件中。

输入一个算术计算式,就在屏幕上显示结果。

2、输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;四、设计要求:1、用C语言实现程序设计并进行调试;2、画出查询模块的流程图;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机互交)。

5、完成设计(A4)。

五、代码设计:#include "stdio.h" main { float x,y;char operator;printf("x,yun suan fu ,y: "); scanf("%f%c%f",&x,&operator,&y); switch(operator){case '+': printf("%.2f+%.2f=%.2f",x,y,x+y); break; case '-':printf("%.2f-%.2f=%.2f",x,y,x-y); break; case '_':printf("%.2f_%.2f=%.2f",x,y,x_y); break; case '/': if(y==0) printf("chushushilingwuyiyi"); elseprintf("%.2f/%.2f=%.2f",x,y,x/y); break;default: printf("yunsunfuwuxiao"); } }?七、设计总结:学习C程序这门课一个学期了,这是我们学的第一门专业课,所以作为我这个计算机系的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个学期的学习,使我初步掌握了一些关于这门课的知识这次的课程设计是对我们一个学期来所学的知识的综合考察,里面涉及到了我们大多数所学知识。

JAVA实训报告--简易计算器

JAVA实训报告--简易计算器

《Java实训》设计报告电子信息工程学院专业:软件技术班级:1班实训:简单计算器项目名称一、项目需求本程序的主要功能:(1)单击“简单计算器”上的数字按钮(0~9)可以设置参和计算的运算数。

(2)单击“简单计算器”上的运算符按钮(+、-、*、/、1/x、sqrt、%)可以选择运算符号。

(3)单击“简单计算器”上的“=”按钮显示计算结果。

(4)单击“简单计算器”上的“C”按钮清空计算结果。

(5)单击“简单计算器”上的“Backspace”按钮删除输入的最后一个数字。

二、项目设计在设计计算器时,编写1个Java源文件:SimpleCalculator.java,计算器除了上述Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField等。

下面是Java源文件的总体设计。

SimpleCalculator(主类)SimpleCalculator类负责创建计算器的主窗口,该类含有main方法,计算器从该类开始执行。

SimpleCalculator类有3种类型的对象,分别是:JPanel、JButton、JTextField。

还有boolean canClick;是否单击double memd;int memi;double tempResult,result;显示的结果short op=0;1、SimpleCalculator类(主类)(1)数据和方法SimpleCalculator类是javax.swing包中JFrame的一个子类,并实现了ActionListener接口。

类中有关数据和方法的详细说明。

1)成员变量btnNumber是数组,该数组长度为10。

btnNumber数组中的“数字按钮”含有的数字依次为0~9。

每个“数字按钮”都注册有ActionEvent事件监听器。

2)方法main(String args[])方法是计算器程序运行的入口方法。

SimpleCalculator()是构造方法,负责完成窗口的初始化。

简易计算器Java实训报告

简易计算器Java实训报告

实训报告书实训名称:Java 程序设计实训系(部): _________ 信息工程系 ____________ 专业班级:计算机科学与技术学生姓名:___________________________学号:_______________________指导教师:____________ 张民_______________完成日期: ______________________山东科技大学泰山科技学院指导教师签名: ________________________ 年____ 月______ 日目录1实训目的..................... 错误!未定义书签。

2简易计算机的分析与设计............... 错误!未定义书签。

系统功能描述.............. 错误!未定义书签。

系统模块设计.............. 错误!未定义书签。

数据库结构设计 ............... 错误!未定义书签。

3 主要代码清单................. 错误! 未定义书签。

4 程序运行与测试................ 错误! 未定义书签。

5 实训总结................... 错误! 未定义书签。

简易计算机的设计与实现1 实训目的通过本课程设计能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。

利用Java Applet 图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。

给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。

除数字的输入为直接进行输入外,其他运算例如+、- 、* 、/ 、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。

至于其中的进制转换功能的实现则是直接调用Java 中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数(int i)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。

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

Linux应用与编程实习报告学院名称专业班级学生姓名学号指导教师山东科技大学一、实习题目: B2-简单计算器二、实习时间:19周~ 20周实习地点: J13- 128三、实习任务:实现一个简单计算器,计算器包括加、减、乘、除四种运算。

用户通过鼠标进行数据输入,输入的数据以及计算结果显示在文本框中四、小组分工说明:独立完成五、实习成绩六、指导教师对实习的评语:指导教师(签章):2015年月日目录1. 概述 -------------------------------------------------------- 42. 相关技术 -------------------------------------------------- 42.1 QT中信号和槽 -------------------------------------- 42.2 字符串输出数据组 -------- 错误!未定义书签。

3. 需求分析 -------------------------------------------------- 54. 总体设计与详细设计 ----------------------------------- 54.1 系统模块划分 --------------------------------------- 54.2 主要功能模块 --------------------------------------- 55. 编码实现 -------------------------------------------------- 6 6.测试情况说明------------------------------------------- 157. 实训中遇到的主要问题及解决方法 ---------------- 168. 实训收获与体会 ---------------------------------------- 161. 概述1.1 实训项目简介本次实训项目是应用Linux系统中的QT编译器编写一个界面简洁,操作简单的简易计算器。

该简易计算器运用的技术主要是Linux系统中QT编译器的一些函数以及指针等。

1.2 基本功能(1)通过鼠标点击接收数字键入以及运算符。

(2)能够进行简单的加减乘除四则运算。

(3)一键清空功能。

1.3 附加功能(1)键入数字超过6位,输出窗口输出“error”提示。

(2)能够进行连续加法和减法混合运算,能够进行连续乘法和除法混合运算。

(3)键入的被除数为0时,输出窗口输出“被除数不能为0哦”提示。

(4)连续键入两个运算符时,输出窗口输出“只能输入一个运算符哦”提示。

(5)进行加减法与乘除法混合运算时,输出窗口输出“error”提示。

2. 相关技术2.1 QT中信号和槽信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。

当对象改变其状态时,信号就由该对象发射(emit) 出去,而且对象只负责发送信号,它不知道另一端是谁在接收这个信号。

这样就做到了真正的信息封装,能确保对象被当作一个真正的软件组件来使用。

槽用于接收信号,而且槽只是普通的对象成员函数。

一个槽并不知道是否有任何信号与自己相连接。

而且对象并不了解具体的通信机制。

2.2字符串输出数据组为实现计算整式的显示,并且避免键入下一个数之前frist和second清除不净,在calculor.h中定义字符串,把显示窗口中的数据捕捉到字符串中,并随第二个数一起显示,从而实现计算整式的显示。

str=ui->textEdit->toPlainText()+QString::number(int(key));ui->textEdit->setText(str);3. 需求分析(用面向对象方法给出系统的主要需求模型,略写)● 3.1功能需求分析基本功能:鼠标键入数字及运算符,进行简单的加减乘除四则运算。

拓展功能:进行连续加减或乘除运算,当出现输入被除数为0,输入位数过多,连续输入多个运算符等错误时,输出窗口提示相应错误。

● 3.2 数据需求分析连续输入时的总式实时显示,结果的显示,错误类型的显示。

● 3.3 行为需求分析鼠标键入数字及运算符。

● 3.4 其他需求界面简单,操作简单。

4. 总体设计与详细设计4.1 系统模块划分简易计算器系统模块模块名称功能简介数字按键模块将键入的数字传到数据转换模块中运算符按键模块进行判断是否连续运算,从数据计算模块中读取结果并显示数据转换模块键入多位数字的转化数据计算模块判断运算符并进行计算输入位数限制模块限制输入位数并进行错误提示4.2 主要功能模块4.1.1 系统主要类图calculor开始4.1.2 简易计算器程序执行流程图是否 是 否 否是 否5. 编码实现calculor.cpp#include "calculor.h"#include "ui_calculor.h"calculor::calculor(QWidget *parent) : QWidget(parent), 键入数字键入=键入运算符输出结果数字小于6位 结束键入AC 输出errorui->setupUi(this);ui->textEdit->setAlignment(Qt::AlignRight); ui->textEdit->setReadOnly(true);my_state=FRIST;my_sign=NO;frist=0;second=0;result=0;error=0;changdu=0;}calculor::~calculor(){delete ui;}//按键处理函数void calculor::on_pushButton_1_clicked(){trans(1);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error");}void calculor::on_pushButton_2_clicked(){trans(2);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error");}void calculor::on_pushButton_3_clicked(){error=0;changdu++;if(changdu>6)ui->textEdit->setText("error"); }void calculor::on_pushButton_4_clicked() {trans(4);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error");}void calculor::on_pushButton_5_clicked() {trans(5);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error"); }void calculor::on_pushButton_6_clicked() {trans(6);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error"); }void calculor::on_pushButton_7_clicked() {trans(7);error=0;changdu++;if(changdu>6)void calculor::on_pushButton_8_clicked(){trans(8);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error");}void calculor::on_pushButton_9_clicked(){trans(9);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error");}void calculor::on_pushButton_10_clicked(){trans(0);error=0;changdu++;if(changdu>6)ui->textEdit->setText("error");}//加法按键运算函数void calculor::on_pushButton_jia_clicked(){if(changdu>7)ui->textEdit->setText("error");else{if(error!=0){ui->textEdit->setText(" 荳 谺。蜿ェ閭ス霎灘・ヤ竴荳ェ隶。邂礼ャヲ蜩ヲ・・シ・シ・);}elseif(my_state==SECOND){if(my_sign==CHU||my_sign==CHENG)ui->textEdit->setText("error");elsecal();// ui->textEdit->setText(QString::number(result)); str=ui->textEdit->toPlainText()+'+';ui->textEdit->setText(str);frist=result;second=0;my_sign=JIA;}else{my_sign=JIA;my_state=SECOND;str=ui->textEdit->toPlainText()+'+';ui->textEdit->setText(str);}error++;}}}//减法运算函数void calculor::on_pushButton_jian_clicked(){if(changdu>6) //键入数据位数限制条件ui->textEdit->setText("error");else{if(error!=0) //连续键入两个运算符报错{ui->textEdit->setText(“不能连续输入两个运算符哦”); }elseerror++;if(my_state==SECOND) //连续减法运算{if(my_sign==CHU||my_sign==CHENG)ui->textEdit->setText("error"); //混合运算报错elsecal();//ui->textEdit->setText(QString::number(result));str=ui->textEdit->toPlainText()+'-';ui->textEdit->setText(str);frist=result;second=0;my_sign=JIAN;}else{my_sign=JIAN;my_state=SECOND;str=ui->textEdit->toPlainText()+'-';ui->textEdit->setText(str);}}}}//乘法运算运算符函数void calculor::on_pushButton_cheng_clicked(){if(changdu>6)ui->textEdit->setText("error");else{if(error!=0){ui->textEdit->setText(“不能连续键入两个运算符哦”); }else{error++;if(my_state==SECOND){if(my_sign==JIA||my_sign==JIAN)ui->textEdit->setText("error");elsecal();// ui->textEdit->setText(QString::number(result));str=ui->textEdit->toPlainText()+'*';ui->textEdit->setText(str);frist=result;second=0;my_sign=CHENG;}else{my_sign=CHENG;my_state=SECOND;str=ui->textEdit->toPlainText()+'*';ui->textEdit->setText(str);}}}}//除法运算符函数void calculor::on_pushButton_chu_clicked(){if(changdu>6)ui->textEdit->setText("error");else{if(error!=0){ui->textEdit->setText(“不能连续输入两个运算符哦!”); }else{error++;if(my_state==SECOND){if(my_sign==JIA||my_sign==JIAN)ui->textEdit->setText("error");elsecal();//ui->textEdit->setText(QString::number(result)); str=ui->textEdit->toPlainText()+'/';ui->textEdit->setText(str);frist=result;second=0;my_sign=CHU;}else{my_sign=CHU;my_state=SECOND;str=ui->textEdit->toPlainText()+'/';ui->textEdit->setText(str);}}}}//等于号运算函数void calculor::on_pushButton_enter_clicked(){if((my_sign==CHU)&&(second==0)){ui->textEdit->setText(" ”);}else{cal();ui->textEdit->setText(QString::number(result));}// shu ju hui fufrist=0;second=0;my_state=FRIST;my_sign=NO;}//清楚键位函数void calculor::on_pushButton_clean_clicked(){ui->textEdit->clear();my_state=FRIST;my_sign=NO;frist=0;second=0;result=0;error=0;changdu=0;}//数据转换函数void calculor::trans(char key){if(my_state==FRIST){frist=frist*10+(int)key;ui->textEdit->setText(QString::number(frist));}else{second=second*10+(int)key;//ui->textEdit->setText(QString::number(second));str=ui->textEdit->toPlainText()+QString::number(int(key)); ui->textEdit->setText(str);}}//数据运算函数void calculor::cal(){changdu=0;error=0;if(my_sign==JIA){result=frist+second;}else if(my_sign==JIAN){result=frist-second;}else if(my_sign==CHENG){result=frist*second;}else if(my_sign==CHU){result=frist/second;}}6.测试情况说明。

相关文档
最新文档