Java计算器 课程设计任务书
- 格式:doc
- 大小:211.00 KB
- 文档页数:8
课程设计任务书 课程名称: 计算机技术综合课程设计 题 目: Java 计算器
学 院: 信息工程 系:计算机科学与技术 专业班级: 计算机科学与技术 卓越111班 学 号: 学生姓名: 起讫日期: 2014年6月10日至2014年6月25日 指导教师: 管春 职称: 副教授 学院审核(签名): 审核日期: 2014年6月25日 说 明 1. 课程设计任务书由指导教师填写,并经专业学科组审定,下达到学生。 2. 学生根据指导教师下达的任务书独立完成课程设计。 3. 本任务书在课程设计完成后,与论文一起交指导教师,作为论文评阅和课程设计答辩的主要档案资料。 一、 课程设计的主要内容和基本要求 任务: 设计GUI界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除等混合运算。
具体要求: (1)设计的计算器应用程序可以完成加法、减法、乘法、除法、取余运算及开根号。且有小数点、正负号、退格和清零功能。
(2)课程设计可用Eclipse作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握
(3)保持代码简洁,复杂代码写后不易理解,在修改和重写上难度比较大,使工作更加复杂,所以编写代码时应保持代码的简洁易懂。
(4)认真按时完成课程设计报告,课程设计报告内容包括:问题描述、分析与设计、源代码选摘、总结、参考文献五个部分。
二、课程设计图纸内容及张数 三、课程设计应完成的软硬件的名称、内容及主要技术指标 软硬件: PC机、Eclipse软件 代码 : package calculator; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Event; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class CalculatorPanel extends JPanel{
//设计计算机的界面 private JButton btn1; private JPanel panel; private double result; private String lastCommand; private boolean start; public CalculatorPanel(){ setLayout(new BorderLayout()); result=0; lastCommand="="; start=true; //添加面板panel btn1=new JButton(" "); btn1.setEnabled(false); add(btn1,BorderLayout.NORTH); ActionListener insert=new InsertAction(); ActionListener command=new CommandAction(); //添加按钮进5*4网格布局 panel=new JPanel(); panel.setLayout(new GridLayout(5,4));
addButton("C",insert); addButton("←",insert); addButton("√",insert); addButton("%",command);
addButton("7",insert); addButton("8",insert); addButton("9",insert); addButton("/",command);
addButton("4",insert); addButton("5",insert); addButton("6",insert); addButton("*",command);
addButton("1",insert); addButton("2",insert); addButton("3",insert); addButton("-",command);
addButton("0",insert); addButton(".",insert); addButton("=",command); addButton("+",command); add(panel,BorderLayout.CENTER); } private void addButton(String label,ActionListener listener){ JButton btn=new JButton(label); btn.addActionListener(listener); panel.add(btn); }
//鼠标事件监听 private class InsertAction implements ActionListener{ @Override public void actionPerformed(ActionEvent event){ // TODO 自动生成的方法存根 String input=event.getActionCommand(); if(start){ btn1.setText(""); start=false; } if(input.equals("←")){ // ← 事件执行backspace() backspace();} else if(input.equals("C")){ // C 事件执行clear() clear(); } else if(input.equals("√")){ // √ 事件执行sqrt() sqrt(); } else btn1.setText(btn1.getText()+input);
} } //+ - * / %运算符事件监听 private class CommandAction implements ActionListener{
@Override public void actionPerformed(ActionEvent event) { // TODO 自动生成的方法存根 String command=event.getActionCommand(); if(start){ if(command.equals("-")){ //负号设定 btn1.setText(command); start=false; } else lastCommand=command; } else{ calcultor(Double.parseDouble(btn1.getText())); lastCommand=command; start=true; } }
} //计算 private void calcultor(double x) { // TODO 自动生成的方法存根 if(lastCommand.equals("+")) result+=x; else if(lastCommand.equals("-")) result -=x; else if(lastCommand.equals("*")) result *=x; else if(lastCommand.equals("/")) result /=x; else if(lastCommand.equals("%")) result %=x; else if(lastCommand.equals("=")) result =x; btn1.setText(""+result); }
public void backspace(){ //退格 String s=btn1.getText(); btn1.setText(s.substring(0,s.length()-1)); } void clear(){ //清除 btn1.setText(""); result=0;
} void sqrt(){ //开根号 double m=Double.parseDouble(btn1.getText()); if (m<0) btn1.setText("负数不能开根号"); else btn1.setText(""+Math.sqrt(m)); }
public static void main(String[] args){ JFrame f=new JFrame(); f.setTitle("计算器");