java课程设计实验报告.docx

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

java课程设计实验报告.docx

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

java课程设计实验报告.docx

java课程设计实验报告

一实验目的

加深学生对课堂讲授内容的理解,从计算机语言的基本概念、程序设计的基本方法、语法规则等方面加深理解,打好程序设计、开发软件的良好基础。

在上机实验中,提高学生对Java语言各部分内容的综合使用能力,逐步掌握Java语言程序设计的规律与技巧。

在对Java程序的调试过程中,提高学生分析程序中出现的错误和排除这些错误的能力。

通过上机实践,加深学生对计算机软件运行环境,以及对操作系统与计算机语言支持系统相互关系的了解。

二、实验要求

(1)问题描述准确、规范;

(2)程序结构合理,调试数据准确、有代表性;

(3)界面布局整齐,人机交互方便;

(4)输出结果正确;

(5)正确撰写实验报告。

三、设计内容

1、计算器

计算器要有GUI界面,用户可以输入所需计算的数值,可以进行加、减、乘、除四种最基本的运算和混合运算,可以求一个数值的平方及倒数,可以进行阶乘运算,要能运算小数,并且不会产生精度损失,在必要情况下,可以进行四舍五入的运算。

允许正负数间的运算。

要求使用Applet实现该计算器,当用浏览器运行程序时,点击网页中的按钮,则计算器弹出,浮在网页上,再次点击按钮时,计算器消失。

2、文本编辑器

可以设置文本的字体、大小、颜色等基本参数,可以读取计算机中TXT文件,可以生成一个新的TXT文件。

其他功能参照windows的文本编辑器。

四.实验步骤

(1)上机实验之前,为课程设计的内容作好充分准备。

对每次上机需要完成的任务进行认真的分析,画出程序流程图,手工写出符合任务要求的程序清单,准备出调试程序使用的数据,以便提高上机实验的效率。

(2)按照实验目的和实验内容进行上机操作。

录入程序,编译调试,反复修改,直到使程序正常运行,得出正确的输出结果为止。

(3)根据实验结果,写出实验报告。

五.源代码及运行结果

1.计算器源代码

importjava.awt.*;

importjava.awt.event.*;

importjava.lang.*;

importjavax.swing.*;

publicclassjisuanqiextendsWindowAdapter

{

//创建三个面板

Panelp1=newPanel();

Panelp2=newPanel();

Panelp3=newPanel();

TextFieldtxt;

privateButton[]b=newButton[21];

privateStringss[]={"7","8","9","/","清空","4","5","6","*","1/x","1","2",

"3","-","平方","0",".","=","+","n!

","关闭"};

staticdoublea,sum=1;

staticStrings,str;//定义变量创建对像

//创建文本框

publicstaticvoidmain(Stringargs[])

{

(newjisuanqi()).frame();

}

publicvoidframe()

{

//设置文本框的名称

Framefm=newFrame("简单计算器");

for(inti=0;i<=20;i++)

{

b[i]=newButton(ss[i]);

}

for(inti=0;i<=19;i++)

{

p2.add(b[i]);//创建按钮并添加到P2

}

//按钮20背景色黄色

b[20].setBackground(Color.yellow);

txt=newTextField("");

txt.setEditable(false);//不能编辑文本框里面的内容

txt.setBackground(Color.white);

for(inti=0;i<=20;i++)

{

b[i].addActionListener(newbuttonlistener());//添加监听器

}

//设置关闭按钮

b[20].addActionListener(newclose());

fm.addWindowListener(this);

p1.setLayout(newBorderLayout());//设置布局管理器

p1.add(txt,"North");//p1面板放到区域南部

p2.setLayout(newGridLayout(4,5,2,2));//布局:

四行五列,间隔为二

p2.setBackground(Color.red);

p3.setLayout(newBorderLayout());

p3.add(b[20]);

将三个面板分别放到不同位置

fm.add(p1,"North");

fm.add(p2,"Center");

fm.add(p3,"South");

fm.pack();

fm.setVisible(true);//都是些窗中设置添加相关组件和监听器

}

publicvoidwindowClosing(WindowEvente){

System.exit(0);//退出系统

}

classbuttonlistenerimplementsActionListener

{

//编写监听器事件通过按键得出给果

publicvoidactionPerformed(ActionEvente)

{

Buttonbtn=(Button)e.getSource();

if(btn.getLabel()=="=")

{

jisuan();

str=String.valueOf(a);

txt.setText(str);//显示当前数字

s="";//清零

}

elseif

(btn.getLabel()=="+")

{

//设置一个方法

jisuan();

txt.setText("");

s="+";

}

elseif

(btn.getLabel()=="-")

{

jisuan();

txt.setText("");

s="-";

}

elseif

(btn.getLabel()=="/")

{

jisuan();

txt.setText("");

s="/";

}

elseif

(btn.getLabel()=="*")

{

jisuan();

txt.setText("");

s="*";

}

elseif

(btn.getLabel()=="平方")

{

a=Double.parseDouble(txt.getText());

a*=a;

txt.setText(""+String.valueOf(a));

}

elseif

(btn.getLabel()=="n!

")

{

a=Double.parseDouble(txt.getText());

sum=1;

for(inti=1;i<=a;i++)

sum=sum*i;

txt.setText(""+String.valueOf(sum));

}

elseif

btn.getLabel()=="1/x")

{

a=Double.parseDouble(txt.getText());

txt.setText(""+String.valueOf(1/a));

}

else

{

txt.setText(txt.getText()+btn.getLabel());

if(btn.getLabel()=="清空")

txt.setText("");

}

}

publicvoidjisuan(){//编写具体计算方法

if(s=="+")

a+=Double.parseDouble(txt.getText());

elseif(s=="-")

a-=Double.parseDouble(txt.getText());

elseif(s=="*")

a*=Double.parseDouble(txt.getText());

elseif(s=="/")

a/=Double.parseDouble(txt.getText());

else

a=Double.parseDouble(txt.getText());

}

}

}

classcloseimplementsActionListener

{

//退出

publicvoidactionPerformed(ActionEvente)

{

System.exit(0);

}

}

.2.计算器运行界面

(1)计算器主界面

(2)面板的实现

1.创建三个面板分别是显示数字的面板、按钮的面板和“关闭”的面板

Panelp1=newPanel();

Panelp2=newPanel();

Panelp3=newPanel();

2.创建一个文本框参数

TextFieldtxt;

3.创建一群按钮参数并给按钮赋值

privateButton[]b=newButton[21];

privateStringss[]={"7","8","9","/","清空","4","5","6","*","1/x","1","2",

"3","-","平方","0",".","=","+","n!

","关闭"};

4.创建文本框

publicstaticvoidmain(Stringargs[])

{

(newjisuanqi()).frame();

}

5.设置文本框方法

publicvoidframe()

{

//设置文本框的名称

Framefm=newFrame("简单计算器");

6.设置按钮

for(inti=0;i<=20;i++)

{

b[i]=newButton(ss[i]);

}

7.设将按钮添加到面板

for(inti=0;i<=19;i++)

{

p2.add(b[i]);//创建按钮并添加到P2

}

8.设置按钮20背景色黄色

b[20].setBackground(Color.yellow);

9.创建文本框,并规定不能编辑内容和背景为白色

txt=newTextField("");

txt.setEditable(false);

txt.setBackground(Color.white);

10.为按钮添加监听器

for(inti=0;i<=20;i++)

{

b[i].addActionListener(newbuttonlistener());//添加监听器

}

11.设置“关闭”按钮可以关闭界面并设置监听器

b[20].addActionListener(newclose());

fm.addWindowListener(this);

12.设置布局

p1.setLayout(newBorderLayout());//设置布局管理器

p1.add(txt,"North");//p1面板放到区域南部

p2.setLayout(newGridLayout(4,5,2,2));//布局:

四行五列,间隔为二

p2.setBackground(Color.red);

p3.setLayout(newBorderLayout());

p3.add(b[20]);

13.将三个面板分别放到不同位置

fm.add(p1,"North");

fm.add(p2,"Center");

fm.add(p3,"South");

fm.pack();

fm.setVisible(true);//都是些窗中设置添加相关组件和监听器

}

14.退出系统

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

(3)将按钮添加到计算这个事件中

1.编写监听器事件通过按键得出给果

publicvoidactionPerformed(ActionEvente)

{

//将按钮赋予这个事件中

Buttonbtn=(Button)e.getSource();

2.如果点击“=”这个按钮,将出现当前数字

if(btn.getLabel()=="=")

{

jisuan();

str=String.valueOf(a);

txt.setText(str);//显示当前数字

s="";//清零

}

3.如果点击“+”“-”“*”“/”分别完成一个方法并将结果显示到文本框

elseif

(btn.getLabel()=="+")

{

//设置一个方法

jisuan();

txt.setText("");

s="+";

}

elseif

(btn.getLabel()=="-")

{

jisuan();

txt.setText("");

s="-";

}

elseif

(btn.getLabel()=="/")

{

jisuan();

txt.setText("");

s="/";

}

elseif

(btn.getLabel()=="*")

{

jisuan();

txt.setText("");

s="*";

}

4.如果点击“平方”则当前数字与原数字形成即完成相关方法

结果显示最终的数字

elseif

(btn.getLabel()=="平方")

{

a=Double.parseDouble(txt.getText());

a*=a;

txt.setText(""+String.valueOf(a));//显示a

}

5.当输入“n!

”,就用for循环完成阶乘,此方法属于c语言基础方法,

不做相关解释

elseif

(btn.getLabel()=="n!

")

{

a=Double.parseDouble(txt.getText());

sum=1;//归一

for(inti=1;i<=a;i++)

sum=sum*i;

txt.setText(""+String.valueOf(sum));//文本框中显示“sum”的数值

}

6.当输入“1/x”时,显示1/a。

elseif

btn.getLabel()=="1/x")

{

a=Double.parseDouble(txt.getText());

txt.setText(""+String.valueOf(1/a));

}

7.如果输入“清空”文本框成为空文本框

else

{

txt.setText(txt.getText()+btn.getLabel());

if(btn.getLabel()=="清空")

txt.setText("");

}

(4)设置“jisuan”方法

1.编写具体计算方法其实这些方法可以放到上面事件的实现中,从“平方”,“n!

”,“1/x”就可以看出。

但为了程序的美观和高识别性,我们传建一个方法来实现

if(s=="+")

a+=Double.parseDouble(txt.getText());

elseif(s=="-")

a-=Double.parseDouble(txt.getText());

elseif(s=="*")

a*=Double.parseDouble(txt.getText());

elseif(s=="/")

a/=Double.parseDouble(txt.getText());

else

a=Double.parseDouble(txt.getText());

3.文本编辑器源代码

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjavax.swing.event.*;

importjava.io.*;

publicclassTextEditor

{

publicstaticvoidmain(Stringargs[])

{

TextFrameframe=newTextFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();

}

}

classTextFrameextendsJFrame

{

//文件中的参数

Filefile=null;

staticStringd,k,s;

//编辑中的参数

Stringselected,text;

//格式中的参数

StringsizeNames[]={"5","10","15","20","25","30","35","40","45","50"};

StringcolorNames[]={"黑色","红色","蓝色","绿色","白色","黄色","粉红"};

StringfontNames[]={"宋体","华文行楷","隶书","黑体","仿宋","华文彩云","楷体","方正姚体"};

StringstyleNames[]={"粗体","斜体"};

publicTextFrame()

{

//设置文本框大小、名称

setTitle("西西牌文本编辑器");

setSize(400,400);

addWindowListener(newLogoutAction());

filechooser=newJFileChooser();//创建一个文件选择器

//创建文本区

t1=newJTextArea(0,0);//面板与文本框无间隙

scrollPane=newJScrollPane(t1);//设置滚动条

getContentPane().add(scrollPane);

//创建菜单栏

menuBar=newJMenuBar();

setJMenuBar(menuBar);

//文件

files=newJMenu("文件(F)");

files.setMnemonic('F');//设置快捷键

newItem=newJMenuItem("新建(N)",'N');

openItem=newJMenuItem("打开(O)...",'O');

saveItem=newJMenuItem("保存(S)",'S');

exitItem=newJMenuItem("退出(E)",'E');

//设置监听器

newItem.addActionListener(newFileListener());

openItem.addActionListener(newFileListener());

saveItem.addActionListener(newFileListener());

exitItem.addActionListener(newFileListener());

//设置加速器

newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

//添加按钮到文件菜单栏

files.add(newItem);

files.add(openItem);

files.add(saveItem);

files.add(exitItem);

//编辑

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

edit.setMnemonic('E');

//创建菜单项

cutItem=newJMenuItem("剪切(T)");

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

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

deleteItem=newJMenuItem("删除(L)");

selectAllItem=newJMenuItem("全选(A)");

//设置加速器

cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));

copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));

pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));

deleteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));

selectAllItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));

//设置监听器

cutItem.addActionListener(newEditListener());

copy

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

当前位置:首页 > 表格模板 > 合同协议

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

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