当前位置:编程学习 > JAVA >>

java课程设计(计算器)

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又了进一步的理解,掌握软件开发的基本流程,为软件课程设计打好基础。让我知道了留心字母的写法和字符串的应用等这些细小的地方,同时也明白了细心,严谨认真的重要性以及团队合作的重要性。

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


[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; 
                else 
                    cha=2;               
               &nbs

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,