Java实践报告.docx
《Java实践报告.docx》由会员分享,可在线阅读,更多相关《Java实践报告.docx(27页珍藏版)》请在冰豆网上搜索。
Java实践报告
实验1熟悉JAVA开发环境搭建与使用
一、实验目标:
1)了解掌握java软件的下载方法。
2)熟练掌握在JDK在window环境下的安装以及环境变量的配置方法。
3)熟练掌握java源文件在命令提示符下编译,解析执行的方法。
二、实验学时数:
2学时
三、实验要求:
1)安装JDK并配置好环境变量。
2)测试环境变量是否配置成功。
3)完成实验教材一个简单应用程序的编写,编译,执行的过程。
四、实验步骤及结果
1)实验步骤和源代码
。
。
。
。
。
设置环境变量步骤,以及实验教材一个简单应用程序的完整代码
publicclasshello{
publicstaticvoidmain(Stringargs[]){
Aa=newA();
a.fA();
}
}
classA{
voidfA(){
System.out.println("");
}
}
2)实验运行效果截图()
。
。
。
。
。
JDK安装成功或,java,javac运行截图,应用程序运行结果截图
五、心得体会
学到很多东西
实验2基本数据类型和输入输出练习
一、实验目标:
1)掌握基本数据类型的转换
2)掌握在命令行下数据的输入输出
二、实验学时数:
2学时
三、实验要求:
1)编写一个Java应用程序,该程序在命令行窗口输出阿拉伯数字、英文字母表和俄文字母表。
2)编写一个Java应用程序,用户从键盘上输入数字,程序输出这些数字的累加和、平均值以及乘积结果。
拓展(自行练习):
A)求解方程a*x*x+b*x+c=0的根,从键盘上分别给a,b,c赋值.判断输入的数值是否能使方程成立,成立时求出方程的根并在控制台显示出来,不成立时在控制台显示不成立信息。
B)学习指导P10~12页课本知识拓展
⑴数组的快速复制
⑵多维数组
四、实验步骤及结果
1)程序源代码
。
。
。
题1程序源代码
publicclassa{
publicstaticvoidmain(String[]args)
{
chara='а';
charb='я';
intl=(int)b-(int)a;
intm=0;
charc='a';
chard='z';
intx=(int)d-(int)c;
charf='0';
charg='9';
inty=(int)g-(int)f;
intcc=0;
System.out.println("阿拉伯数字共有:
"+y);
for(inti=(int)f;i<=(int)g;i++)
System.out.print((char)i+"\t");
System.out.println("\n");
System.out.println("英文字母总共有:
"+x);
for(inti=(int)c;i<=(int)d;i++){
cc++;
System.out.print((char)i+"\t");
if(cc==10){
cc=0;
System.out.println("\n");
}
}
System.out.println("\n");
System.out.println("俄文字母总共有:
"+l);
for(inti=(int)a;i<=(int)b;i++){
cc++;
System.out.print((char)i+"\t");
if(cc==10){
cc=0;
System.out.println("\n");
}
}
System.out.println("\n");
}
}
。
。
。
题2程序源代码。
packagemars.y;
importjava.util.*;
publicclassc{
publicstaticvoidmain(Stringargs[]){
Scannerreader=newScanner(System.in);
doublesum=0;
doubleji=1;
intm=0;
while(reader.hasNextDouble()){
doublex=reader.nextDouble();
m=m+1;
sum=sum+x;
ji=ji*x;
}
System.out.printf("%d个数的和为%f\n",m,sum);
System.out.printf("%d个数的积为%f\n",m,ji);
System.out.printf("%d个数的平均值是%f\n",m,sum/m);
}
}
。
。
。
拓展题目源代码(如完成则放进去,拓展题目不做要求)
2)实验运行效果截图
。
。
。
。
。
题1、2运行截图。
。
。
。
(程序运行结果截图中加打印上个人姓名等)
五、心得体会
学到很多东西
实验3表达式与Java控制语句
一、实验目标:
1)了解掌握java表达式以及其求值。
2)熟练掌握java控制语句:
条件分支语句。
3)熟练掌握java控制语句:
循环语句。
二、实验学时数:
2学时
三、实验要求:
1)编写一个Java应用程序,输入一个百分制成绩输出对应等级情况,请分别使用if分支语句、switch语句来实现。
100~90------>A
89~80------>B
79~70------>C
69~60------>D
59~0------>E
2)控制台上的猜数字游戏编程,要求系统随机出一个0~100范围内的猜测数字,然后用户对其进行猜测,电脑把每次输入的数据和猜测数字进行比较,如果输入的数据比猜测数字大,电脑提示猜大了,要求用户重新输入;如输入的数据比猜测数字小,电脑提示猜小了,要求用户重新输入,直到猜对数字为止。
(学习指导p14,3.2.1)
拓展(自行练习):
A)编写一个Java应用程序,使用while循环、for循环计算1~1000之间能被3和7同时整除的整数之和。
B)学习指导课本p15页3.2.2,回文数。
C)学习指导课本p17页arrays类实现数字排序。
四、实验步骤及结果
1)程序源代码
。
。
。
题1程序源代码
Switch:
:
importjava.util.*;
publicclassa{
publicstaticvoidmain(String[]args)
{
Scannerreader=newScanner(System.in);
System.out.println("输入一个数:
");
intn=reader.nextInt();
intm;
m=n/10;
switch(n){
case100:
System.out.printf("%d属于等级A",n);return;
}
switch(m){
case9:
System.out.printf("%d属于等级A",n);
break;
case8:
System.out.printf("%d属于等级B",n);
break;
case7:
System.out.printf("%d属于等级C",n);
break;
case6:
System.out.printf("%d属于等级D",n);
break;
case5:
case4:
case3:
case2:
case1:
case0:
System.out.printf("%d属于等级E",n);
break;
default:
System.out.printf("%d不属于任何等级",n);
}
}
}
If:
:
:
:
importjava.util.*;
publicclassa{
publicstaticvoidmain(String[]args)
{
Scannerreader=newScanner(System.in);
System.out.println("输入一个数:
");
intn=reader.nextInt();
if(90<=n&&n<=100){
System.out.printf("%d属于等级A",n);
}
elseif(80<=n&&n<90){
System.out.printf("%d属于等级B",n);
}
elseif(70<=n&&n<80){
System.out.printf("%d属于等级C",n);
}
elseif(60<=n&&n<70){
System.out.printf("%d属于等级D",n);
}
elseif(0<=n&&n<60){
System.out.printf("%d属于等级E",n);
}
else{
System.out.printf("%d不属于任何等级",n);
}
}
}
。
。
。
题2程序源代码。
importjava.util.*;
publicclassa{
publicstaticvoidmain(Stringargs[]){
System.out.println("给你一个1至100之间的整数,请猜测这个数");
intrealNumber=(int)(Math.random()*100)+1;
intyourGuess=0;
Scannerreader=newScanner(System.in);
System.out.println("输入您的猜测:
");
yourGuess=reader.nextInt();
intz=0;
while(yourGuess!
=realNumber){
if(yourGuess>realNumber){z=z+1;
System.out.println("猜大了,请再猜:
");
yourGuess=reader.nextInt();
}
elseif(yourGuessSystem.out.println("猜小了,请再猜:
");
yourGuess=reader.nextInt();
}
}
System.out.println("猜对了!
");
System.out.printf("猜测数字是%d\n",yourGuess);
z=z+1;
System.out.printf("你猜了%d次",z);
}
}
。
。
。
拓展题目源代码(如完成则放进去,拓展题目不做要求)
2)实验运行效果截图
。
。
。
。
。
题1、2运行截图。
。
。
。
(程序运行结果截图中加打印上个人姓名等)
Switch:
IF
五、心得体会
学到很多东西
实验4类的定义与对象的使用
一、实验目标:
1)类的定义,类的对象的声明、实例化以及通过对象调用方法。
2)静态变量、静态方法的使用(有static 修饰)。
3)包语句定义、包中类的引入
二、实验学时数:
2学时
三、实验要求:
1)有一个类A,有两个成员变量,一个为实例变量floata,另一个为静态变量floatb;有2个set方法来实现对成员变量的赋值;有2个get方法实现对成员变量数值的读取;有2个input方法实现对成员信息的打印。
定义一个主类,使用类A的静态成员,静态方法;实例化类A的对象,通过对象调用类A的方法。
(实验教材P24--4.2.2)
2)定义设计一个Trangle(三角形)类,该类放在tom.jiafei包中,要求包含4个成员变量,三条边sideA,sideB,sideC,、一个布尔值bool(判断是否成为三角形),包含构造函数、求三角形面积的方法getArea和重新设置三角形三条边的方法setLength。
(改进于实验教材p26--4.2.3)
定义个主类,创建Trangle类的对象,调用方法对输入的三条边进行面积计算。
拓展(自行练习):
(理论教材作业题3、4)
a)编写一个类,该类封装了一元二次方程共有的属性和功能,即该类有方程系数的3个成员变量以及计算实根的方法。
要求:
该类的所有对象共享常数项。
(参考理论课本64例4-12)
(类所有对象都能共享----静态,说明成员变量中表示常数项的为静态变量)
b)编写两个类:
A和B,类A创建的对象可以计算两个正整数的最大公约数,类B创建的对象可以计算两个整数的最小公约数。
要求:
类B中的一个成员变量是类A的声明对象(参考理论课本58例4-7)
(分析每个类中需要定义的成员变量,以及方法有那些)
四、实验步骤及结果
1)程序源代码
。
。
。
题1程序源代码
classA{
floata;
staticfloatb;
voidsetA(floata){
this.a=a;
}
voidsetB(floatb){
this.b=b;
}
floatgetA(){
returna;
}
floatgetB(){
returnb;
}
voidinputA(){
System.out.println(a);
}
staticvoidinputB(){
System.out.println(b);
}
}
publicclassbb{
publicstaticvoidmain(Stringargs[]){
A.b=100;
A.inputB();
Acat=newA();
Adog=newA();
cat.setA(200);
cat.setB(400);
dog.setA(200);
dog.setB(900);
cat.inputA();
cat.inputB();
dog.inputA();
dog.inputB();
}
}
。
。
。
题2程序源代码。
packagewode.nide;
importjava.util.*;
publicclassaa{
doublesideA,sideB,sideC;
booleanboo=true;
publicaa(){
this.sideA=sideA;this.sideB=sideB;this.sideC=sideC;
}
publicvoidsetLength(){
do
{
Scannerd=newScanner(System.in);
System.out.println("请输入边长:
");
System.out.print("a=");
sideA=d.nextDouble();
System.out.print("b=");
sideB=d.nextDouble();
System.out.print("c=");
sideC=d.nextDouble();
panduan();
if(boo==false)
System.out.println("不可计算面积请再次输入");
}
while(boo==false);
System.out.println("我的面积是:
"+getArea());
}
publicdoublegetArea(){
doubles=(sideA+sideB+sideC)/2;
doublearea=Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
returnarea;
}
publicvoidpanduan(){
if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideC+sideB>sideA){
System.out.println("我是三角形边长为"+"a="+sideA+"b="+sideB+"c="+sideC);
boo=true;
}
else{
System.out.println("我不是三角形");
boo=false;
}
}
publicstaticvoidmain(Stringargs[]){
aat=newaa();
t.setLength();
}
}
。
。
。
拓展题目源代码(如完成则放进去,拓展题目不做要求)
2)实验运行效果截图
。
。
。
。
。
题1
、2运行截图。
。
。
。
(程序运行结果截图中加打印上个人姓名等)
五、心得体会
学到很多东西
实验5类的继承
一、实验目标:
1)基类与派生类的定义。
2)基类的概念出发,理解派生类对象使用基类属性的原理。
3)继承与多态,方法的重写以及调用。
二、实验学时数:
2学时
三、实验要求:
1)一个person类作为父类,该类中包含成员变量weight,height;实例方法speakHello(),averageHeight()和averageWeight()。
分别编写ChinaPeople和AmericanPeople两个类继承People类,分别根据提示重写它的三个方法,并在ChinaPeople类中添加chinaGongfu()方法,在AmericanPeople类中添加americanBoxing()方法。
再定义一个主类Example,在主类中创建ChinaPeople和AmericanPeople两个类的对象并调用他们的方法。
2)编写一个类,该类有一个方法
publicintf(inta,intb)//要求该方法返回a和b的最大公约数
{}
然后编写一个该类的子类,要求子类重新写方法,而其重写方法将返回两个整数的最小公倍数。
要求:
重写方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回,在应用程序的主类中分别使用父类和子类创建的对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。
四、实验步骤及结果
1)程序源代码
。
。
。
题1程序源代码
classPeople{
protecteddoubleweight,height;
publicvoidspeakHello(){
System.out.println("yayawawa");
}
publicvoidaverageHeight(){
height=173;
System.out.println("averageheight:
"+height);
}
publicvoidaverageWeight(){
weight=70;
System.out.println("averageweight:
"+weight);
}
}
classChinaPeopleextendsPeople{
publicvoidspeakHello(){
System.out.println("你好,吃饭了吗?
");
}
publicvoidaverageHeight(){
System.out.println("中国人的平均身高:
173.0厘米");
}
publicvoidaverageWeight(){
System.out.println("中国人的平均体重:
67.34公斤");
}
publicvoidchinaGongfu(){
System.out.println("中国武术:
坐如钟,站如松,睡如弓");
}
}
classAmericanPeopleextendsPeople{
publicvoidspeakHello(){
System.out.println("Howdoyoudo");
}
publicvoidaverageHeight(){
System.out.println("AmericanAverageheight:
188.0cm");
}
publicvoidaverageWeight(){
System.out.println("AmericanAverageweight:
80.23kg");
}
publicvoidamericanBoxing(){
System.out.println("美国武术:
直拳、钩拳");
}
}
classBeijingPeopleextendsChinaPeople{
publicvoidspeakHello(){
System.out.println("您好");
}
publicvoidaverageHeight(){
System.out.println("北京人的平均身高:
16.0厘米");
}
publicvoidaverageWeight(){
System.out.println("北京人的平均体重:
6.0公斤");
}
publicvoidbeijingOpera(){
System.out.println("老生");
}
}
publicclassming{
publicstaticvoidmain(Stringargs[]){
ChinaPeoplechinaPeople=newChinaPeople();
AmericanPeopleamericanPeople=newAmericanPeople();
BeijingPeoplebeijingPeople=newBeijingPeople();
chinaPeople.speakHello();
americanPeople.speakHello();
beijingPeople.speakHello();
chinaPeople.averageHeight();
americanPeople.aver