太原理工大学Java实验报告Word文档格式.docx
《太原理工大学Java实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《太原理工大学Java实验报告Word文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
4.使用for循环语句输出习题3.5中的图案。
5.完成习题3.9的编程、调试与运行。
6.完成习题4.5和4.7的编程、调试与运行。
主要仪器设备
台式或笔记本计算机
实验记录(写出实验内容中3,5,6的程序代码和运行结果)(可分栏或加页)
2.7程序代码
importjava.util.Scanner;
publicclassDataType
{
publicstaticvoidmain(String[]args)
{
Scannerin=newScanner(System.in);
System.out.print("
请输入一个long型数据(输完按enter结束):
"
);
longa=in.nextLong();
请输入一个float型数据(输完按enter结束):
floatb=in.nextFloat();
请输入一个double型数据(输完按enter结束):
doublec=in.nextDouble();
System.out.println("
long:
+a);
float:
+b);
double:
+c);
}
}
运行结果
3.9程序代码
publicclassValueFore
intn;
ValueFore()
this.n=calculateN();
doublestackBy(intn)
inti;
doubles=1;
for(i=1;
i<
=n;
i++)
{
s*=i;
}
returns;
doubleoverlap()
doublesum=1;
=this.n;
sum+=1/stackBy(i);
returnsum;
intcalculateN()
inti=1;
doublea=in.nextDouble();
while(1/stackBy(i)>
a)
i++;
returni;
booleanb=true;
while(b)
System.out.println("
请选择菜单:
1.计算不同精度的e值"
2.退出"
switch(in.nextByte())
{
case1:
{
System.out.println("
请输入精度(例如:
1e-3,表示0.001):
ValueForea=newValueFore();
e="
+a.overlap());
};
break;
case2:
b=false;
}
说明:
没有按书中的要求去求,但是这个程序功能更强,运用了菜单的方式,使用程序的人能求出不同精度的e值。
4.5程序代码
publicclassStringText
Stringstr1="
Iam"
;
Stringstr2="
astudent"
Stringstr3="
我是中国人"
StringBufferstr=newStringBuffer();
str.append(str1).append(str2).append(str3);
System.out.println(str);
System.out.println(str.charAt(8));
System.out.println(str.charAt(16));
4.7程序代码
publicclassTriangle
voidprintTriangle(introw)
inti,j;
int[][]a=newint[row][];
for(i=0;
row;
a[i]=newint[i+1];
a[i][0]=1;
a[i][i]=1;
for(i=2;
for(j=1;
j<
i;
j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
输出杨辉三角为:
for(j=row-1;
j>
j--)
System.out.print("
\t"
for(j=0;
=i;
System.out.print(a[i][j]);
if(i!
=0)
System.out.print("
\t\t"
\n"
Trianglenum=newTriangle();
请输入杨辉三角的行数:
num.printTriangle(in.nextByte());
这个程序同样也具有一定的灵活行,随意输出杨辉三角的行数就就可以得到不同的杨辉三角,比如输入6,得到如下结果:
遇到的问题和解决方法
编写求e值的过程中题中只给出了最后一项的精度,这就要求我们用这一精度去先求出n来,求n就是要解决的问题之一,我用了一个循环,先判断符合不符合精度,如果大于所给精度让初值为1的i自加1;
最后小于精度的那一项停止循环,随之计算出n。
编写杨辉三角的过程中主要是一个排布的过程,因为按题中要求,得输出题中的格式,所以必须在输出的格式中加空格或退格,第二个空格是第一个的二倍,为了看起来比较流畅,我是用加退格,得到运行结果。
心得体会
编写程序是一件令人欣悦的事,当你为解决某个问题绞尽脑汁最后又得到问题的解,那种心情只有自己才知道,我最大的心得就是通过编写简单的程序让我对编写程序有了更高的认识,逻辑上更清晰,增加了个人编程的小技巧,同时更有信心去编写更复杂的程序。
实验二Java面向对象程序设计、异常处理和Applet小程序
1.掌握Java面向对象程序设计中类、继承、包和接口的概念和应用;
2.掌握类变量和实例变量、类方法和实例方法的特点、使用;
3.掌握异常的概念和Java异常处理机制,学会异常处理5个关键字的使用;
4.熟悉Applet小程序的特点和运行过程,掌握Applet程序中常用的方法。
1.完成教材实验4中实验内容
(1)
2.完成教材实验4中实验内容(3)。
3.完成教材实验5中实验内容
(2),指出抛出异常的语句,属于何类异常。
4.完成教材实验5中实验内容(3)。
5.完成教材实验6中实验内容
(2)
实验记录(写出实验内容中1,4,5的程序代码和运行结果)(可分栏或加页)
实验四内容
(1)的程序代码:
importjava.io.*;
publicclassComplex
doublereal,imag;
Complex()
Complex(doublereal,doubleimag)
this.real=real;
this.imag=imag;
voidaddComplex(Complexc1,Complexc2)
this.real=c1.real+c2.real;
this.imag=c1.imag+c2.imag;
("
+this.real+"
"
+this.imag+"
)"
voidminusComplex(Complexc1,Complexc2)
this.real=c1.real-c2.real;
this.imag=c1.imag-c2.imag;
voidmultiplyComplex(Complexc1,Complexc2)
this.real=c1.real*c2.real-c1.imag*c2.imag;
this.imag=c1.real*c2.imag+c1.imag*c2.real;
publicstaticvoidmain(String[]args)throwsIOException
Scannerin=newScanner(System.in);
请输入第一个复数的实部和虚部并用空格隔开:
Complexc1=newComplex(in.nextDouble(),in.nextDouble());
\n请输入第二个复数的实部和虚部并用空格隔开:
Complexc2=newComplex(in.nextDouble(),in.nextDouble());
Complexc=newComplex();
booleana=true;
while(a)
1.复数加法"
2.复数减法"
3.复数乘法"
4.退出"
case1:
c.addComplex(c1,c2);
case2:
c.minusComplex(c1,c2);
case3:
c.multiplyComplex(c1,c2);
case4:
a=false;
输入的数可以是在精度范围内的任何实数,先输入两个复数后然后就可以通过菜单提示的功能去选择是要做加,减,乘,还是退出程序,比书中的要求的相对灵活一些。
实验四内容(3)的程序代码:
packagemymaths;
publicinterfaceMaxMinValue
doubleseekMax(doublea,doubleb,doublec);
doubleseekMin(doublea,doubleb,doublec);
publicclassSeekMaxMinValueimplementsMaxMinValue
doublemax,min;
publicdoubleseekMax(doublea,doubleb,doublec)
this.max=a>
b?
a:
(b>
c?
b:
c);
returnthis.max;
publicdoubleseekMin(doublea,doubleb,doublec)
this.min=a<
(b<
returnthis.min;
publicclassExample
MaxMinValuenum=newSeekMaxMinValue();
1.取最大值"
2.取最小值"
3.退出"
System.out.print("
输入要比较的三个数并用空格隔开:
System.out.println("
Max="
+num.seekMax(in.nextDouble(),in.nextDouble(),in.nextDouble()));
Min="
+num.seekMin(in.nextDouble(),in.nextDouble(),in.nextDouble()));
有些繁琐,但根据提示进行就可以了
实验五内容(三)程序:
publicclassBank
Stringname;
longremainder;
Bank(Stringname,longremainder)
this.name=name;
this.remainder=remainder;
longwithdraeal(longgetMoney)throwsInsufficientFundsException
try
this.remainder=this.remainder-getMoney;
if(this.remainder<
0)
thrownewInsufficientFundsException("
尊敬的"
+this.name+"
您的余额不足"
returnthis.remainder;
catch(InsufficientFundsExceptione)
System.out.println(e.getMessage());
returnthis.remainder=this.remainder+getMoney;
publicstaticvoidmain(String[]args)throwsInsufficientFundsException
请输入您的姓名和存款金额并用空格或回车隔开:
Bankuser=newBank(in.next(),in.nextLong());
1.取款"
请输入您要取款的金额(输完之后按enter结束):
您的卡上余额:
+user.withdraeal(in.nextLong()));
classInsufficientFundsExceptionextendsException
publicInsufficientFundsException(Stringmsg)
super(msg);
书中要求的也没有这么多功能,为了熟悉而加了这些必要的功能,从上述输入的数据中可以看书程序可以解决取钱以后卡上余额的显示,并且继续取还是取余额的钱,当余额不足是会提示信息,并且自己的余额不会变,还可以继续取钱。
实验六内容
(二)程序:
importjava.applet.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassTest1extendsAppletimplementsActionListener
Buttonb=newButton("
change"
Buttonb1=newButton("
change1"
publicvoidinit()
add(b);
add(b1);
b.addActionListener(this);
b1.addActionListener(this);
publicvoidpaint(Graphicsg)
Fontf=newFont("
宋体"
Font.PLAIN,18);
g.setFont(f);
g.setColor(Color.blue);
g.drawString("
Pleaselookatme."
0,30);
publicvoidactionPerformed(ActionEvente)
if(e.getSource()==b)
Graphicsg=getGraphics();
楷体"
g.setColor(Color.black);
0,60);
if(e.getSource()==b1)
Font.PLAIN+Font.ITALIC,18);
g.setColor(Color.green);
0,90);
按钮change按下出来黑字体,按钮change1按下出来绿色字体。
编程过程中遇到结果不一致的情况比较多,比如说银行系统中取走钱后余额是正确的,在取钱时余额又回到了刚开始存的钱,解决这些问题中用的最多的是this的变化,在编写复数是this用的相对也是比较多的,显示了其较高的灵活性!
在编完银行系统时感觉很有成就感,在调试过程中都能按自己的要求去执行,再次提升了我个人对编程的兴趣,小程序我感觉编写的还不够好,只是做到了简单的要求,我想再给我点儿时间会编的更好!
实验三图形用户界面、多线程和多媒体编程
1.掌握文本组件、按钮和单、复选按钮组件的使用;
掌握列表的使用,鼠标、键盘事件的处理;
掌握布局控制的方法;
2.掌握线程的概念、线程的生命周期;
掌握采用扩展Thread类和实现Runnable接口的多线程编程方法;
3.掌握Java中声音播放、图形绘制和显示图像的程序设计方法;
1.编写一个Applet程序响应鼠标事件,当鼠标事件发生时,在状态栏显示相应的