JAVA课程 设 计 报 告

1206401-18   瞿杰

一、设计时间

2013年6月 24日-----6月28日

二、设计地点

湖南城市学院实验楼计算机506机房

三、设计目的

1、巩固学习VB基础知识方面的基本算法,进一步熟悉基本概念。

2、熟练常用控件,文件,图形等方面的操作,了解基本的流程。

3、运用所用学的VB语言知识,编写出较为实用的小软件,增进对一些实际问题的软,硬件知识的掌握。

4、培养查阅资料,独立思考问题的能力。

四、设计小组成员

1206401-27陈纪杭   1206401-32王婷     1206401-18瞿杰

五、指导老师

胡奇光老师、祝青老师.。

六、设计课题

经过小组大部分组员的讨论,决定选取选题(一):计算器的设计与实现

理由:1、此程序中涉及了多种java组件,包括窗口,面板,按钮,组合框等等,综合性强。

2、代码编写涉及面广,利用提高综合应用能力。

七、基本思路及关键问题的解决方法

设计一个简易计算器,在键盘上输入数字后可以在键盘上直接输入 “+  -  * /” 等运算符号进行运算。

窗口上添加标签,文本行和“OK”按钮。

输入完时要响应“OK”按钮事件:

Text.add(text1);         //窗口添加文本行

Text.add(text2);

button.addActionListener(this);       //”ok”按钮事件监听器

当用户单击鼠标右键按OK按钮时,触发按钮事件,执行ActionListener接口,开始执行计算器功能,按“+ -  *  /”的优先级计算,* 和 / 的优先级大于 + 和 -;在计算时先计算优先级小的或相等的,如果当前符号优先级大于符号栈中栈顶符号的优先级时,则放入符号栈中。

八、算法及流程图

九、调试过程中出现的问题及相应解决办法

问题:

1、int型和其他类型的转换方式不对。

2、关于+、-、*、/的优先级的应用。

3、输入时看不到输出结果。

办法:

通过一段一段的调试,最终全部解决了。

十、课程设计心得体会

心得体会:通过这次java课程设计编译一个简单的计算器,我对所编写的程序有了一定的认识。通过编写程序进一步熟悉了了按钮、对话框以及字符栈额度编写和使用,知道了怎样在键盘上直接快捷的输入运算符号。通过对java又了进一步的理解,掌握软件开发的基本流程,为软件课程设计打好基础。让我知道了留心字母的写法和字符串的应用等这些细小的地方,同时也明白了细心,严谨认真的重要性以及团队合作的重要性。

十一、源程序(每句语言要有详细解释)

import java.awt.*;
import java.awt.event.*;
public class 计算器 extends Frame implements ActionListener{private TextField text1,text2;//文本行private Button button;//按扭public 计算器()//构建框架{super ("计算器");//框架名this.setBounds(280, 100, 300,240);//框架的大小this.setBackground(java.awt.Color.lightGray);//背景颜色this.setLayout(new java.awt.FlowLayout(FlowLayout.LEFT));//布局流this.add(new Label("输入"));//输入行text1=new TextField(50);this.add(text1);button=new Button("OK");this.add(button);button.addActionListener(this);//按扭监听器this.add(new Label("结果"));//结果行text2=new TextField(50);this.add(text2);this.addWindowListener(new WinClose());//控制程序开关this.setVisible(true);//可视化}public void actionPerformed(ActionEvent e){//实现接听接口String str=text1.getText(),str0="";char ch;int i,top1=-1,top2=-1,j=-1,flog=0,len,str1[]=new int[122];double  t,suz[]=new double[122],cha,cha1[]=new double[122];len=str.length();//输入的字符串长度for(i=0;i<len;i++){ch=str.charAt(i);if(ch>='0'&&ch<='9'||ch=='.')//先保存一个数字字符串{str0=str0+ch;flog=1;}else{if(flog==1)//把保存的数字字符串转成数字,并放入数字栈中{t=Double.parseDouble(str0);suz[++top1]=t;flog=0; str0="";//注意初始化}if(ch=='+'||ch=='-')//符号的优先级cha=1;elsecha=2;               if(top2>=0&&cha1[top2]>=cha)//满足条件时计算{if(str1[j]==1)suz[top1-1]=suz[top1]+suz[top1-1];if(str1[j]==2)suz[top1-1]=suz[top1-1]-suz[top1];if(str1[j]==3)suz[top1-1]=suz[top1]*suz[top1-1];if(str1[j]==4)suz[top1-1]=suz[top1-1]/suz[top1];top2--;top1--;j--;i--;}else//把符号优先级大的放入符号栈中{cha1[++top2]=cha;//优先级if(ch=='+')str1[++j]=1;// 把符号保存在符号栈中,1表示符号为+,下面同理if(ch=='-')str1[++j]=2;if(ch=='*')str1[++j]=3;if(ch=='/')str1[++j]=4;}}}t=Double.parseDouble(str0);//最后一个是数字++top1;suz[top1]=t;for(;j>=0;j--)//计算最后的结果{if(str1[j]==1) suz[top1-1]=suz[top1]+suz[top1-1];if(str1[j]==2)suz[top1-1]=suz[top1-1]-suz[top1];if(str1[j]==3)suz[top1-1]=suz[top1]*suz[top1-1];if(str1[j]==4)suz[top1-1]=suz[top1-1]/suz[top1];top1--;}text2.setText(""+suz[0]);//把最后的计算结果放入第二个文本行里显示出来//}}public static void main(String[] args) {new 计算器();}
}
class WinClose implements WindowListener{//实现关闭程序的接口public void windowClosing(WindowEvent e){System.exit(0);//执行关闭程序}public void windowOpened(WindowEvent e){}public void windowActivated(WindowEvent e){}public void windowDeactivated(WindowEvent e){}public void windowClosed(WindowEvent e){}public void windowIconified(WindowEvent e){}public void windowDeiconified(WindowEvent e){}
}

java课程设计(计算器)相关推荐

  1. 计算器小程序java课程设计,java课程设计----计算器小程序报告.doc

    java课程设计----计算器小程序报告.doc #####学院JAVA语言课程设计报告小程序计算器系统管理班级:#######姓名:#####指导老师:###时间:2012年6月25日至6月29日2 ...

  2. java课程设计 计算器_java课程设计-保存计算过程的计算器

    java课程设计-保存计算过程的计算器 编号: <面向对象程序设计(JAVA) > 课程设计(论文)档案 题 目: 保存计算过程的计算器 学 院: 信息学院 专 业: 姓 名: 学 号: ...

  3. java 课程设计 计算器_JAVA课程设计-计算器(201521123028 李家俊)

    1.团队课程设计博客链接 2.个人负责模板或任务说明 主要负责计算器图形界面 包括操作按钮,菜单项以及输出面板的设计 3.自己的代码提交记录截图 4.自己负责模块或任务详细说明 代码分析: 主类中有如 ...

  4. Java课程设计——计算器

    目录 简介: 一.基本要求 二.功能实现 三.设计思路 四.具体步骤操作 五.具体代码内容展示 1.设计计算器窗口,提供了基本的界面组件以及按钮的设置和添加. 2.部分按钮的功能实现 3.三角函数计算 ...

  5. java课程设计计算器 uml简图,计算器的用例建模

    我需要帮助从一个主题建模用例图,它将在Java GUI 中. 设计一个计算器 1.允许用户键入涉及数字.运算符+.-和括号'('和')'的合法算术语句; 2.当用户按__Calculate_157;按 ...

  6. java质数和合数的程序_《java项目实训》课程设计计算器.doc

    <java项目实训>课程设计计算器.doc 课程设计报告课程名称JAVA项目实训课程设计设计名称基于JAVA计算器的设计与实现学生学号学生姓名学生学号学生姓名学生学号学生姓名学生学号学生姓 ...

  7. 计算器java程序设计报告总体设计_计算器设计的java课程设计报告.doc

    计算器设计的java课程设计报告.doc 华东交通大学课程设计1华东交通大学课程设计课程:Java程序设计题目:计算器设计年级:2010级专业:信息一班学号:姓名:组员:指导教师:课程设计题目:计算器 ...

  8. 关于java 计算器设计,Java课程设计报告---设计一个多功能计算器

    Java课程设计报告---设计一个多功能计算器 存档资料存档资料 成绩成绩 课课 程程 设设 计计 报报 告告 书书 2010-- 2011 年度第 2 学期 所属课程名称所属课程名称 JavaJav ...

  9. Java课程设计题目二:保存计算过程的计算器

    Java课程设计题目二:保存计算过程的计算器 1 设计要求 参考Windows 操作系统提供的计算器设计一个实用的计算器,要求除了具有普通的计算功能外,还具有保存计算过程的功能. ①单击计算器上的数字 ...

  10. java计算机设计总结,java课程设计报告--计算器设计

    java课程设计报告--计算器设计 1 课 程 Java 程序设计 题 目 计算器设计 年 级 2010 级 专 业 信息一班 学 号 姓 名 组 员 指导教师 课程设计题目计算器设计 2 课程设计论 ...

最新文章

  1. 实时荧光定量聚合酶链式反应和2-▲CT方法分析相关基因表达数据
  2. C/C++面试题目集锦
  3. 如何在Rancher 2.2 Preview2上部署和管理多K8s集群应用 1
  4. dojo Quick Start/dojo入门手册--面向对象,定义Class
  5. oracle数据库分层,Oracle数据库的分层查询(一)
  6. 织梦 mysql 配置文件_MySQL集群配置
  7. 为什么有些没读过书的人做生意却很厉害?
  8. ios 音高测试软件,‎App Store 上的“绝对音感训练!”
  9. 微软将开放神经网络交换格式贡献给 Linux 基金会
  10. HTTP MIME Types
  11. POJ 1037 DP
  12. 手把手教你在eclipse 中 配置maven
  13. apt-get install 的参数(add-apt-repository)
  14. SpringBoot项目文件上传
  15. hevc参考代码matlab版,HEVC部分源码剖析
  16. Beini FeedingBottle[小巧的无线密码破解系统]
  17. Kali Linux无线网络渗透测试教程(大学霸内部资料)
  18. 数独大师级技巧_零基础入手攻克专家级数独难题实战案例
  19. C/S、B/S架构模式的三层结构特点分析
  20. 【题解】JZOJ1321:灯

热门文章

  1. STM32HAL库-实现USB虚拟串口打印(printf功能)
  2. 中山市民众镇计算机考证积分用
  3. SQL语句中删除表数据drop、truncate和delete的用法
  4. Vue 入门学习视频教程
  5. 【修改注册表加快上网速度的方法】
  6. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java计算机学院课程设计管理系统75n4l
  7. JNA参数类型转换(含接收、发送结构体)——JNA-JNI(五)
  8. 教你使用借贷宝0成本赚钱
  9. 怎样搞懂Linux内核内存管理中的KASAN实现原理
  10. Android 车企一年半技术总结