Java课程设计——仿windows系统计算器的设计

仿windows系统计算器的设计

一、设计要求

参考Windows 2000/XP系统提供的计算器,设计实现一个计算器软件,具体实现以下几个功能:
(1)提供以下运算:+、-、*、/、sqrt、1/x、xn、n!、log、ln、PI、sin、cos、exp及 ( )等运算。
(2)设置标准运算界面和科学运算界面,合理组织每个界面中的运算符。
(3)要求界面美观大方、功能实现完整。

二、设计指标

(1) 实现+、-、*、/等基本运算和sin、cos、exp等函数运算。
(2) 实现标准运算界面和科学运算界面,其中包括运算按钮、计算结果显示区域以及标准运算界面和科学运算界面的界面转换菜单。

三、UML图

中主要## 标题设计了三个类

四、代码

//Calculator.java
package Ex;
import java.awt.*;
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Calculator extends JFrame{
   
	private double result=0;
	public Calculator() {
   
		this.setSize(550,700);		
		this.setTitle("计算器");		
		init();
		this.setVisible(true);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		
	}
	public void init() {
   	
		this.setLayout(new BorderLayout()); 
		//总体布局为 BorderLayout	
		JTextArea textArea=new JTextArea(8,6);
		this.add(textArea,BorderLayout.NORTH); 
		//总体布局north放置文本框		
		JPanel panel=new JPanel();             
		//面板panel
		panel.setLayout(new BorderLayout());
		this.add(panel, BorderLayout.CENTER);  
		//面板panel放在总体布局BorderLayout的CENTER位置
		//JPanel panelN=new JPanel();
		CardLayout cardLayout=new CardLayout();   
		//CardLayout布局用于切换科学与标准界面
		JPanel panelC=new JPanel() ;
		panelC.setLayout(cardLayout);            
		//面板panelC为CardLayout布局  
		JPanel panel0=new JPanel();               
		//面板panel0设置为网格布局,里面放置标准计算用的按钮
		panel0.setLayout(new GridLayout(6,4));
		JButton[] standredButton=new JButton[24];
		String str[]={
   
            "%","CE","C","del",
            "1/x","x^2","sqrt","/",
            "7","8","9","*",
            "4","5","6","-",
            "1","2","3","+",
            "+/-","0",".","="
		};
		for(int i=0;i<standredButton.length;i++) {
   
			standredButton[i]=new JButton(str[i]);
			String text=standredButton[i].getText();
			standredButton[i].addActionListener(new ActionListener() {
   
				public void actionPerformed(ActionEvent e) {
   
					// TODO Auto-generated method stub
					if(text.equals("CE")||text.equals("C")) {
   
						textArea.setText("");
					}
					else if(text.equals("=")) {
   
						String s=textArea.getText();
						Calculate cal=new Calculate(
  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值