河南理工大学计算机科学与技术学院java 课程设计报告.doc_第1页
河南理工大学计算机科学与技术学院java 课程设计报告.doc_第2页
河南理工大学计算机科学与技术学院java 课程设计报告.doc_第3页
河南理工大学计算机科学与技术学院java 课程设计报告.doc_第4页
河南理工大学计算机科学与技术学院java 课程设计报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南理工大学计算机学院课程设计任务书河南理工大学计算机科学与技术学院课程设计报告2013 2014学年第 一 学期课程名称 JAVA程序设计课程设计 设计题目 复杂科学计算器 学生姓名 学 号 专业班级 指导教师 2013 年 12 月20 日 22 / 22目录一.选题的意义31 问题描述31.1背景31.2试验目的3二系统功能需求分析42.1系统概述:42.2系统的构成:42.3系统的运行环境:4一、JAVA_HOME的值:4二、CLASSPATH的值:4三、PATH的值:4三系统设计53.1总体结构设计:53.2窗口的实现,数值输入、小数点:53.3各功能的实现加(+)、减(-)、乘(*)、除(/)、根号()、等简单算术计算功能的实现:93.4 其他功能,能进行计算的优先级:16四.系统演示20五.总结:22六.参考文献:22一.选题的意义 随着现代科学技术日新月异,高速发展,因此计算器进入课堂是历史的必然。计算器的一个基本特点是计算迅速准确,使用计算器,可以把学生从烦琐的数字计算中解脱出来,这样既减轻了中年级学生的课业负担,又能使学生有更多的时间进行思考、动手操作和实践活动,有利于开发学生的数学灵感,提高数学学习的兴趣,促进学生智力和能力的发展。由于大部分学生已经接触过计算器,因此教材只通过一幅计算器的外型结构图,逐渐让学生了解计算器的键盘结构,同时通过一些简单的练习题,使学生学会这些按键的使用方法。然后进一步用计算器探索规律,培养学生探索意识。本课程是一门当前流行的程序设计语言课程。通过java程序设计语言及其程序设计方法的学习,不仅使学生得到计算机的应用能力和操作技能的训练,更主要的是使学生提高高级语言程序设计的能力,以及掌握最新的面向对象的程序设计方法,并能运用所学的知识开发图形界面(Windows)下的应用软件,为培养学生结合专业进行软件开发打好基础。1 问题描述1.1背景 java是近年来在国内外得到迅速推广应用的可视化程序设计语言具有简单易学,功能强效率高等特点。它提供了开发窗体应用程序最迅速,最简捷的方法,不但专业人员得心应手的开发工具,而且易于被非专业人员掌握使用。本课程主要讲述java的基本概念,语法规则和利用java进行程序设计方法。同时掌握函数和控件的使用方法。java程序设计是工科专业开设的一门基础编程课程。通过这门课程的学习,一方面是培养一个人的逻辑编程能力,提高其使用计算机能力,为今后从事本专业领域的软件开发打下基础;另一方面通过java中体现出的面向对象思想,以培养学生认识问题,分析问题解决问题的思路和能力。1.2试验目的通过本实验,进一步理解java的编程方法。提高运用java编程的能力。培养对所学知识的综合运用能力。 二系统功能需求分析2.1系统概述:本科学计算器是一种能实现加,减,乘,除,函数,进制、开根号,等运算功能,并带有存储器、统计框等,基本实现了Windows自带计算器的所有功能。要实现计算器的这些功能就用到我们所学的java知识编写程序来实现运算功能并解决问题,也是我们实训要达到的目的.2.2系统的构成:按钮(控件数组),输入框,输出框,列表框。构成科学计算器界面。 2.3系统的运行环境:在Windows中配置环境变量,控制面板 系统高级系统设置环境变量新建输入JAVA环境配置一、JAVA_HOME的值:C: Program FilesJavajdk1.6.0_16(是JDK的安装目录,需要根据自己本机JDK的安装目录更改)二、CLASSPATH的值:%JAVA_HOME%lib;%JAVA_HOME%libtools.jar;三、PATH的值:%JAVA_HOME%bin;%JAVA_HOME%jrebin;确定后启动 Eclipse 英文版。三系统设计 3.1总体结构设计:通过课后的资源共享、网上交流,将信息技术应用在促进师生之间的交流与合作上。现代教育理论十分强调合作学习,而合作学习有多种方法,有交流、有讨论、有辩论、有角色扮演等等。在信息技术与高中数学整合的研究和探索中,我们十分注重利用信息技术的优势,创设不受时空限制的资源共享、快速灵活的信息获取、丰富多样的交互方式、打破地域界限的交流协作的环境。所运用的java包: import java.awt.Component;import java.awt.Font;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.util.HashMap;import java.util.Stack;import javax.swing.JButton;import javax.swing.JEditorPane;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPopupMenu;import javax.swing.JTextField;3.2窗口的实现,数值输入、小数点: private void jbInit() frame = new JFrame();frame.getContentPane().setLayout(null);frame.setResizable(false);frame.setTitle(计算器);frame.setBounds(100, 100, 405, 374);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().add(text1);text1.setText(0);text1.setFont(new Font(楷体, Font.PLAIN, 15);text1.setBounds(15, 20, 366, 38);frame.getContentPane().add(back); /Back返回键位置back.addActionListener(new BackActionListener();back.setFont(new Font(, Font.BOLD, 15);back.setText(back);back.setBounds(28, 83, 80, 38);frame.getContentPane().add(back_0); back_0.addActionListener(new Back_0ActionListener(); /的位置back_0.setFont(new Font(, Font.BOLD, 18);back_0.setText();back_0.setBounds(119, 83, 73, 38);frame.getContentPane().add(b7); /数字键的位置b7.addActionListener(new B7ActionListener();b7.setFont(new Font(, Font.BOLD, 16);b7.setText(7);b7.setBounds(30, 140, 64, 28);frame.getContentPane().add(b8);b8.addActionListener(new B8ActionListener();b8.setFont(new Font(, Font.BOLD, 16);b8.setText(8);b8.setBounds(100, 140, 64, 28);frame.getContentPane().add(b9);b9.addActionListener(new B9ActionListener();b9.setFont(new Font(, Font.BOLD, 16);b9.setText(9);b9.setBounds(170, 140, 64, 28);frame.getContentPane().add(b4);b4.addActionListener(new B4ActionListener();b4.setFont(new Font(, Font.BOLD, 16);b4.setText(4);b4.setBounds(30, 184, 64, 28);frame.getContentPane().add(b5);b5.addActionListener(new B5ActionListener();b5.setFont(new Font(, Font.BOLD, 16);b5.setText(5);b5.setBounds(100, 185, 64, 28);frame.getContentPane().add(b6);b6.addActionListener(new B6ActionListener();b6.setFont(new Font(, Font.BOLD, 16);b6.setText(6);b6.setBounds(170, 185, 64, 28);frame.getContentPane().add(b1);b1.addActionListener(new B1ActionListener();b1.setFont(new Font(, Font.BOLD, 16);b1.setText(1);b1.setBounds(30, 230, 64, 28);frame.getContentPane().add(b2);b2.addActionListener(new B2ActionListener();b2.setFont(new Font(, Font.BOLD, 16);b2.setText(2);b2.setBounds(100, 231, 64, 28);frame.getContentPane().add(b3);b3.addActionListener(new B3ActionListener();b3.setFont(new Font(, Font.BOLD, 16);b3.setText(3);b3.setBounds(170, 231, 64, 28);frame.getContentPane().add(b0);b0.addActionListener(new B0ActionListener();b0.setFont(new Font(, Font.BOLD, 16);b0.setText(0);b0.setBounds(100, 276, 64, 28);frame.getContentPane().add(bd); /小数点的位置bd.addActionListener(new BdActionListener();bd.setFont(new Font(黑体, Font.BOLD, 22);bd.setText(.);bd.setBounds(170, 274, 64, 28);frame.getContentPane().add(bjia); /+号的位置bjia.addActionListener(new BjiaActionListener();bjia.setFont(new Font(仿宋, Font.PLAIN, 18);bjia.setText(+);bjia.setBounds(263, 185, 50, 28);frame.getContentPane().add(bcheng); /号的位置bcheng.addActionListener(new BchengActionListener();bcheng.setFont(new Font(, Font.PLAIN, 24);bcheng.setText();bcheng.setBounds(319, 185, 50, 28);frame.getContentPane().add(bjian); /减号的位置;bjian.addActionListener(new BjianActionListener();bjian.setFont(new Font(, Font.PLAIN, 26);bjian.setText(-);bjian.setBounds(263, 231, 50, 28);frame.getContentPane().add(bchu); /除号的位置bchu.addActionListener(new BchuActionListener();bchu.setFont(new Font(, Font.PLAIN, 24);bchu.setText();bchu.setBounds(319, 231, 50, 28);frame.getContentPane().add(back_17); /输出等好的位置back_17.addActionListener(new Back_17ActionListener();back_17.setFont(new Font(, Font.PLAIN, 24);back_17.setText(=);back_17.setBounds(263, 274, 106, 28);frame.getContentPane().add(bz); /( 的位置bz.addActionListener(new BzActionListener();bz.setFont(new Font(, Font.BOLD, 15);bz.setText(();bz.setBounds(263, 141, 50, 28);frame.getContentPane().add(by); / )的位置by.addActionListener(new ByActionListener();by.setFont(new Font(, Font.BOLD, 15);by.setText());by.setBounds(319, 141, 50, 28);frame.getContentPane().add(text2);text2.setFont(new Font(, Font.PLAIN, 16);text2.setBounds(237, 85, 143, 36);frame.getContentPane().add(label); /等号的位置label.setFont(new Font(, Font.PLAIN, 26);label.setText(=);label.setBounds(219, 83, 15, 38);frame.getContentPane().add(bg); /的位置 bg.addActionListener(new BgActionListener();bg.setFont(new Font(Dialog, Font.BOLD, 16);bg.setText();bg.setBounds(30, 275, 64, 28);3.3各功能的实现加(+)、减(-)、乘(*)、除(/)、根号()、等简单算术计算功能的实现: private class MenuActionListener implements ActionListener public void actionPerformed(ActionEvent e) private class BackActionListener implements ActionListener public void actionPerformed(ActionEvent e) back_actionPerformed(e);private class Back_0ActionListener implements ActionListener public void actionPerformed(ActionEvent e) back_0_actionPerformed(e);private class B7ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b7_actionPerformed(e);private class B8ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b8_actionPerformed(e);private class B9ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b9_actionPerformed(e);private class B4ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b4_actionPerformed(e);private class B5ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b5_actionPerformed(e);private class B6ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b6_actionPerformed(e);private class B1ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b1_actionPerformed(e);private class B2ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b2_actionPerformed(e);private class B3ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b3_actionPerformed(e);private class B0ActionListener implements ActionListener public void actionPerformed(ActionEvent e) b0_actionPerformed(e);private class BdActionListener implements ActionListener public void actionPerformed(ActionEvent e) bd_actionPerformed(e);private class BzActionListener implements ActionListener public void actionPerformed(ActionEvent e) bz_actionPerformed(e);private class ByActionListener implements ActionListener public void actionPerformed(ActionEvent e) by_actionPerformed(e);private class BjiaActionListener implements ActionListener public void actionPerformed(ActionEvent e) bjia_actionPerformed(e);private class BchengActionListener implements ActionListener public void actionPerformed(ActionEvent e) bcheng_actionPerformed(e);private class BjianActionListener implements ActionListener public void actionPerformed(ActionEvent e) bjian_actionPerformed(e);private class BchuActionListener implements ActionListener public void actionPerformed(ActionEvent e) bchu_actionPerformed(e);private class Back_17ActionListener implements ActionListener public void actionPerformed(ActionEvent e) back_17_actionPerformed(e);private class BgActionListener implements ActionListener public void actionPerformed(ActionEvent e) bg_actionPerformed(e);protected void back_actionPerformed(ActionEvent e) text1.setText(0);text2.setText(0);ok=false;protected void back_0_actionPerformed(ActionEvent e) text1.setText(text1.getText().substring(0, text1.getText().length()-1);protected void b7_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(7);elsetext1.setText(text1.getText()+7);protected void b8_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(8);elsetext1.setText(text1.getText()+8);protected void b9_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(9);elsetext1.setText(text1.getText()+9);protected void b4_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(4);elsetext1.setText(text1.getText()+4);protected void b5_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(5);elsetext1.setText(text1.getText()+5);protected void b6_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(6);elsetext1.setText(text1.getText()+6);protected void b1_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(1);elsetext1.setText(text1.getText()+1);protected void b2_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(2);elsetext1.setText(text1.getText()+2);protected void b3_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(3);elsetext1.setText(text1.getText()+3);protected void b0_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText(0);elsetext1.setText(text1.getText()+0);protected void bd_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;text1.setText(text1.getText()+.);protected void bz_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;if(text1.getText().equals(0)text1.setText();elsetext1.setText(text1.getText()+();protected void by_actionPerformed(ActionEvent e) if(ok)text1.setText(0);ok=false;text1.setText(text1.getText()+);protected void bjia_actionPerformed(ActionEvent e) if(ok)text1.setText(jieguo);ok=false;text1.setText(text1.getText()+);protected void bcheng_actionPerformed(ActionEvent e) if(ok)text1.setText(jieguo);ok=false;text1.setText(text1.getText()+);protected void bjian_actionPerformed(ActionEvent e) if(ok)text1.setText(jieguo);ok=false;text1.setText(text1.getText()+-);protected void bchu_actionPerformed(ActionEvent e) if(ok)text1.setText(jieguo);ok=false;text1.setText(text1.getText()+);protected void back_17_actionPerformed(ActionEvent e) try String s=text1.getText()+=;text1.setText(s);s=s.replace(, *);s=s.replace(, /);qiuzhi(s);text2.setText(jieguo);ok=true; catch (Exception e1) / TODO Auto-generated catch blocktext2.setText(式子不合法);ok=true;e1.printStackTrace();3.4 其他功能,能进行计算的优先级: HashMap map=new HashMap();/存运算符的优先级Stack sk1=new Stack();/存数字Stack sk2=new Stack();/存运算符map=SUM(map);boolean okk=true;int x=0;for(int i=0;i=0&a=0&a0&s.charAt(i-1)=0)/防止两个运算符一块,1*(.)sk1.push(Float.parseFloat(s.substring(x, i);/将数字部分变成浮点型okk=true;if(sk2.isEmpty()/运算符栈是空,运算符直接进栈sk2.push(a);else/运算符栈不为空if(map.get(sk2.peek()=map.get(a)&sk2.peek()!=()/运算符栈不为空,且来的运算符级别较低,switch(sk2.pop()/最后进的运算符出栈,执行运算case +:float c=sk1.pop();/数字栈后进的两个数字出栈开始运算,然后再进栈float d=sk1.pop();c=c+d;sk1.push(c);break;case -:float c=sk1.pop();float d=sk1.pop();c=d-c;sk1.push(c);break;case *:float

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论