完整版Java课程设计报告27652265.docx

上传人:b****5 文档编号:7370423 上传时间:2023-05-11 格式:DOCX 页数:27 大小:60.04KB
下载 相关 举报
完整版Java课程设计报告27652265.docx_第1页
第1页 / 共27页
完整版Java课程设计报告27652265.docx_第2页
第2页 / 共27页
完整版Java课程设计报告27652265.docx_第3页
第3页 / 共27页
完整版Java课程设计报告27652265.docx_第4页
第4页 / 共27页
完整版Java课程设计报告27652265.docx_第5页
第5页 / 共27页
完整版Java课程设计报告27652265.docx_第6页
第6页 / 共27页
完整版Java课程设计报告27652265.docx_第7页
第7页 / 共27页
完整版Java课程设计报告27652265.docx_第8页
第8页 / 共27页
完整版Java课程设计报告27652265.docx_第9页
第9页 / 共27页
完整版Java课程设计报告27652265.docx_第10页
第10页 / 共27页
完整版Java课程设计报告27652265.docx_第11页
第11页 / 共27页
完整版Java课程设计报告27652265.docx_第12页
第12页 / 共27页
完整版Java课程设计报告27652265.docx_第13页
第13页 / 共27页
完整版Java课程设计报告27652265.docx_第14页
第14页 / 共27页
完整版Java课程设计报告27652265.docx_第15页
第15页 / 共27页
完整版Java课程设计报告27652265.docx_第16页
第16页 / 共27页
完整版Java课程设计报告27652265.docx_第17页
第17页 / 共27页
完整版Java课程设计报告27652265.docx_第18页
第18页 / 共27页
完整版Java课程设计报告27652265.docx_第19页
第19页 / 共27页
完整版Java课程设计报告27652265.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

完整版Java课程设计报告27652265.docx

《完整版Java课程设计报告27652265.docx》由会员分享,可在线阅读,更多相关《完整版Java课程设计报告27652265.docx(27页珍藏版)》请在冰点文库上搜索。

完整版Java课程设计报告27652265.docx

完整版Java课程设计报告27652265

 

课程设计(大作业)报告

 

课程名称:

面向对象程序设计课程设计

设计题目:

设计一个计算器

院系:

班级:

设计者:

学号:

指导教师:

设计时间:

2013.1..1.18

 

课程设计(大作业)任务书

姓名:

院(系):

专业:

学号

任务起止日期:

2013.1..1.18

课程设计题目:

设计一个计算器,具有加减乘除的计算器,可扩展功能

课程设计要求:

本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践。

⑴.开始设计前学生一定要先回顾以前所学的内容,明确本课程设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。

⑵.通过编写一个基于JAVA的应用系统综合实例,要求学生熟练掌握Java语言设计一个完整的应用程序的设计方法和步骤(软件的分析、设计、调试和总结)。

⑶.要求每个学生应在规定时间内,在相关软、硬件的环境下,由指导老师指导独立完成各阶段设计任务。

工作计划及安排:

这次的实验内容是计算器的设计,中间主要涉及的内容有:

Java计算器主类;Java计

算器菜单的创建;Java计算器功能键定义;Java计算器数字键盘区定义;Java计算器计

算方法区。

1月14号上午在机房进行题目分析,最后确定做的题目,并查找资料。

1月14号下午在机房进行基本的题目分工,进行分工工作。

我负责计算器图形界面设计方法的实现;耿粉团负责计算器的个功能实现。

1月15号在机房进行编写程序,实现各功能。

1月16号在机房编写与调试程序以及相关内容的注释。

1月17号修改程序的不足之处,并优化程序。

 

指导教师签字

2013年1月14日

课程设计(大作业)成绩

学号:

姓名:

指导教师:

课程设计题目:

设计一个计算器,具有加减乘除的计算器,可扩展功能

总结:

在实训的这五天期间,使我弄懂许多问题,例如实现接口,图形界面设计等。

比如说实现事件响应的步骤有:

第一:

注册监听器;

第二:

触发;

第三:

事件响应。

查询API手册也使我明白更多函数的功能与应用,容器,添加面板、文本框、按钮、菜单等等。

JButton,JMenu,JMenuItem,JTextField,StringBuffer。

还有窗口框架的设计,Border布局、Grid布局和Flow布局,只用单一的布局是弄不好一个完美的窗口框架的,所以要综合使用布局管理。

指导教师评语:

成绩:

填表时间:

2013.1.20指导教师签名:

洪孙焱

目录

课程设计(大作业)报告4

一、题目要求4

⑴、界面设计4

⑵、计算器的基本功能4

二、需求分析4

三、题目分析5

四、分工设计5

⑴、程序代码5

⑵、运行结果截图9

五、总体设计10

⑴流程图10

⑵UML图11

六、详细设计和主要代码11

七、运行结果21

八、总结21

九、参考文献22

课程设计(大作业)报告

一、题目要求

⑴、界面设计

首先按设计要求实现其基本功能,其次设计布局,按照GridLayoutd的布局方法,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可不同,尽量将相同属性的按钮放在一个区域,方便操作。

⑵、计算器的基本功能:

①加法:

两个数据进行加操作,可以为小数。

②减法:

两个数据进行减操作,可以为负数相减。

③乘法:

两个数相乘操作。

④除法:

两个数相除操作。

⑤开平方:

对任意一个数进行开平方运算,可以是小数。

⑥求余:

对任意一个数进行求余运算。

⑦倒数:

对任意一个数进行倒数运算

功能可自行增加。

提示:

添加相关组件并进行按钮事件处理。

2、需求分析

在日常生活中经常要用到计算器,比如科学计算器、数值计算、会计业务等,在Applet中实现一个精巧实用的计算器,可以让用户在使用网站服务的同时,可以很方便地进行数据运算,可增加页面的实用性,同时让用户的操作也更方便与快捷。

本次实验要求实现一个具有四则运算的计算器,拥有加、减、乘、除、求余、求倒等功能,并且还要求具备清零等功能。

3、题目分析

计算器功能键的实现

actionPerformed(ActionEvente)响应整个计算的文本框。

这次设计的计算器计算功能主要包括加法、减法、乘法、除法、求平方根、取余,1/x将文本框中的数据为它的倒数,sqrt将文本框中的内容求平方根,且有小数点、正负号、求倒数、退格和清零等功能。

其中还有一个缓存区,MC的功能是清除缓存区的数据,MR的功能是恢复缓冲区的数到文本框,MS功能是将文本框的数存入缓冲区,M+的功能是将文本框值与缓冲区的数相加但不显示结果。

四、分工设计

⑴、程序代码

publicCalculator()

{

f=newJFrame("计算器");//创建一个框架

ContainercontentPane=f.getContentPane();

//菜单的创建

JMenuBarmBar=newJMenuBar();//实例化mbar菜单

mBar.setOpaque(true);

mEdit=newJMenu("编辑(E)");

mCopy=newJMenuItem("复制(C)");

mEdit.add(mCopy);

mPaste=newJMenuItem("粘贴(P)");

mEdit.add(mPaste);

mView=newJMenu("查看(V)");

mView.add(newJMenuItem("查看分组"));

mHelp=newJMenu("帮助(H)");

mHelp.add(newJMenuItem("帮助主题"));

mHelp.add(newJMenuItem("关于计算器"));

mBar.add(mEdit);

mBar.add(mView);

mBar.add(mHelp);

f.setJMenuBar(mBar);

contentPane.setLayout(newBorderLayout());//使mbar菜单用Border布局

JPanelpt=newJPanel();//实例化pt容器

tText=newJTextField("",26);

pt.add(tText);

contentPane.add(pt,BorderLayout.NORTH);//把pt容器用Border布局位于北面

JPanelpBottom=newJPanel();//实例化pBottom容器

pBottom.setLayout(newBorderLayout());

JPanelpPlef=newJPanel();//实例化pPlef容器

pPlef.setLayout(newGridLayout());

//pLeft容器用Grid布局5行1列,GridLayout以网格形式将组件放在同样大小的单元了

bEmptykey=newJButton("");

pPlef.add(bEmptykey);

//功能键定义

bLeftkey=newJButton("MC");//对象MC:

清除存储器中的数值。

bLeftkey.addActionListener(this);//注册监听器

bLeftkey.setForeground(Color.blue);

bLeftkey.setMargin(newInsets());

pPlef.add(bLeftkey);

bLeftkey=newJButton("MR");//MR:

将存于存储器中的数显示在计算器的显示框上

bLeftkey.addActionListener(this);

bLeftkey.setForeground(Color.blue);

bLeftkey.setMargin(newInsets());

pPlef.add(bLeftkey);

bLeftkey=newJButton("MS");//MS:

将显示框的数值存于存储器中。

如果存储器中有数值将会显示M标志

bLeftkey.addActionListener(this);

bLeftkey.setForeground(Color.blue);

bLeftkey.setMargin(newInsets());

pPlef.add(bLeftkey);

bLeftkey=newJButton("M+");//M+:

将显示框的数与存储器中的数相加并进行存储。

bLeftkey.addActionListener(this);

bLeftkey.setForeground(Color.blue);

bLeftkey.setMargin(newInsets());

pPlef.add(bLeftkey);

pBottom.add(pPlef,BorderLayout.WEST);//pPlef容器中用Border布局位于西面

JPanelpRight=newJPanel();//实例化pRight容器

pRight.setLayout(newBorderLayout());

//BorderLayout是在五个区域中排列组件,每个区域包含一个组件

JPanelpOn=newJPanel();//实例化pOn容器

pOn.setLayout(newGridLayout());//pOn容器用Grid布局1行3列

bLeftkey=newJButton("BackSpace");

//"Backspace"退格,删除当前输入数字中的最后一位

bLeftkey.addActionListener(this);

bLeftkey.setForeground(Color.blue);//将bOther的前景色设置为blue

bLeftkey.setMargin(newInsets());

pOn.add(bLeftkey);

bLeftkey=newJButton("CE");//"CE"清除,清除显示的数字

bLeftkey.addActionListener(this);

bLeftkey.setForeground(Color.blue);

pOn.add(bLeftkey);

bLeftkey=newJButton("C");//"C"归零,清除当前的计算

bLeftkey.addActionListener(this);

bLeftkey.setForeground(Color.blue);

pOn.add(bLeftkey);

//数字键盘区定义

JPanelpNum=newJPanel();//实例化pNum容器

pNum.setLayout(newGridLayout());//pNum容器用Grid布局4行5列

bNumberkey=newJButton("7");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);//在pNum容器中添加按键bNumber

bNumberkey=newJButton("8");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bNumberkey=newJButton("9");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bOperator=newJButton("/");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bOperator=newJButton("sqrt");

bOperator.addActionListener(this);

bOperator.setForeground(Color.blue);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bNumberkey=newJButton("4");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

bNumberkey.setHorizontalTextPosition(JButton.LEFT);

pNum.add(bNumberkey);

bNumberkey=newJButton("5");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bNumberkey=newJButton("6");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bOperator=newJButton("*");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bOperator=newJButton("%");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bNumberkey=newJButton("1");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bNumberkey=newJButton("2");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bNumberkey=newJButton("3");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bOperator=newJButton("-");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bOperator=newJButton("1/x");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

pNum.add(bOperator);

bNumberkey=newJButton("0");

bNumberkey.setForeground(Color.blue);

bNumberkey.addActionListener(this);

bNumberkey.setMargin(newInsets());

pNum.add(bNumberkey);

bOperator=newJButton("+/-");//按下(+/-)键可改变数字的正负值。

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bOperator=newJButton(".");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bOperator=newJButton("+");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

bOperator=newJButton("=");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets());

pNum.add(bOperator);

pRight.add(pOn,BorderLayout.NORTH);//pOn容器中的按键用Border布局位于北面

pRight.add(pNum,BorderLayout.SOUTH);//pNum容器中的按键用Border布局位于南面

pBottom.add(pRight,BorderLayout.EAST);//pRight容器中的按键用Border布局位于东面

contentPane.add(pBottom,BorderLayout.SOUTH);//pBottom容器中的按键用Border布局位于南面

f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);

f.setSize();//指定框架的大小

f.setVisible(true);//显示框架

}

//计算方法区

⑵、运行结果截图

五、总体设计

流程图(运行的过程),UML图(类:

常量、方法类的关系)

⑴流程图

⑵UML图

Calculator

+JFramef

+JMenumEdit

+JMenumView

+JMenumHelp

+JMenuItemmCopy

+JMenuItemmPaste

+JTextFieldtText

+JButtonbNumberkey

+JButtonbOperator

+JButtonbLeftkey

+JButtonbEmptykey

+intpreoper,curOper=0=0

+doubleoper1=0,oper2=0

+StringBuffercopyBoard

+StringBuffermemory

+StringBufferstr

+Calculator()void

+actionPerformed(ActionEvente)void

六、详细设计和主要代码

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

//主类

publicclassCalculatorimplementsActionListener{//Calculator类继承ActionListener接口的所有常量

//实现接口

JFramef;//定义文本框f

JMenumEdit;//定义编辑菜单

JMenumView;//定义查看菜单

JMenumHelp;//定义帮助菜单

JMenuItemmCopy;//编辑菜单下实现复制

JMenuItemmPaste;//编辑菜单下实现粘贴

JTextFieldtText;//编辑文本框

JButtonbNumberkey;//定义功能键(操作数)

JButtonbOperator;//定义功能键(运算符“+”,“/”等)

JButtonbLeftkey;//定义功能键(运算符“MR”等)

JButtonbEmptykey;//定义功能键

intpreoper,curOper=0;

doubleoper1=0,oper2=0;//操作数

StringBuffercopykey=newStringBuffer(20);

StringBuffermemory=newStringBuffer(20);

StringBufferstr=newStringBuffer();

//StringBuffer类提供处理字符串缓冲区的方法

//Java计算器构造器

publicCalculator()

{

f=newJFrame("计算器");//创建一个框架

ContainercontentPane=f.getContentPane();

//菜单的创建

JMenuBarmBar=newJMenuBar();//实例化mbar菜单

mBar.setOpaque(true);

mEdit=newJMenu("编辑(E)");

mCopy=newJMenuItem("复制(C)");

mEdit.add(mCopy);

mPaste=newJMenuItem("粘贴(P)");

mEdit.add(mPaste);

mView=newJMenu("查看(V)");

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2