Java计算器设计.docx
- 文档编号:26434401
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:25
- 大小:169.54KB
Java计算器设计.docx
《Java计算器设计.docx》由会员分享,可在线阅读,更多相关《Java计算器设计.docx(25页珍藏版)》请在冰豆网上搜索。
Java计算器设计
课程设计(大作业)报告
课程名称:
java语言程序设计
设计题目:
计算器
院系:
信息技术学院
班级:
计算机科学与技术
设计者:
xx
学号:
xx
指导教师:
xx
设计时间:
xx
昆明学院
昆明学院课程设计(大作业)任务书
姓名:
xxx院系:
信息技术学院
专业:
计算机科学与技术专业学号:
xx
任务起止日期:
x
课程设计题目:
计算器
课程设计要求:
按照GridLayout的布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可不同,尽量将相同属性的按钮放在一个区域,方便操作。
计算器的基本功能:
(1)加法:
两个数据进行加操作,可以为小数。
(2)减法:
两个数据进行减操作,可以为负数相减。
(3)乘法:
两个数相乘操作。
(4)除法:
两个数相除操作。
(5)开平方:
对任意一个数进行开方运算,可以是小数。
(6)求余:
对任意一个数进行求余运算。
(7)倒数:
对任意一个数进行倒数运算。
功能可自行增加。
工作计划及安排
4小时,明确选题,查阅相关资料
8小时,题目分析、总体设计、编写代码
10小时,调试测试、总结,撰写课程设计报告
4小时,修改、完善课程设计报告
指导教师签字
年月日
课程设计(大作业)成绩
学号xx姓名:
xx指导教师:
xx
课程设计题目:
计算器
总结:
通过本次课程设计,我学会了很多知识,这一次的课程设计我们选的是计算机程序,计算机总体上来说不是很难,但是在编写程序和调试过程中,我遇到了好多的问题,对许多地方不是很清楚。
刚开始编写程序的时候,好多地方都出了错误,但是经过不断地改修改,上机调试,最终获得完美的程序。
本次课程设计,使我对java有了更深的了解,比起C语言,java语言更方便,更先进。
计算机的设计,首先就是考虑图形界面的分布。
通过在大脑里建立思路,这样才能设计一个完美的程序,设计一个计算机要有加、减、乘、除、开平方、求余、求倒数,还可以进行进制转换,这样才是一个完美的程序。
本次课程设计,我主要负责的是主函数,注册监听对象及初始化界面的算法,使我逐步的对程序设计有了更进一步的了解。
本次课程设计虽然仅仅是两天的时间,在这短暂的时间里我学到了许多的知识,在一方面对java知识进行了复习;另一方面,我学会把所学知识灵活的运用到一起,java的开发,也是多方面的知识联系在一起,实现灵活的运用,从中我体会到了java广泛的运用性。
指导教师评语:
成绩:
填表时间:
指导教师签名:
课程设计(大作业)报告
1、课程设计介绍
1.1课程设计内容
设计一个计算器,可以进行十进制下的四则运算(加、减、乘、除)、平方、求余、求倒数,还可以实现二进制与十进制之间的转换。
1.2课程设计要求
本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践。
1.开始设计前学生一定要先回顾以前所学的内容,明确本课程设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。
2.通过编写一个基于JAVA的应用系统综合实例,要求学生熟练掌握Java语言设计一个完整的应用程序的设计方法和步骤(软件的分析、设计、调试和总结)。
3.要求每个学生应在规定时间内,在相关软、硬件的环境下,由指导老师指导独立完成各阶段设计任务。
2、总体设计
2.1.课设题目总体设计、算法描述
1)按照GridLayout的布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可不同,尽量将相同属性的按钮放在一个区域,方便操作。
2)计算器的基本功能:
(1)加法:
两个数据进行加操作,可以为小数。
(2)减法:
两个数据进行减操作,可以为负数相减。
(3)乘法:
两个数相乘操作。
(4)除法:
两个数相除操作。
(5)开平方:
对任意一个数进行开方运算,可以是小数。
(6)求余:
对任意一个数进行求余运算。
(7)倒数:
对任意一个数进行倒数运算。
功能可自行增加。
2.2.总体设计:
(1)利用JavaApplet图形界面首先开始设计一个计算器的界面,定义计算器所需要的按钮并赋给其按钮名称,使得使用计算器时简单明了,清晰可见,操作轻松。
(2)给各个按钮进行算法,利用鼠标点击事件,当鼠标点击某个按钮时就开始执行那个按钮所定义的算法,生成数据并显示。
(3)除数字的输入为直接进行输入外,其他运算例如+、-、*、/、开平方等算法要求计算时通过内部较为复杂的运算将结果显示在显示屏上。
(4)至于其中的进制转换功能的实现则是直接调用Java中进制转换的函数,例如要将十进制转换成二进制则可直接调用函数Integer.toBinaryString(inti)来实现,充分显示了Java语言的简洁性和Java语言功能的强大性。
2.3.系统功能图:
2.4.算法描述
(1)主函数:
//主函数
publicstaticvoidmain(String[]args){
newCalculator();//进行初始化
}
(2)注册监听对象:
publicclassCalculatorimplementsActionListener{
JFramejf=newJFrame("计算器");
JTextFieldtf=newJTextField();
JPanelpnl;
JButtonjButtonDENG;
JButtonjButtonJIAN;
JButtonjButtonCHENG;
JButtonjButton1;
JButtonjButton2;
JButtonjButton3;
JButtonjButton4;
JButtonjButton5;
JButtonjButton6;
JButtonjButton7;
JButtonjButton8;
JButtonjButton9;
JButtonjButton0;
JButtonjButtonCHU;
JButtonjButtonQINGKONG;
JButtonjButtonJIA;
JButtonjButtonQUYU;
JButtonjButtonPINGFANG;
JButtonjButtonXIAOSHUDIAN;
JButtonjButtonBACKSPACE;
JButtonjButtonDAOSHU;
JButtonjButtonKAIPINGFANG;
JButtonjButtonERJINZHI;
JButtonjButtonSHIJINZHI;
(3)初始化界面的方法
publicCalculator(){
Containerc=jf.getContentPane();
tf.setHorizontalAlignment(JTextField.RIGHT);
c.add(tf,"North");
JPanelpnl=newJPanel();
c.add(pnl,"Center");
pnl.setLayout(newGridLayout(6,5));
jButton1=newJButton("1");
jButton1.addActionListener(this);
pnl.add(jButton1);
jButton2=newJButton("2");
jButton2.addActionListener(this);
pnl.add(jButton2);
jButton3=newJButton("3");
jButton3.addActionListener(this);
pnl.add(jButton3);
jButtonBACKSPACE=newJButton("backspace");
jButtonBACKSPACE.addActionListener(this);
pnl.add(jButtonBACKSPACE);
jButton4=newJButton("4");
jButton4.addActionListener(this);
pnl.add(jButton4);
jButton5=newJButton("5");
jButton5.addActionListener(this);
pnl.add(jButton5);
jButton6=newJButton("6");
jButton6.addActionListener(this);
pnl.add(jButton6);
jButtonJIA=newJButton("+");
jButtonJIA.addActionListener(this);
pnl.add(jButtonJIA);
jButton7=newJButton("7");
jButton7.addActionListener(this);
pnl.add(jButton7);
jButton8=newJButton("8");
jButton8.addActionListener(this);
pnl.add(jButton8);
jButton9=newJButton("9");
jButton9.addActionListener(this);
pnl.add(jButton9);
jButtonJIAN=newJButton("-");
jButtonJIAN.addActionListener(this);
pnl.add(jButtonJIAN);
jButton0=newJButton("0");
jButton0.addActionListener(this);
pnl.add(jButton0);
jButtonQINGKONG=newJButton("清空");
jButtonQINGKONG.addActionListener(this);
pnl.add(jButtonQINGKONG);
jButtonCHENG=newJButton("*");
jButtonCHENG.addActionListener(this);
pnl.add(jButtonCHENG);
jButtonCHU=newJButton("/");
jButtonCHU.addActionListener(this);
pnl.add(jButtonCHU);
jButtonQUYU=newJButton("%");
jButtonQUYU.addActionListener(this);
pnl.add(jButtonQUYU);
jButtonPINGFANG=newJButton("平方");
jButtonPINGFANG.addActionListener(this);
pnl.add(jButtonPINGFANG);
jButtonXIAOSHUDIAN=newJButton(".");
jButtonXIAOSHUDIAN.addActionListener(this);
pnl.add(jButtonXIAOSHUDIAN);
jButtonDENG=newJButton("=");
jButtonDENG.addActionListener(this);
pnl.add(jButtonDENG);
jButtonDAOSHU=newJButton("倒数");
jButtonDAOSHU.addActionListener(this);
pnl.add(jButtonDAOSHU);
jButtonKAIPINGFANG=newJButton("开平方");
jButtonKAIPINGFANG.addActionListener(this);
pnl.add(jButtonKAIPINGFANG);
jButtonERJINZHI=newJButton("二进制");
jButtonERJINZHI.addActionListener(this);
pnl.add(jButtonERJINZHI);
jButtonSHIJINZHI=newJButton("十进制");
jButtonSHIJINZHI.addActionListener(this);
pnl.add(jButtonSHIJINZHI);
jf.setSize(600,400);
jf.setVisible(true);
}
3、调试与性能分析
3.1调试结果:
主界面
加法运算
减法运算
乘法运算
除法运算
平方运算
求余运算
倒数运算
3.2.讨论分析
将代码写好之后检查代码的正确性,检查代码无误后将代码进行调试和运行将会出现一个JavaApplet计算器界面。
在调试过程中可能会出现有界面但是不能运行小程序,那是因为没有初始化小程序,那时我们应该在主函数中将小程序进行初始化,这样小程序才能运行!
在调试和运行完全正确后,我们就可以按照自己的意愿将小程序进行简单测试,例如输入一些简单数据分别运行各个按钮结果正确后可以初步确定程序师正确的。
有时候我们还要输入不同范围的值进行测试,可能会发现更多的错误,因为有时候我们定义数据的范围可能会过小或输入数据会越界,到时我们就可以改正以适应更多更大的运算。
有时候我们会不自觉的选择一种最优函数方法尽量将自己的代码简单规范而又不缺少题目所要求的功能,那就要求我们翻阅很多参考书和查阅很多资料。
其实javaApplet图形界面的布局也是我们要讨论的范围,如何使得界面更加美观是我们要探讨的!
有时候我们可能会到书上或网上找到一些满足我们要求的程序代码,在此我们应该取其优秀的简单易理解代码作为我们设计程序的代码,作为初学者参考和借用部分外部程序是不可避免,但是我认为前提我们应该看懂那些程序代码,要知其所以然,那样才达到我们学程序的目的,但不主张完全照搬,否则就会没意义了!
4.参考文献
配套教材:
Y.DanielLiang.IntroductiontoJavaProgramming(SixthEdition).机械工业出版社,2008
参考资料:
[1]叶核亚.Java程序设计实用教程(第3版.电子工业出版社,2010
[2]耿祥义.JAVA课程设计.清华大学出版,2009
[3]耿祥义.Java2实用教程.清华大学出版社,2008
[4]黄小东.Java课程设计案例精编.中国水利水电出版社,200
附录
//头文件
importjavax.swing.*;
importjavax.swing.text.JTextComponent;
importjava.util.StringTokenizer;
importjava.awt.*;
importjava.awt.event.*;
importjava.math.*;
publicclassCalculatorimplementsActionListener//响应菜单事件
{
JFramejf=newJFrame("计算器");
JTextFieldtf=newJTextField();
JPanelpnl;
JButtonjButtonDENG;
JButtonjButtonJIAN;
JButtonjButtonCHENG;
JButtonjButton1;
JButtonjButton2;
JButtonjButton3;
JButtonjButton4;
JButtonjButton5;
JButtonjButton6;
JButtonjButton7;
JButtonjButton8;
JButtonjButton9;
JButtonjButton0;
JButtonjButtonCHU;
JButtonjButtonQINGKONG;
JButtonjButtonJIA;
JButtonjButtonQUYU;
JButtonjButtonPINGFANG;
JButtonjButtonXIAOSHUDIAN;
JButtonjButtonBACKSPACE;
JButtonjButtonDAOSHU;
JButtonjButtonKAIPINGFANG;
JButtonjButtonERJINZHI;
JButtonjButtonSHIJINZHI;
publicCalculator(){//初始化界面的方法
Containerc=jf.getContentPane();
tf.setHorizontalAlignment(JTextField.RIGHT);
c.add(tf,"North");
JPanelpnl=newJPanel();
c.add(pnl,"Center");
pnl.setLayout(newGridLayout(6,5));
jButton1=newJButton("1");
jButton1.addActionListener(this);
pnl.add(jButton1);
jButton2=newJButton("2");
jButton2.addActionListener(this);
pnl.add(jButton2);
jButton3=newJButton("3");
jButton3.addActionListener(this);
pnl.add(jButton3);
jButtonBACKSPACE=newJButton("backspace");
jButtonBACKSPACE.addActionListener(this);
pnl.add(jButtonBACKSPACE);
jButton4=newJButton("4");
jButton4.addActionListener(this);
pnl.add(jButton4);
jButton5=newJButton("5");
jButton5.addActionListener(this);
pnl.add(jButton5);
jButton6=newJButton("6");
jButton6.addActionListener(this);
pnl.add(jButton6);
jButtonJIA=newJButton("+");
jButtonJIA.addActionListener(this);
pnl.add(jButtonJIA);
jButton7=newJButton("7");
jButton7.addActionListener(this);
pnl.add(jButton7);
jButton8=newJButton("8");
jButton8.addActionListener(this);
pnl.add(jButton8);
jButton9=newJButton("9");
jButton9.addActionListener(this);
pnl.add(jButton9);
jButtonJIAN=newJButton("-");
jButtonJIAN.addActionListener(this);
pnl.add(jButtonJIAN);
jButton0=newJButton("0");
jButton0.addActionListener(this);
pnl.add(jButton0);
jButtonQINGKONG=newJButton("清空");
jButtonQINGKONG.addActionListener(this);
pnl.add(jButtonQINGKONG);
jButtonCHENG=newJButton("*");
jButtonCHENG.addActionListener(this);
pnl.add(jButtonCHENG);
jButtonCHU=newJButton("/");
jButtonCHU.addActionListener(this);
pnl.add(jButtonCHU);
jButtonQUYU=newJButton("%");
jButtonQUYU.addActionListener(this);
pnl.add(jButtonQUYU);
jButtonPINGFANG=newJButton("平方");
jButtonPINGFANG.addActionListener(this);
pnl.add(jButtonPINGFANG);
jButtonXIAOSHUDIAN=newJButton(".");
jButtonXIAOSHUDIAN.addActionListener(this);
pnl.add(jButtonXIAOSHUDIAN);
jButtonDENG=newJButton("=");
jButtonDENG.addActionListener(this);
pnl.add(jButtonDENG);
jButtonDAOSHU=newJButton("倒数");
jButtonDAOSHU.addActionListener(this);
pnl.add(jButtonDAOSHU);
jButtonKAIPINGFANG=newJButton("开平方");
jButtonKAIPINGFANG.addActionListener(this);
pnl.add(jButtonKAIPINGFANG);
jButtonERJINZHI=newJButton("二进制");
jButtonERJINZHI.addActionListener(this);
pnl.add(jButtonERJINZHI);
jButtonSHIJINZHI=newJButton("十进制");
jButtonSHIJINZHI.addActionListener(this);
pnl.add(jButtonSHIJINZHI);
jf.setSize(600,400);
jf.setVisible(true);
}
publicvoidactionPerformed(ActionEventevent){//检测运算符的方法
try{
doublewen=0;
Stringtoknizer="+"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 计算器 设计