Java面向对象程序设计实验指导模板代码资料.docx
《Java面向对象程序设计实验指导模板代码资料.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计实验指导模板代码资料.docx(262页珍藏版)》请在冰豆网上搜索。
Java面向对象程序设计实验指导模板代码资料
Java面向对象程序设计实验指导代码
内容简介
本书是《Java面向对象程序设计》的配套实验指导和习题解答。
本书的第一部分为16次上机实践的内容,每次上机实践由若干个实验组成。
每个实验由相关知识点、实验目的、实验要求、实验模版、实验知道和实验报告组成。
在进行实验之前,首先通过实验目的了解实验要完成的关键主题、通过实验要求知道本实验应达到怎样的标准,然后,完成实验模板,填写实验报告。
本书的第二部分为主教材的习题参考解答。
上机实践1Java入门
实验1一个简单的应用程序
5.程序模板
Hello.java
publicclassHello{
publicstaticvoidmain(Stringargs[]){
【代码1】//命令行窗口输出"你好,很高兴学习Java"
Aa=newA();
a.fA();
}
}
classA{
voidfA(){
【代码2】//命令行窗口输出"Wearestudents"
}
}
实验2教室、老师和学生
程序模板
请按模板要求,将【代码】替换为Java程序代码。
ClassRoom.java
publicclassClassRoom{
publicstaticvoidmain(Stringargs[]){
【代码1】//命令行窗口输出"教学活动从教室开始"
Teacherzhang=newTeacher();
Studentjiang=newStudent();
zhang.introduceSelf();
jiang.introduceSelf();
}
}
Teacher.java
publicclassTeacher{
voidintroduceSelf(){
【代码2】//命令行窗口输出"我是张老师"
}
}
Student.java
publicclassStudent{
voidintroduceSelf(){
【代码3】//命令行窗口输出"我是学生,名字是:
奖励"
}
}
上机实践2基本数据类型
实验1输出特殊边傍的汉字
程序模板
请按模板要求,将【代码】替换为Java程序代码。
InputChinese.java
publicclassE{
publicstaticvoidmain(Stringargs[]){
charch='研',zifu=0;
intp=22920,count=5,position=0;
System.out.printf("输出%d个石字傍的汉字:
\n",count);
for(charc=ch;c<=ch+count;c++){
【代码1】//c进行int型转换据运算,并将结果赋值给position
System.out.printf("%c(%d)",c,position);
}
System.out.printf("\n输出%d个女字傍的汉字:
\n",count);
for(intn=p;n<=p+count;n++){
【代码2】//n做char型转换运算,并将结果赋值给zifu
System.out.printf("%c(%d)",zifu,n);
}
}
}
实验2输入、输出学生的基本信息
程序模板
请按模板要求,将【代码】替换为Java程序代码。
InputMess.java
importjava.util.Scanner;
publicclassInputMess{
publicstaticvoidmain(Stringargs[]){
Scannerreader=newScanner(System.in);
System.out.println("输入姓名(回车确认):
");
Stringname=【代码1】//从键盘为name赋值
System.out.println("输入年龄(回车确认):
");
byteage=【代码2】//从键盘为age赋值
System.out.println("输入身高(回车确认):
");
floatheight=【代码3】//从键盘为height赋值
System.out.printf("%28s\n","--基本信息--");
System.out.printf("%10s%-10s","姓名:
",name);
System.out.printf("%4s%-4d","年龄:
",age);
System.out.printf("%4s%-4.2f","身高:
",height);
}
}
实验3超大整数的加法
程序模板
仔细阅读模板代码,完成实验后的练习。
HandleLargeNumber.java
publicclassHandleLargeNumber{
publicstaticvoidmain(Stringargs[]){
inta[]={0,9,9,7,9,4,5,6,7,2,3,4,5,6,4,7,8,9,8,7,6,9};
intb[]={0,0,5,9,1,6,4,5,6,2,3,4,5,7,2,1,3,4,0,3,2,9};
intc[]=newint[a.length];
inti=0,result=0,k=0;
for(i=0;iif(a[i]!
=0){
k=i;
break;
}
}
for(i=k;iSystem.out.printf("%d",a[i]);
}
System.out.printf("\n加上:
\n");
for(i=0;iif(b[i]!
=0){
k=i;
break;
}
}
for(i=k;iSystem.out.printf("%d",b[i]);
}
for(i=a.length-1;i>=0;i--){
result=a[i]+b[i];
if(result>=10){
c[i]=result%10;
a[i-1]=a[i-1]+1;
}
else
c[i]=result;
}
System.out.printf("\n等于:
\n");
for(i=0;iif(c[i]!
=0){
k=i;
break;
}
}
for(i=k;iSystem.out.printf("%d",c[i]);
}
}
}
上机实践3运算符、表达式与语句
实验1托运行李
程序模板
请按模板要求,将【代码】替换为程序代码。
BaggageAndMony.java
importjava.util.Scanner;
publicclassBaggageAndMony{
publicstaticvoidmain(Stringargs[]){
inttrainCharge=12;//火车托运计费:
每公斤12元
intcarCharge=22;//汽车托运计费:
每公斤12元
doubleplaneCharge=0.062;//飞机托运计费:
每克0.062元
Scannerreader=newScanner(System.in);
doubleweight,charge;
System.out.printf("输入行李重量:
");
weight=reader.nextDouble();
System.out.printf("行李重量:
%f公斤(kg)\n",weight);
System.out.printf("需要计费的重量:
%d(kg)\n",(int)weight);
【代码1】//将表达式(int)weight*trainCharge的值赋值给charge
System.out.printf("用火车托运(%d元/kg),费用:
%f元\n",trainCharge,charge);
System.out.printf("需要计费的重量:
%d(kg)\n",(int)(weight+0.5));
【代码2】】//将表达式(int)(weight+0.5)*carCharge的值赋值给charge
System.out.printf("用汽车托运(%d元/kg),费用:
%f元\n",carCharge,charge);
System.out.printf("行李重量:
%f克(g)\n",weight*1000);
System.out.printf("需要计费的重量:
%d(g)\n",(int)(weight*1000+0.5));
【代码3】//将表达式(int)(weight*1000+0.5)*planeCharge的值赋值给charge
System.out.printf("用飞机托运(%f元/g),费用:
%f元\n",planeCharge,charge);
}
}
实验2自动售货机
程序模板
请编译、运行模板给出的代码,然后完成试验后的练习。
MachineSell.java
importjava.util.Scanner;
publicclassMachineSell{
publicstaticvoidmain(Stringargs[]){
intmoney;
intdrinkKind;
System.out.printf("投入金额:
2或3元(回车确认):
");
Scannerreader=newScanner(System.in);
money=reader.nextInt();
if(money==2){
System.out.printf("选择净净矿泉水
(1),甜甜矿泉水
(2)和美美矿泉水(3)之一:
\n");
System.out.printf("输入1,2或3:
");
drinkKind=reader.nextInt();
switch(drinkKind){
case1:
System.out.printf("得到净净矿泉水\n");
break;
case2:
System.out.printf("得到甜甜矿泉水\n");
break;
case3:
System.out.printf("得到美美矿泉水\n");
break;
default:
System.out.printf("选择错误");
}
}
elseif(money==3){
System.out.printf("选择爽口可乐
(1),清凉雪碧
(2),和雪山果汁(3)之一:
\n");
System.out.printf("输入1,2或3:
");
drinkKind=reader.nextInt();
switch(drinkKind){
case1:
System.out.printf("得到爽口可乐\n");
break;
case2:
System.out.printf("得到清凉雪碧\n");
break;
case3:
System.out.printf("得到雪山果汁\n");
break;
default:
System.out.printf("选择错误");
}
}
else{
System.out.printf("输入的钱币不符合要求");
}
}
}
实验3猜数字游戏
程序模板
请按模板要求,将【代码】替换为Java程序代码。
GuessNumber.java
importjava.util.Scanner;
importjava.util.Random;
publicclassGuessNumber{
publicstaticvoidmain(Stringargs[]){
Scannerreader=newScanner(System.in);
Randomrandom=newRandom();
System.out.println("给你一个1至100之间的整数,请猜测这个数");
intrealNumber=random.nextInt(100)+1;//random.nextInt(100)是[0,100)中的随机整数
intyourGuess=0;
System.out.print("输入您的猜测:
");
yourGuess=reader.nextInt();
while(【代码1】)//循环条件
{
if(【代码2】)//猜大了的条件代码
{
System.out.print("猜大了,再输入你的猜测:
");
yourGuess=reader.nextInt();
}
elseif(【代码3】)//猜小了的条件代码
{
System.out.print("猜小了,再输入你的猜测:
");
yourGuess=reader.nextInt();
}
}
System.out.println("猜对了!
");
}
}
上机实践4类与对象
实验1Tank类
程序模板
请按模板要求,将【代码】替换为Java程序代码。
Tank.java
publicclassTank{
【代码1】//声明double型变量speed,刻画速度
【代码2】//声明int型变量bulletAmount,刻画炮弹数量
voidspeedUp(ints){
【代码3】//将s+speed赋值给speed
}
voidspeedDown(intd){
if(speed-d>=0)
【代码4】//将speed-d赋值给speed
else
speed=0;
}
voidsetBulletAmount(intm){
bulletAmount=m;
}
intgetBulletAmount(){
returnbulletAmount;
}
doublegetSpeed(){
returnspeed;
}
voidfire(){
if(bulletAmount>=1){
【代码5】//将bulletAmount-1赋值给bulletAmount
System.out.println("打出一发炮弹");
}
else{
System.out.println("没有炮弹了,无法开火");
}
}
}
Fight.java
publicclassFight{
publicstaticvoidmain(Stringargs[]){
Tanktank1,tank2;
tank1=newTank();
tank2=newTank();
tank1.setBulletAmount(10);
tank2.setBulletAmount(10);
System.out.println("tank1的炮弹数量:
"+tank1.getBulletAmount());
System.out.println("tank2的炮弹数量:
"+tank2.getBulletAmount());
tank1.speedUp(80);
tank2.speedUp(90);
System.out.println("tank1目前的速度:
"+tank1.getSpeed());
System.out.println("tank2目前的速度:
"+tank2.getSpeed());
tank1.speedDown(15);
tank2.speedDown(30);
System.out.println("tank1目前的速度:
"+tank1.getSpeed());
System.out.println("tank2目前的速度:
"+tank2.getSpeed());
System.out.println("tank1开火:
");
tank1.fire();
System.out.println("tank2开火:
");
tank2.fire();
tank2.fire();
System.out.println("tank1的炮弹数量:
"+tank1.getBulletAmount());
System.out.println("tank2的炮弹数量:
"+tank2.getBulletAmount());
}
}
实验2计算机与光盘
程序模板
请按模板要求,将【代码】替换为Java程序代码。
CD.java
publicclassCD{
intsize;
intcontent[];
publicvoidsetSize(intsize){
this.size=size;
content=newint[size];
}
publicintgetSize(){
returnsize;
}
publicint[]getContent(){
returncontent;
}
publicvoidsetContent(int[]b){
intmin=Math.min(content.length,b.length);
for(inti=0;icontent[i]=b[i];
}
}
Computer.java
publicclassComputer{
intdata[];
CDincludeCD;
publicvoidputCD(CDcd){
includeCD=cd;
intsize=includeCD.getSize();
data=newint[size];
}
voidcopyToComputer(){
int[]b=includeCD.getContent();
intmin=Math.min(data.length,b.length);
for(inti=0;idata[i]=b[i];
}
}
publicvoidaddData(intm){
for(inti=0;idata[i]=data[i]+m;
}
}
voidcopyToCD(){
includeCD.setContent(data);
}
voidshowData(){
for(inti=0;iSystem.out.printf("%3d",data[i]);
}
}
}
User.java
publicclassUser{
publicstaticvoidmain(Stringargs[]){
CDdataCD=newCD();
intb[]={1,2,3,4,5,6,7,8};
dataCD.setSize(b.length);
dataCD.setContent(b);
inta[]=dataCD.getContent();
System.out.println("dataCD上的内容:
");
for(inti=0;iSystem.out.printf("%3d",a[i]);
ComputercomputerIMB=newComputer();
【代码1】//computerIMB调用putCD(CDcd)方法,将dataCD的引用传递给cd
System.out.println("\n将dataCD的数据复制到计算机:
computerIMB.");
【代码2】//computerIMB调用copyToComputer()方法
System.out.println("computerIMB上的内容:
");
computerIMB.showData();
intm=12;
System.out.println("\ncomputerIMB将每个数据增加"+m);
computerIMB.addData(m);
System.out.println("computerIMB将增值后的数据复制到CD:
dataCD");
【代码3】//computerIMB调用copyToCD()方法
System.out.println("dataCD上的内容:
");
a=dataCD.getContent();
for(inti=0;iSystem.out.printf("%3d",a[i]);
}
}
实验3家族的姓氏
程序模板
请按模板要求,将【代码】替换为Java程序代码。
FamilyPerson.java
publicclassFamilyPerson{
staticStringsurname;
Stringname;
publicstaticvoidsetSurname(Strings){
surname=s;
}
publicvoidsetName(Strings){
name=s;
}
}
MainClass.java
publicclassMainClass{
publicstaticvoidmain(Stringargs[]){
【代码1】//用类名FamilyPerson访问surname,并为surname赋值:
"李"
FamilyPersonfather,sonOne,sonTwo;
father=newFamilyPerson();
sonOne=newFamilyPerson();
sonTwo=newFamilyPerson();
【代码2】//father调用setName(Strings),并向s传递"向阳"
sonOne.setName("抗日");
sonTwo.setName("抗战");
System.out.println("父亲:
"+father.surname+father.name);
System.out.pr