java课设.docx

上传人:b****5 文档编号:7963008 上传时间:2023-01-27 格式:DOCX 页数:21 大小:118.45KB
下载 相关 举报
java课设.docx_第1页
第1页 / 共21页
java课设.docx_第2页
第2页 / 共21页
java课设.docx_第3页
第3页 / 共21页
java课设.docx_第4页
第4页 / 共21页
java课设.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

java课设.docx

《java课设.docx》由会员分享,可在线阅读,更多相关《java课设.docx(21页珍藏版)》请在冰豆网上搜索。

java课设.docx

java课设

辽宁工业大学

JAVA程序设计课程设计(论文)

 

题目:

计算器

 

院(系):

专业班级:

学号:

学生姓名:

指导教师:

教师职称:

起止时间:

2008.12.22至2009.1.2

 

程序设计专题(报告)任务及评语

院(系):

软件学院教研室:

软件教研窒

学号

学生姓名

专业班级

程序设计(报告)题目

计算器

程序设计(报告)任务

程序设计专题的任务与要求:

(1)掌握Java编程、面向对象的基础知识。

(2)较熟练地编写Java应用程序Application。

(3)了解Java的常用标准类库、编程技巧、异常处理。

(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。

(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。

(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。

正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。

指导教师评语及成绩

成绩:

指导教师签字:

2009年1月5日

目录

第1章课程设计的目的与要求1

1.1课程设计目的1

1.2课程设计的实验环境1

1.3课程设计的预备知识1

1.4课程设计要求1

第2章课程设计内容2

2.1课程设计主要内容2

2.2概要设计2

2.2.1自定义类说明2

2.3详细设计4

2.4测试分析4

2.4.1程序运行情况17

2.4.2程序异常处理18

第3章课程设计总结20

参考资料21

第1章课程设计的目的与要求

1.1课程设计目的

《JAVA程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。

实践教学环节是必不可少的一个重要环节。

本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。

1.2课程设计的实验环境

硬件要求能运行Windows9.X操作系统的微机系统。

JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。

1.3课程设计的预备知识

熟悉JAVA语言及ECLIPSE开发工具。

1.4课程设计要求

按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。

要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。

同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

第2章课程设计内容

2.1课程设计主要内容

本计算器可以进行简单的四则运算(加、减、乘、除)但仅限于十进制下,backspace表示退格,CE表示初始化,MS表示存储显示栏中的数字(显示左端出现m),MC表示清除存储的数字(存数变0,m消失),MR表示在显示栏中显示存储的数字,M+表示将显示栏中的数字加到存储的数字。

在window下直接运行(Jsp2003.bat)即可,界面为灰白对称。

本系统采用了awt包,程序实现了文本编辑器的基本功能有:

打开文件,文件保存,文件另存为,退出,信息,查找,复制,剪切,粘贴,文字颜色,设置字体,设置字形,设置字号大小,该编辑器在技术上没有实现将文本以不同的颜色显示的功能。

Java程序编辑器是:

图形界面,线程,流与文件等技术的综合应用。

文本编辑区选用TextArea作为主要的部件。

文件操作的实现:

利用字符文件流readFromFile和writeToFile方法来实现。

由于java的特性,可能用任何一个编辑器来编辑,于是就将windows记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。

在设计类的时候考虑简单明了,就设计了一个主类和默认属性类做为程序的整体框架,所有的对象和方法是在默认属性类中创建和实现的。

2.2概要设计

2.2.1自定义类说明

(1)类名:

d*

作用:

自定义的异常类,用来处理计算结果溢出*

继承的父类:

Frame类*

实现的接口:

没有*

(2)成员变量见表1

表1Myd成员变量

成员变量描述

变量类型

名称

文件

File

File

文本区

JTextArea

Textarea

单选按钮菜单项

JRadioButtonMenuItem

Rbmi_red,rbmi_blue,rbmi_green,

rbmi_pink,rbmi_yellow

菜单项

JMenuItem

menuitem_copy,menuitem_cut,

menuitem_paste,menuitem_seek

字体菜单项

JMenuItem

menuitem_song,menuitem_fang

menuitem_hua,menuitem_kai

字形菜单项

JMenuItem

menuitem_normal,

menuitem_bold,

menuitem_italic

字号菜单项

JMenuItem

menuitem_20,menuitem_30,

menuitem_40,menuitem_50,

菜单

JMenuItem

menuitem_exit,menuitem_infor

快捷菜单

JPopupMenu

Popupmenu

颜色菜单项

JMenuItem

menuitem_red,menuitem_green,

menuitem_blue,menuitem_pink

menuitem_yellow

对话框

JDialog

Dialog,dialog1

对话框按钮

JButton

Button_seek

查找文本条

JTextArea

Textfield_seek

标签

JLabel

Label_seek,label_infor

文件名

String

Seek

(3)方法见表2

表2Myd方法

方法名

功能

备注

Myd

创建文本编辑器

构造方法

Dialog

创建对话框

 

Dialog1

创建对话框1

 

addMenu

添加菜单栏菜单项

 

writeToFile

向文本区写文件

 

readFromFile

读文件

 

openDialog

打开文件

 

saveDialog

保存对话框

 

actionPerformed

事件处理

 

itemStateChanged

ItemListener事件处理方法

 

mouseClicked

鼠标处理事件

接口方法

mouseEvent

鼠标处理事件

接口方法

mouseReleased

鼠标处理事件

接口方法

mouseEntered

鼠标处理事件

接口方法

mouseExit

鼠标处理事件

接口方法

mouseDragged

鼠标处理事件

接口方法

Main

程序开始运行

 

2.3详细设计

importjava.awt.*;

importjava.awt.event.*;

importjava.lang.*;

importjavax.swing.*;

publicclassdextendsFrame

{

//声明三个面板的布局

GridLayoutgl1,gl2,gl3;

Panelp0,p1,p2,p3;

JTextFieldtf1;

TextFieldtf2;

Buttonb0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;

StringBufferstr;//显示屏所显示的字符串

doublex,y;//x和y都是运算数

intz;//Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"

staticdoublem;//记忆的数字

publicd()

{

gl1=newGridLayout(1,4,10,0);//实例化三个面板的布局

gl2=newGridLayout(4,1,0,15);

gl3=newGridLayout(4,5,10,15);

tf1=newJTextField(27);//显示屏

tf1.setHorizontalAlignment(JTextField.RIGHT);

tf1.setEnabled(false);

tf1.setText("0");

tf2=newTextField(10);//显示记忆的索引值

tf2.setEditable(false);

//实例化所有按钮、设置其前景色并注册监听器

b0=newButton("Backspace");

b0.setForeground(Color.red);

b0.addActionListener(newBt());

b1=newButton("CE");

b1.setForeground(Color.red);

b1.addActionListener(newBt());

b2=newButton("C");

b2.setForeground(Color.red);

b2.addActionListener(newBt());

b3=newButton("MC");

b3.setForeground(Color.red);

b3.addActionListener(newBt());

b4=newButton("MR");

b4.setForeground(Color.red);

b4.addActionListener(newBt());

b5=newButton("MS");

b5.setForeground(Color.red);

b5.addActionListener(newBt());

b6=newButton("M+");

b6.setForeground(Color.red);

b6.addActionListener(newBt());

b7=newButton("7");

b7.setForeground(Color.blue);

b7.addActionListener(newBt());

b8=newButton("8");

b8.setForeground(Color.blue);

b8.addActionListener(newBt());

b9=newButton("9");

b9.setForeground(Color.blue);

b9.addActionListener(newBt());

b10=newButton("/");

b10.setForeground(Color.red);

b10.addActionListener(newBt());

b11=newButton("sqrt");

b11.setForeground(Color.blue);

b11.addActionListener(newBt());

b12=newButton("4");

b12.setForeground(Color.blue);

b12.addActionListener(newBt());

b13=newButton("5");

b13.setForeground(Color.blue);

b13.addActionListener(newBt());

b14=newButton("6");

b14.setForeground(Color.blue);

b14.addActionListener(newBt());

b15=newButton("*");

b15.setForeground(Color.red);

b15.addActionListener(newBt());

b16=newButton("%");

b16.setForeground(Color.blue);

b16.addActionListener(newBt());

b17=newButton("1");

b17.setForeground(Color.blue);

b17.addActionListener(newBt());

b18=newButton("2");

b18.setForeground(Color.blue);

b18.addActionListener(newBt());

b19=newButton("3");

b19.setForeground(Color.blue);

b19.addActionListener(newBt());

b20=newButton("-");

b20.setForeground(Color.red);

b20.addActionListener(newBt());

b21=newButton("1/X");

b21.setForeground(Color.blue);

b21.addActionListener(newBt());

b22=newButton("0");

b22.setForeground(Color.blue);

b22.addActionListener(newBt());

b23=newButton("+/-");

b23.setForeground(Color.blue);

b23.addActionListener(newBt());

b24=newButton(".");

b24.setForeground(Color.blue);

b24.addActionListener(newBt());

b25=newButton("+");

b25.setForeground(Color.red);

b25.addActionListener(newBt());

b26=newButton("=");

b26.setForeground(Color.red);

b26.addActionListener(newBt());

//实例化四个面板

p0=newPanel();

p1=newPanel();

p2=newPanel();

p3=newPanel();

//创建一个空字符串缓冲区

str=newStringBuffer();

//添加面板p0中的组件和设置其在框架中的位置和大小

p0.add(tf1);

p0.setBounds(10,25,300,40);

//添加面板p1中的组件和设置其在框架中的位置和大小

p1.setLayout(gl1);

p1.add(tf2);

p1.add(b0);

p1.add(b1);

p1.add(b2);

p1.setBounds(10,65,300,25);

//添加面板p2中的组件并设置其的框架中的位置和大小

p2.setLayout(gl2);

p2.add(b3);

p2.add(b4);

p2.add(b5);

p2.add(b6);

p2.setBounds(10,110,40,150);

//添加面板p3中的组件并设置其在框架中的位置和大小

p3.setLayout(gl3);//设置p3的布局

p3.add(b7);

p3.add(b8);

p3.add(b9);

p3.add(b10);

p3.add(b11);

p3.add(b12);

p3.add(b13);

p3.add(b14);

p3.add(b15);

p3.add(b16);

p3.add(b17);

p3.add(b18);

p3.add(b19);

p3.add(b20);

p3.add(b21);

p3.add(b22);

p3.add(b23);

p3.add(b24);

p3.add(b25);

p3.add(b26);

p3.setBounds(60,110,250,150);

//设置框架中的布局为空布局并添加4个面板

setLayout(null);

add(p0);

add(p1);

add(p2);

add(p3);

setResizable(false);//禁止调整框架的大小

//匿名类关闭窗口

addWindowListener(newWindowAdapter(){

publicvoidwindowClosing(WindowEvente1)

{

System.exit(0);

}

});

setBackground(Color.lightGray);

setBounds(100,100,320,280);

setVisible(true);

}

//构造监听器

classBtimplementsActionListener

{

publicvoidactionPerformed(ActionEvente2)

{

try{

if(e2.getSource()==b1)//选择"CE"清零

{

tf1.setText("0");//把显示屏清零

str.setLength(0);//清空字符串缓冲区以准备接收新的输入运算数

}

elseif(e2.getSource()==b2)//选择"C"清零

{

tf1.setText("0");//把显示屏清零

str.setLength(0);

}

elseif(e2.getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText(""+(-x));

}

elseif(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);//清空缓冲区以便接收新的另一个运算数

y=0d;

z=0;

}

elseif(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=1;

}

elseif(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=2;

}

elseif(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值

{

x=Double.parseDouble(tf1.getText().trim());

str.setLength(0);

y=0d;

z=3;

}

elseif(e2.getSource()==b26)//单击等号按钮输出计算结果

{

str.setLength(0);

switch(z)

{

case0:

tf1.setText(""+(x+y));break;

case1:

tf1.setText(""+(x-y));break;

case2:

tf1.setText(""+(x*y));break;

case3:

tf1.setText(""+(x/y));break;

}

}

elseif(e2.getSource()==b24)//单击"."按钮输入小数

{

if(tf1.getText().trim().indexOf('.')!

=-1)//判断字符串中是否已经包含了小数点

{

}

else//如果没数点有小

{

if(tf1.getText().trim().equals("0"))//如果初时显示为0

{

str.setLength(0);

tf1.setText((str.append("0"+e2.getActionCommand())).toString());

}

elseif(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作

{

}

else

{

tf1.setText(str.append(e2.getActionCommand()).toString());

}

}

y=0d;

}

elseif(e2.getSource()==b11)//求平方根

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText("数字格式异常");

if(x<0)

tf1.setText("负数没有平方根");

else

tf1.setText(""+Math.sqrt(x));

str.setLength(0);

y=0d;

}

elseif(e2.getSource()==b16)//单击了"%"按钮

{

x=Double.parseDouble(tf1.getText().trim());

tf1.setText(""+(0.01*x));

str.setLength(0);

y=0d;

}

elseif(e2.getSource()==b21)//单击了"1/X"按钮

{

x=Double.parseDouble(tf1.getText().trim());

if(x==0)

{

tf1.setText("除数不能为零"

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

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1