java课程设计报告 Java课程设计报告什么内容代码简短

时间:2023-08-05 11:15:43 文档下载 投诉 投稿

        1、摘要

        2、概要设计

        3、详细设计

        4、测试分析

        5、总结

        6、参考文献【前言】Java不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的语言之一。Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言。目前,很多新的技术领域都涉及Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java已经成为共识。

        本次课程设计就是利用java语言来编写简单的计算器,能进行加、减、乘、除四则运算,下面给出了该设计的理论分析和具体步骤。

        一、摘要本计算器可以进行简单的四则运算(加、减、乘、除),但仅限于十进制下。“Backspace”按钮表示退格,“CE”按钮表示清除当前文本框内的数据,“C”按钮表示清除文本框内数据,同时var、answer清零。

        该程序可在JCreator环境下直接运行。

        二、概要设计

        1、自定义说明

        (1)类名:Calculator作用:主类继承的父类:JFrame类实现的接口:ActionListener类publicclassCalculatorextendsJFrameimplementsActionListener{privatestaticString[]btnTexts={"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"};//定义数组bstTexts来存放计算器上的各个按钮Buttonbutton[]=newButton[16];ButtonBkButton,CeButton,CButton,EqButton;booleanclickable;//控制当前能否按键doublevard,answerd;//用来保存double型数据的中间值(vard)和最后结果(answerd)shortkey=-1,prekey=-1;//key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormatdf;//设置数据输出精度privateJTextFielddisplayField=newJTextField("");//计算结果显示区publicCalculator(){………}publicvoidactionPerformed(ActionEventevent){………}}

        (2)方法名:Calculator作用:设置窗体布局publicCalculator(){//Frameframe=newFrame("Calculator");super("Calculator");//显示主窗口标题“Calculator”df=newDecimalFormat("0.00000000");//设置数据输出精度(对于double型值)BkButton=newButton("Backspace");BkButton.setForeground(Color.red);CeButton=newButton("CE");tForeground(Color.red);CButton=newButton("C");CButton.setForeground(Color.red);EqButton=newButton("=");EqButton.setForeground(Color.red);//将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);nListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT);//将计算结果显示在displayField的右面JPanelp1=newJPanel(newFlowLayout());//以FlowLayout布局p1p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton);//设置四个按钮:"Backspace","CE","C","="JPanelp2=newJPanel(newGridLayout(2,1));//以GridLayout布局p2p2.add(displayField);p2.add(p1);//加入显示结果的JTextField和p1JPanelp3=newJPanel(newGridLayout(4,4));//以GridLayout布局p3for(inti=0;i<btnTexts.length;i++){button[i]=newButton(btnTexts[i]);//将数组btnTexts[]的值赋给数组button[]button[i].setForeground(Color.blue);//组件button的前景色显示蓝色p3.add(button[i]);button[i].addActionListener(this);}Containercp=this.getContentPane();//采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);R);}

        (3)方法名:actionPerformed作用:设置各个按钮的行为publicvoidactionPerformed(ActionEventevent){booleansign=false;//判断是否是double型数参与运算,是为true,不是为falseObjecttemp=event.getSource();try{for(inti=0;i<=9;i++)//如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后if(temp==button[i]&&clickable==true)displayField.setText(displayField.getText()+Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if(temp==button[14]&&clickable==true){……….}if((temp==button[10]||temp==button[11]||temp==button[12]||temp==button[13])&&clickable==true){//'+'操作if(temp==button[10]){…………}//'-'操作if(temp==button[11]){…………}//'*'操作if(temp==button[12]){…………}//'/'操作if(temp==button[13]){…………}//'='操作if(temp==EqButton&&clickable==true){…………}//按下'+/-'按钮时处理if(temp==button[15]&&clickable==true){…………}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if(temp==BkButton&&clickable==true){…………}//按下'CE'按钮,将当前文本框内数据清除if(temp==CeButton){………}//按下'C'按钮,文本框内数据清除,同时var,answer清0if(temp==CButton){………}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch(Exceptione){displayField.setText("操作非法");clickable=false;}

        2、界面设计下图为该程序运行时的界面截图:

        三、详细设计以下为该程序的主要代码:importjavax.swing.*;importjava.awt.*;importjavax.swing.event.*;importjava.awt.event.*;imalFormat;publicclassCalculatorextendsJFrameimplementsActionListener{privatestaticString[]btnTexts={"0","1","2","3","4","5","6","7","8","9","+","-","*","/",".","+/-"};Buttonbutton[]=newButton[16];ButtonBkButton,CeButton,CButton,EqButton;booleanclickable;//控制当前能否按键doublevard,answerd;//用来保存double型数据的中间值(vard)和最后结果(answerd)shortkey=-1,prekey=-1;//key用来保存当前进行何种运算,prekey用来保存前次进行何种运算DecimalFormatdf;//设置数据输出精度privateJTextFielddisplayField=newJTextField("");//计算结果显示区publicCalculator(){super("Calculator");//显示主窗口标题“Calculator”df=newDecimalFormat("0.00000000");//设置数据输出精度(对于double型值)BkButton=newButton("Backspace");BkButton.setForeground(Color.red);CeButton=newButton("CE");CeButton.setForeground(Color.red);CButton=newButton("C");CButton.setForeground(Color.red);EqButton=newButton("=");EqButton.setForeground(Color.red);//将“Backspace”、“CE”、”C”、“=”显示为红色BkButton.addActionListener(this);CeButton.addActionListener(this);CButton.addActionListener(this);EqButton.addActionListener(this);displayField.setHorizontalAlignment(JTextField.RIGHT);//将计算结果显示在displayField的右面JPanelp1=newJPanel(newFlowLayout());//以FlowLayout布局p1p1.add(BkButton);p1.add(CeButton);p1.add(CButton);p1.add(EqButton);//设置三个按钮:"Backspace","CE","C","="JPanelp2=newJPanel(newGridLayout(2,1));//以GridLayout布局p2p2.add(displayField);p2.add(p1);//加入显示结果的JTextField和p1JPanelp3=newJPanel(newGridLayout(4,4));//以GridLayout布局p3for(inti=0;i<btnTexts.length;i++){button[i]=newButton(btnTexts[i]);//将数组btnTexts[]的值赋给数组button[]button[i].setForeground(Color.blue);//组件button的前景色示蓝色p3.add(button[i]);button[i].addActionListener(this);}Containercp=this.getContentPane();//采用默认的BorderLayout布局cpcp.add(p2,BorderLayout.NORTH);cp.add(p3,BorderLayout.CENTER);}//设置各个按钮行为publicvoidactionPerformed(ActionEventevent){booleansign=false;//判断是否是double型数参与运算,是为true,不是为falseObjecttemp=event.getSource();try{for(inti=0;i<=9;i++)//如果按下数据按钮,将按下的按钮代表的数据插入的当前文本框字符串之后if(temp==button[i]&&clickable==true)displayField.setText(displayField.getText()+Integer.toString(i));//按下'.'按钮时,判断当前文本框内字符串中含不含'.',如果已含,则不允许再插入'.'if(temp==button[14]&&clickable==true){booleanisDot=false;if(displayField.getText().length()==0)isDot=true;for(inti=0;i<displayField.getText().length();i++)if('.'==displayField.getText().charAt(i)){isDot=true;break;}if(isDot==false)displayField.setText(displayField.getText()+".");}if((temp==button[10]||temp==button[11]||temp==button[12]||temp==button[13])&&clickable==true){//'+'操作if(temp==button[10]){switch(prekey){case0:answerd+=Double.parseDouble(displayField.getText());break;case1:answerd-=Double.parseDouble(displayField.getText());break;case2:answerd*=Double.parseDouble(displayField.getText());break;case3:if(Double.parseDouble(displayField.getText())==0){displayField.setText("除数不能为零");clickable=false;}elseanswerd/=Double.parseDouble(displayField.getText());break;default:le(displayField.getText());}displayField.setText("");prekey=key=0;}//'-'操作if(temp==button[11]){switch(prekey){case0:answerd+=Double.parseDouble(displayField.getText());break;case1:answerd-=Double.parseDouble(displayField.getText());break;case2:answerd*=Double.parseDouble(displayField.getText());break;case3:if(Double.parseDouble(displayField.getText())==0){displayField.setText("除数不能为零");clickable=false;}elseanswerd/=Double.parseDouble(displayField.getText());break;default:answerd=Double.parseDouble(displayField.getText());}displayField.setText("");prekey=key=1;}//'*'操作if(temp==button[12]){switch(prekey){case0:answerd+=Double.parseDouble(displayField.getText());break;case1:answerd-=Double.parseDouble(displayField.getText());break;case2:answerd*=Double.parseDouble(displayField.getText());break;case3:if(Double.parseDouble(displayField.getText())==0){displayField.setText("除数不能为零");clickable=false;}elseanswerd/=Double.parseDouble(displayField.getText());break;default:answerd=Double.parseDouble(displayField.getText());}displayField.setText("");prekey=key=2;}//'/'操作if(temp==button[13]){switch(prekey){case0:answerd+=Double.parseDouble(displayField.getText());break;case1:answerd-=Double.parseDouble(displayField.getText());break;case2:answerd*=Double.parseDouble(displayField.getText());break;case3:if(Double.parseDouble(displayField.getText())==0){displayField.setText("除数不能为零");clickable=false;}elseanswerd/=Double.parseDouble(displayField.getText());break;default:answerd=Double.parseDouble(displayField.getText());}displayField.setText("");prekey=key=3;}}//'='操作if(temp==EqButton&&clickable==true){//如果连续按'=',则进行连续运算if(prekey==5){if(key==0){answerd+=vard;displayField.setText(df.format(answerd));}if(key==1){answerd-=vard;displayField.setText(df.format(answerd));}if(key==2){answerd*=vard;displayField.setText(df.format(answerd));}if(key==3){if(Double.parseDouble(displayField.getText())==0){displayField.setText("除数不能为零");clickable=false;}else{answerd/=vard;displayField.setText(df.format(answerd));}}}else{vard=Double.parseDouble(displayField.getText());if(key==0){prekey=-1;answerd+=Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if(key==1){prekey=-1;answerd-=Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if(key==2){prekey=-1;answerd*=Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}if(key==3){prekey=-1;if(Double.parseDouble(displayField.getText())==0){displayField.setText("除数不能为零");clickable=false;}else{answerd/=Double.parseDouble(displayField.getText());displayField.setText(df.format(answerd));}}}prekey=5;}//按下'+/-'按钮时处理if(temp==button[15]&&clickable==true){booleanisNumber=true;Strings=displayField.getText();for(inti=0;i<s.length();i++)if(!(s.charAt(i)>='0'&&s.charAt(i)<='9'||s.charAt(i)=='.'||s.charAt(i)=='-')){isNumber=false;break;}if(isNumber==true){//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if(s.charAt

        (0)=='-'){displayField.setText("");for(inti=1;i<s.length();i++){chara=s.charAt(i);displayField.setText(displayField.getText()+a);}}//如果当前字符串displayField.setText('-'+s);}}//按下'Backspace'键,利用循环将当前字符串中的最后一个字母删除if(temp==BkButton&&clickable==true){Strings=displayField.getText();displayField.setText("");for(inti=0;i<s.length()-1;i++){chara=s.charAt(i);displayField.setText(displayField.getText()+a);}}//按下'CE'按钮,将当前文本框内数据清除if(temp==CeButton){displayField.setText("");clickable=true;}//按下'C'按钮,文本框内数据清除,同时var,answer清0if(temp==CButton){vard=answerd=0;displayField.setText("");clickable=true;}}//输入中如果有操作非法,比如按下两次'+',捕获异常catch(Exceptione){displayField.setText("操作非法");clickable=false;}}publicstaticvoidmain(Stringargs[]){Calculatorcalculator=newCalculator();calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);calculator.setSize(300,200);calculator.setVisible(true);}}

        四、测试分析

        (1)程序运行情况该程序正常的响应按钮事件,能进行简单的加、减、乘、除四则运算,在输入之前须先进行清零处理,然后再输入数值进行运算。但输入的数值不宜过大,否则不能正常显示。

        同时用df来设置数据的输出精度,精确到小数点后八位数字。如果输入中有非法操作时,比如两次按下“+”,就会出现异常情况,我在程序中使用了try—catch捕捉输入中抛出的异常对象,然后进行重置归零的处理。

        (2)程序异常处理当输入中有非法操作时,比如两次按下“+”运算,会出现异常情况,我在程序中使用了try—catch捕捉输入中抛出的异常对象,然后进行重置归零的处理。

        相应的程序代码如下:try{……}//如果输入中有操作非法,比如两次按下“+”,捕获异常catch(Exceptione){displayField.setText(“操作非法”);clickable=false;}

        五、总结18周的java课程设计结束了,虽然选的题目有点儿简单---“用java编程实现一个简单的计算器,能进行四则运算”,但感觉收获还是挺多的,通过学习自己扩充了很多的知识点。刚开始的时候不知道从何处下手,到图书馆借书、从网上查找相关的程序...渐渐的有了思路,虽然设计出来的程序有些是从别处转来的,不是自己写的,但是在转的过程中对出现的问题都能及时得到解决,感觉挺好的....通过这周的课程设计,我意识到好的学习方法的重要性,在学习中要学会主动,不要什么东西都指望别人,要靠自己去细心观察,多问自己一个为什么,多动手查查、看看,这样自己学到手的东西才会更多!

        六、参考文献

        1、《Java应用与开发案例教程》徐谡清华大学出版社

        2、《零起点Java应用编程》PhilipHeller电子工业出版社

        3、《Java完美编程(

【java课程设计报告 Java课程设计报告什么内容代码简短】相关文章:

纳税申报实训总结-报告 纳税申报实训报告总结心得08-05

纳税申报实训报告心得企业纳税申报的实训心得 申报纳税实训心得体会08-05

报税实训报告 报税实训报告2000字08-05

纳税及纳税申报实训报告 纳税及纳税申报实训报告怎么写08-05

纳税实训报告范文精选 纳税实训报告内容08-05

课程建设结题报告 课程建设课题开题报告08-05

java课程设计报告 Java课程设计报告什么内容代码简短08-05

课程学习报告范文 课程报告怎么写?08-05

课程调研报告 课程调研报告范文3000字08-05

课程质量分析报告 课程质量评价标准表08-05

课程设计报告(通用) 课程设计报告通用总结08-05

课程实践报告【三篇】 课程实践报告范文08-05

校本课程介绍报告模板(五篇) 校本课程实施情况简介08-05