甘肃政法学院
本科生实验报告
(一)
姓名:俞晓
学院:信息工程学院
专业:信息管理与信息系统
班级:13级信管班
实验课程名称:JAVA SE课程实验
指导教师:李瑞生 教师
实验成绩:
实验日期: 2015 年 3 月 24 日
开课时间: 2014-2015 学年 第二 学期
甘肃政法学院实验管理中心印制
实验题目
Java SE开发环境与
语言基础
小组合作
否
姓名
俞晓
班级
13级信管
学 号
201381020144
一、实验目的
1.熟悉Java开发环境JDK1.6,Eclipse的安装与配置。
2.学会分别运用JDK1.6和Eclipse开发简单的Application和Applet程序。
3.掌握Java的各种基本数据类型的用法。
4.掌握Java的控制语句。
5.熟悉Java基本数据类型、数组、控制结构的用法。
6.学会运用Java基本语法解决实际应用问题。
二.实验环境
Windows7
JDK1.6
Eclipse
三、实验内容与步骤
第一部分 Java SE开发环境与语言基础
1.JAVA开发环境配置与简单程序开发
(1)下载并安装JDK1.6。
(2)配置环境变量:SDK平台提供的Java编译器(javac.exe)和Java解释器(java.exe)位于Java安装目录的bin文件夹中,为了能在任何目录中使用编译器和解释器,应在系统特性中设置Path。
鼠标右击“我的电脑”--->选择“属性”--->弹出“系统特性”对话框--->单击“高级选项”--->点击“环境变量”,添加如下图所示的系统环境变量:
JDK的安装目录的jre文件夹中包含着Java应用程序运行时所需要的Java类库,这些类库被包含在jre\lib目录下的压缩文件rt.jar中 。因此,再添加如下图所示环境变量:
(3)下载Eclipse,将其解压到某一目录下。使用时只需双击eclipse图标即可。
(4)在记事本中编写简单的Application 程序,运用JDK命令方式在屏幕上打印输出“你好,很高兴学习Java”。
(5) 在记事本中编写简单的Applet 程序,运用JDK命令方式在Java Applet中绘制一行文字:“这是一个Java Applet 程序”。
2.Java 基本数据类型与控制语句
(1)输出希腊字母表。
public class GreekAlphabet
{
public static void main (String args[ ])
{
int startPosition=0,endPosition=0;
char cStart=α,cEnd=ω;
startPosition=cStart; //cStart做int型转换据运算,并将结果赋值给startPosition
endPosition=cEnd; //cEnd做int型转换运算,并将结果赋值给endPosition
System.out.println("希腊字母\α\在unicode表中的顺序位置:"+(int)cStart);
System.out.println("希腊字母表:");
for(int i=startPosition;i<=endPosition;i++)
{
char c=\0;
c=(char)i;//i做char型转换运算,并将结果赋值给c
System.out.print(" "+c);
if((i-startPosition+1)%10==0)
System.out.println("");
}
}
}
运行结果如下图所示:
(2)判断一个1至99999之间的数是否“回文数”。
import javax.swing.JOptionPane;
public class Number {
public static void main(String args[])
{
int number=0,d5,d4,d3,d2,d1;
String str=JOptionPane.showInputDialog("输入一个1至99999之间的数");
number=Integer.parseInt(str);
if(number>0 && number<100000) //判断number在1至99999之间的条件
{
d5=number/10000; //计算number的最高位(万位)d5
d4=number%10000/1000; //计算number的千位d4
d3=number%1000/100; //计算number的百位d3
d2=number%100/10;
d1=number%10;
if(d5!=0) //判断number是5位数的条件
{
System.out.println(number+"是5位数");
if(d1==d5&&d2==d4) //判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d4!=0) //判断number是4位数的条件
{
System.out.println(number+"是4位数");
if(d1==d4&&d2==d3) //判断number是回文数的条件码
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d3!=0) //判断number是3位数的条件
{
System.out.println(number+"是3位数");
if(d3==d1) //判断number是回文数的条件
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d2!=0)
{
System.out.println(number+"是2位数");
if(d1==d2)
{
System.out.println(number+"是回文数");
}
else
{
System.out.println(number+"不是回文数");
}
}
else if(d1!=0)
{
System.out.println(number+"是1位数");
System.out.println(number+"是回文数");
}
}
else
{
System.out.printf("\n%d不在1至99999之间",number);
}
}
}
运行结果如图所示:
第二部分 JAVA语法应用
1、 输出特殊偏旁的汉字
public class InputChinese {
public static void main(String[] args) {
char ch=研,zifu=0;
int p=22920,count=5,position=0;
System.out.printf("输出%d个石字傍的汉字:\n",count);
for(char c=ch;c<=ch+count;c++) {
position=c; //c进行int型转换据运算,并将结果赋值给position
System.out.printf("%c(%d)",c,position);
}
System.out.printf("\n输出%d个女字傍的汉字:\n",count);
for(int n=p;n<=p+count;n++) {
zifu=(char)n; // n做char型转换运算,并将结果赋值给zifu
System.out.printf("%c(%d)",zifu,n);
}
}
}
运行结果如图所示:
2、 输入、输出学生的基本信息
import java.util.Scanner;
public class InputMess {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("输入姓名(回车确认):");
String name = reader.next(); // 从键盘为name赋值
System.out.println("输入年龄(回车确认):");
byte age = reader.nextByte(); // 从键盘为age赋值
System.out.println("输入身高(回车确认):");
float height = reader.nextFloat(); // 从键盘为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、 自动售货机
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("输入的钱币不符合要求");
}
}
}
4、 猜数字游戏
import java.util.Random;
import java.util.Scanner;
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(yourGuess != realNumber) //循环条件
{
if(yourGuess > realNumber) //猜大了的条件代码
{
System.out.print("猜大了,再输入你的猜测:");
yourGuess = reader.nextInt();
}
else if(yourGuess < realNumber) //猜小了的条件代码
{
System.out.print("猜小了,再输入你的猜测:");
yourGuess = reader.nextInt();
}
}
System.out.println("猜对了!");
}
}
运行结果如图所示:
5、遍历与复制数组
import java.util.Arrays;
public class InputArray {
public static 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 =Arrays.copyOf(a,4);//Arrays调用copyOf方法复制数组a的前4个元素
System.out.println(Arrays.toString(c));//Arrays调用toString方法返回数组c的元素值的表示格式
d = Arrays.copyOfRange(a, a.length-4, 4);//Arrays调用copyOfRange方法复制数组a的后4个元素
System.out.println(Arrays.toString(d));
c[c.length-1] = -100; //将-100赋给数组c的最后一个元素
d[d.length-1] = -200;
System.out.println(Arrays.toString(a));
}
}
运行结果如图所示:
6、输入产品的数量和单价
import java.util.Scanner;
public class InputData {
public static void main(String[] args) {
Scanner reader=new Scanner(System.in);
int amount =0 ;
float price=0,sum=0;
System.out.println("输入产品数量(回车确认):");
amount=reader.nextInt(); //从键盘为amount赋值
System.out.println("输入产品单价(回车确认):");
price=reader.nextFloat(); //从键盘为price赋值
sum = price*amount;
System.out.printf("数量:%d,单价:%5.2f,总价值:%5.2f",amount,price,sum);
}
}
运行结果如图所示:
7、 从命令行接收a,b,c,求解a-b范围的素数,每输出c个素数就换行输出。
import java.util.Scanner;
public class GetPrime {
public static void main(String[] args) {
int a, b, c;
System.out.println("依次输入要求范围的上下限和每行输出的个数:");
Scanner reader=new Scanner(System.in);// 读取命令行中的参数并把字符串类型转换为整型
a =reader.nextInt();
b =reader.nextInt();
c =reader.nextInt();
boolean flag;
int m, p, count = 0;
for (m = a; m <= b; m++) {
flag = true;
for (p = 2; p <= m / 2; p++)
if(m%p==0) {
flag = false;
break;
}
if (flag) {
System.out.print(m + "\t");
count++;
if(count%c==0){
// 每行中只输出c个素数
System.out.println();
}
}
}
}
}
运行结果如图所示:
8、 打印“魔方阵”:即方阵的每行、每列、每条对角线上数字之和均相等(读懂并验证)。
public class Magics {
public static 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 < n; j++) {
System.out.print(a[i][j]+"\t");
}
System.out.println();
}
}
}
运行结果如图所示:
10、 求矩阵的积(读懂并验证)
public class MatrixDemo {
public static 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();
}
}
}
运行结果如图所示:
四、实验过程与分析
d = Arrays.copyOfRange(a, a.length-4, 4);//Arrays调用copyOfRange方法复制数组a的后4个元素
五、实验总结
展开阅读全文