JAVA课程设计——简单计算器_第1页
JAVA课程设计——简单计算器_第2页
JAVA课程设计——简单计算器_第3页
JAVA课程设计——简单计算器_第4页
JAVA课程设计——简单计算器_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、 java 课程设计简单计算器设计系 别专 业班级学号姓 名目 录 课程设计题目 p3 课程设计简介 p3 课程设计源代码 p3 课程设计运行举例 p9 课程设计心得体会 p11l 课程设计题目:简单计算器设计l 课程设计程序简介:能够进行最基本的加、减、乘、除运算,是运用三个面板的叠加做出的界面。通过按钮来进行简易计算器的各种运算,并正确实现运算功能。如果输入错误会,程序会自动提示你的输入错误。整个程序对话框可实现最小化,最大化,关闭。l 课程设计源代码:import javax.swing.*;import java.io.*;import java.awt.*;import java.a

2、wt.event.*;public class counter extends jframe implements actionlistenerjpanel txtpanel,btnpanel,southpanel;/定义三个面板jtextfield txtinput;/定义文本框jbutton b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bdes,multiply,divide,add,subtract,clearbtn,equalbtn;/aboutbtn;gridlayout gl;/创建布局double simpan,hasil;string operasi;publi

3、c counter()super(calculator cabe);/设置窗体标题txtpanel=new jpanel();/创建面板btnpanel=new jpanel();southpanel=new jpanel();txtinput=new jtextfield(25);/创建文本框txtinput.seteditable(false);/设置文本框不可编辑txtinput.sethorizontalalignment(jtextfield.right);txtinput.settext();/设置起始文本框内容为空b1=new jbutton(1);/创建按钮b2=new jbu

4、tton(2);b3=new jbutton(3);b4=new jbutton(4);b5=new jbutton(5);b6=new jbutton(6);b7=new jbutton(7);b8=new jbutton(8);b9=new jbutton(9);b0=new jbutton(0);bdes=new jbutton(.);multiply=new jbutton(x);multiply.setfont(new font(gothic,font.bold,20);/设置画笔属性multiply.setbackground(color.black);/设置按钮边框颜色multi

5、ply.setforeground(color.blue);/设置画笔颜色divide=new jbutton(/);divide.setfont(new font(gothic,font.bold,20);divide.setbackground(color.black);divide.setforeground(color.blue);add=new jbutton(+);add.setfont(new font(gothic,font.bold,20);add.setbackground(color.black);add.setforeground(color.blue);subtrac

6、t=new jbutton(-);subtract.setfont(new font(gothic,font.bold,20);subtract.setbackground(color.black);subtract.setforeground(color.blue);clearbtn=new jbutton(c);clearbtn.setfont(new font(arial,font.italic,16);clearbtn.setbackground(color.black);clearbtn.setforeground(color.green);clearbtn.addactionlis

7、tener(new actionlistener()/实现清空操作public void actionperformed(actionevent argh)btncancelactionperformed(););equalbtn=new jbutton(=);equalbtn.setfont(new font(arial,font.italic,20);equalbtn.setbackground(color.black);equalbtn.setforeground(color.red);b1.addactionlistener(this);/添加监视器b2.addactionlisten

8、er(this);b3.addactionlistener(this);b4.addactionlistener(this);b5.addactionlistener(this);b6.addactionlistener(this);b7.addactionlistener(this);b8.addactionlistener(this);b9.addactionlistener(this);b0.addactionlistener(this);bdes.addactionlistener(this);multiply.addactionlistener(this);divide.addact

9、ionlistener(this);add.addactionlistener(this);subtract.addactionlistener(this);equalbtn.addactionlistener(this);getcontentpane().add(txtpanel,borderlayout.north);/设置面板位置txtpanel.add(txtinput);/添加文本框到txtpanel面板中gl=new gridlayout(4,4,5,5);/设置面板布局btnpanel.setlayout(gl);getcontentpane().add(btnpanel);/窗

10、体中加入第二个面板/把下列按钮加入到btnpanel面板中btnpanel.add(b7);btnpanel.add(b8);btnpanel.add(b9);btnpanel.add(multiply);btnpanel.add(b4);btnpanel.add(b5);btnpanel.add(b6);btnpanel.add(divide);btnpanel.add(b1);btnpanel.add(b2);btnpanel.add(b3);btnpanel.add(add);btnpanel.add(b0);btnpanel.add(bdes);btnpanel.add(equalbt

11、n);btnpanel.add(subtract);getcontentpane().add(southpanel,borderlayout.south);/设置面板位置southpanel.add(clearbtn);/把clearbtn加入到southpanel面板中setsize(250,300);/设置窗体初始大小setvisible(true);/设置窗体可见setlocation(300,200);/设置初始窗体在屏幕上的位置setdefaultcloseoperation(windowconstants.exit_on_close);/设置程序的关闭方式(关闭窗体时,程序自动结束

12、)public void btncancelactionperformed()/清空文本框内容txtinput.settext();public void actionperformed(actionevent e)tryobject objkcal=e.getsource();/取得按键if(objkcal=b1)/如果按下b1,则把文本框中的内容置为1txtinput.settext(txtinput.gettext()+1);elseif(objkcal=b2)txtinput.settext(txtinput.gettext()+2);elseif(objkcal=b3)txtinpu

13、t.settext(txtinput.gettext()+3);elseif(objkcal=b4)txtinput.settext(txtinput.gettext()+4);elseif(objkcal=b5)txtinput.settext(txtinput.gettext()+5);elseif(objkcal=b6)txtinput.settext(txtinput.gettext()+6);elseif(objkcal=b7)txtinput.settext(txtinput.gettext()+7);elseif(objkcal=b8)txtinput.settext(txtin

14、put.gettext()+8);elseif(objkcal=b9)txtinput.settext(txtinput.gettext()+9);elseif(objkcal=b0)txtinput.settext(txtinput.gettext()+0);elseif(objkcal=bdes)txtinput.settext(txtinput.gettext()+.);else/如果按下的是“+”号键,就是保存原来文本框内容并且清空if(objkcal=add)simpan=double.parsedouble(txtinput.gettext();operasi=plus;txtin

15、put.settext();elseif(objkcal=subtract)simpan=double.parsedouble(txtinput.gettext();operasi=minus;txtinput.settext();elseif(objkcal=divide)simpan=double.parsedouble(txtinput.gettext();operasi=bagi;txtinput.settext();elseif(objkcal=multiply)simpan=double.parsedouble(txtinput.gettext();operasi=kali;txt

16、input.settext();else/如果按下“=”号,执行以下操作if(objkcal=equalbtn)if(operasi=plus)hasil=simpan+double.parsedouble(txtinput.gettext();txtinput.settext(double.tostring(hasil);elseif(operasi=minus)hasil=simpan-double.parsedouble(txtinput.gettext();txtinput.settext(double.tostring(hasil);elseif(txtinput.equals(tx

17、tinput.gettext()&objkcal=subtract)hasil=simpan-double.parsedouble(txtinput.gettext();txtinput.settext(double.tostring(hasil);elseif(operasi=bagi)if(double.parsedouble(txtinput.gettext()=0)joptionpane.showmessagedialog(this, 被除数不能为0);hasil=simpan/double.parsedouble(txtinput.gettext();txtinput.settext

18、(double.tostring(hasil);elseif(operasi=kali)hasil=simpan*double.parsedouble(txtinput.gettext();txtinput.settext(double.tostring(hasil);catch(exception ouch)joptionpane.showmessagedialog(null,错误输入,error,joptionpane.error_message);/异常处理public static void main(string args)tryuimanager.setlookandfeel (c

19、om.sun.java.swing.plaf.windows.windowslookandfeel);catch(exception e)/异常处理new counter();/创建窗体l 课程设计运行举例:运行结果截图:u 乘法截图 例如90*80=7200 u 除法截图1.当被除数为零的时候程序会自动提示,被除数不能为零。 例如:6/0 n 加法截图 例如 5+4=9 如下: 减法截图:100-90=10.0如下:l 课程设计心得体会: 在此次的课程设计实践中,我学到了教科书上没有的东西。这次课程设计,我按照课程设计的要求,分块实现程序的功能。在实践中我遇到许多的问题,通过网上的bbs的交

20、流,和同学的帮助,最后都克服,最终我成功的完成了这次课程设计。从中我充分理解了java面对对象的特性,并体会到java与c语言的不同之处在实践的同时,我又从中成长了许多,特别是在对程序的编译和调试中掌握了许多的技巧和方法,为今后的其他计算机语言的学习奠定了一定的基础。总结:(1)通过编写这个相对复杂的程序,让我认识解决实际问题前应现建立模型,再通过建立的模型使问题简单化,从而解决问题。(2)这次编写的程序大部分是通过调用各包中的方法来实现的,这也让我充分理解了包和类调用的关系。(3)由于这次编写的程序相对比较复杂,所以不能一次性编写、调试,也由此让我学会把程序分块,逐个编写、调试。 芁薃蚄肂芀

21、螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀

22、莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈

23、莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿

24、蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇蚄羀蒇莆袀袆蒆蕿蚃芅蒅蚁羈膁蒄螃螁肇蒄蒃羇羃肀薅蝿衿聿蚈羅膇膈莇螈肃膇蒀羃罿膇蚂螆羅膆螄虿芄膅蒄袄膀膄薆蚇肆膃蚈袂羂节莈蚅袈芁蒀袁膆芁薃蚄肂芀螅衿肈艿蒅螂羄芈薇羇袀芇虿螀腿芆荿羆肅莅蒁螈羁莅薄羄袇莄蚆螇芅莃蒆薀膁莂薈袅肇莁蚀蚈羃莀莀袃衿荿蒂蚆膈葿薄袂肄蒈蚇

温馨提示

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

评论

0/150

提交评论