版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java编写的计算器程序及源代码/frame版程序源代码如下,疏漏之处,望批评指正。 /数字分组没有编写,科学型计算器没有编写,其他已经完善。 import java.awt.*; import java.lang.*; import javax.swing.*; import javax.swing.event.*; import java.awt.event.*; import java.text.DecimalFormat; public class Calculator implements ActionListener /导入动作监听接口 /设计面板中的单位 JFrame frame
2、; JTextField textAnswer; JPanel panel, panel1, panel2, panel3; JMenuBar mainMenu; JTextField textMemory; JLabel labelMemSpace; /labelMemSpace单纯做摆设,控制面板的形状 JButton buttonBk, buttonCe, buttonC; JButton button; JButton buttonMC, buttonMR, buttonMS, buttonMAdd; JButton buttonDot, buttonAddAndSub, button
3、Add, buttonSub, buttonMul, buttonDiv, buttonMod; JButton buttonSqrt, buttonDao, buttonEqual; JMenu editMenu, viewMenu, helpMenu; JMenuItem copyItem, pasteItem, tItem, sItem, numberGroup, topHelp, aboutCal; DecimalFormat df; /设置数据输出精度 boolean clickable; /控制当前能否按键 double memoryd; /使用内存中存储的数字 int memor
4、yi; double vard, answerd; /用来保存double型数据的中间值(vard和最后结果(answerd short key = -1, prekey = -1; /key用来保存当前进行何种运算,prekey用来保存前次进行何种运算 String copy; /做复制用 JTextArea help; /帮助 JScrollPane scrollHelp; /构造函数 public Calculator( clickable = true; answerd = 0; frame = new JFrame(计算器; df = new DecimalFormat(0.#; /
5、设置数据输出精度(对于double型值 textAnswer = new JTextField(15; textAnswer.setText(; textAnswer.setEditable(false; textAnswer.setBackground(new Color(255, 255, 255; panel = new JPanel(; frame.getContentPane(.add(panel; panel1 = new JPanel(; panel2 = new JPanel(; panel.setLayout(new BorderLayout(; /设计整个面板 mainMe
6、nu = new JMenuBar(; editMenu = new JMenu(编辑(E; viewMenu = new JMenu(查看(V; helpMenu = new JMenu(帮助(H; copyItem = new JMenuItem( 复制(C Ctrl+C; copyItem.addActionListener(this; pasteItem = new JMenuItem( 粘贴(V Ctrl+V; pasteItem.addActionListener(this; editMenu.add(copyItem; editMenu.add(pasteItem; tItem
7、= new JMenuItem(标准型(T; tItem.addActionListener(this; sItem = new JMenuItem( 科学型(S; sItem.addActionListener(this; numberGroup = new JMenuItem( 数字分组(I; numberGroup.addActionListener(this; viewMenu.add(tItem; viewMenu.add(sItem; viewMenu.add(numberGroup; topHelp = new JMenuItem( 帮助主题(H; topHelp.addActi
8、onListener(this; help = new JTextArea(5, 20; scrollHelp = new JScrollPane(help; help.setEditable(false; help.append(执行简单计算n; help.append(1. 键入计算的第一个数字。n; help.append(2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。n; help.append(3. 键入计算的下一个数字。n; help.append(4. 输入所有剩余的运算符和数字。n; help.append(5. 单击“=”。n; aboutCal = ne
9、w JMenuItem( 关于计算器(A; aboutCal.addActionListener(this; helpMenu.add(topHelp; helpMenu.add(aboutCal; mainMenu.add(editMenu; mainMenu.add(viewMenu; mainMenu.add(helpMenu; panel.add(mainMenu, BorderLayout.NORTH; panel.add(textAnswer, BorderLayout.CENTER; panel.add(panel1, BorderLayout.SOUTH; panel1.set
10、Layout(new BorderLayout(; textMemory = new JTextField(3; textMemory.setEditable(false; textMemory.setBackground(new Color(217, 217, 217; labelMemSpace = new JLabel( ; buttonBk = new JButton(Backspace; buttonBk.setForeground(new Color(255, 0, 0; buttonCe = new JButton(CE; buttonCe.setForeground(new C
11、olor(255, 0, 0; buttonC = new JButton(C; buttonC.setForeground(new Color(255, 0, 0; buttonBk.addActionListener(this; buttonCe.addActionListener(this; buttonC.addActionListener(this; panel1.add(panel2, BorderLayout.NORTH; panel2.setLayout(new FlowLayout(FlowLayout.RIGHT; panel2.add(textMemory; panel2
12、.add(labelMemSpace; panel2.add(buttonBk; panel2.add(buttonCe; panel2.add(buttonC; panel3 = new JPanel(; panel1.add(panel3, BorderLayout.CENTER; button = new JButton10; for (int i = 0; i button.length; i+ buttoni = new JButton(Integer.toString(i; buttoni.setForeground(new Color(0, 0, 255; buttonMC =
13、new JButton(MC; buttonMC.setForeground(new Color(255, 0, 0; buttonMR = new JButton(MR; buttonMR.setForeground(new Color(255, 0, 0; buttonMS = new JButton(MS; buttonMS.setForeground(new Color(255, 0, 0; buttonMAdd = new JButton(M+; buttonMAdd.setForeground(new Color(255, 0, 0; 课 时 计 划课 题表达 写对话 指导(1)时
14、 间教 学目 标1、知识与技能:能正确使用冒号、引号。2、过程与方法:能围绕一个或几个意思话说清楚3、情感态度与价值观:在交流中使别人了解自己。教学重点能正确使用冒号、引号。教学难点能正确使用冒号、引号。教 具幻灯片(课件)教 法查 阅教学内容方法过程初次对话同学们,刚刚认识了花儿学校里那些可爱的花儿,你想对他们说些什么呢?如果你是花儿,你又会对同学们说些什么呢?二、拓展对话1、明确说话对象:你最想和谁说话呢?个人设想备注(如何渗透德育教育、环境教育、特色作业):尝试习作 98课 时 计 划课 题表达 写对话 批改(2)时 间教 学目 标1、知识与技能:能正确使用冒号、引号。2、过程与方法:能
15、围绕一个或几个意思话说清楚3、情感态度与价值观:在交流中使别人了解自己。教学重点能正确使用冒号、引号。教学难点能正确使用冒号、引号。教 具幻灯片(课件)教 法查 阅教学内容方法过程初次对话同学们,刚刚认识了花儿学校里那些可爱的花儿,你想对他们说些什么呢?如果你是花儿,你又会对同学们说些什么呢?二、拓展对话1、明确说话对象:你最想和谁说话呢?个人设想备注(如何渗透德育教育、环境教育、特色作业):尝试修改99课 时 计 划课 题表达 写对话 讲评(3)时 间教 学目 标1、知识与技能:能正确使用冒号、引号。2、过程与方法:能围绕一个或几个意思话说清楚3、情感态度与价值观:在交流中使别人了解自己。教
16、学重点能正确使用冒号、引号。教学难点能正确使用冒号、引号。教 具幻灯片(课件)教 法查 阅教学内容方法过程明确修改目的、学生朗读一篇自己的习作,请同学们评价。找出作文中的问题,讨论解决的办法,确定需要修改的作文内容。1、交流每个同学都在小组内交流学到的修改方法。2、修改将自己准备好的作文拿出来,用学到的修改方法个人设想备注(如何渗透德育教育、环境教育、特色作业):尝试完善10091第一次课 题91 第一次时 间教 学目 标1、知识与技能:通过阅读,理解为什么“夏天是万物长大的时期”。认识9个生字,会写10个生字。理解诗的内容,感受诗中描写的情景,激发热爱大自然的情趣。2、过程与方法:体会作者的
17、表达特点,明白最后一句话有感情的朗读课文,理解文中不同人物语言的意义。3、情感态度与价值观:学会围绕中心句抓住景物特点进行描写。理解句子的意思,感受草原人民对这片神奇土地的深切地感情。感受小男孩勇于进取的精神,认识到探索与创造是每个人都具有的品质。教学重点有感情的朗读文中的重点句子,理解课文中揭示的深刻的含义。教学难点有感情的朗读文中的重点句子,理解课文中揭示的深刻的含义。教 具幻灯片(课件)教 法合作交流101课 时 计 划课 题91第一次 一课时时 间教 学目 标1、知识与技能:认识9个生字,会写10个生字。2、过程与方法:理解文中不同人物语言的意义。3、情感态度与价值观:感受小男孩勇于进
18、取的精神教学重点有感情的朗读文中的重点句子教学难点有感情的朗读文中的重点句子教 具幻灯片(课件)教 法交 流教学内容方法过程谈话导人同学们,在我们的生活中,经历了许多的第一次,你愿意给同学们讲一讲你当时的经历和心情吗?这节课我们就来学习第一次,请同学们齐读课题。二、读文,整体把握1、指名读课文,其他同学订正。2、听老师读课文,思考:你能不能概括的说说课文主要写了一件什么事?个人设想备注(如何渗透德育教育、环境教育、特色作业):抄词语102课 时 计 划课 题91第一次 二课时时 间教 学目 标1、知识与技能:认识9个生字,会写10个生字。2、过程与方法:理解文中不同人物语言的意义。3、情感态度
19、与价值观:感受小男孩勇于进取的精神教学重点有感情的朗读文中的重点句子教学难点有感情的朗读文中的重点句子教 具幻灯片(课件)教 法交 流教学内容方break; case 1: answerd -= Double.parseDouble(textAnswer.getText(; break; case 2: answerd *= Double.parseDouble(textAnswer.getText(; break; case 3: if (Double.parseDouble(textAnswer.getText( = 0 textAnswer.setText(除数不能为零; clickab
20、le = false; else answerd /= Double.parseDouble(textAnswer.getText(; break; default: answerd = Double.parseDouble(textAnswer.getText(; textAnswer.setText(; prekey = key = 1; /*操作 if (temp = buttonMul switch (prekey case 0: answerd += Double.parseDouble(textAnswer.getText(; break; case 1: answerd -= D
21、ouble.parseDouble(textAnswer.getText(; break; case 2: answerd *= Double.parseDouble(textAnswer.getText(; break; case 3: if (Double.parseDouble(textAnswer.getText( = 0 textAnswer.setText(除数不能为零; clickable = false; else answerd /= Double.parseDouble(textAnswer.getText(; break; default: answerd = Doubl
22、e.parseDouble(textAnswer.getText(; textAnswer.setText(; prekey = key = 2; /操作 if (temp = buttonDiv switch (prekey case 0: answerd += Double.parseDouble(textAnswer.getText(; break; case 1: answerd -= Double.parseDouble(textAnswer.getText(; break; case 2: answerd *= Double.parseDouble(textAnswer.getTe
23、xt(; break; case 3: if (Double.parseDouble(textAnswer.getText( = 0 textAnswer.setText(除数不能为零; clickable = false; else answerd /= Double.parseDouble(textAnswer.getText(; break; default: answerd = Double.parseDouble(textAnswer.getText(; textAnswer.setText(; prekey = key = 3; /=操作 if (temp = buttonEqua
24、l & clickable = true /如果连续按=,则进行连续运算 if (prekey = 5 if (key = 0 answerd += vard; textAnswer.setText(df.format(answerd; if (key = 1 answerd -= vard; textAnswer.setText(df.format(answerd; if (key = 2 answerd *= vard; textAnswer.setText(df.format(answerd; if (key = 3 if (Double.parseDouble(textAnswer.g
25、etText( = 0 textAnswer.setText(除数不能为零; clickable = false; else answerd /= vard; textAnswer.setText(df.format(answerd; else vard = Double.parseDouble(textAnswer.getText(; if (key = 0 prekey = -1; answerd += Double.parseDouble(textAnswer.getText(; textAnswer.setText(df.format(answerd; if (key = 1 prek
26、ey = -1; answerd -= Double.parseDouble(textAnswer.getText(; textAnswer.setText(df.format(answerd; if (key = 2 prekey = -1; answerd *= Double.parseDouble(textAnswer.getText(; textAnswer.setText(df.format(answerd; if (key = 3 prekey = -1; if (Double.parseDouble(textAnswer.getText( = 0 textAnswer.setTe
27、xt(除数不能为零; clickable = false; else answerd /= Double.parseDouble(textAnswer.getText(; textAnswer.setText(df.format(answerd; prekey = 5; /%操作,对第二个操作数除以100 if (temp = buttonMod & clickable = true if (answerd = 0 String s = textAnswer.getText(; textAnswer.setText(s; else boolean isDot = false; for (int
28、 i = 0; i textAnswer.getText(.length(; i+ if (. = textAnswer.getText(.charAt(i isDot = true; break; /如果是double数,除100 if (isDot = true double dtemp = Double.parseDouble(textAnswer.getText(; dtemp = dtemp / 100.0; textAnswer.setText(Double.toString(dtemp; else /如果是int数但能被100整除,则去掉末尾两个零 if (Integer.par
29、seInt(textAnswer.getText( % 100 = 0 int itemp = Integer.parseInt(textAnswer.getText(; itemp /= 100; textAnswer.setText(Integer.toString(itemp; /如果是int数,但不能被100整除,则按double数处理 else double dtemp = Double.parseDouble(textAnswer.getText(; dtemp = dtemp / 100.0; textAnswer.setText(Double.toString(dtemp; /
30、开根号运算 if (temp = buttonSqrt & clickable = true String s = textAnswer.getText(; if (s.charAt(0 = - textAnswer.setText(负数不能开根号; clickable = false; else textAnswer.setText(Double.toString(java.lang.Math.sqrt(Double. parseDouble(textAnswer.getText(; /倒数运算 if (temp = buttonDao & clickable = true if (text
31、Answer.getText(.charAt(0 = 0 & textAnswer.getText(.length( = 1 textAnswer.setText(零不能求倒数; clickable = false; else boolean isDec = true; int i, j, k; String s = Double.toString(1 / Double.parseDouble(textAnswer.getText(; for (i = 0; i s.length(; i+ if (s.charAt(i = . break; for (j = i + 1; j s.length
32、(; j+ if (s.charAt(j != 0 isDec = false; break; if (isDec = true String stemp = ; for (k = 0; k i; k+ stemp += s.charAt(k; textAnswer.setText(stemp; else textAnswer.setText(s; /按下+/-按钮时处理 if (temp = buttonAddAndSub & clickable = true boolean isNumber = true; String s = textAnswer.getText(; for (int
33、i = 0; i = 0 & s.charAt(i = 9 | s.charAt(i = . | s.charAt(i = - isNumber = false; break; if (isNumber = true /如果当前字符串首字母有-号,代表现在是个负数,再按下时,则将首符号去掉 if (s.charAt(0 = - textAnswer.setText(; for (int i = 1; i s.length(; i+ char a = s.charAt(i; textAnswer.setText(textAnswer.getText( + a; /如果当前字符串第一个字符不是符号
34、,则添加一个符号在首字母处 else textAnswer.setText(- + s; /计算器有关内存操作 /MC的操作,将内存清0 if (temp = buttonMC & clickable = true memoryd = memoryi = 0; textMemory.setText(; /MS的操作,将当前文本框内容保存入内存,显示M if (temp = buttonMS & clickable = true boolean isDot = false; textMemory.setText( M; for (int i = 0; i textAnswer.getText(.
35、length(; i+ if (. = textAnswer.getText(.charAt(i isDot = true; break; /如果是double,则存入memoryd(double存储器 if (isDot = true memoryd = Double.parseDouble(textAnswer.getText(; memoryi = 0; /保证存储器中存放最新的值 /如果是int,则存入memoryi(int存储器 else memoryi = Integer.parseInt(textAnswer.getText(; memoryd = 0; /保证存储器中存放最新的
36、值 /MR的操作,将存储器中的信息输出 if (temp = buttonMR & clickable = true if (memoryd != 0 textAnswer.setText(Double.toString(memoryd; if (memoryi != 0 textAnswer.setText(Integer.toString(memoryi; /M+的功能,将当前文本框里的数据和存储器中数据相加后,再存入存储器 if (temp = buttonMAdd & clickable = true boolean isDot = false; for (int i = 0; i textAnswer.getText(.length(; i+ if (. = textAnswer.getText(.charAt(i isDot = true; break; if (memoryi != 0 /存储中是一个int型数 if (isDot = false /被加数是一个int型数 memoryi += Integer.parseInt(textAnswer.getText(; else /被加数是一个double型数,则将int存储器中数传入dou
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职第一学年(邮政快递智能技术)物流快递系统仿真综合测试试题及答案
- 三年级语文(素养提升)2027年下学期期末测试卷
- 2025年高职农林牧渔类(农林趋势分析)试题及答案
- 2025年大学农学(农业机械化)试题及答案
- 2025年高职工业机器人技术(机器人编程技术)试题及答案
- 2025年大学大三(动物科学)动物繁殖学阶段测试试题及答案
- 2025年大学大三(电子信息工程)物联网技术基础阶段测试题及答案
- 2025年大学农学(农业企业管理)试题及答案
- 大学(市场营销)消费者行为分析2026年综合测试题及答案
- 六年级语文(阅读理解专项)2025-2026年下学期期中测试卷
- 重庆水利安全员c证考试题库大全及答案解析
- 2025年中国台球杆行业市场全景分析及前景机遇研判报告
- bz-高标准农田建设项目勘察设计技术投标方案210
- 公司级安全培训内容
- 网格员冬季安全培训内容课件
- (2025修订版)CAAC无人机理论考试题库(含答案)
- 净化车间设计合同范本
- 医学生的基本素养
- 发票合规知识培训
- 医养结合业务培训课件
- 合规审查管理办法
评论
0/150
提交评论