GUI设计的简易计算器附程序
使用Intelji设计mini计算器
使用Intelji设计mini计算器作者:孙丰伟长春信息技术职业学院计算机系软件技术专业2014年11月18日星期二目录1. 实现效果 (1)1.1 运行界面 (1)1.2 错误提示 (1)2. 创建新项目 (2)3. 创建module (4)4. 创建MyMath类 (5)5. 创建MathForm类 (6)5.1 创建GUI Form [MathForm] (6)5.2 界面设计 (7)5.2.1 拖放JLabel到窗口,并修改属性 (7)5.2.2 在Panel中插入新行 (8)5.2.3 拖放JPanel到右下区 (9)5.2.4 在新加入JPanel中按下图拖入控件,并设置相关属性 (9)5.3 实现btnAdd单击事件 (10)5.4 生成主方法,运行程序 (13)5.5 在MathForm.java中添加验证数据的方法 (16)5.6 在btnAdd的单击事件下实现2数相加代码 (17)5.7 实现清除按钮btnClear单击事件 (17)5.8 实现退出按钮btnClose按钮单击事件 (18)5.9 按照加法实现其他运算按钮的单击事件 (18)6. 为程序增加菜单 (18)7. 测试程序 (20)8. 程序源码 (20)8.1 MyMath类 (20)8.2 MathForm类 (21)1. 实现效果1.1 运行界面1.2 错误提示2. 创建新项目3. 创建module注意:必须选择Module SDK。
4. 创建MyMath类package calc;/*** Created by 孙丰伟on 2014/11/18 0018.*/public class MyMath {public static int add(int x,int y){return x+y;}public static int reduce(int x,int y){return x-y;}public static int mul(int x,int y){return x*y;}public static int devide(int x,int y) throws Exception{if(y==0)throw new Exception("除数不能为0 ^_^");return x+y;}}5. 创建MathForm类5.1 创建GUI Form [MathForm]5.2 界面设计5.2.1 拖放JLabel到窗口,并修改属性依次拖入2个JLabel与2个JtextField,属性分别改为:效果如下:5.2.2 在Panel中插入新行鼠标右键下图侧边蓝色区,选择[Insert row after this]菜单插入新行完成效果:5.2.3 拖放JPanel到右下区5.2.4 在新加入JPanel中按下图拖入控件,并设置相关属性相关属性:效果如下:5.3 实现btnAdd单击事件生成代码如下:5.4 生成主方法,运行程序单击鼠标右键,选择[generate]:如果出现下面对话框,则生成主方法失败。
(word完整版)用MATLAB GUI设计简单计算器
摘要基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。
设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。
通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。
计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。
计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。
进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。
可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。
最后运行调试,实现基于MATLAB GUI的计算器的设计。
MATLAB GUI介绍MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。
MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。
MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
MATLAB的图形用户界(GUI)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。
matlab中gui设计计算器原理及设计方案
matlab中gui设计计算器原理及设计方案在MATLAB中设计GUI(图形用户界面)计算器的基本原理和设计方案如下:基本原理:MATLAB的GUI设计基于事件驱动模型。
这意味着当用户与界面交互(例如,点击按钮或输入文本)时,会触发一个或多个事件。
这些事件会调用相应的回调函数,执行相应的操作。
设计方案:1. 启动MATLAB并创建GUI:打开MATLAB。
使用guide命令启动GUI设计器。
2. 添加GUI组件:在GUI设计器中,添加需要的组件,如按钮(push button)、文本框(edit text)、标签(label)等。
3. 设置组件属性:为每个组件设置必要的属性,例如位置、大小、标签文本等。
4. 编写回调函数:双击每个组件,MATLAB会自动生成一个默认的回调函数。
根据需要修改这些函数,以实现所需的功能。
例如,对于按钮,当用户点击它时,可以编写代码来执行相应的计算。
5. 测试GUI:在设计过程中,经常测试GUI以确保其正常工作。
可以使用simulink中的模拟功能,或直接在MATLAB环境中测试。
6. 保存和运行:保存GUI文件。
在MATLAB命令窗口中输入文件名(不包括扩展名),然后按Enter运行GUI。
7. 调试和优化:根据测试结果,调整回调函数和组件属性,优化GUI的行为和外观。
8. 发布:一旦GUI满足所有需求,可以发布它以供其他人使用。
这通常涉及将GUI打包为一个可执行文件或应用程序包。
9. 维护和更新:随着软件的发展,可能需要定期维护和更新GUI。
这可能涉及添加新功能、修复错误或改进性能。
在整个过程中,熟悉MATLAB的GUI设计和编程技巧是非常重要的。
此外,由于GUI设计可能需要反复的测试和调整,因此耐心和细心也是必不可少的。
简易计算器(源码)
简易计算器(源码)以下是一个简易计算器的Python源码,用于执行基本的加、减、乘、除运算:```python#简易计算器def add(x, y):"""相加"""return x + ydef subtract(x, y):"""相减"""return x - ydef multiply(x, y):"""相乘"""return x * ydef divide(x, y):"""相除"""if y != 0:return x / yelse:return "除数不能为零!"print("选择操作:")print("1. 相加")print("2. 相减")print("3. 相乘")print("4. 相除")choice = input("输入你的选择(1/2/3/4): ")num1 = float(input("输入第一个操作数: "))num2 = float(input("输入第二个操作数: "))if choice == '1':print(num1, "+", num2, "=", add(num1, num2))elif choice == '2':print(num1, "-", num2, "=", subtract(num1, num2)) elif choice == '3':print(num1, "*", num2, "=", multiply(num1, num2)) elif choice == '4':print(num1, "/", num2, "=", divide(num1, num2)) else:print("无效的选择")```以上代码中,我们定义了四个函数:`add`、`subtract`、`multiply`和`divide`,分别用于执行相加、相减、相乘和相除的操作。
设计一个图形界面的计算器,完成简单的算术运算-JAVA课程设计
设计一个图形界面的计算器,完成简单的算术运算-JAVA课程设计课程设计论文任务书软件学院学院网络工程专业 2006-2 班一、课程设计论文题目设计一个图形界面的计算器,完成简单的算术运算二、课程设计论文工作自09 年 1 月 5 日起至09年 1 月 9 日止。
三、课程设计论文地点: 信息工程学院中心机房四、课程设计论文内容要求:1.本课程设计的目的(1)使学生巩固和提高Java编程技术(2)培养学生掌握程序设计的基本思路和方法;(3)加强学生研发、调试程序的能力;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求1)任务:1设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算2计算器要有小数点、正负号、求倒数、退格和清零功能2)创新要求:计算器附加有开平方根,平方,立方,判断素数,求log的功能3)课程设计论文编写要求(1)课程设计任务及要求(2)设计思路--工作原理、功能规划(3)详细设计---数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。
(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。
(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。
(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)7 报告按规定排版打印,要求装订平整,否则要求返工;8 课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录代码及相关图片(9)严禁抄袭,如有发现,按不及格处理。
4)答辩与评分标准:(1)考勤:10分;(2)程序检查:30分;(3)答辩回答问题:20分(3)课程设计报告:40分;5)参考文献:[1] 耿祥义.《Java 2 实用教程(第三版)》北京清华大学出版社 2006.8[2] 朱福喜.《Java语言程序设计》.北京清华大学出版社.2005[3] 朱福喜,尹为民,余振坤.《Java语言与面向对象程序设计》.武汉武汉大学出版社.20026)课程设计进度安排内容天数地点构思及收集资料7 图书馆编码与调试 5 实验室撰写论文 3 图书馆、实验室学生签名:09 年 01月 05日课程设计论文评审意见(1)考勤(10分):优( )、良( )、中( )、一般( )、差( );(2)程序检查(30分):优( )、良( )、中( )、一般( )、差( );(3)答辩回答问题(20分):优( )、良( )、中( )、一般( )、差( );(4)设计报告(40分):优( )、良( )、中( )、一般( )、差( );评阅人: 职称: 讲师年月日目录一、课设任务及要求 1二、需求分析 2三、设计思路 3四、详细设计 5五、运行调试与分析讨论9六、设计体会与小结14七、参考文献15附录16中文摘要Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
嵌入式系统之基于QT的简单计算器
嵌入式系统之基于QT的简单计算器QT是一种跨平台的应用程序开发框架,它提供了一种编写图形用户界面(GUI)程序的简便方法。
在嵌入式系统中,使用QT可以快速开发出各种功能强大、界面友好的应用程序。
对于一个简单计算器来说,主要包括用户界面设计和计算逻辑两部分。
首先,我们需要设计一个界面来展示计算器的按钮和显示结果的区域。
在QT中,可以使用QGridLayout布局管理器来创建按钮布局,同时将其连接到对应的信号槽函数上,以实现按钮的点击响应。
```cpp//main.qmlimport QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.12Windowvisible: truewidth: 400height: 600title: "Simple Calculator"RowLayoutspacing: 10GridLayoutid: buttonGridrows: 4columns: 4anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter Buttontext: "7"onClicked: calculator.append("7")}Buttontext: "8"onClicked: calculator.append("8")}// ... more buttons ...Buttontext: "="onClicked: calculator.calculate}// ... more buttons ...}TextFieldid: resultFieldwidth: 200height: 50placeholderText: "0"readOnly: true}}```在这个示例中,我们使用了QT的QML语言来创建用户界面。
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,出现如下图所示界面。
gui开发实例
gui开发实例GUI开发实例引言:Graphical User Interface(图形用户界面)简称GUI,是现代软件开发中常用的一种用户界面设计方式。
通过GUI可以让用户通过图形化的界面和用户交互,方便地操作软件和获取所需信息。
本文将介绍一些常见的GUI开发实例,展示GUI的强大功能和应用领域。
一、音乐播放器音乐播放器是一个常见的GUI应用程序。
通过GUI界面,用户可以方便地浏览音乐库、选择喜爱的音乐、调整音量和播放进度等功能。
界面通常包括音乐列表、播放控制按钮、音量调节器和进度条等元素。
用户可以通过点击按钮或拖动进度条来控制音乐的播放。
二、计算器计算器是另一个常见的GUI应用程序。
通过GUI界面,用户可以进行各种数学计算操作,如加减乘除、求平方根、百分比计算等。
界面通常包括数字键盘、运算符按钮和显示屏等元素。
用户可以通过点击按钮来输入数字和运算符,并在显示屏上看到计算结果。
三、图像编辑器图像编辑器是用于编辑和处理图像的GUI应用程序。
通过GUI界面,用户可以打开图像文件、进行剪裁、调整亮度和对比度、添加滤镜效果等操作。
界面通常包括菜单栏、工具栏、画布和调整面板等元素。
用户可以通过选择工具和调整参数来对图像进行编辑。
四、文本编辑器文本编辑器是用于编辑文本文件的GUI应用程序。
通过GUI界面,用户可以打开、新建、保存和编辑文本文件。
界面通常包括菜单栏、工具栏、文本编辑区和状态栏等元素。
用户可以通过键盘输入文字、选择字体和颜色、进行查找和替换等操作。
五、日历应用日历应用是用于管理时间和日程的GUI应用程序。
通过GUI界面,用户可以查看日期、添加和编辑日程安排、设置提醒等功能。
界面通常包括日期选择器、日程列表和提醒设置等元素。
用户可以通过点击日期和按钮来进行操作,并在界面上看到相应的日程信息。
六、文件管理器文件管理器是用于管理文件和文件夹的GUI应用程序。
通过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添加功能函数。
Java-实验四GUI简易计算器
实验四GUI图形界面设计一实验要求1、掌握Awt与Swing的区别与联系;掌握Swing常用图像组件的使用;掌握主要的布局管理器的使用方法;2、了解事件处理机制;掌握Swing常用图像组件的使用;掌握固定菜单和弹出式菜单的创建和使用;二实验内容1、设计并实现一个类似于windows操作系统附件中自带的计算器的一款简单的计算器,要求界面美观,设计合理;带有常用的菜单并实现其功能;能完成加、减、乘、除等简单的计算,在下面写出其核心代码。
(1)源代码package com.cal;import java。
awt。
*;import javax。
swing。
*;import java。
awt。
event。
*;import java。
util。
Stack;import java.awt。
GridLayout;class Cal extends JFrame implements ActionListener {JTextField show=null;JPanel jp1,jp2;JButton c,jia,jian,cheng,chu,equ,point;//按钮清空加,减,乘 ,除,等号,小数点JButton b[] = new JButton[10];//按钮数组 0-9//栈控制标记位int flag=1;//结果标记位int reflag=0;public Cal(){//创建组件jp1=new JPanel();jp2=new JPanel();show=new JTextField(45);show.setFont(new Font(”宋体",Font。
PLAIN,16));jia=new JButton(” + ");jian=new JButton(” —”);cheng=new JButton(” * ”);chu=new JButton(” / ");equ=new JButton(” = ”);equ。
实验报告GUI程序设计
实验报告GUI程序设计1.引言GUI(Graphical User Interface,图形用户界面)是计算机系统中用户与计算机之间进行交互的一种方式,它使用了图形和图标等视觉元素来代替传统的文本命令行界面。
在本次实验中,我们学习了GUI程序设计的基本原理和开发方法,并使用Python语言编写了一个简单的GUI程序。
2.实验目的通过本次实验,我们的主要目的是学习以下几个方面的内容:-了解GUI程序设计的基本原理和概念;- 熟悉Python语言中的GUI开发库;-掌握使用GUI开发工具设计和实现简单的GUI程序。
3.实验过程3.1确定需求在开始开发GUI程序之前,我们首先需要确定程序的需求。
在本次实验中,我们决定开发一个简单的计算器程序,该程序能够进行基本的四则运算,并显示计算结果。
3.2设计界面3.3编写代码3.4调试程序在完成代码的编写之后,我们对程序进行了调试。
在调试过程中,我们发现了一些错误,比如按钮的事件处理函数没有正确设置,导致无法进行相应的计算。
通过不断地调试和修改,我们最终成功地解决了这些问题。
3.5测试程序在完成调试之后,我们对程序进行了测试。
测试的过程包括输入不同的表达式,进行相应的计算,并对比计算结果是否正确。
通过多次测试,我们发现程序能够正确地进行四则运算,并显示出正确的计算结果。
4.实验结果通过本次实验,我们成功地实现了一个简单的GUI程序,该程序能够进行基本的四则运算,并显示出正确的计算结果。
该程序界面简洁明了,易于操作,符合用户的需求。
5.实验总结通过本次实验,我们深入学习了GUI程序设计的基本原理和开发方法,并通过实践运用了Python语言编写了一个简单的GUI程序。
在实验过程中,我们遇到了一些问题,并通过调试和测试最终解决了这些问题。
通过实验,我们对GUI程序的开发有了更深入的理解,并掌握了一定的开发技巧。
在今后的学习和工作中,我们将继续学习和探索GUI程序设计的更多内容,提高自己的技术水平,为用户提供更好的使用体验。
gui计算器设计matlab代码
GUI计算器设计MATLAB代码1. 简介GUI(Graphical User Interface,图形用户界面)计算器是一种利用图形界面设计的计算器,用户可以通过鼠标点击按钮进行数字输入和运算。
MATLAB是一种功能强大的数学计算软件,拥有丰富的绘图和可视化功能,可以用于设计和实现GUI计算器。
本文将介绍如何使用MATLAB编写GUI计算器的代码。
2. 界面设计在设计GUI计算器的界面时,需要考虑用户友好性和美观性。
可以通过MATLAB提供的GUIDE工具进行界面设计,添加数字按钮、运算符按钮和显示屏等组件。
另外,还可以设置布局和颜色,使界面更加美观。
3. 代码实现需要创建一个新的MATLAB GUI应用程序,然后在GUIDE工具中设计界面。
在界面设计完成后,需要编辑回调函数来实现计算器的功能。
以下是一个简单的GUI计算器的MATLAB代码示例:```matlabfunction calculatorGUI创建整体界面figure('Name','Calculator','NumberTitle','off','Position',[100,100,4 00,600]);创建显示屏hEdit =uicontrol('Style','edit','String','','Position',[50,500,300,50]);创建数字按钮numBtns = {'7','8','9','4','5','6','1','2','3','0'};for i = 1:10hNumBtn(i) =uicontrol('Style','pushbutton','String',numBtns{i},'Position',[50+5 0*rem(i-1,3),450-50*fix((i-1)/3),50,50],'Callback',numBtn_callback);end创建运算符按钮operatorBtns = {'+','-','*','/','='};for i = 1:5hOperatorBtn(i) =uicontrol('Style','pushbutton','String',operatorBtns{i},'Position',[2 00,450-50*(i-1),50,50],'Callback', operatorBtn_callback);数字按钮回调函数function numBtn_callback(hObject,~)str = get(hEdit,'String');str = [str get(hObject,'String')];set(hEdit,'String',str);end运算符按钮回调函数function operatorBtn_callback(hObject,~) str = get(hEdit,'String');val = get(hObject,'String');if ~isempty(str)if strcmp(val,'=')tryresult = eval(str);set(hEdit,'String',num2str(result)); catchset(hEdit,'String','Error');endelseset(hEdit,'String',[str val]);endendendend```4. 运行效果运行以上代码,将会弹出一个简单的GUI计算器界面,用户可以通过点击数字按钮和运算符按钮来输入表达式并进行计算。
图形化界面的c++计算器
思路:1首先需要使用Qt Creator创建一个GUI应用程序;2创建UI界面并设计计算器的布局,包括数字和操作符按钮,以及文本框用于显示结果;3为每个按钮添加单击事件,当用户单击按钮时,将相应的数字或操作符添加到文本框中;4添加计算器操作,当用户单击等号按钮时,解析文本框中的表达式,计算结果并显示在文本框中;5最后编译并运行程序。
源代码如下:mainwindow.h#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this);calc_value = 0.0;div_trigger = false;mult_trigger = false;add_trigger = false;sub_trigger = false;// Connect digit buttons to digit_pressed() slotconnect(ui->pushButton_0, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_1, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_3, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_4, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_5, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_6, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_7, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_8, SIGNAL(clicked()), this, SLOT(digit_pressed()));connect(ui->pushButton_9, SIGNAL(clicked()), this, SLOT(digit_pressed()));}MainWindow::~MainWindow(){delete ui;}void MainWindow::digit_pressed(){QPushButton *button = (QPushButton*)sender();QString new_label;double label_number;new_label = button->text();label_number = new_label.toDouble();ui->label->setText(ui->label->text() + new_label);}void MainWindow::on_pushButton_decimal_clicked(){if (!ui->label->text().contains('.')){ui->label->setText(ui->label->text() + ".");}}void MainWindow::unary_operation_pressed() {QPushButton button = (QPushButton)sender();double label_number;QString new_label;if (button->text() == "+/-"){label_number = ui->label->text().toDouble();label_number = label_number * -1;new_label = QString::number(label_number, 'g', 15);ui->label->setText(new_label);}else if (button->text() == "%"){label_number = ui->label->text().toDouble();label_number = label_number * 0.01;new_label = QString::number(label_number, 'g', 15);ui->label->setText(new_label);}}void MainWindow::on_pushButton_clear_clicked(){ui->label->setText("");}void MainWindow::calculate(double value){if (add_trigger || sub_trigger || mult_trigger || div_trigger) {if (add_trigger){calc_value = calc_value + value;add_trigger = false;}else if (sub_trigger){calc_value = calc_value - value;sub_trigger = false;}else if (mult_trigger){calc_value = calc_value * value;mult_trigger = false;}else if (div_trigger){calc_value = calc_value / value;div_trigger = false;}}else{calc_value = value;}}void MainWindow::on_pushButton_equals_clicked(){double label_number, second_num;QString new_label;second_num = ui->label->text().toDouble();if (add_trigger || sub_trigger || mult_trigger || div_trigger)if (add_trigger){calculate(second_num);new_label = QString::number(calc_value, 'g', 15);ui->label->setText(new_label);}else if (sub_trigger){calculate(second_num);new_label = QString::number(calc_value, 'g', 15);ui->label->setText(new_label);}else if (mult_trigger){calculate(second_num);new_label = QString::number(calc_value, 'g', 15);ui->label->setText(new_label);}else if (div_trigger){calculate(second_num);new_label = QString::number(calc_value, 'g', 15);ui->label->setText(new_label);}}else{calc_value = second_num;}}void MainWindow::on_pushButton_add_clicked(){QString new_label;double label_number;label_number = ui->label->text().toDouble();calculate(label_number);add_trigger = true;ui->label->setText("");void MainWindow::on_pushButton_subtract_clicked() {QString new_label;double label_number;label_number = ui->label->text().toDouble(); calculate(label_number);sub_trigger = true;ui->label->setText("");}void MainWindow::on_pushButton_multiply_clicked() {QString new_label;double label_number;label_number = ui->label->text().toDouble(); calculate(label_number);mult_trigger = true;ui->label->setText("");}void MainWindow::on_pushButton_divide_clicked() {QString new_label;double label_number;label_number = ui->label->text().toDouble(); calculate(label_number);div_trigger = true;ui->label->setText("");。
简单计算器程序设计
《网络编程技术》结课论文2012 — 2013学年第二学期题目:简单计算器程序专业班级:网信10-2学号:************姓名:-----------指导老师:---------日期:2013-06-25目录1引言 (3)2基础理论 (3)2.1 AWT 组件 (3)2.2 Swing 组件 (3)2.3 java事件处理机制 (4)3 功能设计 (5)3.1计算器系统概述 (5)3.2功能模块设计 (6)3.3详细设计 (6)4 系统实现 (7)4.1需求分析 (7)4.2设计思路 (8)4.3主要代码展示及说明 (8)4.4调试与分析 (12)5 总结 (12)参考文献 (13)1引言近年来随着计算机和网络在社会领域的发展,java的应用正在不断地走向深入, Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。
Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。
Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。
特别是Java企业应用编程接口为企业计算及电子商务应用系统提供了有关技术和丰富的类库。
本次设计是通过java编程技术来设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算,该计算器可以实现加法、减法、乘法、除法的简单运算,也可以实现一些简单的扩展运算,这次课程设计的主要目的在于检测对java 应用的熟练程度,发现问题并及时改正和提高,同时扩展对java知识的进一步了解和认识,强化自己的编程能力,为将来在新的旅途中能更好的发挥自身的才能!2基础理论2.1 AWT 组件布局管理器管理组件如何放置在容器中,AWT 中最常用的四种布局类:FlowLayout、BorderLayout、GridLayout、CardLayout。
本项目主要采用了GridLayout 布局。
MATLABGUI入门简单实例(加法计算器)
本人初学GUI ,针对网上版本的混乱,学得一头雾水,特重新整理如下,供大家参考。
1.首先我们新建一个 GUI 文件:File/New/GUI 如下图所示;选择 Blank GUI(Default),点击 OK 。
2.进入GUI 开发环境以后添加 3个编辑文本框(Edit Text ),2个静态文本框(Static Text ), 和一个Push Button 按钮,布置如下图所示;⑷修改Pushbutton 按钮的属性,“ string 改为“ Add ” “ tag 改为“ add ”⑸另外2个Static 文本就是的“ string 修改为"+ ”"=”(6)点击“保存”,名字任意取,自动弹出 M 文件(我的是7.0版本,不知其他版本会不 会如此)。
(1) 第一个 “in putl ”(2) 第二个 “input2 ”(3)第三个“ Edit Text! ”的用来存储第一个加数,我们将“Edit Tex2”的用来存储第二个加数,我们将"Edit Tex3"的 “string 改为 “Q ” “tag 为““ string 改为 “ 0,” “ tag 改为 “ string 改为 “ 0” “ tag 改为 an swer3•我们先为第一个Edit Text文本框添加代码,即读取第一个加数;点击上图所示红色方框,选择input1_Callback,光标便立刻移到下面这段代码(程序自动生成)的位置。
function in put1_Callback(hObject, even tdata, han dies)% hObject han dle to in putl (see GCBO)% eve ntdata reserved - to be defi ned in a future version of MATLAB% han dles structure with han dles and user data (see GUIDATA)% Hints: get(hObject, ' String ' ) returns cpnttlnasoext% str2double(get(hObject, ' String ' )) returnscontents of editl as a double然后在上面这段代码的下面插入如下代码:%以字符串的形式来存储数据文本框1的内容•如果字符串不是数字,则现实空白内容input=str2num(get(hObject,'String')); %检查输入是否为空.如果为空,则默认显示为0 if(isempty(i nput))set(hObject,'Stri ng','0')endguidata(hObject,handles);%保存handles结构体,只要在handles结构体有改变时,才需要保存%guidata(hObject, handles);%这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback都添加该命令。
GUI自动测试化工具RanorexStudio使用介绍
GUI⾃动测试化⼯具RanorexStudio使⽤介绍之前⽤的VS⾃带的测试⼯具进⾏Winform的测试。
但是有⼀个第三⽅的插件,没有被更好的⽀持。
提⽰消息:测试⽅法 EnformentUITestProject.CodedUITest1.CodedUITestMethod1 引发了异常:Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToPerformActionOnBlockedControlException: 另⼀个控件正在阻⽌此控件。
请使被阻⽌的控件可见,然后重试操作。
这⾥主要围绕Ranorex Studio进⾏介绍。
下⾯我们就围绕计算器程序进⾏⼀个简单的介绍。
⾸先我们创建⼀个测试项⽬ “File”→“New”→“Solution”,输⼊项⽬名,Create. 创建项⽬之后会默认创建⼀个Recording.双击Recording1进⼊Recording1的详细窗⼝。
点击Recod开始记录。
有四种开始⽅式。
这⾥只介绍默认⽅式(Global Recording)。
Global Recording(默认⽅式) Run an Application(启动⼀个程序) Open a Brower(打开链接) Mobile Recording(⼿机测试) 点击Start,开始→运⾏输⼊Clac启动计算器程序。
开始点击操作。
操作点击完成之后,点击Validate进⾏结果的验证。
这⾥我们点击结果框。
1+1=2结果正确。
Next→OK之后会看到如下界⾯ 点击Play进⾏验证Recording是否正确,Play按钮下⾯有⼯具栏,可以删除添加Action。
运⾏之后会看到Ranorex 进⾏刚才的操作。
最后会看到最后的结果 多个Recording,直接点击CalcTest选项卡。
运⾏Play即可。
简易计算器完整课程设计
一、设计要求1.设计4*4的键盘,其中10个数字键0~9,第十三个键为”+“,第十五个键为”=“2 ,实现1位数的简单加运算二、硬件系统设计1、LED接口电路简易计算器需要2位8段码LED显示电路。
用LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作为位控制端口。
然后接至各数码显示器的共阴极端。
2、键盘接口电路简易计算器需要4*4的行列式键盘。
8255A的B口作为输出端,C口作为输出端。
采用的是方式0。
3、计算器逻辑电路图将LED接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图逻辑电路结构如下:Cpu 8255 键盘三、软件设计1、LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED 显示器,器排列形状如下图所示:为了显示数字或符号,要为LED显示器提供代码,即字形代码。
七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。
简易计算器用到的数字0~9的共阴极字形代码如下表:0~9七段数码管共阴级字形代码2位LED显示的程序框图如下:2、读键输入程序设计为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。
为了得到被按键的键码,现使用行扫描法识别按键。
其程序框图如下:3、主程序设计(1)数值送显示缓冲程序设计简易计算器所显示的数值最大位为一位。
(2)运算主程序设计首先初始化参数,送LED低位显示“0”,高位不显示。
然后扫描键盘看是否有键输入,若有,读取键码。
判断键码是数字键、还是功能键(“+”“=”),是数值键则送LED显示并保存数值,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。
运算主程序框图如下所示:4、简易计算器源程序con8255 equ 06c6h ;8255的控制端口的物理号c8255 equ 06c4h ;C端口的端口号b8255 equ 06c2h ; B端口的端口号a8255 equ 06c0h ; A端口的端口号data segmentlist DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;对应数字的显示码keycode DB 0EEH, 0DEH, 0BEH, 7EHDB 0EDH, 0DDH, 0BDH, 7DHDB 0EBH, 0DBH, 0BBH, 7BHDB 0E7H, 0D7H, 0B7H, 77H;对应键的特征值(键盘识别码)num1 dw 0 ;偏移量x DB 0FFH ;存放参与运算的第一个数y DB 0FFH ;存放运算符z DB 0FFH ;存放参与运算的第二个数re DB 0FFH ;存放运算结果data endssstack segment stackssda db 100 dup(?)sstack endscode segmentassume cs:code, ds:datastart: mov ax, datamov ds, axcall init8255 ;初始化8255 ispk:call clear ;B端口清零call ispkey ;判断是否有建按下and al, 0fhcmp al, 0fhje ispkcall findkeyboardcall dispnumcmp num1, 14je js1call cunshujmp disnum1js1: call jisuanmov x, 0ffhmov y, 0ffhmov z, 0ffhmov nUM1, 0mov re,0ffhcall dispnummov cx,1000www: loop wwwjmp ispkdisnum1:is: jmp ispkmov ah, 4chint 21hinit8255 proc near ;初始化8255 mov al, bmov dx, 06c6hout dx, alretinit8255 endpclear proc nearmov dx, b8255out dx, alclear endpispkey proc near ;判断是否有建按下mov al, 00hmov dx, a8255out dx, almov dx, c8255in al, dxretispkey endpfindkeyboard proc near ;找具体键盘按键cl1: mov al, bmov ah, alshl ah, 4mov dx, a8255 ;al传递给a端口out dx, almov dx, c8255 ;c端口读入数据赋值给alin al, dxcmp al, 0fhje cl2jmp exitkcl2: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhje cl3jmp exitkcl3: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhje cl4jmp exitkcl4: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhexitk:add ah, al ;得到键盘识别码retfindkeyboard endpdispnum proc near ;显示数字子程序cmp ah,0b7hjnz ll2mov cl,remov ch,0mov si,offset listadd si,cxmov al,[si]mov dx,06c2hout dx,almov num1,14jmp ll3ll2: mov cx, 16mov si, offset keycodemov di, offset listmov num1, 0numl1: cmp [si], ahje exitinc siadd num1, 1loop numl1exit: add di, num1 ;显示相应数字mov al, [di]mov dx, 06c2hout dx, alll3: retdispnum endpCUNSHU PROC NEAR ;存放数据PUSH AXCMP X, 0FFHJNE Y1MOV AL, BYTE PTR NUM1MOV X, ALJMP EX1Y1: CMP Y, 0FFHJNE Z1MOV AL, BYTE PTR NUM1MOV Y, ALJMP EX1Z1:MOV AL, BYTE PTR NUM1MOV Z, ALEX1: POP AXRETCUNSHU ENDPJISUAN PROC NEAR ;计算子程序PUSH SILEA SI, KEYCODEMOV AX, 0ADD AL, XADD AL, ZADD SI, AXMOV AH, [SI]MOV RE, ALPOP SIRETJISUAN ENDPcode endsend start四、心得体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
qt 项目案例
qt 项目案例Qt 是一个强大的跨平台应用程序框架,常用于开发GUI应用程序。
这里提供一个简单的Qt项目案例,一个简单的计算器。
这个计算器可以进行基本的加、减、乘、除运算。
1. 创建项目在Qt Creator中,选择“File” -> “New File or Project”,然后选择“Application” -> “Qt Widgets Application”。
输入项目名称,例如“Calculator”,然后点击“Choose”。
2. 设计界面在“”中,使用Qt Designer添加所需的按钮和文本框。
按钮对应于数字和运算符,文本框用于显示结果。
3. 编写代码在“”中,实现按钮的点击事件处理函数。
例如,对于“1”按钮,可以编写如下代码:```cppvoid MainWindow::on_pushButton_1_clicked(){ui->lineEdit->setText(ui->lineEdit->text() + "1");}```类似地,为其他数字和运算符按钮编写处理函数。
对于“=”按钮,实现计算逻辑:```cppvoid MainWindow::on_pushButton_equal_clicked(){double result = 0;QString expression = ui->lineEdit->text();bool ok = true;result = QCalculator::calculate(expression, &ok);if (ok) {ui->lineEdit->setText(QString::number(result));} else {ui->lineEdit->setText("Invalid expression");}}```其中,`QCalculator`是一个自定义的类,用于解析和计算表达式。
Pythontkinter实现简单加法计算器代码实例
Pythontkinter实现简单加法计算器代码实例tkinter 是 Python 的标准 GUI 库。
Python 使⽤ tkinter 可以快速的创建 GUI 应⽤程序。
由于 tkinter 是内置到 python 的安装包中、只要安装好 Python 之后就能 import tkinter 库、⽽且 IDLE 也是⽤ tkinter 编写⽽成、对于简单的图形界⾯ tkinter 还是能应付⾃如。
代码如下from tkinter import *def Calculate():a1 = int(text1.get('1.0', END)) # 从⾏⾸取到⾏尾a2 = int(text2.get('1.0', END))a3 = a1 + a2text3.delete('1.0', END)text3.insert(INSERT, a3)root = Tk()root.title('myTitle')label1 = Label(root, text = 'First Number:')label1.grid(row = 0, column = 0)text1 = Text(root, width = 30, height = 1)text1.grid(row= 1, column = 0)label2 = Label(root, text = 'Second Number:')label2.grid(row = 2, column = 0)text2 = Text(root, width = 30, height = 1)text2.grid(row = 3, column = 0)label3 = Label(root, text = 'Result:')label3.grid(row = 4, column = 0)text3 = Text(root, width = 30, height = 1)text3.grid(row = 5, column = 0)button1 = Button(root, text = 'Calculate', command = Calculate)button1.grid(row = 6, column = 0)mainloop()运⾏结果显⽰:这是最简单的⼀个利⽤tkinter包实现的⼩程序,实现了输⼊数据,计算求和并显⽰计算结果的功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子信息工程系实验报告课程名称:MATLAB 应用实验项目名称:GUI 计算器设计实验时间:2012-11-22班级:测控081姓名:学号:810707132实验目的:1.熟悉MATLAB 的菜单设计方法2.熟悉MATLAB 的主要控件使用方法3.熟悉MATLAB 的GUI 设计流程4.运用MATLAB 的GUI 设计一个简单的计算器实验环境:MATLAB7.8实验内容:function varargout =jisuanqi1(varargin)%JISUANQI1M-file for jisuanqi1.fig %JISUANQI1,by itself,creates a new JISUANQI1or raises the existing %singleton*.%%H =JISUANQI1returns the handle to a new JISUANQI1or the handle to %the existing singleton*.%%JISUANQI1('CALLBACK',hObject,eventData,handles,...)calls the local %function named CALLBACK in JISUANQI1.M with the given input arguments.%%JISUANQI1('Property','Value',...)creates a new JISUANQI1or raises the %existing singleton*.Starting from the left,property value pairs are %applied to the GUI before jisuanqi1_OpeningFunction gets called.An %unrecognized property name or invalid value makes property application %stop.All inputs are passed to jisuanqi1_OpeningFcn via varargin.%%*See GUI Options on GUIDE's Tools menu.Choose "GUI allows only one %instance to run (singleton)".%%See also:GUIDE,GUIDATA,GUIHANDLES%Edit the above text to modify the response to help jisuanqi1%Last Modified by GUIDE v2.505-Dec-201022:24:59%Begin initialization code -DO NOT EDIT gui_Singleton =1;成绩:指导教师(签名):'gui_Singleton',gui_Singleton,...'gui_OpeningFcn',@jisuanqi1_OpeningFcn,...'gui_OutputFcn',@jisuanqi1_OutputFcn,...'gui_LayoutFcn',[],...'gui_Callback',[]);if nargin&&ischar(varargin{1})gui_State.gui_Callback=str2func(varargin{1});endif nargout[varargout{1:nargout}]=gui_mainfcn(gui_State,varargin{:}); elsegui_mainfcn(gui_State,varargin{:});end%End initialization code-DO NOT EDIT%---Executes just before jisuanqi1is made visible.function jisuanqi1_OpeningFcn(hObject,eventdata,handles,varargin) %This function has no output args,see OutputFcn.%hObject handle to figure%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%varargin command line arguments to jisuanqi1(see VARARGIN)%以下是本实验初始化部分程序的代码:global c p t c1f;f=0;t=0;p=2;c1=num2str(0);c='0.';set(handles.edit1,'String',c);guidata(hObject,handles);%Choose default command line output for jisuanqi1handles.output=hObject;%Update handles structureguidata(hObject,handles);%UIWAIT makes jisuanqi1wait for user response(see UIRESUME)%uiwait(handles.figure1);%---Outputs from this function are returned to the command line. function varargout=jisuanqi1_OutputFcn(hObject,eventdata,handles)%hObject handle to figure%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%Get default command line output from handles structure varargout{1}=handles.output;%---Executes on button press in pushbutton3.function pushbutton3_Callback(hObject,eventdata,handles)%hObject handle to pushbutton3(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘8’的程序代码:global t f c;if f=='=';c='0';c=8+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=8+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'8');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;end%---Executes on button press in pushbutton4.function pushbutton4_Callback(hObject,eventdata,handles)%hObject handle to pushbutton4(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘5’的程序代码:global t f c;if f=='=';c='0';c=5+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);elseif t==0;c=5+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'5');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;end%---Executes on button press in pushbutton5.function pushbutton5_Callback(hObject,eventdata,handles)%hObject handle to pushbutton5(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘2’的程序代码:global t f c;if f=='=';c='0';c=2+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=2+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'2');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;end%---Executes on button press in pushbutton6.function pushbutton6_Callback(hObject,eventdata,handles)%hObject handle to pushbutton6(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘+/-’的程序代码:global c t p;c=strcat('-',c);set(handles.edit1,'String',c);guidata(hObject,handles);p=p+1;elsec=strrep(c,'-','');set(handles.edit1,'String',c);guidata(hObject,handles);p=p+1;end%---Executes on button press in pushbutton7.function pushbutton7_Callback(hObject,eventdata,handles)%hObject handle to pushbutton7(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘.’的程序代码:global c t;t=1;c=strcat(c,'.');set(handles.edit1,'String',c);guidata(hObject,handles);%---Executes on button press in pushbutton8.function pushbutton8_Callback(hObject,eventdata,handles)%hObject handle to pushbutton8(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘3’的程序代码:global t f c;if f=='=';c='0';c=3+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=3+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'3');set(handles.edit1,'String',c);t=t+1;end%---Executes on button press in pushbutton9.function pushbutton9_Callback(hObject,eventdata,handles)%hObject handle to pushbutton9(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘6’的程序代码:global t f c;if f=='=';c='0';c=6+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=6+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'6');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;end%---Executes on button press in pushbutton10.function pushbutton10_Callback(hObject,eventdata,handles)%hObject handle to pushbutton10(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘9’的程序代码:global t f c;if f=='=';c='0';c=9+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=9+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);elsec=strcat(c,'9');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;end%---Executes on button press in pushbutton11.function pushbutton11_Callback(hObject,eventdata,handles)%hObject handle to pushbutton11(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘+’的程序代码:global c c1f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='+';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject,handles);c=num2str(0);c1=num2str(0);f='=';elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='+';elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='+';elsec1=str2num(c)+str2num(c1);c1=num2str(c1);guidata(hObject,handles);c=num2str(0);f='+';endt=0;%---Executes on button press in pushbutton12.function pushbutton12_Callback(hObject,eventdata,handles)%hObject handle to pushbutton12(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘-’的程序代码:global c c1f t;if(c1==num2str(0)&f==0)|(c1==num2str(0)&f=='=')c1=str2num(c)-str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='-';elseif f=='+';c1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='-';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject,handles);c=num2str(0);c1=num2str(0);f='=';elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='-';elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);c=num2str(0);f='-';elsec1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='-';endt=0;%---Executes on button press in pushbutton13.function pushbutton13_Callback(hObject,eventdata,handles)%hObject handle to pushbutton13(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘*’的程序代码:global c c1f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='*';elseif f=='+';c1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='*';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject,handles);c=num2str(0);c1=num2str(0);f='=';elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);f='*';elseif(c1==num2str(0)&f==0)|(c1==num2str(0)&f=='=');c1=str2num(c)*(str2num(c1)+1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='*';elsec1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='*';endt=0;%---Executes on button press in pushbutton14.function pushbutton14_Callback(hObject,eventdata,handles)%hObject handle to pushbutton14(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘/’的程序代码:global c c1f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='/';elseif f=='+';c1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='/';elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject,handles);c=num2str(0);c1=num2str(0);elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='/';elseif(c1==num2str(0)&f==0)|(c1==num2str(0)&f=='=');c1=str2num(c)/(str2num(c1)+1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='/';elsec1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);f='/';endt=0;%---Executes on button press in pushbutton15.function pushbutton15_Callback(hObject,eventdata,handles)%hObject handle to pushbutton15(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘0’的程序代码:global t f c;if f=='=';c='0';c=0+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=0+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'0');set(handles.edit1,'String',c);t=t+1;end%---Executes on button press in pushbutton16.function pushbutton16_Callback(hObject,eventdata,handles)%hObject handle to pushbutton16(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘1’的程序代码:global t f c;if f=='=';c='0';c=1+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=1+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'1');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;end%---Executes on button press in pushbutton17.function pushbutton17_Callback(hObject,eventdata,handles)%hObject handle to pushbutton17(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘4’的程序代码:global t f c;if f=='=';c='0';c=4+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elseif t==0;c=4+str2num(c)*10;set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'4');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;endfunction edit1_Callback(hObject,eventdata,handles)%hObject handle to edit1(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB%handles structure with handles and user data(see GUIDATA)%Hints:get(hObject,'String')returns contents of edit1as text%str2double(get(hObject,'String'))returns contents of edit1as a double%---Executes during object creation,after setting all properties. function edit1_CreateFcn(hObject,eventdata,handles)%hObject handle to edit1(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB%handles empty-handles not created until after all CreateFcns called%Hint:edit controls usually have a white background on Windows.%See ISPC and COMPUTER.if ispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))set(hObject,'BackgroundColor','white');end%---Executes on button press in pushbutton18.function pushbutton18_Callback(hObject,eventdata,handles)%hObject handle to pushbutton18(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB%handles structure with handles and user data(see GUIDATA)%以下是本实验数字‘7’的程序代码:global t f c;if f=='=';c='0';c=7+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);elseif t==0;c=7+str2num(c)*10;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);elsec=strcat(c,'7');set(handles.edit1,'String',c);guidata(hObject,handles);t=t+1;end%---Executes on button press in pushbutton19.function pushbutton19_Callback(hObject,eventdata,handles)%hObject handle to pushbutton19(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘CE’的程序代码:global c c1f;f=0;c1=num2str(0);c=0;c=num2str(c);set(handles.edit1,'String',c);guidata(hObject,handles);c=num2str(0);t=0;%---Executes on button press in pushbutton20.function pushbutton20_Callback(hObject,eventdata,handles)%hObject handle to pushbutton20(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘=’的程序代码:global c c1f t;if f=='-';c1=str2num(c1)-str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);elseif f=='/'&str2num(c)==0;c2='³ýÊý²»ÄÜΪÁã¡£'guidata(hObject,handles);c=num2str(0);f=0;elseif f=='/';c1=str2num(c1)/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);elseif f=='*';c1=str2num(c)*str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);elsec1=str2num(c)+str2num(c1);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);endt=0;f='=';c=c1;c1=num2str(0);%---Executes on button press in pushbutton21.function pushbutton21_Callback(hObject,eventdata,handles)%hObject handle to pushbutton21(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%---Executes on button press in pushbutton22.function pushbutton22_Callback(hObject,eventdata,handles)%hObject handle to pushbutton22(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘sqrt’的程序代码:global c c1f t;c1=sqrt(str2num(c))c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=c1;c1=num2str(0);t=0;f='=';%---Executes on button press in pushbutton23.function pushbutton23_Callback(hObject,eventdata,handles)%hObject handle to pushbutton23(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘π’的程序代码:global c;c=num2str(pi);set(handles.edit1,'String','¦Ð');guidata(hObject,handles);%---Executes on button press in pushbutton24.function pushbutton24_Callback(hObject,eventdata,handles)%hObject handle to pushbutton24(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘Backspace’的程序代码:global c t;if t==0;c=floor(str2num(c)/10);c=num2str(c);elseif t==2;c=floor(str2num(c));c=num2str(c);c=strcat(c,'.');t=t-1;elseif t==1;c=floor(str2num(c));c=num2str(c);t=t-1;elsec=(floor(str2num(c)*10^(t-1)/10))*10^(-t+2);c=num2str(c);t=t-1;endset(handles.edit1,'String',c);guidata(hObject,handles);%---Executes on button press in pushbutton25.%hObject handle to pushbutton25(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘1/x’的程序代码:global c c1f t;if c==num2str(0)|c1==num2str(0);c2='³ýÊý²»ÄÜΪÁã¡£'set(handles.edit1,'String',c2);guidata(hObject,handles);elsec1=1/str2num(c);c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);endc=num2str(0);c=c1;c1=num2str(0);t=0;f='=';%---Executes on button press in pushbutton26.function pushbutton26_Callback(hObject,eventdata,handles)%hObject handle to pushbutton26(see GCBO)%eventdata reserved-to be defined in a future version of MATLAB %handles structure with handles and user data(see GUIDATA)%以下是本实验‘exp’的程序代码:global c c1f t;c1=exp(str2num(c))c1=num2str(c1);set(handles.edit1,'String',c1);guidata(hObject,handles);c=num2str(0);c=c1;c1=num2str(0);t=0;f='=';实验结果及分析:实验心得:这次实验做的是电脑附件里的计算器,通过该实验我更熟悉掌握了MATLAB中GUI各控件使用方法及应用,最后并利用GUI设计出了计算器,这些让我对GUI页面中的各控件的功能有了进一步的了解。