资源描述
实 验 报 告
(计算机与信息工程学院实验中心)
学 期: 2014-2015
课程名称: 《Java程序设计实验》
班 级: 信息1202
姓 名: 方逸梅
学 号: 1212100231
指导老师: 费玉莲
《Java程序设计》
独立实验教学安排
一、实验的教学方式、安排及实验环境
(一)教学方式
对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。实验十二的内容由学生自行设计完成。
(二)教学安排
学时数:30课时
学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。
(三)实验环境
实验环境为JDK 1.6。
(四)具体安排
地点:信息大楼实验室。
辅导:每个班次一名辅导老师,原则上由任课老师担任。
登记:实验完成,由辅导老师登记实验纪录。
学生:实验做完,完成实验报告内容,并在学期末上交实验册。
老师:批改实验,成绩与平时成绩一起占期末的30%。
二、实验的具体内容和要求
见实验报告。
浙江工商大学
计算机与信息工程学院实验报告(1)
日期: 地点: 成绩:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
实验目的、实验原理和内容:
一、实验目的:熟悉Java开发环境及简单程序Java设计。
二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。
三、实验内容及要求:
1. 下载、安装并设置Java SDK 软件包。
2. 熟悉Eclipse 编辑软件。
3.掌握运行Java 程序的步骤。
4. 分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
程序一
public class hello {
public static void main(String[] args) {
for(int i=0;i<=4;i++)
{
System.out.println("Hello java! 欢迎使用!");
}
}
}
结果示意图1
存在的问题
1、JAVA 存在大小写,因为system没有区分大小写所以出现编译错误。
2、用DOS进入java源程序时,先要用cd转入java源程序所在路径。
程序二
import java.awt.Graphics;
import java.applet.Applet;
public class helloworld extends Applet
{
public void paint(Graphics g)
{
g.drawString("Hello java! 欢迎使用!",25,25);
}
}
方法1
直接将程序二打入到java应用程序中,可调出如下图界面
结果示意图2
程序三
<HTML>
<HEAD><TILLE> helloworld2</TILLE>></HEAD>
<BODY>
<applet code=helloworld width="300" height="200"></applet>
</BODY>
</HTML>
该程序是网页的脚本程序,html 文件类型,可直接双击打开。
浙江工商大学
计算机与信息工程学院实验报告(2)
日期: 地点: 成绩:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
实验目的、实验原理和内容:
一、实验目的:Java结构化程序设计。
二、实验原理:声明不同数据类型的变量,使用关系运算符和逻辑运算符,使用表达式语句与复合语句,使用选择语句,使用循环语句。
三、实验内容及要求:
1.编程输入学生的学习成绩的等级,给出相应的成绩范围。设A级为85分以上(包括85);B级为70分以上(包括70分);C级为60分以上(包括60分);D级为60分以下。分别使用if语句和switch语句实现。
2.使用continue语句实现:将100~300之间的不能被3整除的数输出。
3.使用break语句实现记数:从1~100,当数到78时程序终止。
4、分别使用while、do-while和for语句编程,找出所有的水仙花数并输出。 水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:371=33+73+13,371就是一个水仙花数。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
1. 编程输入学生的学习成绩的等级,给出相应的成绩范围。设A级为85分以上(包括85分);B级为70分以上(包括70分);C级为60分以上(包括60分);D级为60分以下。分别使用if语句和switch语句实现。
IF语句
import java.util.*;
public class dengji {
public static void main(String[] args)
{
System.out.println("请输入等级:");
Scanner sc=new Scanner(System.in);
String grade=sc.next();
if(grade.equals("A"))
System.out.println("范围在[85,100)");
else if(grade.equals("B"))
System.out.println("范围在[70,85)");
else if(grade.equals("C"))
System.out.println("范围在[60,70)");
else if(grade.equals("D"))
System.out.println("范围在[0,60)");
else
System.out.println("输入有误!");
}
}
Switch 语句
public class test{
public static void main(String[] args)
{
char grade=' ';
System.out.println("请输入等级:");
try
{
grade =(char)System.in.read();
}catch(Exception e){}
switch(grade)
{
case 'A':
System.out.println("范围在85~100");
break;
case 'B':
System.out.println("范围在70~85");
break;
case 'C':
System.out.println("范围在60~70");
break;
case 'D':
System.out.println("范围在60分以下");
break;
default:
System.out.println("输入有误!");
}
}
}
2.使用continue语句实现:将100~300之间的不能被3整除的数输出。
public class sushu {
public static void main(String[] args) {
for(int i=100;i<300;i++)
{
if(i%3==0)
continue;
System.out.println(i);
}
}
}
3.使用break语句实现记数:从1~100,当数到78时程序终止。
public class stop {
public static void main(String[] args) {
for(int i=1;i<=100;i++)
{
System.out.println(i);
if(i==78)
break;
}
}
}
4、分别使用while、do-while和for语句编程,找出所有的水仙花数并输出。 水仙花数是三位数,它的各位数字的立方和等于这个三位数本身,例如:371=33+73+13,371就是一个水仙花数。
For语句
public class num1 {
public static void main(String[] args) {
int x,y,z,i,sum;
for(i=100;i<1000;i++)
{
z=i%100%10;
y=i/10;
y=y%10;
x=i/100;
sum=x*x*x+y*y*y+z*z*z;
if(sum==i)
System.out.println(sum+"是水仙花数");
}
}
}
While语句
public class num1 {
public static void main(String[] args) {
int x,y,z,i=100,sum;
while(i<1000)
{
z=i%100%10;
y=i/10;
y=y%10;
x=i/100;
sum=x*x*x+y*y*y+z*z*z;
if(sum==i)
System.out.println(sum+"是水仙花数");
i++;
}
}
}
Do-while语句
public class num1 {
public static void main(String[] args) {
int x,y,z,i=100,sum;
do{
z=i%100%10;
y=i/10;
y=y%10;
x=i/100;
sum=x*x*x+y*y*y+z*z*z;
if(sum==i)
System.out.println(sum+"是水仙花数");
i++;
}while(i<1000);
}
}
浙江工商大学
计算机与信息工程学院实验报告(3)
日期: 地点: 成绩:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
实验目的、实验原理和内容:
一、实验目的:面向对象程序设计设计(一)
二、实验原理:创建 Applet 应用小程序,创建对象并使用对象,编写显示当前日期和时间的程序,使用修饰符,方法中参数传递的练习,类的继承性练习,类的多态性。
三、实验内容及要求:
1、 一个景区根据游人的年龄收取不同价格的门票。请编写游人类,该类包含两个成员域:年龄和票价;两个方法:设置年龄和根据年龄段决定能够购买的门票价格并输出。然后写出该类实例测试该类(类的基本实现)
2.(1)编写一个圆类Circle,该类拥有:
①一个成员变量
Radius(私有,浮点型); // 存放圆的半径;
②两个构造方法
Circle( ) // 将半径设为0
Circle(double r ) //创建Circle对象时将半径初始化为r
③ 三个成员方法
double getArea( ) //获取圆的面积
double getPerimeter( ) //获取圆的周长
void show( ) //将圆的半径、周长、面积输出到屏幕
(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。还拥有:
①一个成员变量
double hight(私有,浮点型); // 圆柱体的高;
②构造方法
Cylinder (double r, double h ) //创建Circle对象时将半径初始化为r
③ 成员方法
double getVolume( ) //获取圆柱体的体积
void showVolume( ) //将圆柱体的体积输出到屏幕
编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
1、
import java.util.*;
public class visitor {
int age;
int price;
public void setage(int age)
{
this.age=age;
}
public void ticket(){
if(age>0&&age<=8)
price=0;
else if(age<22)
price=40;
else if(age<60)
price=80;
else
price=20;
System.out.println("门票价格"+price);
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入年龄:");
visitor youren=new visitor();
youren.setage(sc.nextInt());
youren.ticket();
}
}
2、
public class circle {
double radius;
circle(){
radius=0.0;
}
circle(double r)
{
radius=r;
}
public double getarea()
{
return Math.PI*radius*radius;
}
public double getperimeter()
{
return 2*Math.PI*radius;
}
void show()
{
System.out.println("圆的半径:"+radius);
System.out.println("圆的周长:"+getperimeter());
System.out.println("圆的面积:"+getarea());
}
}
public class cylinder extends circle{
double height;
cylinder(double r,double h){
super(r);
height=h;
}
double getvolume()
{
return height*getarea();
}
void showvolume()
{
System.out.println("圆柱体的体积:"+getvolume());
}
}
public class test1 {
public static void main(String[] args) {
circle ci= new circle(10.0);
ci.show();
cylinder cy=new cylinder(3.0,4.0);
cy.show();
cy.showvolume();
}
}
浙江工商大学
计算机与信息工程学院实验报告(4)
日期: 2014.11.5 地点: 信息楼227 成绩:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
实验目的、实验原理和内容:
一、实验目的:数组、字符串与异常处理。
二、实验原理:使用数组,使用字符串与字符串类,处理异常。
三、实验内容及要求:
1、编写一程序,计算矩阵A={{7,9,4},{5,6,8}}与矩阵B={{9,5,2,8},{5,9,7,2},{4,7,5,8}}相乘,把结果存入矩阵C,并在屏幕输出结果。
2、使用冒泡排序(数组,数字为:63,4,24,1,3,5)
3、编写程序,测试字符串“你好,欢迎来到Java世界”的长度,将字符串的长度转换成字符串进行输出,并对其中的“Java”四个字母进行截取,输出截取字母以及它在字符串中的位置。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
1、
public class juzhen
{
public static void main(String args[])
{
int intMatrixA[][]={{7,9,4},{5,6,8}};
int intMatrixB[][]={{9,5,2,8},{5,9,7,2},{4,7,5,8}};
int intMatrixC[][]=new int[2][4];
Multiply(intMatrixA,intMatrixB,intMatrixC);
System.out.println("\n****MatrixA****");
OutputMatrix(intMatrixA);
System.out.println("\n****MatrixB****");
OutputMatrix(intMatrixB);
System.out.println("\n****MatrixC****");
OutputMatrix(intMatrixC);
}
static void Multiply(int intMatrixA[][],int intMatrixB[][],int intMatrixC[][])
{
int i,j,k;
for(i=0;i<intMatrixA.length;i++)
{
for(j=0;j<intMatrixC[0].length;j++)
{
intMatrixC[i][j]=0;
for(k=0;k<intMatrixB.length;k++)
{
intMatrixC[i][j]+=intMatrixA[i][k]*intMatrixC[k][j];
}
}
}
}
static void OutputMatrix(int intMatrix[][])
{
int i,j;
for(i=0;i<intMatrix.length;i++)
{
for(j=0;j<intMatrix[0].length;j++)
{
System.out.print(intMatrix[i][j]+" ");
}
System.out.println();
}
}
}
2、
public class maopao {
public static void main(String[] args) {
int a[]={63,4,24,1,3,5};
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<5-i;j++)
{
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<6;i++)
{
System.out.print(a[i]+" ");
}
}
}
3、
public class jiequ {
public static void main(String[] args) {
String a=new String("你好,欢迎来到Java世界");
int i=a.length();
int j;
char[] c=a.toCharArray();
System.out.println(String.valueOf(i));
for(j=0;j<a.length();j++)
{
if(c[j]=='J')
{
System.out.println("J所在位置为:"+(j+1));
break;
}
}
//String d=a.substring(j,j+4);
System.out.println("截取的字符串为:"+a.substring(j,j+4));
}
}
浙江工商大学
计算机与信息工程学院实验报告(5)
日期: 地点: 成绩:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
实验目的、实验原理和内容:
一、实验目的:文件与数据流。
二、实验原理:使用标准输入输出流,使用字符输入输出流,使用随机文件类,文件的读写操作。
三、实验内容及要求:
1、输入8个整数的数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
2、创建一个文本文件memo.txt,编写程序实现打开该文本文件,每次读取一行内容,将每行作为一个字符串读入,并将字符串输出显示到屏幕上。
附加题:
1、 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
2、 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
3、 输入两个正整数m和n,求其最大公约数和最小公倍数。
4、 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
5、 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
1、
import java.util.Scanner;
public class swap {
public static void main(String[] args) {
int i,m,n,k=0,j=0;
int []a=new int[8];
System.out.println("请输入8个数字");
Scanner reader=new Scanner(System.in);
for(i=0;i<8;i++)
{
a[i]=reader.nextInt();
}
int max=a[0],min=a[0];
for(i=1;i<8;i++)
{
if(a[i]>max)
{
max=a[i];
k=i;
}
if(a[i]<min)
{
min=a[i];
j=i;
}
}
m=a[k];a[k]=a[0];a[0]=m;
if(a[k]!=min)
{
n=a[j];a[j]=a[7];a[7]=n;
}
else
{
n=a[k];a[k]=a[7];a[k]=n;
}
System.out.print("交换后的数:");
for(i=0;i<8;i++)
{
System.out.print(a[i]+",");
}
}
}
2、
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
public class file {
public static void main(String[] args) throws IOException {
File filePath = new File("D:\\memo.txt");
String str ;
try {
BufferedReader br = new BufferedReader(new FileReader(filePath));
while ((str = br.readLine()) != null)
{
System.out.println(str);
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
3.
import java.util.Scanner;
public class rabbit {
public static void main(String[] args) {
System.out.println("请输入n");
Scanner reader=new Scanner(System.in);
int n=reader.nextInt();
if(n==1)
System.out.println("第1个月兔子的对数: 1");
if(n==2)
{
System.out.println("第1个月兔子的对数: 1");
System.out.println("第2个月兔子的对数: 1");
}
int f1=1,f2=2,f,m=24;
if(n>=3)
{
System.out.println("第1个月兔子的对数: 1");
System.out.println("第2个月兔子的对数: 1");
for(int i=3;i<=n;i++)
{ f=f2;
f2=f1+f2;
f1=f;
System.out.println("第"+i+"个月的兔子对数:"+f2);
}
}
}
}
浙江工商大学
计算机与信息工程学院实验报告(6)
日期: 地点: 成绩:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
实验目的、实验原理和内容:
一、实验目的:文件与数据流。
二、实验原理:使用标准输入输出流,使用字符输入输出流,使用随机文件类,文件的读写操作。
三、实验内容及要求:
1. 使用标准输入输出流
2. 使用字符输入输出流
3. 使用随机文件类
4. 文件的读写操作
完成实验教材实践题。
四、题目
1. 编写一个程序。在控制台中窗口中提示输入两个整数,然后接收这两个整数,并输出它们的和。下面是运行过程的示例:
请输入第一个整数:45
请输入第二个整数:23
计算结果:45+23=68
2. 编写一个程序。要求输入5个学生的成绩(从0到100的整数),并将这5个数保存到文件“data.txt”中。然后再编写一个程序,从文件“data.txt”中读取这5个学生的成绩,计算并输出它们的平均数,然后再按从小到大的顺序输出这5个学生的成绩。
3. 编写一个程序。修改在上一题生成的文件“data.txt”中的文件内容,使得第三个学生的成绩变成为这5个学生的平均成绩,并在控制台窗口中输出在修改以后的文件内容。
4.输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
1、
import java.io.*;
public class kongzhitai {
public static int mb_getInt(BufferedReader f)
{
try
{
String s=f.readLine();
int i=Integer.parseInt(s);
return i;
}
catch(Exception e){
return -1;
}
}
public static void main(String[] args) {
try
{
BufferedReader f=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入第一个整数:");
int i=mb_getInt(f);
System.out.print("请输入第二个整数:");
int j=mb_getInt(f);
System.out.print("计算结果:"+i+"+"+j+"="+(i+j));
}
catch(Exception e)
{
System.out.println("发生异常!");
e.getStackTrace();
}
}
}
2、
import java.io.*;
public class studentgrade {
public static double mb_getIn(BufferedReader f)
{
try
{
String s=f.readLine();
double i=Double.parseDouble(s);
return i;
}
catch(Exception e)
{
return -1;
}
}
public static double avg()
{
try
{
double sum=0;
BufferedReader f1=new BufferedReader(new FileReader("D:\\data.txt"));
for(String s=f1.readLine();s!=null;s=f1.readLine())
{
double b=Double.parseDouble(s);
sum+=b;
}
return sum/5;
}
catch(IOException e)
{
return -1;
}
}
public static void main(String[] args) {
double a[]=new double[5];
int i,j;
try{
BufferedReader f=new BufferedReader(new InputStreamReader(System.in));
PrintWriter bw=new PrintWriter("D:\\data.txt");
for(i=0;i<5;i++)
{
System.out.print("请输入第"+(i+1)+"个学生的成绩:");
a[i]=mb_getIn(f);
bw.println(String.valueOf(a[
展开阅读全文