制作简易计算器
简易计算器 (1)
目录第一章:设计目的11.1课程设计目的.................................................................................. 错误!未定义书签。
1.2简易计算器设计的意义 (1)1.3系统的基本要求 (1)1.4功能设计 (3)第二章:功能描述 (3)2.1功能模块框图 (3)2.2相关功能介绍.................................................................................. 错误!未定义书签。
2.1系统模块机构框图 (4)第三章:总体设计 (5)3.1系统流程图 (3)3.2模块描述 (5)3.3函数声明 (5)第四章:程序实现 (5)4.1界面设计 (10)4.2计算界面 (11)4.3退出界面 (12)第五章:课程设计的结果展示 (13)第六章:参考文献................................................................................................. - 15 -第七章:课程设计总结......................................................................................... - 16 -第一章课程设计目的1.通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。
特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。
通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用;最后还可以熟悉四则运算﹑三角函数等经典算法。
2.通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等手段学到一些新知识,比如画图函数,颜色填充函等。
C#编写简易计算器(附源代码)超详细
超详细一、因为计算器设计的控件太多,不便使用控制台应用程序完成,所以这里使用Windows窗体应用程序,并命名为Calc,如下图所示:二、向窗体中拖入需要的控件,如下图所示:(完成效果图)结果显示区(作者博客左边的文本框)是TextBox控件,并修改其name为txtShow ,按键0~9为Button控件,并将其name分别修改为btn_0、btn_1、btn_2、btn_3、btn_4、btn_5、btn_6、btn_7、btn_8、btn_9;按键【负数】的name值修改为btn_sign,按键【.】的name 修改为btn_dot,按键【+ - * /】的name值分别修改为btn_add、btn_sub、btn_mul、btn_div,按键【=】的name值修改为btn_equ,按键【倒数】的name值修改为btn_rev,按键【平方】的name值修改为btn_sqr,按键【开方】的name值修改为btn_sqrt。
右边的计算器图片空间是PictureBox,作者博客控件是LinkLabel,可以不添加,以上所有控件均可按照需求添加,只保留自己需要的按钮控件和textbox控件即可。
三、代码部分(含解释),采用switch多分支语句编写using System;using System.Drawing;using System.Collections;using ponentModel;using System.Windows.Forms;using System.Data;namespace Calc{///<summary>/// QQ:479340056 温柔一刀C#简易计算器的实现///</summary>public class CalcForm : System.Windows.Forms.Form{private System.Windows.Forms.Button btn_0;private System.Windows.Forms.Button btn_1;private System.Windows.Forms.Button btn_2;private System.Windows.Forms.Button btn_3;private System.Windows.Forms.Button btn_4;private System.Windows.Forms.Button btn_5;private System.Windows.Forms.Button btn_6;private System.Windows.Forms.Button btn_7;private System.Windows.Forms.Button btn_8;private System.Windows.Forms.Button btn_9;private System.Windows.Forms.Button btn_add;private System.Windows.Forms.Button btn_sub;private System.Windows.Forms.Button btn_mul;private System.Windows.Forms.Button btn_div;private System.Windows.Forms.Button btn_sqrt;private System.Windows.Forms.Button btn_sign;private System.Windows.Forms.Button btn_equ;private System.Windows.Forms.Button btn_dot;private System.Windows.Forms.Button btn_rev;private System.Windows.Forms.TextBox txtShow;private System.Windows.Forms.Button btn_sqr;private PictureBox pictureBox1;private LinkLabel linkLabel1;///<summary>///必需的设计器变量。
用VB6.0编写一个小计算器
在左侧工具栏中,选择输入框,在窗口界面中
设置三个合适大小的输入框
制作中...
修改输入框内文字:选择输入框在属性处找到
text,将右边文字修改。
添加一个按钮,名称和软件名相同改法
双击软件界面 提示:一号框(左上)×二号框(右上)=三号框 (左下),我们要输入:(注意空格)
PrivateSubCommand1_Click() OnErrorGoto1
用 VB6.0 编写一个小计算器
y2a3d 计算器在线计算 /
教大家制作一个小软件——乘法计算器软件
VB6.0 方法
打开 VB6.0 选择“标准 EXE”
首先,在属性中的 caption 处,将 Form1(软
件名)改为自己喜爱的名字
按住窗口的调整按钮,将窗口调整为合适大小
Text3.Text=Text1.Text*Text2.Text ExitSub
1: msgbox 请输入正确数据,,出错啦...
EndSub 点击文件→生成工程
生成成功! 上面框内输入乘数,点击按钮,计算出结果显 示在下面框内!
注意事项 千万注意代码中的空格
简易计算器的制作
简易计算器的制作在本文中,我们将介绍如何使用Visual FoxPro(VFP)制作一个简易计算器。
Visual FoxPro是一种开发工具,可以用于创建数据库应用程序和开发Windows桌面应用程序。
步骤1: 创建新的Visual FoxPro项目首先,打开Visual FoxPro并创建一个新的项目。
在“文件”菜单中选择“新建”,然后选择“项目”。
输入一个项目名称,选择一个合适的位置,然后点击“确定”。
步骤2:创建一个新的表单接下来,我们需要创建一个新的表单来作为计算器的界面。
在项目资源管理器中,右键点击“表单”文件夹,并选择“新建”。
输入一个表单名称,然后点击“确定”。
步骤3:添加控件步骤5:添加按钮事件首先,我们需要声明变量来存储用户输入的数字。
在按钮事件代码中,添加以下代码:```foxproLOCAL num1, num2, result```接下来,我们需要获取用户输入的数字。
在按钮事件代码中,添加以下代码:```foxpronum1 = VAL(Thisform.txtNum1.Value)num2 = VAL(Thisform.txtNum2.Value)```然后,我们可以执行所需的计算操作。
例如,如果我们想要添加两个数字,我们可以使用以下代码:```foxproresult = num1 + num2```最后,我们需要将结果显示在界面上。
在按钮事件代码中,添加以下代码:```foxproThisform.lblResult.Caption = STR(result)```步骤6:运行和测试完成上述步骤后,您可以保存并运行计算器。
在VFP的工具栏中,点击“运行”按钮来启动应用程序。
测试计算器,确保它可以正确执行计算操作并显示结果。
结论通过使用Visual FoxPro,我们可以轻松创建一个简易计算器。
这个计算器可以执行基本的加减乘除等操作,同时提供了一个直观的用户界面。
您可以根据需要进行自定义,添加更多功能和复杂的计算操作。
Python之实现一个简易计算器
Python之实现⼀个简易计算器⾃⼰动⼿写计算器⼀、功能分析 ⽤户输⼊⼀个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式⾥⾯除了包含空格、'+'、'-'、'*'、'/'和括号再⽆其他特殊符号,然后⾃⼰动⼿写代码解析其中的表达式,实现加减乘除,最后得出的结果与真实的计算机所算的结果必须⼀致。
⼆、所需的知识点字符串的处理正则表达式的运⽤函数递归三、程序实现流程分析1. ⽤正则表达式处理字符串,只提取其中的数字和运算符,并转换成列表2. 编写⼀个函数,处理没有括号的基本运算的基本表达式3. 再写⼀个函数递归处理带有括号的函数,先计算最内部括号中的表达式, 然后将最内部的括号替换为计算后的结果, 在递归外部⼀层的,最后返回的就是所需的结果四、具体实现过程1.正则表达式处理⽤户输⼊字符串 这⾥我不会讲正则表达式具体的⽤法,要将的话都可以讲⼀本书了,我只讲本⽂⽤到的正则表达式。
根据需求,我们需要提取出⽤户输⼊字符串中的数字和运算符到⼀个列表中,⽽空格将会被忽略掉,假设⽤户输⼊的表达式是 expression,我们可以写出下⾯的代码:1 2 3 4import reexpression='(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4)'l=re.findall('([\d\.]+|/|-|\+|\*)',expression)print(l) #['100', '+', '40', '*', '5', '/', '2', '-', '3', '*', '2', '*', '2', '/', '4', '+', '9', '*', '3', '+', '4', '-', '4', '-', '4'] ⾸先我们先看⼀下 findall 的⽤法,findall可以匹配所有符合规律的内容,返回包含结果的列表。
Python简易计算器制作方法代码详解
Python简易计算器制作⽅法代码详解主要⽤到的⼯具是Python中的Tkinter库⽐较简单直接上图形界⾯和代码引⽤Tkinter库from tkinter import *建⽴主窗⼝对象window=Tk() #设置窗⼝对象window.title('counting machine')window.geometry("350x280")window['bg']='red'建⽴标签框以及标签(将运算字符串显⽰在上⾯)frame=LabelFrame(window,bg='yellow',width=350,height=50)frame.pack()frame.place(x=0,y=0)label=Label(frame,text="1+1=2",height=3,width=50,bg='yellow')label.pack() #显⽰框设置全局变量字符串s,按⼀个按钮,将按钮对应的运算符加到这个字符串s中,最后利⽤eval函数进⾏计算。
global ss=""按钮0-9以及⼩数点的实现(⼤致思路都是⼀样的)#按钮.def figure_dot():global ss=s+"."label.config(text=s)btn0=Button(window,text=".",width=4,command=figure_dot,bg='yellow')btn0.place(x=150,y=220) #按钮.#按钮0def figure_0():global ss=s+"0"label.config(text=s)btn0=Button(window,text="0",width=4,command=figure_0,bg='yellow')btn0.place(x=80,y=220) #按钮0#按钮1def figure_1():global ss=s+"1"label.config(text=s)btn1=Button(window,text="1",width=4,command=figure_1,bg='yellow')btn1.place(x=10,y=80) #按钮1#按钮2def figure_2():global ss=s+"2"label.config(text=s)btn2=Button(window,text="2",width=4,command=figure_2,bg='yellow')btn2.place(x=80,y=80)#按钮2#按钮3def figure_3():global ss=s+"3"label.config(text=s)btn3=Button(window,text="3",width=4,command=figure_3,bg='yellow')btn3.place(x=150,y=80)#按钮3#按钮4def figure_4():global ss=s+"4"label.config(text=s)btn4=Button(window,text="4",width=4,command=figure_4,bg='yellow')btn4.place(x=10,y=130)#按钮4#按钮5def figure_5():global ss=s+"5"label.config(text=s)btn5=Button(window,text="5",width=4,command=figure_5,bg='yellow')btn5.place(x=80,y=130)#按钮5#按钮6def figure_6():global ss=s+"6"label.config(text=s)btn6=Button(window,text="6",width=4,command=figure_6,bg='yellow')btn6.place(x=150,y=130)#按钮6#按钮7def figure_7():global ss=s+"7"label.config(text=s)btn7=Button(window,text="7",width=4,command=figure_7,bg='yellow')btn7.place(x=10,y=180)#按钮7#按钮8def figure_8():global ss=s+"8"label.config(text=s)btn8=Button(window,text="8",width=4,command=figure_8,bg='yellow')btn8.place(x=80,y=180)#按钮8#按钮9def figure_9():global ss=s+"9"label.config(text=s)btn9=Button(window,text="9",width=4,command=figure_9,bg='yellow')btn9.place(x=150,y=180)#按钮9运算符号的实现(±*/)#加法按钮def figure_addition():global ss=s+"+"label.config(text=s)btn_add=Button(window,text="+",width=4,command=figure_addition,bg='yellow') btn_add.place(x=220,y=80)#加法按钮#减法按钮def figure_subtraction():global ss=s+"-"label.config(text=s)btn_sub=Button(window,text="-",width=4,command=figure_subtraction,bg='yellow')btn_sub.place(x=220,y=130)#减法按钮#乘法按钮def figure_multiplication():global ss=s+"*"label.config(text=s)btn_multi=Button(window,text="*",width=4,command=figure_multiplication,bg='yellow')btn_multi.place(x=290,y=80)#乘法按钮#除法按钮def figure_division():global ss=s+"/"label.config(text=s)btn_divi=Button(window,text="/",width=4,command=figure_division,bg='yellow')btn_divi.place(x=290,y=130)#除法按钮清空窗⼝按钮的实现#清空按钮def figure_clear():global ss=""label.config(text=s)btn_clear=Button(window,text="clear",width=4,command=figure_clear,bg='yellow')btn_clear.place(x=220,y=180)#清空按钮结果输出的实现(eval函数)#结果按钮def figure_value():global sx=eval(s)s=str(x)label.config(text=s)btn_value=Button(window,text="=",width=4,command=figure_value,bg='yellow')btn_value.place(x=290,y=180)颜⾊变换的实现(红变粉)def figure_colorchange():window.config(bg="pink")btn_value=Button(window,text="color",width=4,command=figure_colorchange,bg='yellow')btn_value.place(x=10,y=220)#改变颜⾊window.mainloop()变换后这个简易计算器也就实现了,当然也可以加⼊其他的功能,如开⽅,乘幂等功能。
制作一个简易计算器——基于AndroidStudio实现
制作⼀个简易计算器——基于AndroidStudio实现⼀个计算器Android程序的源码部分分为主⼲和细节两部分。
⼀、主⼲1. 主⼲的构成计算器的布局事件(即计算器上的按钮、⽂本框)监听实现计算2. 详细解释 假设我们的项⽬名为Calculator,⽽布局名称(Layout Name)为默认的activity_main 。
即设置如下图所⽰: 在这种前提下,有:设置计算器布局的⽂件:Calculator/app/src/main/res/layout/activity_main.xml事件监听和计算实现在同⼀个⽂件⾥:Calculator/app/src/main/java/下的⼀个⼦⽬录⾥的MainActivity.java 即如下图所⽰:计算器布局代码(写在activity_main.xml⽂件⾥):1<?xml version="1.0" encoding="utf-8"?>2<ScrollView xmlns:android="/apk/res/android"3 android:layout_width="fill_parent"4 android:layout_height="wrap_content"5>6<LinearLayout7android:layout_width="fill_parent"8 android:layout_height="fill_parent"9 android:orientation="vertical">10<EditText11android:id="@+id/input"12 android:layout_width="fill_parent"13 android:layout_height="wrap_content"14 android:layout_gravity="center"15 android:editable="false"16 android:hint="@string/shuru"/>1718<EditText19android:id="@+id/output"20 android:layout_width="fill_parent"21 android:layout_height="wrap_content"22 android:layout_gravity="center"23 android:editable="true"24 android:gravity="right"25 android:hint="@string/shuchu"/>2627<RelativeLayout28android:layout_width="fill_parent"29 android:layout_height="wrap_content">3031<Button32android:id="@+id/seven"33 android:layout_width="80dp"34 android:layout_height="70dp"35 android:layout_alignParentLeft="true"36 android:text="@string/seven"37 android:textSize="40sp"/>3839<Button44 android:text="@string/eight"45 android:textSize="40sp"/>4647<Button48android:id="@+id/nine"49 android:layout_width="80dp"50 android:layout_height="70dp"51 android:layout_toRightOf="@id/eight"52 android:text="@string/nine"53 android:textSize="40sp"/>5455<Button56android:id="@+id/add"57 android:layout_width="80dp"58 android:layout_height="70dp"59 android:layout_alignParentRight="true"60 android:layout_toRightOf="@id/nine"61 android:text="@string/add"62 android:textSize="40sp"/>6364<Button65android:id="@+id/four"66 android:layout_width="80dp"67 android:layout_height="70dp"68 android:layout_alignParentLeft="true"69 android:layout_below="@id/seven"70 android:text="@string/four"71 android:textSize="40sp"/>7273<Button74android:id="@+id/five"75 android:layout_width="80dp"76 android:layout_height="70dp"77 android:layout_below="@id/eight"78 android:layout_toRightOf="@id/four"79 android:text="@string/five"80 android:textSize="40sp"/>8182<Button83android:id="@+id/six"84 android:layout_width="80dp"85 android:layout_height="70dp"86 android:layout_below="@id/nine"87 android:layout_toRightOf="@id/five"88 android:text="@string/six"89 android:textSize="40sp"/>9091<Button92android:id="@+id/subtract"93 android:layout_width="80dp"94 android:layout_height="70dp"95 android:layout_alignParentRight="true"96 android:layout_below="@id/add"97 android:layout_toRightOf="@id/six"98 android:text="@string/subtract"99 android:textSize="40sp"/>100101<Button102android:id="@+id/one"103 android:layout_width="80dp"104 android:layout_height="70dp"105 android:layout_alignParentLeft="true" 106 android:layout_below="@id/four"107 android:text="@string/one"108 android:textSize="40sp"/>109110<Button111android:id="@+id/two"112 android:layout_width="80dp"113 android:layout_height="70dp"114 android:layout_below="@id/five"115 android:layout_toRightOf="@id/one" 116 android:text="@string/two"117 android:textSize="40sp"/>118119<Button120android:id="@+id/three"121 android:layout_width="80dp"122 android:layout_height="70dp"123 android:layout_below="@id/six"128<Button129android:id="@+id/multiply"130 android:layout_width="80dp"131 android:layout_height="70dp"132 android:layout_alignParentRight="true" 133 android:layout_below="@id/subtract" 134 android:layout_toRightOf="@id/three" 135 android:text="@string/multiply"136 android:textSize="40sp"/>137138<Button139android:id="@+id/zero"140 android:layout_width="80dp"141 android:layout_height="70dp"142 android:layout_alignParentLeft="true" 143 android:layout_below="@id/one"144 android:text="@string/zero"145 android:textSize="40sp"/>146147<Button148android:id="@+id/clear"149 android:layout_width="80dp"150 android:layout_height="70dp"151 android:layout_below="@id/two"152 android:layout_toRightOf="@id/zero" 153 android:text="@string/clear"154 android:textSize="40sp"/>155156<Button157android:id="@+id/result"158 android:layout_width="80dp"159 android:layout_height="70dp"160 android:layout_below="@id/three"161 android:layout_toRightOf="@id/clear" 162 android:text="@string/result"163 android:textSize="40sp"/>164165<Button166android:id="@+id/divide"167 android:layout_width="80dp"168 android:layout_height="70dp"169 android:layout_alignParentRight="true" 170 android:layout_below="@id/multiply" 171 android:layout_toRightOf="@id/result" 172 android:text="@string/divide"173 android:textSize="40sp"/>174175<Button176android:id="@+id/dot"177 android:layout_width="80dp"178 android:layout_height="70dp"179 android:layout_alignParentLeft="true" 180 android:layout_below="@id/zero"181 android:text="@string/dot"182 android:textSize="40sp"/>183<Button184android:id="@+id/writeButton"185 android:layout_width="wrap_content" 186 android:layout_height="wrap_content" 187 android:layout_alignParentLeft="true" 188 android:layout_below="@id/dot"189 android:text="@string/write"190 android:textSize="40sp"/>191<Button192android:id="@+id/readButton"193 android:layout_width="wrap_content" 194 android:layout_height="wrap_content" 195 android:layout_alignParentRight="true" 196 android:layout_below="@id/dot"197 android:text="@string/read"198 android:textSize="40sp"/>199200<CheckBox201android:id="@+id/appendBox"202 android:text="@string/appendBox"203 android:layout_width="wrap_content" 204 android:layout_height="wrap_content" 205 android:layout_alignParentBottom="true" 206 android:layout_toLeftOf="@+id/divide" 207 android:layout_toStartOf="@+id/divide"212213<EditText214215android:layout_width="match_parent"216 android:layout_height="wrap_content"217 android:id="@+id/textView"/>218219<EditText220221android:layout_width="match_parent"222 android:layout_height="wrap_content"223 android:id="@+id/displayView"/>224225<EditText226android:id="@+id/errorzero"227 android:layout_width="fill_parent"228 android:layout_height="wrap_content"229 android:layout_gravity="center"230 android:editable="false"231 android:gravity="center"232/>233<EditText234android:id="@+id/resultText"235 android:layout_width="fill_parent"236 android:layout_height="wrap_content"237 android:layout_gravity="center"238 android:editable="false"239 android:gravity="left"240 android:text="@string/resultText"241/>242</LinearLayout>243</ScrollView>View Code事件监听和实现计算代码(写在MainActivity.java⽂件⾥)1package com.example.lenovo.calculator;2345import android.app.Activity;6import android.content.Context;7import android.os.Bundle;8import android.view.View;9import android.view.View.OnClickListener;10import android.widget.Button;11import android.widget.CheckBox;12import android.widget.EditText;1314import java.io.FileInputStream;15import java.io.FileNotFoundException;16import java.io.FileOutputStream;17import java.io.IOException;1819public class MainActivity extends Activity {20/**21 * Called when the activity is first created.22*/23private EditText output = null;24private EditText input = null;25private Button btn0 = null;26private Button btn1 = null;27private Button btn2 = null;28private Button btn3 = null;29private Button btn4 = null;30private Button btn5 = null;31private Button btn6 = null;32private Button btn7 = null;33private Button btn8 = null;34private Button btn9 = null;35private Button btnadd = null;36private Button btnsubtract = null;37private Button btnmultiply = null;38private Button btndivide = null;39private Button btnclear = null;40private Button btnresult = null;41private Button btndot = null;46private Button writeButton = null;47private Button readButton = null;48private CheckBox appendBox = null;49private EditText textView = null;50private EditText displayView = null;51public String FILE_NAME = "fileDemo.txt";525354private String str = "";//保存数字55private String strold = "";//原数字56private char act = ' ';//记录“加减乘除等于”符号57private int count = 0;//判断要计算的次数,如果超过⼀个符号,先算出来⼀部分58private Float result = null;//计算的输出结果59private Boolean errBoolean = false;//有错误的时候为true,⽆错为false60private Boolean flagBoolean = false;//⼀个标志,如果为true,可以响应运算消息,如果为false,不响应运算消息,只有前⾯是数字才可以响应运算消息 61private Boolean flagDot = false; //⼩数点标志位62636465 @Override66public void onCreate(Bundle savedInstanceState) {67super.onCreate(savedInstanceState);68 setContentView(yout.activity_main);6970 output = (EditText) findViewById(R.id.output);71 input = (EditText) findViewById(R.id.input);7273 errorzero = (EditText) findViewById(R.id.errorzero);74 resultText = (EditText) findViewById(R.id.resultText);75 writeButton = (Button) findViewById(R.id.writeButton);76 readButton = (Button) findViewById(R.id.readButton);77 textView = (EditText) findViewById(R.id.textView);78 displayView = (EditText) findViewById(R.id.displayView);79 appendBox = (CheckBox) findViewById(R.id.appendBox);8081 btn0 = (Button) findViewById(R.id.zero);82 btn1 = (Button) findViewById(R.id.one);83 btn2 = (Button) findViewById(R.id.two);84 btn3 = (Button) findViewById(R.id.three);85 btn4 = (Button) findViewById(R.id.four);86 btn5 = (Button) findViewById(R.id.five);87 btn6 = (Button) findViewById(R.id.six);88 btn7 = (Button) findViewById(R.id.seven);89 btn8 = (Button) findViewById(R.id.eight);90 btn9 = (Button) findViewById(R.id.nine);91 btnadd = (Button) findViewById(R.id.add);92 btnsubtract = (Button) findViewById(R.id.subtract);93 btnmultiply = (Button) findViewById(R.id.multiply);94 btndivide = (Button) findViewById(R.id.divide);95 btnclear = (Button) findViewById(R.id.clear);96 btnresult = (Button) findViewById(R.id.result);97 btndot = (Button) findViewById(R.id.dot);98//设置按钮侦听事件99 btn0.setOnClickListener(listener);100 btn1.setOnClickListener(listener);101 btn2.setOnClickListener(listener);102 btn3.setOnClickListener(listener);103 btn4.setOnClickListener(listener);104 btn5.setOnClickListener(listener);105 btn6.setOnClickListener(listener);106 btn7.setOnClickListener(listener);107 btn8.setOnClickListener(listener);108 btn9.setOnClickListener(listener);109//执⾏运算110 btnadd.setOnClickListener(listener);111 btnsubtract.setOnClickListener(listener);112 btnmultiply.setOnClickListener(listener);113 btndivide.setOnClickListener(listener);114 btnclear.setOnClickListener(listener);115 btnresult.setOnClickListener(listener);116117 btndot.setOnClickListener(listener);118119 writeButton.setOnClickListener(writelistener);120 readButton.setOnClickListener(readlistener);121122123// ATTENTION: This was auto-generated to implement the App Indexing API.124// See https://g.co/AppIndexing/AndroidStudio for more information.125 }130public void onClick(View v) {131// TODO Auto-generated method stub132switch (v.getId()) {133//输⼊数字134case R.id.zero:135 num(0);136break;137case R.id.one:138 num(1);139break;140case R.id.two:141 num(2);142break;143case R.id.three:144 num(3);145break;146case R.id.four:147 num(4);148break;149case R.id.five:150 num(5);151break;152case R.id.six:153 num(6);154break;155case R.id.seven:156 num(7);157break;158case R.id.eight:159 num(8);160break;161case R.id.nine:162 num(9);163break;164165case R.id.dot:166 dot();167break;168//执⾏运算169case R.id.add:170 add();171break;172case R.id.subtract:173 sub();174break;175case R.id.multiply:176 multiply();177break;178case R.id.divide:179 divide();180break;181case R.id.clear:182 clear();183break;184//计算结果185case R.id.result:186 result();187if (!errBoolean && flagBoolean) {188 output.setText(String.valueOf(result));189 }190 resultText.setText(strold + act + str + "=" + result+" "); 191break;192193default:194break;195196 }197 input.setText(strold + act + str);198 output.setText(String.valueOf(result));199200201 }202 };203204private OnClickListener writelistener = new OnClickListener() {205 @Override206public void onClick(View view) {207//textView.setText("");208209 FileOutputStream fos = null;214 fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); 215 }216 String text = resultText.getText().toString();217 fos.write(text.getBytes());218 textView.setText("⽂件写⼊成功,写⼊长度:" + text.length()); 219//resultText.setText("");220221 } catch (FileNotFoundException e) {222 e.printStackTrace();223 } catch (IOException e) {224 e.printStackTrace();225 }226finally {227if (fos != null)228try {229 fos.flush();230 fos.close();231 } catch (IOException e) {232 e.printStackTrace();233 }234 }235 }236 };237private OnClickListener readlistener = new OnClickListener() {238 @Override239public void onClick(View view) {240241 displayView.setText("");242 FileInputStream fis = null;243try {244 fis = openFileInput(FILE_NAME);245if (fis.available() == 0) {246return;247 }248byte[] readBytes = new byte[fis.available()];249while (fis.read(readBytes) != -1) {250251 }252 String text = new String(readBytes);253 displayView.setText(text);254 textView.setText("⽂件读取成功,写⼊长度:" + text.length()); 255256 } catch (FileNotFoundException e) {257 e.printStackTrace();258 } catch (IOException e) {259 e.printStackTrace();260 }261262 }263 };264265private void dot() {266// TODO Auto-generated method stub267268if (!flagDot) {269 str = str + ".";270 flagBoolean = false;271 flagDot = true;272 }273 }274275private void clear() {276// TODO Auto-generated method stub277 str = strold = "";278 count = 0;279 act = ' ';280 result = null;281 flagBoolean = false;282 flagDot = false;283 input.setText(strold + act + str);284 output.setText("");285 errorzero.setText("");286 displayView.setText("");287 textView.setText("");288 resultText.setText("");289 }290291private void divide() {292// TODO Auto-generated method stub293if (flagBoolean) {299300private void multiply() {301// TODO Auto-generated method stub 302if (flagBoolean) {303 check();304 act = '*';305 flagBoolean = false;306 }307 }308309private void sub() {310// TODO Auto-generated method stub 311if (flagBoolean) {312 check();313 act = '-';314 flagBoolean = false;315 }316 }317318private void add() {319// TODO Auto-generated method stub 320if (flagBoolean) {321 check();322 act = '+';323 flagBoolean = false;324 }325 }326327private void check() {328// TODO Auto-generated method stub 329if (count >= 1) {330 result();331 str = String.valueOf(result);332 }333 strold = str;334 str = "";335 count++;336 flagDot = false;337 errorzero.setText("");338 }339340//计算输出结果341private void result() {342// TODO Auto-generated method stub 343if (flagBoolean) {344 Float a, b;345346 a = Float.parseFloat(strold);347 b = Float.parseFloat(str);348349if (b == 0 && act == '/') {350 clear();351 errorzero.setText("除数不能为零!"); 352//output.setText("除数不能为零!"); 353354355//errBoolean=true;356 }357358359if (!errBoolean) {360switch (act) {361case '+':362 result = a + b;363break;364case '-':365 result = a - b;366break;367case '*':368 result = a * b;369break;370case '/':371 result = a / b;372break;373374default:375break;376 }377 }383private void num(int i) {384// TODO Auto-generated method stub385 str = str + String.valueOf(i);386 flagBoolean = true;387 errorzero.setText("");388 }389390 }View Code⼆、细节 仅仅将主⼲部分代码copy下来并不能运⾏程序,因为主⼲代码调⽤了⼀些⽂件的代码,这些⽂件就是我们所说的细节。
元换万元计算器
元换万元计算器元换万元计算器今天,我们在手工课上制作一个计算器。
老师先发给每人一张彩纸、一支铅笔和一盒彩色水笔。
只见老师左手拿着彩纸,右手拿着剪刀,神情专注地剪起来。
过了几分钟,一个精美的计算器就呈现在我眼前。
它有一个长方形的外壳,在外壳的四个面分别画上横线、竖线、斜线和圆圈。
它有一个像小蜜蜂样的三角形按键,按键下是红色的,按键上是黄色的,按键旁边有一个黑色的小键盘,键盘上还有五个数字:“ 00”“ 01”“ 10”“ 12”“ 23”。
看上去既简单又美观。
再瞧瞧里面吧,有七排白色的显示屏,左边一排写着“ 00”“ 01”“ 10”“ 12”“ 23”“……”;右边一排写着“+”“-”“*”“/”;“帮助”下有九个按钮:“ L”代表的是“ L0”;“ M”代表的是“ M0”;“ C”代表的是“ C0”;“ E”代表的是“ E0”;“ H”代表的是“ H0”;“ J”代表的是“ J0”;“ M”代表的是“ M1”;“ S”代表的是“ S1”;“ M”代表的是“ T3”;“ N”代表的是“ N0”;“ D”代表的是“ D0”;“ I”代表的是“ I0”;“ O”代表的是“ O0”;“ P”代表的是“ P0”;“ R”代表的是“ R1”。
我立刻打开计算器,用铅笔点住“+”这个按钮,随后一按,便出现了一条数学公式: 01+10=11+01=10+0=11+0= 22。
这时,我不禁惊讶地说道:“哇!我竟然会这么多知识!”我心想:如果让我算那么多数学题目,肯定比这个还复杂。
我又按住了“-”这个按钮,结果出现了很多数学公式:- 00+10=-10+01=-10+0=-11+0= -22。
我恍然大悟:原来如此。
我立刻打开“帮助”这个按钮,上面写着:“ +”表示加法;“-”表示减法;“*”表示乘法;“/”表示除法;“-”表示负数。
我又按了“ L”这个按钮,出现了“ M”这个按钮,下面的公式可多了:“ M”-0=0;“ M”-1=0;“ M”-2=-1;“ M”-3=0;“ M”-4=-1;“ M”-5=0;“ M”-6=1;“ M”-7=0;“ M”-8=1;“ M”-9=0;“ M”-10=1;“ M”-11=0;“ M”-12=1;“ M”-13=1;“ M”-14=1;“ M”-15=0;“ M”-16=1;“ M”-17=1;“ M”-18=1;“ M”-19=1;“ M”-20=0。
EXCEL做的超级房贷计算器
EXCEL做的超级房贷计算器超级房贷计算器是一种用Excel来制作的工具,可以帮助人们在购房过程中进行房贷计算。
此计算器可以根据用户输入的房屋价格、首付比例、贷款利率和贷款期限等信息,快速准确地计算出每个月的还款金额、还款总额和利息支出等关键信息。
下面将详细介绍如何制作一个超级房贷计算器。
首先,我们需要在Excel工作表中设置一些输入单元格,以便用户可以输入所需的信息。
可以在一个单元格中让用户输入房屋价格,例如A1单元格。
然后,在另一个单元格中设置一个下拉列表,其中列出了不同的首付比例选项。
用户可以从列表中选择一个首付比例,并在该单元格中显示所选选项。
接下来,我们需要在另外一些单元格中设置贷款利率和贷款期限的输入单元格。
用户可以分别输入所需的贷款利率和贷款期限,例如B1和C1单元格。
然后,在许多其他单元格中设置公式来计算所需的信息。
首先,我们需要计算出首付金额。
我们可以使用一个公式,将房屋价格乘以所选的首付比例,例如D1单元格的公式为`=A1*B1`。
然后,我们可以计算出贷款金额,使用一个公式减去首付金额,例如E1单元格的公式为`=A1-D1`。
接下来,我们可以使用贷款利率、贷款期限和贷款金额来计算每个月的还款金额。
我们可以使用Excel的内置函数PMT来计算这个值。
例如,我们可以在F1单元格中使用`=PMT(B1/12,C1*12,-E1)`公式来计算每个月的还款金额。
PMT函数中的第一个参数是贷款利率除以12(每年的12个月),第二个参数是贷款期限乘以12(贷款的总月数),第三个参数是贷款金额的负值(因为付款是支出)。
然后,我们可以计算出总还款金额和利息支出。
我们可以在G1单元格中使用`=F1*C1*12`公式来计算总还款金额(每月还款金额乘以总月数),在H1单元格中使用`=G1-E1`公式来计算利息支出(总还款金额减去贷款金额)。
最后,我们可以在工作表中添加条件格式,使关键数据以可视化的方式突出显示。
如何使用VFP制作一个简易的计算器
如何使用VFP(Microsoft Visual FoxPro)设计一个简易计算器?胡伟本文内容主要介绍如何使用VFP设计如下图所示的一个简易的计算器。
一、创建项目文件jsq.pjx创建jsq文件夹:c:\jsq (以下文件均以此为存储目录)在c:\jsq下创建项目文件:c:\jsq.pjx二、创建表单jsq.scx(一)创建表单jsq,并设置属性:设AutoCenter为“.T.”、ShowWindow为“作为顶层表单”(二)在表单jsq内创建各对象1、创建(菜单部分在后面创建)单击“表单控件”工具栏上的“文本框”按钮,在表单上的适当位置单击。
并设置属性Alignment为“1-右”2、创建容器控件设置属性SpecialEffect为“凹下”3、创建命令控件更改属性Caption “Command1”为“Backspace”,属性ForeColor “0,0,0”为“255,0,0”4、如同创建,创建其它控件。
单击表面空白部分,更改属性Caption “Form1”为“计算器”。
5、编辑各控件的命令代码新建属性 ls 并改其属性“.F.”为“0”;新建属性 mm 并改其属性“.F.”为“0”。
(1)Backspace双击Backspace控件,在打开的Command1.klick中编写如下代码:thisform.text1.value=substr(alltrim(thisform.text1.value),1,len(alltrim(thisform.text1.value))-1)(2)CE 的代码为:thisform.text1.value=''(3)C 的代码为:thisform.text1.value=''thisform.ls=0thisform.tag=''(4)MC 的代码为:thisform.mm=0(5)MR 的代码为:thisform.text1.value=alltrim(str(thisform.mm))(6)MS 的代码为:thisform.mm=val(alltrim(thisform.text1.value))(7)M+ 的代码为:thisform.mm=thisform.mm+val(alltrim(thisform.text1.value)) (8)0 的代码为:thisform.text1.value=thisform.text1.value+'0'if alltrim(thisform.text1.value)='00'thisform.text1.value='0'endif同理编写1、2、3、4、5、6、7、8、9 的代码。
用VB制作计算器
用VB制作计算器在VB编程语言中,可以使用Windows Forms应用程序来制作一个简单的计算器。
Windows Forms应用程序是VB的一种可视化编程工具,可以为用户提供一个图形用户界面。
首先,我们需要创建一个新的Windows Forms应用程序项目,并打开默认生成的Form1窗体。
接下来,我们可以使用Windows Forms控件来创建一个计算器的用户界面。
在Form1窗体上,我们可以添加一个TextBox控件用于显示计算结果,并设置其属性为只读。
```vbPrivate ReadOnly resultTextBox As TextBox = New TextBox```然后,我们可以添加一些Button控件来表示计算器的数字和操作符。
我们可以使用按钮的Click事件来处理用户的点击操作。
```vbPrivate ReadOnly buttons As List(Of Button) = New List(Of Button)```接下来,我们需要实现按钮的Click事件处理程序来执行相应的计算逻辑。
我们可以使用Eval函数来计算表达式的值,并将结果显示在TextBox中。
Private Sub Button_Click(sender As Object, e As EventArgs) Dim button As Button = TryCast(sender, Button)If button IsNot Nothing ThenDim buttonText As String = button.TextIf buttonText = "=" Then'计算表达式的值Dim expression As String = resultTextBox.TextDim value As Double = Eval(expression)resultTextBox.Text = value.ToStringElseIf buttonText = "C" Then'清空文本框resultTextBox.Text = ""Else'添加数字或操作符resultTextBox.Text += buttonTextEnd IfEnd IfEnd Sub最后,我们需要在窗体的构造函数或Load事件处理程序中将按钮和TextBox添加到窗体上。
用MATLAB制作简单计算器
用M A T L A B制作简单计算器Last updated on the afternoon of January 3, 2021安阳工学院电子信息与电气工程学院《MATLAB编程与应用》课程大作业题目:用MATLAB制作简单计算器班级:电子信息工程(专升本)教师成绩由以下评分标准累计得出1、设计和仿真结果正确,分析清晰合理。
40%2、大作业报告重点突出、阐述清晰。
30%3、陈述清晰正确、有说服力,能够正确回答问题。
30%总分(上述成绩由教师填写)学生自评分值(该表格全部由学生填写)大作业总成绩(该表格“姓名”和“学号”由学生填写,“成绩”由教师填写)1.计任务: 1、熟悉MATLAB的主要控件使用方法。
2、熟悉MATLAB的GUI设计流程。
2.设计方案利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现:A.实现十进制数的加、减、乘、除、简单计算。
B. 科学计算函数,包括正弦、余弦、正切、(余切、开方、指数等函数运行。
C. 能够保存上次历史计算的答案,先是答案存储器中得内容。
D. 有清除键,能清除操作。
3.方案实施通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。
然后在通过各个按钮的回调函数,实现简单的计算功能。
4.方案施舍首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示:图-1一、布局GUI1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:图–22.然后双击“Blank GUI(Default)”出现GUI窗口图-33.添加按钮图-44.根据按钮的作用及视觉效果做一定的修改把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。
C语言简易计算器的实现
C语言简易计算器的实现计算器是一个常见的应用程序,用于执行数学运算。
在C语言中,可以通过使用条件判断、循环和函数来实现一个简易计算器。
下面是一个实现四则运算的简易计算器的示例代码:```c#include <stdio.h>float add(float a, float b)return a + b;float subtract(float a, float b)return a - b;float multiply(float a, float b)return a * b;float divide(float a, float b)return a / b;int maifloat num1, num2;char operator;printf("请输入两个数:");scanf("%f %f", &num1, &num2);printf("请输入操作符:");scanf(" %c", &operator); // 注意空格,以防止读取上一个输入时的换行符float result;switch (operator)case '+':result = add(num1, num2);printf("结果为:%.2f\n", result);break;case '-':result = subtract(num1, num2);printf("结果为:%.2f\n", result);break;case '*':result = multiply(num1, num2);printf("结果为:%.2f\n", result);break;case '/':if (num2 == 0)printf("除数不能为0!\n");} elseresult = divide(num1, num2);printf("结果为:%.2f\n", result);}break;default:printf("操作符无效!\n");break;}return 0;```在这个简易计算器中,使用了四个函数来执行加法、减法、乘法和除法运算,这些函数分别返回运算结果。
用excel制作月经安全期计算器的方法
用excel制作月经安全期计算器的方法根据精子在阴道内的存活时间为2--3天,而卵子的可以受精的时间为2--3天,这样危险期为6天左右,为了安全起见,一般我们把危险期期设置为10天,在危险期以外都是安全期,所以安全期也包括行经期,安全期内卵子没有机会受精,所以是避孕的一种方法。
下面我们就根据这个原理来计算安全期。
工具:excel步骤/方法1首先打开excel,建立一个表格,表格样式如图所示,这个表格构成了计算器的基本结构,制作的方法比较傲简单,你按照图示自己制作就可以了2接下来要填写你的基本信息,包括上一次月经日期(最近一次月经是哪一天来的),平均月经周期(一次月经多少天),平均行经周期(有几天时间是有月经的,一般为5--6天月经时间)3接着我们计算安全期第一天,按照临床经验,一般月经前8天是安全期,所以安全期第一天就是用月经第一天日期减去8天,公式为:=A2-8 。
将该公式写入A5单元格4行经第一天也就是月经第一天,等于A2单元格的值,所以输入公式为:=A25行经最后一天,也就是从哪一天开始没有月经了,根据平均行经周期来计算的话,第一次月经日期加上行经周期即可,也就是在C5单元格输入公式:=A2+C26接下来计算安全期最后一天,一般来说,一个月经周期内,有10天是危险期,这样就有20天左右是安全的,用这20天加上第一次安全期第一天就得到安全期最后一天,计算公式为:=A5+B2-10 ,将公式输入到D5单元格7危险期第一天计算比较简单,就是安全期过后的第一天,计算公式为:=D5+1 ,将公式输入到E5单元格8一般危险期持续时间为10天,所以危险期最后一天就是危险期第一天加上10天,计算公式为:=E5+109最后我们的计算器就做好了,我们可以更改黄色表格的三个数字来计算不同的安全期。
注意事项:使用安全期进行避孕并不安全,应当尽量不用这种方法。
毕业设计简易加减乘除计算器
毕业设计题目简易加减乘除计算器系别专业班级姓名学号指导教师日期设计任务书设计题目:简易加减乘除计算器设计要求:1.根据所学内容运用编程做一个简易加减乘除计算器,实现加、减、乘、除、等以及清零的功能。
2.设置一组数码管, 使其能够显示程序运行,按键动作的内容。
3.设置一组按键,使其键依次对应0——9、“+”、“-”、“*”、“/”、“=”和清除键。
4.可以进行小于255的数的加减乘除运算,并可连续运算。
当键入值大于255时,将自动清零,可重新输入。
设计进度要求:第一周:确定题目,寻找单片机和计算器设计的相关资料;第二周:读懂资料,有初步的设计思路;第三周:绘制硬件电路图;第三周:设计软件框图;第四周:相应软件设计(程序设计);第五周:进行程序调试并且修改;第六周:写毕业设计论文;第七周:修改并提交毕业设计;第八周:准备论文答辩;指导教师(签名):摘要在很多领域的数据处理中要用到数学运算,作为计算机自动处理系统更显得重要。
此项目设计以单片机为核心部件的计算器,采用4*4矩阵式键盘,16个键依次对应0——9、“+”、“-”、“*”、“/”、“=”和清除键。
使用单片机最小应用系统1模块,简单方便。
采用静态显示,显示器由5个共阴极数码管组成。
输入只有两个信号,它们是串行数据线DIN和移位信号CLK。
5个串/并行移位寄存器芯片74LS164首尾相连。
每片的并行输出作为LED数码管的段码。
本计算器系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。
关键词:单片机,计算器,键盘,静态显示前言随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将更强。
在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS –51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。
用java编写一个简易的计算器代码
import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JTextField;/使用java 语言开发一个简易计算器/public class TestJsq extends JFrame implements ActionListener, KeyListener {private JTextField jtf;private JButton jb_bk, jb_ce, jb_c;private String xs = "";private double sum = 0;private int fh;public static void main(String[] args) {new TestJsq().creatCUI();}public void creatCUI() {JFrame jf = new JFrame();jf.setTitle("计算器");jtf = new JTextField("0.");jtf.setHorizontalAlignment(JTextField.RIGHT);jf.add(jtf, BorderLayout.NORTH);JPanel jp_main = new JPanel(new BorderLayout());jf.add(jp_main);JPanel jp1 = new JPanel(new GridLayout(1, 3, 1, 1));jb_bk = new JButton("Backspace");jb_bk.setForeground(Color.RED);jb_bk.addActionListener(this);jb_ce = new JButton("CE");jb_ce.setForeground(Color.RED);jb_ce.addActionListener(this);jb_c = new JButton("C");jb_c.setForeground(Color.RED);jb_c.addActionListener(this);jp1.add(jb_bk);jp1.add(jb_ce);jp1.add(jb_c);jp_main.add(jp1, BorderLayout.NORTH);JPanel jp2 = new JPanel(new GridLayout(4, 5, 1, 1));String str[] = { "7", "8", "9", "/", "sqrt", "4", "5", "6", "", "%","1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };for (int i = 0; i < 20; i++) {JButton jb = new JButton(str[i]);jb.addActionListener(this);jb.setForeground(Color.blue);if (i == 3 || i == 8 || i == 13 || i == 18 || i == 19) { jb.setForeground(Color.RED);}jp2.add(jb);}jp_main.add(jp2, BorderLayout.CENTER);jf.setResizable(false);jf.setBounds(50, 50, 350, 350);jf.setVisible(true);}Overridepublic void actionPerformed(ActionEvent e) {String s = e.getActionCommand();if (s.equals("CE") || s.equals("C")) {xs = "";jtf.setText("0.");} else if (s.equals("Backspace")) {String str = xs.substring(0, xs.length() - 1);xs = str;jtf.setText(xs);} else if (s.equals("7") || s.equals("8") || s.equals("9") || s.equals("4") || s.equals("5") || s.equals("6")|| s.equals("1") || s.equals("2") || s.equals("3")|| s.equals("0") || s.equals(".")) {xs = xs + s;jtf.setText(xs);} else if (s.equals("+/-")) {double x = Double.parseDouble(xs);xs="" + (-x);jtf.setText(xs);} else if (s.equals("/")) {fh = 4;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("")) {fh = 3;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("-")) {fh = 2;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("+")) {fh = 1;int point = xs.indexOf(".");if (point = -1) {String strt = xs.substring(0, point);String z = xs.substring(point + 1, xs.length());int z_num = z.length();sum = Integer.decode(strt) + (double) (Integer.decode(z))/ (10 z_num);} else {sum = Integer.decode(xs);}xs = "";jtf.setText(null);} else if (s.equals("sqrt")) {double x = Double.parseDouble(xs);double x1 = Math.sqrt(x);xs = x1 + "";jtf.setText(xs);} else if (s.equals("%")) {double x = Double.parseDouble(xs);x=0.01 xx;xs=x+"";jtf.setText(xs);} else if (s.equals("1/x")) {if (xs == "0") {jtf.setText("除数不能为0");} else {double x = Double.parseDouble(xs);double x1 = 1 / x;xs = x1 + "";jtf.setText(String.valueOf(xs));}} else if (s.equals("=")) {if (fh = 0) {switch (fh) {case 1:int point1 = xs.indexOf(".");if (point1 = -1) {String s1 = xs.substring(0, point1);String z1 = xs.substring(point1 + 1, xs.length());int z1_num = z1.length();xs = "";double ss1 = Integer.decode(s1)+ (double) Integer.decode(z1) / (10 z1_num);sum = sum + ss1;} else {sum = sum + Integer.decode(xs);xs = "";}fh = 0;break;case 2:int point2 = xs.indexOf(".");if (point2 = -1) {String s2 = xs.substring(0, point2);String z2 = xs.substring(point2 + 1, xs.length());int z2_num = z2.length();xs = "";double ss2 = Integer.decode(s2)+ (double) Integer.decode(z2) / (10 z2_num);sum = sum - ss2;} else {sum = sum - Integer.decode(xs);xs = "";}fh = 0;break;case 3:int point3 = xs.indexOf(".");if (point3 = -1) {String s3 = xs.substring(0, point3);String z3 = xs.substring(point3 + 1, xs.length());int z1_num = z3.length();xs = "";double s4 = Integer.decode(s3)+ (double) Integer.decode(z3) / (10 z1_num);sum = sum s4;} else {sum = sum Integer.decode(xs);xs = "";}fh = 0;break;case 4:int point4 = xs.indexOf(".");if (point4 = -1) {String s4 = xs.substring(0, point4);String z4 = xs.substring(point4 + 1, xs.length());int z4_num = z4.length();xs = "";double s5 = Integer.decode(s4)+ (double) Integer.decode(z4) / (10 z4_num);sum = sum / s5;} else {sum = sum / Integer.decode(xs);xs = "";}fh = 0;break;default:break;}xs = String.valueOf(sum);jtf.setText(xs);fh = 0;} else {jtf.setText(null);}}}Overridepublic void keyPressed(KeyEvent e) {// TODO Auto-generated method stub}Overridepublic void keyReleased(KeyEvent e) { // TODO Auto-generated method stub }Overridepublic void keyTyped(KeyEvent e) { // TODO Auto-generated method stub }}。
基于Unity制作一个简易的计算器
基于Unity制作⼀个简易的计算器⽬录⼀、前⾔⼆、效果图及源⼯程三、实现1.界⾯搭建2.代码实现四、后记⼀、前⾔Hello,⼜见⾯了,今天分享如何使⽤Unity制作计算器,难度中等,可以⽤来学习,或者当成其他项⽬的⼩组件导⼊。
当然,也可以导出来,发布到⽹页端,来做⼀个嵌⼊式⼯具也可以。
⼆、效果图及源⼯程效果图:三、实现1.界⾯搭建所有的按钮摆放到Background下⾯。
2.代码实现⾸先找到所有的按钮,添加到事件://结果显⽰TextComputeProcess = GameObject.Find("Canvas/Background/Image/TextComputeProcess").GetComponent<Text>();TextComputeResult = GameObject.Find("Canvas/Background/Image/TextComputeResult").GetComponent<Text>();TextComputeResult.text = "0";RUNSTATE = 0;//操作BtnReset = GameObject.Find("Canvas/Background/重置").GetComponent<Button>();BtnReset.onClick.AddListener(() => OperationDispose("CE"));BtnDelete = GameObject.Find("Canvas/Background/删除").GetComponent<Button>();BtnDelete.onClick.AddListener(() => OperationDispose("Del"));//加减乘除BtnAdd = GameObject.Find("Canvas/Background/加").GetComponent<Button>();BtnAdd.onClick.AddListener(() => OperationDispose("+"));BtnSub = GameObject.Find("Canvas/Background/减").GetComponent<Button>();BtnSub.onClick.AddListener(() => OperationDispose("-"));BtnMul = GameObject.Find("Canvas/Background/乘").GetComponent<Button>();BtnMul.onClick.AddListener(() => OperationDispose("*"));BtnDiv = GameObject.Find("Canvas/Background/除").GetComponent<Button>();BtnDiv.onClick.AddListener(() => OperationDispose("/"));BtnEqual = GameObject.Find("Canvas/Background/等于").GetComponent<Button>();BtnEqual.onClick.AddListener(() => OperationDispose("="));//数字Btn0 = GameObject.Find("Canvas/Background/0").GetComponent<Button>();Btn0.onClick.AddListener(() => NumDispose("0"));Btn1 = GameObject.Find("Canvas/Background/1").GetComponent<Button>();Btn1.onClick.AddListener(() => NumDispose("1"));Btn2 = GameObject.Find("Canvas/Background/2").GetComponent<Button>();Btn2.onClick.AddListener(() => NumDispose("2"));Btn3 = GameObject.Find("Canvas/Background/3").GetComponent<Button>();Btn3.onClick.AddListener(() => NumDispose("3"));Btn4 = GameObject.Find("Canvas/Background/4").GetComponent<Button>();Btn4.onClick.AddListener(() => NumDispose("4"));Btn5 = GameObject.Find("Canvas/Background/5").GetComponent<Button>();Btn5.onClick.AddListener(() => NumDispose("5"));Btn6 = GameObject.Find("Canvas/Background/6").GetComponent<Button>();Btn6.onClick.AddListener(() => NumDispose("6"));Btn7 = GameObject.Find("Canvas/Background/7").GetComponent<Button>();Btn7.onClick.AddListener(() => NumDispose("7"));Btn8 = GameObject.Find("Canvas/Background/8").GetComponent<Button>();Btn8.onClick.AddListener(() => NumDispose("8"));按钮操作://操作点击处理private void OperationDispose(string operation){switch (operation){case "+":if (RUNSTATE == 0)TextComputeProcess.text = "0 + ";else{TextComputeProcess.text = TextComputeResult.text + " + ";m_operation = "+";RUNSTATE = 2;}break;case "-":if (RUNSTATE == 0)TextComputeProcess.text = "0 - ";else{TextComputeProcess.text = TextComputeResult.text + " - ";m_operation = "-";RUNSTATE = 2;}break;case "*":if (RUNSTATE == 0)TextComputeProcess.text = "0 * ";else{TextComputeProcess.text = TextComputeResult.text + " * ";m_operation = "*";RUNSTATE = 2;}break;case "/":if (RUNSTATE == 0)TextComputeProcess.text = "0 / ";else{TextComputeProcess.text = TextComputeResult.text + " / ";m_operation = "/";RUNSTATE = 2;}break;case "=":if (RUNSTATE == 0)TextComputeProcess.text = "0 = ";else{if (RUNSTATE == 3){double result;switch (m_operation){case "+":result = double.Parse(calculateString) + double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " + " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "-":result = double.Parse(calculateString) - double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " - " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "*":result = double.Parse(calculateString) * double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " * " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "/":result = double.Parse(calculateString) / double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " / " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;default:break;}}elseTextComputeProcess.text = "";TextComputeResult.text = "0";RUNSTATE = 0;break;case "Del":if (RUNSTATE == 0)return;else{if (TextComputeResult.text.Length == 1){TextComputeResult.text = "0";}else{TextComputeResult.text = TextComputeResult.text.Remove(TextComputeResult.text.Length - 1, 1); }}break;default:break;}}数字点击处理://数字点击处理private void NumDispose(string num){switch (num){case ".":if (RUNSTATE == 0)TextComputeResult.text = "0";elseTextComputeResult.text += num;break;case "-":if (RUNSTATE == 0)TextComputeResult.text = "0";else{if (RUNSTATE == 1){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 2){pmState = false;}else if (RUNSTATE == 3){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 4){pmState = false;OperationDispose("CE");}}break;default:if (RUNSTATE == 0){TextComputeResult.text = num;RUNSTATE = 1;}else if (RUNSTATE == 1)calculateString = TextComputeResult.text;TextComputeResult.text = "";TextComputeResult.text += num;RUNSTATE = 3;}else if (RUNSTATE == 3){TextComputeResult.text += num;}else if (RUNSTATE == 4){OperationDispose("CE");TextComputeResult.text = num;RUNSTATE = 1;}break;}}完整代码:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class CalculatorControl : MonoBehaviour{private Text TextComputeProcess;//计算过程private Text TextComputeResult;//计算结果private Button BtnReset;private Button BtnDelete;private Button BtnAdd;private Button BtnSub;private Button BtnMul;private Button BtnDiv;private Button BtnEqual;private Button Btn0, Btn1, Btn2, Btn3, Btn4, Btn5, Btn6, Btn7, Btn8, Btn9;private Button BtnPoint, BtnPm;private string calculateString = "";//计算数private string m_operation = "";//操作数private bool pmState = false;//正负状态private int RUNSTATE = 0;//0 默认 1 输⼊数字 2 输⼊操作符 3 输⼊操作符再输⼊数字 4 计算结果后void Start(){//结果显⽰TextComputeProcess = GameObject.Find("Canvas/Background/Image/TextComputeProcess").GetComponent<Text>(); TextComputeResult = GameObject.Find("Canvas/Background/Image/TextComputeResult").GetComponent<Text>();TextComputeResult.text = "0";RUNSTATE = 0;//操作BtnReset = GameObject.Find("Canvas/Background/重置").GetComponent<Button>();BtnReset.onClick.AddListener(() => OperationDispose("CE"));BtnDelete = GameObject.Find("Canvas/Background/删除").GetComponent<Button>();BtnDelete.onClick.AddListener(() => OperationDispose("Del"));//加减乘除BtnAdd = GameObject.Find("Canvas/Background/加").GetComponent<Button>();BtnAdd.onClick.AddListener(() => OperationDispose("+"));BtnSub = GameObject.Find("Canvas/Background/减").GetComponent<Button>();BtnSub.onClick.AddListener(() => OperationDispose("-"));BtnMul = GameObject.Find("Canvas/Background/乘").GetComponent<Button>();BtnMul.onClick.AddListener(() => OperationDispose("*"));BtnDiv = GameObject.Find("Canvas/Background/除").GetComponent<Button>();BtnDiv.onClick.AddListener(() => OperationDispose("/"));BtnEqual = GameObject.Find("Canvas/Background/等于").GetComponent<Button>();BtnEqual.onClick.AddListener(() => OperationDispose("="));//数字Btn0 = GameObject.Find("Canvas/Background/0").GetComponent<Button>();Btn0.onClick.AddListener(() => NumDispose("0"));Btn1 = GameObject.Find("Canvas/Background/1").GetComponent<Button>();Btn1.onClick.AddListener(() => NumDispose("1"));Btn2 = GameObject.Find("Canvas/Background/2").GetComponent<Button>();Btn2.onClick.AddListener(() => NumDispose("2"));Btn3 = GameObject.Find("Canvas/Background/3").GetComponent<Button>();Btn3.onClick.AddListener(() => NumDispose("3"));Btn4 = GameObject.Find("Canvas/Background/4").GetComponent<Button>();Btn4.onClick.AddListener(() => NumDispose("4"));Btn5 = GameObject.Find("Canvas/Background/5").GetComponent<Button>();Btn5.onClick.AddListener(() => NumDispose("5"));Btn9 = GameObject.Find("Canvas/Background/9").GetComponent<Button>();Btn9.onClick.AddListener(() => NumDispose("9"));BtnPoint = GameObject.Find("Canvas/Background/点").GetComponent<Button>();BtnPoint.onClick.AddListener(() => NumDispose("."));BtnPm = GameObject.Find("Canvas/Background/正负").GetComponent<Button>();BtnPm.onClick.AddListener(() => NumDispose("-"));}//操作点击处理private void OperationDispose(string operation){switch (operation){case "+":if (RUNSTATE == 0)TextComputeProcess.text = "0 + ";else{TextComputeProcess.text = TextComputeResult.text + " + ";m_operation = "+";RUNSTATE = 2;}break;case "-":if (RUNSTATE == 0)TextComputeProcess.text = "0 - ";else{TextComputeProcess.text = TextComputeResult.text + " - ";m_operation = "-";RUNSTATE = 2;}break;case "*":if (RUNSTATE == 0)TextComputeProcess.text = "0 * ";else{TextComputeProcess.text = TextComputeResult.text + " * ";m_operation = "*";RUNSTATE = 2;}break;case "/":if (RUNSTATE == 0)TextComputeProcess.text = "0 / ";else{TextComputeProcess.text = TextComputeResult.text + " / ";m_operation = "/";RUNSTATE = 2;}break;case "=":if (RUNSTATE == 0)TextComputeProcess.text = "0 = ";else{if (RUNSTATE == 3){double result;switch (m_operation){case "+":result = double.Parse(calculateString) + double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " + " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "-":result = double.Parse(calculateString) - double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " - " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "*":result = double.Parse(calculateString) * double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " * " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;break;case "/":result = double.Parse(calculateString) / double.Parse(TextComputeResult.text);TextComputeProcess.text = calculateString + " / " + TextComputeResult.text + " = "; TextComputeResult.text = result.ToString();RUNSTATE = 4;{TextComputeProcess.text = TextComputeResult.text + " = ";}}break;case "CE":TextComputeProcess.text = "";TextComputeResult.text = "0";RUNSTATE = 0;break;case "Del":if (RUNSTATE == 0)return;else{if (TextComputeResult.text.Length == 1){TextComputeResult.text = "0";}else{TextComputeResult.text = TextComputeResult.text.Remove(TextComputeResult.text.Length - 1, 1); }}break;default:break;}}//数字点击处理private void NumDispose(string num){switch (num){case ".":if (RUNSTATE == 0)TextComputeResult.text = "0";elseTextComputeResult.text += num;break;case "-":if (RUNSTATE == 0)TextComputeResult.text = "0";else{if (RUNSTATE == 1){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 2){pmState = false;}else if (RUNSTATE == 3){if (pmState){TextComputeResult.text = TextComputeResult.text.Remove(0, 1);pmState = false;}else{TextComputeResult.text = num + TextComputeResult.text;pmState = true;}}else if (RUNSTATE == 4){pmState = false;OperationDispose("CE");}}break;default:if (RUNSTATE == 0){TextComputeResult.text += num;}else if (RUNSTATE == 2){calculateString = TextComputeResult.text;TextComputeResult.text = "";TextComputeResult.text += num;RUNSTATE = 3;}else if (RUNSTATE == 3){TextComputeResult.text += num;}else if (RUNSTATE == 4){OperationDispose("CE");TextComputeResult.text = num;RUNSTATE = 1;}break;}}}效果图如下:四、后记完整代码278⾏,还是依旧那么简练,整体代码难度不⼤,主要是状态之间的切换:1、输⼊数字的状态2、输⼊操作符状态3、输⼊操作符后再输⼊数字状态4、计算结果后状态理解这些状态后,代码就容易理解了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RadioButton
单选按钮的主要属性有: Caption
单选按钮的标题,字符串类型。 Checked
逻辑类型,值为True时,单选按钮被选中,值 为False时,单选按钮未被选中。
RadioGroup控件
Caption 单选按钮组的标题,字符串类型。
Items 单选按钮列表,用于设置每个单选按钮的标题。
Columns 设置单选按钮组中单选按钮的排列列数,默认值为1。
Itemlndex 单选按钮组中当前被选中的单选按钮的索引号。
CheckBox控件
Caption 复选框的标题,字符串类型。
Checked 逻辑类型,值为True时,复选框被选中,值为 False时,复选框未被选中。
单词表
Speed:速度 Check:检查 Kind:种类 Custom:自定义 Abort:放弃 Glyph:字形 Margin:边缘 Space:间隔 Item:项目 Column:列
单词表(提问)
Attribute: 增加 插入 删除 计数
任务5 制作简易计算器
学习目标: 掌握Button、 BitBtn、SpeedButton的基本属
性设置 熟练掌握CheckBox和RadioButton控件 使用控件RadioGroup控件
ห้องสมุดไป่ตู้
任务5 制作简易计算器
Button控件
BitBtn控件
Glyph 设置位图按钮上显示的位图,即bmp图片文 件。
Margin属性:表示BitBtn按钮中图片边界之 间的距离。
Spacing属性:表示BitBtn按钮中图片于文 字之间的距离。
SpeedButton控件
Down属性:该属性设置为真时,SpeedButton控件处于 按下状态,否则为弹起的状态,默认值为false。
主要属性 caption属性:按钮的标题,即按钮所显示的提
示性文字。如果在一个字符的前面插入“&”字 符,在程序运行时,该字符下面会出现下划线, 这类字符称为加速字符。用户可以按住Alt键并 按下加速字符,来选择控件或者菜单项。 Enabled :逻辑类型,值为True时,Button按 钮为有效状态。默认值为True。
Flat属性:该属性为真时,SpeedButton控件的外观类似 一个标签,只有当鼠标移动到表面时,SpeedButton控 件会显示突起的外观。当Flat属性为false时, SpeedButton控件与普通按钮的外观一致。
GroupIndex属性:GroupIndex的默认值为0,表示 SpeedButton控件为一个单独的按钮。
BitBtn控件
Caption 位图按钮的标题,字符串类型。
Enabled 逻辑类型,值为True时,BitBtn控件为有效状态。 默认值为True。
Kind 设置位图按钮的类型,Delphi提供了bkCustom、 bkYes、bkNo、bkAbort、bkAll、bkCancel等 十余种取值。默认值为bkCustom。