Java语言程序设计基础教程第1次上机.docx
- 文档编号:30058293
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:24
- 大小:25.17KB
Java语言程序设计基础教程第1次上机.docx
《Java语言程序设计基础教程第1次上机.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计基础教程第1次上机.docx(24页珍藏版)》请在冰豆网上搜索。
Java语言程序设计基础教程第1次上机
《Java语言程序设计基础教程》
上机实验指导手册
实验一Java环境演练
【目的】
①安装并配置Java运行开发环境;
②掌握开发Java应用程序的3个步骤:
编写源文件、编译源文件和运行应用程序;
学习同时编译多个Java源文件。
【内容】
1.一个简单的应用程序
✧实验要求:
编写一个简单的Java应用程序,该程序在命令行窗口输出两行文字:
“你好,很高兴学习Java”和“Wearestudents”。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
Hello.java
publicclassHello
{
publicstaticvoidmain(Stringargs[])
{
【代码1】//命令行窗口输出"你好,很高兴学习Java"
Aa=newA();
a.fA();
}
}
classA
{
voidfA()
{
【代码2】//命令行窗口输出"Wearestudents"
}
}
✧实验后的练习:
1.编译器怎样提示丢失大括号的错误?
2.编译器怎样提示语句丢失分号的错误?
3.编译器怎样提示将System写成system这一错误?
4.编译器怎样提示将String写成string这一错误?
3.联合编译
✧实验要求:
编写4个源文件:
Hello.java、A.java、B.java和C.java,每个源文件只有一个类,Hello.java是一个应用程序(含有main方法),使用了A、B和C类。
将4个源文件保存到同一目录中,例如:
C:
\100,然后编译Hello.java。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
模板1:
Hello.java
publicclassMainClass
{
publicstaticvoidmain(Stringargs[])
{
【代码1】//命令行窗口输出"你好,只需编译我"
Aa=newA();
a.fA();
Bb=newB();
b.fB();
}
}
模板2:
A.java
publicclassA
{
voidfA()
{
【代码2】//命令行窗口输出"IamA"
}
}
模板3:
B.java
publicclassB
{
voidfB()
{
【代码3】//命令行窗口输出"IamB"
}
}
模板4:
C.java
publicclassC
{
voidfC()
{
【代码4】//命令行窗口输出"IamC"
}
}
✧实验后的练习:
5.将Hello.java编译通过后,不断修改A.java源文件中的代码,比如,在命令行窗口输出“我是A类”或“我被修改了”。
要求每次修改A.java源文件后,单独编译A.java,然后直接运行应用程序Hello。
6.如果需要编译某个目录下的全部Java源文件,比如C:
\1000目录,可以使用如下命令:
c:
\1000\javac*.java
实验二Java基本数据类型与控制语句
【目的】
1掌握char型数据和int型数据之间的相互转换,同时了解unicode字符表;
2掌握使用if…elseif多分支语句;
3使用if…else分支和while循环语句解决问题。
【内容】
1.输出希腊字母表。
✧实验要求:
编写一个Java应用程序,该程序在命令行窗口输出希腊字母表。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
GreekAlphabet.java
publicclassGreekAlphabet
{
publicstaticvoidmain(Stringargs[])
{
intstartPosition=0,endPosition=0;
charcStart='α',cEnd='ω';
【代码1】//cStart做int型转换据运算,并将结果赋值给startPosition
【代码2】//cEnd做int型转换运算,并将结果赋值给endPosition
System.out.println("希腊字母\'α\'在unicode表中的顺序位置:
"+(int)c);
System.out.println("希腊字母表:
");
for(inti=startPosition;i<=endPosition;i++)
{
charc='\0';
【代码3】//i做char型转换运算,并将结果赋值给c
System.out.print(""+c);
if((i-startPosition+1)%10==0)
System.out.println("");
}
}
}
✧实验后的练习:
1.将一个double型数据直接赋值给float型变量,程序编译时提示怎样的错误?
2.在应用程序的main方法中增加语句:
floatx=0.618;
程序能编译通过么?
3.在应用程序的main方法中增加语句:
bytey=128;
程序能编译通过么?
4.在应用程序的main方法中增加语句:
intz=(byte)128;
程序输出变量z的值是多少?
2.回文数。
✧实验要求:
编写一个Java应用程序。
用户从键盘输入一个1—9999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。
回文数是指将该数含有的数字逆序排列后得到的数和原数相同,例如12121、3223都是回文数。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
Number.java
importjavax.swing.JOptionPane;
publicclassNumber
{
publicstaticvoidmain(Stringargs[])
{
intnumber=0,d5,d4,d3,d2,d1;
Stringstr=JOptionPane.showInputDialog("输入一个1至99999之间的数");
number=Integer.parseInt(str);
if(【代码1】)//判断number在1至99999之间的条件
{
【代码2】//计算number的最高位(万位)d5
【代码3】//计算number的千位d4
【代码4】//计算number的百位d3
d2=number%100/10;
d1=number%10;
if(【代码5】)//判断number是5位数的条件
{
System.out.println(number+"是5位数");
if(【代码6】)//判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(【代码7】)//判断number是4位数的条件
{
System.out.println(number+"是4位数");
if(【代码8】)//判断number是回文数的条件码
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(【代码9】)//判断number是3位数的条件
{
System.out.println(number+"是3位数");
if(【代码10】)//判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d2!
=0)
{
System.out.println(number+"是2位数");
if(d1==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
elseif(d1!
=0)
{
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.printf("\n%d不在1至99999之间",number);
}
}
}
✧实验后的练习:
1.程序运行时,用户从键盘输入2332,程序提示怎样的信息?
2.程序运行时,用户从键盘输入654321,程序提示怎样的信息?
程序运行时,用户从键盘输入33321,程序提示怎样的信息?
3.猜数字游戏。
✧实验要求:
编写一个Java应用程序,实现下列功能:
1)程序随机分配给客户一个1—100之间的整数
2)用户在输入对话框中输入自己的猜测
3)程序返回提示信息,提示信息分别是:
“猜大了”、“猜小了”和“猜对了”。
4)用户可根据提示信息再次输入猜测,直到提示信息是“猜对了”。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
GuessNumber.java
importjavax.swing.JOptionPane;
publicclassGuessNumber
{
publicstaticvoidmain(Stringargs[])
{
System.out.println("给你一个1至100之间的整数,请猜测这个数");
intrealNumber=(int)(Math.random()*100)+1;
intyourGuess=0;
Stringstr=JOptionPane.showInputDialog("输入您的猜测:
");
yourGuess=Integer.parseInt(str);
while(【代码1】)//循环条件
{
if(【代码2】)//条件代码
{
str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:
");
yourGuess=Integer.parseInt(str);
}
elseif(【代码3】)//条件代码
{
str=JOptionPane.showInputDialog("猜小了,再输入你的猜测:
");
yourGuess=Integer.parseInt(str);
}
}
System.out.println("猜对了!
");
}
}
✧实验后的练习:
1.用“yourGuess>realNumber”替换【代码1】,可以么?
2.语句:
“System.out.println(“猜对了!
”);”为何要放在while循环语句之后?
放在while语句的循环体中合理吗?
【结果】
将本次上机实验结果按照实验要求内容依次进行,填写实验目标、过程、结果。
实验三类与对象、继承
【目的】
使用类来封装对象的属性和功能;
掌握类变量与实例变量,以及类方法与实例方法的区别;
掌握使用package和import语句。
巩固以下概念:
子类的继承性
子类对象的创建过程
成员变量的继承与隐藏
方法的继承与重写
【内容】
1.三角形、梯形和圆形的类封装
✧实验要求:
编写一个Java应用程序,该程序中有3个类:
Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
具体要求如下:
a)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。
b)Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c)Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
AreaAndLength.java
classTrangle
{
doublesideA,sideB,sideC,area,length;
booleanboo;
publicTrangle(doublea,doubleb,doublec)
{
【代码1】//参数a,b,c分别赋值给sideA,sideB,sideC
if(【代码2】)//a,b,c构成三角形的条件表达式
{
【代码3】//给boo赋值。
}
else
{
【代码4】//给boo赋值。
}
}
doublegetLength()
{
【代码5】//方法体,要求计算出length的值并返回
}
publicdoublegetArea()
{
if(boo)
{
doublep=(sideA+sideB+sideC)/2.0;
area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
returnarea;
}
else
{
System.out.println("不是一个三角形,不能计算面积");
return0;
}
}
publicvoidsetABC(doublea,doubleb,doublec)
{
【代码6】//参数a,b,c分别赋值给sideA,sideB,sideC
if(【代码7】)//a,b,c构成三角形的条件表达式
{
【代码8】//给boo赋值。
}
else
{
【代码9】//给boo赋值。
}
}
}
classLader
{
doubleabove,bottom,height,area;
Lader(doublea,doubleb,doubleh)
{
【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height
}
doublegetArea()
{
【代码11】//方法体,,要求计算出area返回
}
}
classCircle
{
doubleradius,area;
Circle(doubler)
{
【代码12】//方法体
}
doublegetArea()
{
【代码13】//方法体,要求计算出area返回
}
doublegetLength()
{
【代码14】//getArea方法体的代码,要求计算出length返回
}
voidsetRadius(doublenewRadius)
{
radius=newRadius;
}
doublegetRadius()
{
returnradius;
}
}
publicclassAreaAndLength
{
publicstaticvoidmain(Stringargs[])
{
doublelength,area;
Circlecircle=null;
Trangletrangle;
Laderlader;
【代码15】//创建对象circle
【代码16】//创建对象trangle。
【代码17】//创建对象lader
【代码18】//circle调用方法返回周长并赋值给length
System.out.println("圆的周长:
"+length);
【代码19】//circle调用方法返回面积并赋值给area
System.out.println("圆的面积:
"+area);
【代码20】//trangle调用方法返回周长并赋值给length
System.out.println("三角形的周长:
"+length);
【代码21】//trangle调用方法返回面积并赋值给area
System.out.println("三角形的面积:
"+area);
【代码22】//lader调用方法返回面积并赋值给area
System.out.println("梯形的面积:
"+area);
【代码23】//trangle调用方法设置三个边,要求将三个边修改为12,34,1。
【代码24】//trangle调用方法返回面积并赋值给area
System.out.println("三角形的面积:
"+area);
【代码25】//trangle调用方法返回周长并赋值给length
System.out.println("三角形的周长:
"+length);
}
}
✧实验后的练习:
1.程序中仅仅省略【代码15】,编译能通过吗?
2.程序中仅仅省略【代码16】,编译能通过吗?
3.程序中仅仅省略【代码15】,运行时出现怎样的异常提示?
3.给Trangle类增加3个方法,分别用来返回3个边:
sideA、sideB和sideC。
4.让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。
2.实例成员与类成员。
✧实验要求:
按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
Example.java
classA
{
【代码1】//声明一个float型实例变量a
【代码2】//声明一个float型类变量b,即static变量b
voidsetA(floata)
{
【代码3】//将参数a的值赋值给成员变量a
}
voidsetB(floatb)
{
【代码4】//将参数b的值赋值给成员变量b
}
floatgetA()
{
returna;
}
floatgetB()
{
returnb;
}
voidinputA()
{
System.out.println(a);
}
staticvoidinputB()
{
System.out.println(b);
}
}
publicclassExample
{
publicstaticvoidmain(Stringargs[])
{
【代码5】//通过类名操作类变量b,并赋值100
【代码6】//通过类名调用方法inputB()
Acat=newA();
Adog=newA();
【代码7】//cat象调用方法setA(inta)将cat的成员a的值设置为200
【代码8】//cat调用方法setB(intb)将cat的成员b的值设置为400
【代码9】//dog象调用方法setA(inta)将dog的成员a的值设置为150
【代码10】//dog调用方法setB(intb)将dog的成员b的值设置为300
【代码11】//cat调用inputA()。
【代码12】//cat调用inputB()。
【代码13】//dog调用inputA()。
【代码14】//dog调用inputB()。
}
}
✧实验后的练习:
1.将inputA()方法中的
System.out.println(a);
改写为
System.out.println(a+b);
编译是否出错?
为什么?
2.将inputB()方法中的
System.out.println(b);
改写为
System.out.println(a+b);
编译是否报错?
为什么?
3.使用package语句与import语句。
✧实验要求:
按实验要求使用package语句,并用import语句使用Java平台提供的包中的类以及自定义包中的类。
掌握一些重要的操作步骤。
✧程序运行效果示例:
程序运行效果如下图所示:
✧程序模板:
模板1:
将模板1给出的Java源文件命名为SquareEquation.java,将编译后得到的字节码文件复制到c:
\1000\tom\jiafei目录中。
SquareEquation.java
packagetom.jiafei;
publicclassSquareEquation
{
doublea,b,c;
doubleroot1,root2;
booleanboo;
publicSquareEquation(doublea,doubleb,doublec)
{
this.a=a;
this.b=b;
this.c=c;
if(a!
=0)
{
boo=true;
}
else
{
boo=false;
}
}
publicvoidgetRoots()
{
if(boo)
{
System.out.println("是一元2次方程");
doubledisk=b*b-4*a*c;
if(disk>=0)
{
root1=(-b+Math.sqrt(disk))/(2*a);
root2=(-b-Math.sqrt(disk))/(2*a);
System.out.printf("方程的根:
%f,%f\n",root1,root2);
}
else
{
System.out.printf("方程没有实根\n");
}
}
else
{
System.out.println("不是一元2次方程");
}
}
publicvoidsetCoefficient(doublea,doubleb,doublec)
{
this.a=a;
this.b=b;
this.c=c;
if(a!
=0)
{
boo=true;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 基础教程 上机