JAVA课程实践报告文档格式.docx
- 文档编号:17666988
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:53
- 大小:819.02KB
JAVA课程实践报告文档格式.docx
《JAVA课程实践报告文档格式.docx》由会员分享,可在线阅读,更多相关《JAVA课程实践报告文档格式.docx(53页珍藏版)》请在冰豆网上搜索。
,j="
+j+"
k="
+k);
booleanb2=i<
j++||j<
--k;
booleanb3=i--<
j|j!
=k--&
j++>
booleanb4=i--<
j||j!
b1="
+b1);
b2="
+b2);
b3="
+b3);
b4="
+b4);
2-4,编程生成Fibonacci数列,该数列定义为:
F1=f2=1,Fn=Fn-1+Fn-2(n>
=3)
代码清单:
importjava.util.Scanner;
publicclassFibonacci{
publicstaticvoidmain(String[]args){
System.out.print("
请输入Fibonacci数列长度:
"
);
Scannerconsole=newScanner(System.in);
intn=console.nextInt();
System.out.println("
正在处理中>
int[]f=newint[n];
f[0]=f[1]=1;
for(inti=2;
f.length;
i++){
f[i]=f[i-1]+f[i-2];
System.out.print(“11”+f[i]+"
"
}
}
调试过程如下:
查看代码知道:
类名Fibnacci写成Fibonacco造成的错误。
修改后调试结果如下:
由于没有将第一个和第二个输出,所以出现缺少前两个,修改调试如下
2-5,编程求出自然数101~205中所有素数。
算法分析:
质数(又称为素数)
1.就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,这种整数叫做质数或素数。
还可以说成质数只有1和它本身两个约数。
2.素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任
何其它两个整数的乘积。
所谓质数或称素数,就是一个正整数,除了本身和1以外并没有任何其他因子。
例如2,3,5,7是质数,而4,6,8,9则不是,后者称为合成数或合数。
从这个观点可将整数分为两种,一种叫质数,一种叫合成数。
(有人认为数目字1不该称为质数)著名的高斯「唯一分解定理」说,任何一个整数。
可以写成一串质数相乘的积。
代码如下publicclassSushu{
publicstaticvoidmain(String[]args){
System.out.println("
正在处理中
>
for(intnum=101;
num<
206;
num++){
booleanisNumber=true;
for(inti=2;
=num/2;
if(num%i==0){
isNumber=false;
break;
}
}
if(isNumber)
System.out.print(num+"
调试过程如下:
原因是将system.out.println语句放在循环体内,将其改到循环体外即可。
,如图
2-6,使用switch语句根据考试成绩等级输出百分制的分数段。
规定如下:
A,85~100B,70~84C,60~69D,<
60
问题分析:
关键是怎样使用switch语句,考察对switch的使用。
Switch又称开关语句,该语句是一条多重选择的语句,它可用来实现多分支处理。
开关语句处理过程如下:
Switch(表达式){
case1:
………
case2………
………………
case…………
default:
…….
代码清单如下:
publicclassSwitch{
publicstaticvoidmain(String[]args){
Scannerconsole=newScanner(System.in);
System.out.print("
请输入考试等级(A,B,C,D中的一个):
Stringgrade=console.nextLine();
switch(grade){
case"
A"
:
System.out.println("
您的分数在85--100之间"
break;
B"
您的分数在70--84之间"
break;
case"
C"
您的分数在60--69之间"
D"
您的分数在0--60之间"
default:
Youhadtypedawrongcharacter!
}
}
调试如下:
原因:
源代码中的class写成calss了,改后结果如下:
将‘A’中单引号‘’改成双引号“”即可,改后调试如下:
2-7,百鸡百钱问题,公鸡每只3元,母鸡每只5元,小鸡3只1元,用100元钱买100只鸡,公鸡,母鸡,小鸡应各买多少?
问题分析:
其实就是解三元二次方程组:
x+y+z=100
3x+5y+z/3=100
隐含条件(z%3==0)
代码清单如下:
publicclasshens{
publicstaticvoidmain(String[]args){
intchicken,hen,little;
for(chicken=1;
chicken<
=100;
chicken++){
for(hen=1;
hen<
hen++){
for(little=1;
little<
little++)
if(chicken+hen+little==100&
3*chicken+5*hen+(little/3)==100&
little%3==0)
System.out.println("
公鸡"
+chicken+"
母鸡"
+hen+"
小鸡"
+little);
}
代码调试如下:
2-8,编程输出如图所示的图形。
*
***
****
*****
******
本题需要三个循环变量i,j,k分别控制行数,空格数,以及打印个数
1,打印5行,所以for(i=0;
5;
i++)用来控制行的总数
2,用j控制空格数,for(j=0;
j<
5-i)System.out.println(“”);
3,用k控制打印*数,for(k=0;
k<
2*i-1;
k++)System.out.println(“*”);
4,优化:
让金字塔在中间输出,需要将中j<
5-i改成j<
5-i+num,num可为任意数
代码清单:
publicclassPrint{
inti,j,k;
for(i=0;
i++){//行数
for(j=0;
5-i+7;
j++)//控制空格数
System.out.print("
for(k=0;
k++)//控制*个数
*"
System.out.println();
//换行
调式如下:
在最后一个for循环后加句System.out.println();
即可,用于换行
优化后for(j=0;
j++);
2-5,分析下列程序段有何错误,改正后上机验证
(1)inti=5;
do
{
System.out.println(i);
i--;
}while(i=2)//i==2
(2)intsum=0;
for(inti=10;
0;
i--)//i>
sum+=i;
(3)intfac=1;
//再定义j=2
for(inti=1;
4;
i++)
while(i>
1)//修改为j>
1
fac*=i--;
System.out.println(fac);
(4)inta=3,b=5;
switch(b-a)
case2:
2"
case1:
1"
casea+b:
a+b"
//将a+b改成数字3
casea:
a"
//将a改成数字4
(5)longd=0;
//将d=1;
for(inti=10;
i>
=1;
d*=i;
这个是求10!
的程序段
解答:
用红色字修改的即为答案
(1)代码如下
结果如下:
(2)代码如下:
(3)代码如下:
(4)代码如下:
结果如下
(5)代码如下:
Exam3_2.例举一个有关不同变量的例子。
通过分析Exam3-2.java程序。
回答所提问题。
classvar{
staticinta;
intb;
publicvoidintprint(){
intc=0;
++a;
++b;
++c;
a="
+a);
b="
+b);
c="
+c);
publicvoidallprint(){
intprint();
classExam3_2{
publicstaticvoidmain(String[]args){
varv1=newvar();
varv2=newvar();
v1.allprint();
v2.allprint();
该程序由两个类组成的,其中有一个含有main()方法的主类。
通过分析该程序,回答如下4个问题:
1类var中定义了两个变量a和b。
这两个变量有什么不同?
答:
a属于静态整形变量,b属于整形变量
2类var中变量b和方法intprint()中变量c有何不同?
变量b的作用于var整个类中,c仅作用于print()这个函数内
3类var的访问控制权限如何?
如果加上访问控制符private,会出现什么结果?
答:
具有包访问性,。
可被同一个包的其他类访问,加上private,则编译出错
4分析输出结果。
分析如下:
当程序进入到varv1=newvar();
时,执行++a,b++,c++,此时a=1b=1并输出a=1b=1c=1;
当程序进入到varv2=newvar();
由于a是静态变量所以a由1增加到2,b的由1到2(仍属于var类,创建另一个对象v2),c的值仍是++c,等于1;
当程序进入到v1.allprint();
调用var类中的allprint()方法输入v1对象的值a=3,b=1c=1
当程序进入到v2.allprint();
调用var类中的allprint()方法输入v2对象的值a=4,b=2c=1
3-1,已知如下有个类:
ClassA{
inta1,a2;
A(intI,intj){
A1=I;
a2=j;
要求编写一个方法swap()用来交换A类的两个对象的成员变量的值。
问题分析:
由题知,首先创建A类的对象obj1,obj2,
然后分别初始化obj1,obj2;
在编写swap()程序,交换俩对象的成员变量
即是将将obj1中的a1和a2与obj2中的a1和a2互换
publicclassExam3_1{
publicstaticvoidmain(String[]args){
Aobj1=newA(3,6);
Aobj2=newA(7,8);
Aobj3=newA(0,0);
obj3.swap(obj1,obj2);
classA{
inta1,a2;
A(inti,intj){
a1=i;
publicvoidswap(Aa,Ab){
System.out.println("
交换前:
obj1:
a1="
+a.a1+"
a2="
+a.a2);
obj2:
+b.a1+"
+b.a2);
Atemp=newA(0,0);
temp.a1=a.a1;
temp.a2=a.a2;
a.a1=b.a1;
a.a2=b.a2;
b.a1=temp.a1;
b.a2=temp.a2;
交换后:
调试过程:
原因是将代码中的System.out.println("
优化后结果如下:
3-2,已知一个类如下所示:
ClassS{
doubler;
编写S类的一个子类,该子类中包含一个计算圆面积的方法area()和一个使用super()初始化S类成员的构造方法。
程序分析:
1,编写一个classCircle继承S,
2,class类中包含:
计算area()和super()初始化S类成员的构造方法
classS{
doubler;
publicS(doublei){
r=i;
}
classCircleextendsS{
publicCircle(doublei){
super(i);
publicdoublearea(){
return3.1415926*r*r;
publicclassExam3_2{
System.out.print("
该圆的面积是:
Circlec=newCircle(5);
System.out.println(c.area());
调试结果:
优化后:
3-4,定义一个复数类complex,内有两个成员变量:
实部和虚部,还有两个方法:
求两个复数和以及两个复数的差。
编程验证该程序的复数加减运算是正确的。
classComplex{
intreal,imag;
publicComplex(inti,intj){
real=i;
imag=j;
publicvoidsum(Complexa,Complexb){
求和前复数1:
+a.real+"
+"
+a.imag+"
i"
复数2:
+b.real+"
+b.imag+"
Complexresult=newComplex(0,0);
result.real=a.real+b.real;
result.imag=a.imag+b.imag;
结果:
+result.real+"
+result.imag+"
publicclassExam3_4{
publicstaticvoidmain(String[]args){
Complexcom1=newComplex(3,6);
Complexcom2=newComplex(6,2);
result.sum(com1,com2);
调试结果:
4-8,绘制矩形的Applet程序,分析输出显示结果。
Applet程序:
importjava.applet.*;
importjava.awt.*;
//加载applet类和Graphics类
publicclassExam4_8extendsApplet{//继承Applet类
publicvoidpaint(Graphicsg){//重写父类中的paint()方法
intx0=10,y0=20,X=150,Y=80,L,c;
intarc=0,N=10;
doublexy=1.0*(X-Y)/N/2;
//定义变量
g.setColor(Color.red);
//调用g对象的g.setColor()方法,并设置为红色
g.fillRect(x0,y0,X,X);
//调用g对象的g.filleRect()方法,绘制矩形
for(inti=0;
+N;
i++){//利用for循环,并调用g.drawRoundRect()方法进行绘制圆角矩形
L=(int)(X-2*i*xy);
arc=Y*i/N;
c=i*240/N;
g.setColor(newColor(c,c,c));
g.drawRoundRect((int)(x0+i*xy),(int)(y0+i*xy),L,L,arc,arc);
g.setColor(Color.blue);
//设置当前颜色为蓝色
g.draw3DRect(200,y0,X,X,true);
//绘制三维矩形,矩形为凸起
g.setColor(Color.green);
//设置当前颜色为绿色
g.fill3DRect(400,y0,Y,Y,true);
//填充三维矩形,矩形为凸起
}
Exam4-9,一个绘制直方图(又称柱状图)的程序。
Applet程序:
packagecom.tarena.worm;
publicclassExam4_9extendsApplet{//继承Applet类
/**
*定义四个数据Data为90.5,50.7,27.8,13.0
*定义四个color分别所对应的颜色为蓝色,红色,黄色,绿色
*定义四个等级degree
*/
doubleData[]={90.5,50.7,27.8,13.0};
Colorcolor[]={Color.blue,Color.red,Color.yellow,Color.green};
intdegree[]=newint[4];
publicvoidinit(){//重写父类中的init()方法
doublesu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程 实践 报告