package mycounter;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;
import java.lang.Integer;
public class counter extends JFrame implements ActionListener {
JFrame Jf=new JFrame("Mycounter");
JPanel Jp1=new JPanel();
JPanel Jp2=new JPanel();
JTextField Jtf=new JTextField(25);
String str[]={"sin","1","2","3","+","cos","4","5","6","-","tan","7","8","9",
"*","Int","0",".","=","/"};
JButton JBu;
String operator=null;
String num,s;
double one;
static double two=0;
boolean bool=true;
public counter()
{
init();
}
public void init()
{
Jf.setBounds(500,200,300,240);
Jf.setLayout(new BorderLayout());
Jtf.setVisible(true);
Jp1.add(Jtf);
Jp1.setVisible(true);
Jf.add(Jp1,BorderLayout.NORTH);
Jp2.setLayout(new GridLayout(4,5,1,1));
for(int i=0;i<20;i++)
{
JBu=new JButton(str[i]);
JBu.addActionListener(this);
Jp2.add(JBu);
}
Jp2.setVisible(true);
Jf.add(Jp2,BorderLayout.CENTER);
Jf.setVisible(true);
}
public void actionPerformed( ActionEvent e)
{
s=e.getActionCommand();
if(s.charAt(0)=='0')
{
if(!bool&&s!="=")
{
Jtf.setText(Jtf.getText()+s);
}
else if(operator!=null)
{
Jtf.setText(s);
num = Jtf.getText();
two=0;
operator=null;
}
}
else if('1'<=s.charAt(0)&&s.charAt(0)<='9')
{
if(!bool)
{
Jtf.setText(Jtf.getText()+s);
}
else
{
Jtf.setText(s);
operator=null;
}
bool=false;
}
else if(s==".")
{
if(Jtf.getText().indexOf(".")==-1)
{
if(Jtf.getText()==null)
{
Jtf.setText("0.");
}
else if(!bool)
{
Jtf.setText(Jtf.getText()+s);
}
bool=false;
}
}
else if(s=="sin"||s=="cos"||s=="tan"||s=="Int")
{
num=Jtf.getText();
operation1();
}
else if(s=="=")
{
operation();
}
else
{
if(operator!=null)
{
if(s!=operator)
operator=s;
two=0;
}
else
{
operator=s;
num=Jtf.getText();
Jtf.setText("");
}
}
}
public void operation1()
{
one=Double.parseDouble(num);
if(s=="sin")
{
Jtf.setText(""+Math.sin(one));
}
if(s=="cos")
{
Jtf.setText(""+Math.cos(one));
}
if(s=="tan")
{
Jtf.setText(""+Math.tan(one));
}
if(s=="Int")
{
int i=(int)one;
// System.out.println(i);
Jtf.setText(""+i);
}
}
public void operation()
{
one=Double.parseDouble(num);
if(two==0)
two=Double.parseDouble(Jtf.getText());
char c=operator.charAt(0);
switch(c)
{
case '+':one+=two;Jtf.setText(""+one); num=Jtf.getText();bool=true;return;
case '-':one-=two;Jtf.setText(""+one);
num=Jtf.getText();bool=true;return;
case '*':one*=two;Jtf.setText(""+one);
num=Jtf.getText();bool=true;return;
case '/':one/=two;Jtf.setText(""+one);
num=Jtf.getText();bool=true;return;
}
}
public static void main(String arg[])
{
new counter();
}
}
分享到:
相关推荐
"Source Counter【代码统计工具】"是一款专门设计用于统计代码行数、注释以及其它相关指标的软件。这款工具在IT行业中尤其对于项目管理和软件开发团队具有很高的实用价值,因为它可以帮助量化开发工作量,评估项目的...
在IT行业中,"COUNTER"这个词可能与字体设计和排版技术有关。在字体设计中,"Counter"一词指的是封闭区域内留白的部分,比如字母 "o" 中间的空洞或者数字 "4" 下方的开口空间。这些内部的空白区域对于字体的可读性和...
**绿色代码统计工具Blue StepCounter详解** 在编程和软件开发领域,代码统计是评估项目规模、跟踪进度和管理团队生产力的重要手段。Blue StepCounter是一款专为程序员设计的绿色(轻量级、环保、无需安装)代码统计...
标题中的“8_COUNTER_lpc2138counter_源码”指的是一个针对LPC2138微控制器的计数器应用示例的源代码。LPC2138是NXP公司生产的一款基于ARM7TDMI-S内核的微控制器,具有高性能、低功耗的特点,广泛应用于嵌入式系统...
**源码统计工具SourceCounter详解** 在软件开发过程中,了解项目的规模、代码量以及各部分的比例对于项目管理和质量控制至关重要。这就是代码统计工具的作用所在,它们可以帮助开发者量化代码库,提供有关代码...
### JAVA编程计数器类Counter知识点解析 #### 一、计数器类Counter概述 在Java编程中,计数器是一种常见的数据结构或组件,用于记录某个动作发生的次数。本篇将详细介绍一个简单的计数器类`Counter`,该类通过三个...
http://boomworks.googlecode.com/files/sourcecounter-2.2.30.36.zip 主要功能(Features) * 统计速度快、准确 * 支持对 20 多种代码格式进行统计 * 支持多目录和包含子目录的统计方式 * 能够计算代码的人月数...
《Line_Counter_2008:代码行统计利器在.NET平台的应用》 在软件开发过程中,代码行数(LOC,Lines of Code)是衡量项目规模、复杂度和工作量的重要指标之一。Line_Counter_2008,正如其名,是一款专为开发者设计的...
LineCounter.NET是一款专为.NET开发者设计的代码行计数工具,它提供了二进制版本,使得用户无需编译源码即可直接使用。该工具的主要功能是统计.NET项目中的代码行数,这对于软件开发过程中的代码质量管理、代码...
《SourceCounter:一款实用的代码统计工具》 在软件开发过程中,代码量的统计是一项重要的工作,它可以帮助我们了解项目的规模,评估开发进度,以及进行团队间的任务分配。SourceCounter便是一款专为此目的设计的...
"SourceCounter代码统计工具"是一款强大的软件,专为开发者设计,用于分析和统计各种编程语言的源代码。这款工具能够详尽地统计不同类型的代码文件,包括但不限于C++、VB.Net、VB、C#、JAVA、Delphi、ASP.Net、ASP、...
源代码行数统计工具,如"SourceCounter",在软件开发和项目管理中扮演着重要的角色。它们能够帮助开发者和团队有效地评估项目的规模,监控代码的增长,以及进行代码质量分析。下面将详细介绍这类工具的功能、用途及...
《代码量统计——SourceCounter深度解析》 在软件开发过程中,代码量的统计是一项重要的工作,它可以帮助我们评估项目的规模,理解代码复杂性,以及跟踪项目进度。SourceCounter是一款高效实用的代码行数统计工具,...
《源代码统计工具SourceCounter深度解析》 在软件开发过程中,源代码的管理和统计是一项重要的工作,它能够帮助开发者了解项目规模,评估开发进度,以及进行代码质量分析。SourceCounter是一款专业的源代码统计工具...
《SourceCounter V3.4:高效便捷的代码统计利器》 在软件开发过程中,了解代码的质量和规模至关重要,这不仅有助于优化代码结构,还能有效管理项目进度。SourceCounter V3.4就是这样一款专为程序员设计的代码统计...
SourceCounter(源代码统计精灵) 2.0 版 !- Boom 2008-10-26 + 支持对 ASP 和 HTML 文件的统计 + 保存统计源代码的文件夹路径 SourceCounter(源代码统计精灵) 1.6.5.2 版 !- Boom 2005-12-27 + 统计结果保存 .CSV ...
传统上,计数器模式(Counter Mode)被广泛用作高速加密的最佳方法,因为它满足了上述要求。然而,目前缺乏一个合适的标准消息认证算法。GCM填补了这个空白,而其他提出的模式如CBC-MAC以及使用CBC-MAC来提供认证的...
本文主要探讨了EtherCAT的寻址机制以及Working Counter(工作计数器)的工作原理。 首先,EtherCAT使用标准的IEEE 802.3以太网帧格式,但它在帧的有效载荷中传输了不同数量的EtherCAT数据包(Datagram)。每个...
**源码计数器——SourceCounter深度解析** SourceCounter是一款专为程序员和软件开发者设计的高效代码统计工具。它能够帮助用户快速、准确地获取应用程序代码的各类统计信息,包括总行数、文件数量以及资源文件的...