实验项目二
Java语法应用
[实验目的]
1、熟悉Java基本数据类型、数组、控制结构的用法。
2、学会运用Java基本语法解决实际应用问题。
[实验要求]
1、复习理论教学中所学的内容。
2、认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。
[实验课时] 2学时
[实验教学方式] 学生上机实验,教师随堂指导。
[实验内容]
1、编写程序完成,将168转换成861,并将其结果输出到屏幕上。
2、 自动售货机
请编译、运行模板给出的代码,进一步熟悉多分支选择结构。
//MachineSell.java
import java.util.Scanner;
public class MachineSell {
public static void main(String args[]){
int money;
int drinkKind;
System.out.printf("投入金额:2或3元(回车确认):");
Scanner reader=new Scanner(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) {
case 1 : System.out.printf("得到净净矿泉水\n");
break;
case 2 : System.out.printf("得到甜甜矿泉水\n");
break;
case 3 : System.out.printf("得到美美矿泉水\n");
break;
default: System.out.printf("选择错误");
}
}
else if(money==3) {
System.out.printf("选择爽口可乐(1),清凉雪碧(2),和雪山果汁(3)之一:\n");
System.out.printf("输入1,2或3:");
drinkKind=reader.nextInt();
switch(drinkKind) {
case 1 : System.out.printf("得到爽口可乐\n");
break;
case 2 : System.out.printf("得到清凉雪碧\n");
break;
case 3 : System.out.printf("得到雪山果汁\n");
break;
default: System.out.printf("选择错误");
}
}
else {
System.out.printf("输入的钱币不符合要求");
}
}
}
3、猜数字游戏
请按模板要求,将【代码】替换为Java程序代码。
//GuessNumber.java
import java.util.Scanner;
import java.util.Random;
public class GuessNumber {
public static void main (String args[]) {
Scanner reader = new Scanner(System.in);
Random random = new Random();
System.out.println("给你一个1至100之间的整数,请猜测这个数");
int realNumber = random.nextInt(100)+1; //random.nextInt(100)是[0,100)中的随机整数
int yourGuess = 0;
System.out.print("输入您的猜测:");
yourGuess = reader.nextInt();
while(【代码1】)//循环条件
{
if(【代码2】) //猜大了的条件代码
{
System.out.print("猜大了,再输入你的猜测:");
yourGuess = reader.nextInt();
}
else if(【代码3】)//猜小了的条件代码
{
System.out.print("猜小了,再输入你的猜测:");
yourGuess = reader.nextInt();
}
}
System.out.println("猜对了!");
}
}
4、遍历与复制数组
请按模板要求,将【代码】替换为Java程序代码。
//InputArray.java
importjava.util.Arrays;
public classCopyArray {
publicstatic void main (String args[ ]) {
int [] a = {1,2,3,4,500,600,700,800};
int [] b,c,d;
System.out.println(Arrays.toString(a));
b = Arrays.copyOf(a,a.length);
System.out.println(Arrays.toString(b));
c =【代码1】//Arrays调用copyOf方法复制数组a的前4个元素
System.out.println(【代码2】);//Arrays调用toString方法返回数组c的元素值的表示格式
d = 【代码3】//Arrays调用copyOfRange方法复制数组a的后4个元素
System.out.println(Arrays.toString(d));
【代码4】 //将-100赋给数组c的最后一个元素
d[d.length-1] = -200;
System.out.println(Arrays.toString(a));
}
}
5、打印“魔方阵”:即方阵的每行、每列、每条对角线上数字之和均相等(读懂并验证)。
package org.arrays;
publicclass Magics {
publicstatic void main(String[] args) {
int i = 0;
int j = 0;
int m = 0;
int n = 5;
j = (n + 1) / 2 - 1;
int[][]a = new int[n][n];
a[i][j] = ++m; // 第一个数在第一行正中
while (m < n * n) {
i--;
j++;
// 最近插入的元素为n的整数倍时,则选下面一行同列上的位置为新位置
if (m % n == 0&& m > 1) {
i = i + 2;
j = j - 1;
}
if (i < 0) // 超出方阵上边界,则新位置取应选列的最下一个位置
i = i + n;
if (j > (n - 1)) // 超出方阵右边界,则新位置取应选行的最左一个位置
j = j - n;
a[i][j] = ++m;
}
for (i = 0; i < n; i++){
for (j = 0; j
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
}
6、求矩阵的积(读懂并验证)
package org.arrays;
publicclass MatrixDemo {
publicstatic void main(String[] args) {
int[][]a1 = { { 1, 2, 3 }, { 4, 5, 6 } };
int[][]b1 = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
int[][]c1 = new int[2][2];
for(int row = 0; row < 2; row++) {
for (int col = 0; col < 2; col++) {
c1[row][col] = 0;
for(int k = 0; k < 3; k++)
c1[row][col]+= a1[row][k] * b1[k][col];
}
}
for(int row = 0; row < 2; row++) {
for (int col = 0; col < 2; col++)
System.out.print(" " + c1[row][col]);
System.out.println();
}
}
}
7、选做题:
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个; 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。