湖南师大Java实验全解Word格式.docx
- 文档编号:18702036
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:75
- 大小:377.29KB
湖南师大Java实验全解Word格式.docx
《湖南师大Java实验全解Word格式.docx》由会员分享,可在线阅读,更多相关《湖南师大Java实验全解Word格式.docx(75页珍藏版)》请在冰豆网上搜索。
4.学会使用if和if-else和switch分支语句。
5.学会使用while,do-while和for循环语句。
6.学会使用break和continue程序控制语句。
7.进一步熟悉java语言开发环境,掌握Java程序的编辑,编译和运行过程;
能够设计具有一定算法的输出程序。
1.2实验预习:
1.Java语言源程序是由Java语言的基本语句构成的,Java语言的语句基本上同C/C++语言的语句一样。
有些在C/C++语言程序中容易产生错误的语句已被Java语言所抛弃。
通过下面的实验步骤,读者可以编写简单的Java程序。
例1-1在横线上填出下列变量的定义类型。
publicclassexample1{
publicstaticvoidmain(stringargs[]){
intx=45;
floaty=3.14f;
doublez=3.1415;
booleantruth=true;
charc=’6’;
//……..更多
}
}
2.利用输出语句来实现数据的格式化显示
Java语言中的输出语句,可以通过调用System.out中的println方法(或print方法),在练习数据格式化显示之前,我们在通过下面两个简单的例子对比一下println方法和print方法的区别。
例1-2观察下面应用程序的打印结果。
打开文本编辑器,输入下列代码:
publicclassasterisk{
publicstaticvoidmain(stringargs[])
{
System.out.print(“*”);
System.out.print(“***”);
System.out.print(“*****”);
在没有编译运行之前,读者能否得出上面程序的运行结果:
在没有运行前,可得出的运行结果为:
*********
例1-3修改例1-2。
publicclassasterisk{
publicstaticvoidmain(Stringargs[]){
System.out.println(“*”);
System.out.println(“***”);
System.out.println(“*****”);
*
***
*****
例1-4写出下面程序的运行结果。
打开文本编辑器,输入下列代码:
publicclassTypeconversion{
publicstaticvoidmain(stringargs[]){
chara=1;
intb=4;
doublec=24.6f;
byted;
d=(byte)(a+b+c);
shorte;
e=(short)(a+b+c);
intf;
f=(int)(a+b+c);
doubleg;
g=a+b+c;
System.out.println(“d=”+d);
System.out.println(“e=”+e);
System.out.println(“f=”+f);
System.out.println(“g=”+g);
在没有运行前,可得出的运行结果为:
d=29
e=29
f=29
g=29.6
例1-5求3个数中的最大值。
publicclassMax{
inta=1;
intb=3;
intc=7;
if(a>
b)
c){
System.out.println(“三个数中最大的是:
“+a);
else{
“+c);
elseif(b>
c){
“+b);
三个数中最大的是:
7
else子句不能单独做为语句使用,它必须和if配对使用。
Else总是与离它最近的if配对。
例1-6根据颜色数输出颜色。
publicclassswitchcolor1{
intcolornum=1;
switch(colornum){
case0:
System.out.println(“colorisred”);
case1:
System.out.println(“colorisgreen”);
default:
System.out.println(“colorisblack”);
}}
colorisgreen
colorisblack
把例1-8中每个case后面都加上break语句,程序修改如下:
publicclassswitchcolor2{
switch(colornum){
break;
在没有编译运行之前,读者能否得出上面程序的运行结果:
在没有运行前,可得出的运行结果为:
case子句中的值必须是不同的。
break语句的作用使程序跳出switch语句后,即终止switch语句的执行。
例1-8用while循环水仙花数(所谓水仙花数,是指一个3位数,其各位数字的立方和等于该数本身。
例如:
153是一个水仙花数。
因为153=1^3+5^3+3^3
classwhileexample{
inta,b,c,num=100,count=1;
while(num<
1000){
a=num/100;
b=(num-a*100)/10;
c=num%10;
if((Math.pow(a,3)+Math.pow(b,3)+Math.pow(c,3))==num)
System.out.println(“第”+count+++“个水仙花数为:
”+num):
num++;
程序的运行结果为:
:
第1个水仙花数为:
153
第2个水仙花数为:
370
第3个水仙花数为:
371
第4个水仙花数为:
407
例1-9百元买百鸡。
publicclassContinueOp{
intn;
for(n=1;
n<
=10;
n++){
if(n%2==0)continue;
System.out.println(“n=”+n);
程序的结果为:
n=1
n=3
n=5
n=7
n=9
例1-10break语句的使用。
publicclassBreakOp{
if(n%2==0)break;
}
输出结果:
1.3实验内容及要求:
(1)设计简单的java程序。
代码:
importjava.util.Scanner;
/*
*猜数游戏
*/
publicclasssimple{
publicstaticvoidmain(String[]args){
inti=(int)(Math.random()*100+1);
//产生一个随机数,以当要猜的数
inta=0;
intb=100;
Scannerscanner=newScanner(System.in);
//得到键盘输入参数
while(true){
System.out.println("
请输入一个"
+a+"
到"
+b+"
的数:
"
);
intn=scanner.nextInt();
//得到一个从键盘输入的整数
if(n==i){
System.out.println("
恭喜您,猜对了!
!
break;
}else{
if(i<
n){
b=n;
}else{
a=n;
}
}
}
结果:
(2)设计一个99表打印的Application程序,要求程序简单,行列对齐美观。
程序截图:
代码:
publicclassChengFaBiao{
for(inti=1;
i<
10;
i++){
for(intj=1;
j<
=i;
j++){
System.out.print(j+"
*"
+i+"
="
+i*j+"
\t"
System.out.println();
(3)输出100000之内的所有素数(即非1和自身不能被其他数除尽的数)要求程序简单,程序运行速度较快,行列对齐美观。
publicclassSuShu{
inti,j,count=0;
for(i=2;
i<
100000;
i++){
if(i==2){
count++;
System.out.print(i+"
continue;
inttemp=(int)(Math.sqrt(i))+1;
for(j=2;
j<
=temp;
j++){
if(i%j==0)
break;
if(j==temp){
count++;
System.out.print(i+"
if(count%10==0)
System.out.println();
1.4实验思考与总结
在这一小节的实验中,我对于Java语言有了一定的认识。
在上述的例子中,我基本上理解了Java语言的语法规则,真正意义上了解到了语法规则的魅力所在,了解到了Java和C语言没有什么较大的区别,学习起来更加容易。
和C语言相比,真正不同的是两者在数据定义上的区别,以及JAVA和C语言在键盘输入方面的不同,JAVA是通过Scanner类实现的,访问它的元素也是调用它里面的方法,最开始用这个的时候,在我看来,C语言的输入要简单得多,但是实验中用了几次之后,熟悉了之后,感觉又有了不同。
而且JAVA封装了很多工具类。
这些类自带非常强大的功能,用起来十分的方便。
对于有语言基础的人来说可以说是相对简单的。
老师的所列的实验题目都会要求运行速度和代码的简洁性,在这个实践过程中,我的编程水平得到了一定的提高精练,在真正开发项目中代码的精炼和运行速度的优化是很有必要的。
以前我编写程序问题停留在只要完成基本功能就好的基础上,但是现在编写程序我会在几种不同的实现方法中进行选择,选择时间空间复杂度最低的加以实现。
我觉得这是很大的一个进步,也是计算机专业人员应该具备的。
这次实验只是JAVA实验一个小小的开头,题目也非常简单,有了以前的基础做起来也比较快。
希望在以后的实验中,能够学习到更多新的知识,掌握新的方法与技能。
虽然题目比较简单,但是收获是巨大的。
在今后的学习用一定要更加努力。
实验二:
面向对象设计基础——复数类的实现
类是面向对象程序设计的基础,是java的核心和本质所在。
在java中,所有的语言元素都必须封装在类中。
编写java程序的过程就是从现实世界中抽象出java可实现的类,并用合适的语句定义它们的过程。
本节实验将学习类的应用,及如何创建类的实例。
通过类的继承更有效地组织程序结构,明确类之间的关系。
掌握了本节实验所讲诉的内容之后,读者就可以使用面向对象技术编写java程序了。
2.1实验目的:
1.掌握java面向对象程序设计的基本思想。
2.掌握类的定义和使用。
3.掌握对象的声明和使用。
4.了解构造函数的概念和使用。
5.掌握类的继承关系和派生方法。
6.掌握多态的概念与使用。
2.2实验预习:
1)阅读下面的程序,在main()方法里添加语句完成如下功能:
①创建一个MyValue类的对象myValue。
②为myValue对象中的value赋值10。
③使用getVaule()方法获得myValue对象中的数据并将它打印在屏幕上
例2-1:
li2_1.java
classMyValue{
privateintvalue;
publicvoidsetValue(intx){
value=x;
publicintgetValue(){
returnvalue;
publicclassli2_1{
publicstaticvoidmain(String[]args)
{MyValuemyValue=newMyValue();
myValue.setValue(10);
System.outprintln(myValue.getValue());
2)试编写Java代码实现一个计数器类Computer其中包括:
①用counterValue来保存计数器的当前值。
②方法increment()计数器加一。
⑧方法decrement()计数器减一。
④方法reset()计数器清零。
publicclassComputer{
privateintcounterValue;
publicvoidsetCounterValue(intcounterValue){
this.counterValue=counterValue;
publicvoidincrement(){
counterValue++;
publicvoiddecrement(){
counterValue--;
publicvoidreset(){
counterValue=0;
publicintgetCounterValue(){
returncounterValue;
classli2_2{
classDog{
privateStringname;
privateintage;
publicintstep;
Dog(Strings,inta){
name=s;
age=a;
step=0;
publicvoidrun(Dogfast){
fast.step++;
publicstaticvoidmain(String[]args){
li2_2a=newli2_2();
Dogd=a.newDog("
Tom"
3);
d.step=25;
d.run(d);
System.out.println(d.step);
能,26
2.3实验内容及要求:
定义一个复数类,并实现以下复数类的方法:
构造方法、得到实部、得到虚部、设置实部、设置虚部、复数的加法,减法,乘法,最后,创建对象进行运算。
复数类Complex必须满足如下要求:
(1)复数类Complex的属性有:
RealPart:
double型,代表复数的实数部分
ImaginPart:
double型,代表复数的虚数部分
(2)复数类Complex的方法有:
Complex():
构造函数,将复数的实部和虚部都置0。
Complex(doubler,doublei):
构造函数,形参r为实部的初值,i为虚部的初值。
doublegetReal():
获得复数对象的实部;
doublegetImagin():
获得复数对象的虚部;
ComplexcomplexAdd(Complexa):
将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。
ComplexcomplexSub(Complexa):
将当前复数对象与形参复数对象相减,所得的结果仍是一个复数值,返回给此方法的调用者。
ComplexcomplexMulti(Complexa):
将当前复数对象与形参复数对象相乘,所得的结果仍是一个复数值,返回给此方法的调用者。
StringToString():
把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据。
packagecom.example.test.unit1;
publicclassComplex{
privatedoubleRealPart;
//代表复数的实数部分
privatedoubleImaginPart;
//代表复数的虚数部分
publicComplex(){
RealPart=0;
ImaginPart=0;
publicComplex(doubler,doublei){
RealPart=r;
ImaginPart=i;
publicdoublegetReal(){
returnRealPart;
publicdoublegetImagin(){
returnImaginPart;
publicvoidsetReal(doubler){
publicvoidsetImagin(doublei){
publicComplexcomplexAdd(Complexa){
Complexc=newComplex();
c.RealPart=this.RealPart+a.RealPart;
c.ImaginPart=this.ImaginPart+a.ImaginPart;
returnc;
publicComplexcomplexSub(Complexa){
c.RealPart=this.RealPart-a.RealPart;
c.ImaginPart=this.ImaginPart-a.ImaginPart;
publicComplexcomplexMulti(Complexa){
c.RealPart=this.RealPart*a.RealPart;
c.ImaginPart=this.ImaginPart*a.ImaginPart;
publicStringtoString(){
if(ImaginPart>
=0)
return(RealPart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湖南 师大 Java 实验