JAVA 实验报告(一)

更新时间:2024-01-18 12:55:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西华大学计算机系学生上机实践报告

西华大学计算机系上机实践报告

课程名称:Java面向对象程序设计 指导教师:陆园

上机实践名称:Java语言基础 上机实践编号: 年级:2008 姓名:赵侨月 组号:

上机实践成绩:

上机实践时间:16:00-17:40

学号:312008080605524 上机实践日期:2011.9.30

一、目的

1、了解Java编程基础

2.、学会基本Java程序的实现

二、内容与设计思想

1、我国历法中的天干、地支和生肖的排列是有规律的。天干的顺序是“甲乙丙丁戊己庚辛壬癸”,地支的顺序是“子丑寅卯辰巳午未申酉戌亥”,生肖的顺序是“鼠牛虎兔龙蛇马羊猴鸡狗猪”。天干、地支、生肖的计算方法非常简单:将年份减去3后除以10得到余数是几,对应于天干中的第几个;将年份减去3后除以12得到余数是几,则对应于地支中的第几个;生肖的计算方法和地支完全一致。例如,对2006年而言,将数字2006减去3后是2003,除以10后的余数是3,对应于天干中的第三位“丙”;将2003除以12的余数是11,所以对应地支中的倒数第二位“戌”。由此可知,2006年是“丙戌”年,生肖是“狗”。

根据以上思路,用Java写一个程序。程序提供一个声明形式为“public void getInfo(int year)”的方法,此方法接收一个int类型的代表年份的数字,然后计算并打印出相关信息。

2、对于某移动通信公司的某通话服务,按如下标准收取长途通话费:基本通话费是每分钟4角钱,不足1分钟的部分则按照1分钟计算;长途通话费是每6秒7分钱,不足6秒的部分按照6秒计算。整个长途通话费用由上述两项加起来。编写一个Java程序实现上面的计算。要求:编写一个声明为“public void calcFee(int iSeconds)”的方法,该方法接收通话的秒数,然后计算出费用并显示出来。在main方法中调用该方法,分别将通话长度为5秒、60秒、61秒、119秒四种情况下的费用打印出来。提示:为了避免出现小数,采用分而不是元来计算。

3、设计一个Java程序,其功能为:从键盘输入两个正整数m,n(m

x2x4x6x8cosx?1??????

2!4!6!8!5、设计一个Java程序,利用二维数组实现井字游戏。这个游戏的具体规则是:在一个3×3的方阵中,两个人轮流在空白处做符号标记,例如,一个人做√标记,另一个人做?标记,先将同一种标记在一行、一列或者两个对角线上连成线者为胜。图中表示√方胜。

√ ? √ ? √ 6、设计一个Java程序,其功能为:随机生成行个介于0?100之间的整数,统计每个整数的出现次数,并

根据这个统计结果,按照从小到大的顺序显示生成的每个整数。

7、设计一个Java程序,其功能为:从键盘输入一个m×n的矩阵,并对这个矩阵进行转置操作,即将矩阵中所有的aij内容与aji内容互换。 8、某火车站规定:在旅游旺季7~9月份,如果订票20张及其以上者,优惠票价10%;20张以下,优惠5%;在旅游淡季1~6月份、10~12月份,订票20张及其以上者,优惠票价20%;20张以下,优惠10%。编写一个Java程序能够根据月份和旅客订票张数决定优惠率。

第 1 页 共 10 页

西华大学计算机系学生上机实践报告

三、使用环境

Netbeans IDE 6.9 四、核心代码及调试过程

1、我国历法中的天干、地支和生肖的排列是有规律的。天干的顺序是“甲乙丙丁戊己庚辛壬癸”,地支的顺序是“子丑寅卯辰巳午未申酉戌亥”,生肖的顺序是“鼠牛虎兔龙蛇马羊猴鸡狗猪”。天干、地支、生肖的计算方法非常简单:将年份减去3后除以10得到余数是几,对应于天干中的第几个;将年份减去3后除以12得到余数是几,则对应于地支中的第几个;生肖的计算方法和地支完全一致。例如,对2006年而言,将数字2006减去3后是2003,除以10后的余数是3,对应于天干中的第三位“丙”;将2003除以12的余数是11,所以对应地支中的倒数第二位“戌”。由此可知,2006年是“丙戌”年,生肖是“狗”。

根据以上思路,用Java写一个程序。程序提供一个声明形式为“public void getInfo(int year)”的方法,此方法接收一个int类型的代表年份的数字,然后计算并打印出相关信息。

package newpackage; import java.util.*; public class diyiti{ static int tg,dz,sx;

public void getInfo(int year){

char tiangan[]={'甲','乙','丙','丁','戊','己','庚','辛','壬','癸'};

char dizhi[]={'子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'};

char shengxiao[]={'鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪'}; tg=(year-3); dz=(year-3); sx=(year-3);

if(tg==0) tg=10; if(dz==0) dz=12; if(sx==0) sx=12;

System.out.println(\天干:\ System.out.println(\地支:\ System.out.println(\生肖:\}

public static void main(String args[]){ System.out.print(\请输入年份:\ Scanner input=new Scanner(System.in); int a=input.nextInt(); diyiti out=new diyiti(); out.getInfo(a); } }

2、对于某移动通信公司的某通话服务,按如下标准收取长途通话费:基本通话费是每分钟4角钱,不足1分钟的部分则按照1分钟计算;长途通话费是每6秒7分钱,不足6秒的部分按照6秒计算。整个长途通话费用由上述两项加起来。编写一个Java程序实现上面的计算。要求:编写一个声明为“public void

第 2 页 共 10 页

西华大学计算机系学生上机实践报告

calcFee(int iSeconds)”的方法,该方法接收通话的秒数,然后计算出费用并显示出来。在main方法中调用该方法,分别将通话长度为5秒、60秒、61秒、119秒四种情况下的费用打印出来。提示:为了避免出现小数,采用分而不是元来计算。 package newpackage;

import java.util.Scanner; public class two{

public void calcFee(int iSeconds){ int sum,basic,longdistance; if(iSeconds`==0)

basic=(iSeconds/60)*40; else

basic=(iSeconds/60)*40+40; if(iSeconds%6==0)

longdistance=(iSeconds/6)*7; else

longdistance=(iSeconds/6)*7+7; sum=basic+longdistance;

System.out.println(iSeconds+\秒的费用为:\ }

public static void main(String args[]){ two cost=new two(); cost.calcFee(5); cost.calcFee(60); cost.calcFee(61); cost.calcFee(119); } }

3、设计一个Java程序,其功能为:从键盘输入两个正整数m,n(m

public static void main(String args[]){ int m,n,t,i,temp; int count=0; float prime;

Scanner entry=new Scanner(System.in); System.out.print(\请输入正整数m:\ m=entry.nextInt(); while(m<1){

第 3 页 共 10 页

西华大学计算机系学生上机实践报告

System.out.print(\的值输入不正确,请重新输入:\ m=entry.nextInt(); }

System.out.print(\请输入正整数n:\ n=entry.nextInt(); while( n<1){

System.out.print(\的值输入不正确,请重新输入:\ n=entry.nextInt(); }

while(m>n){ t=m; m=n; n=t; }

for(temp=m;temp<=n;temp++){

for (i = 2; i <= temp/2; i++){ if(temp % i == 0) break; }

if(i>temp/2){ count++;

System.out.print(temp+\ if(count%5==0){

System.out.println(); }

} }

} }

4、设计一个Java程序,其功能为:从键盘输入x,利用下列公式计算cos(x)的近似值。要求准确度达到10-8。

x2x4x6x8cosx?1??????

2!4!6!8!package newpackage;

第 4 页 共 10 页

西华大学计算机系学生上机实践报告

import java.util.*; public class four{

void calcos(double x){ double sum;

double item=-Math.pow(x,2)/2; int i=1; sum=item+1; float zqd=1e8f;

while(Math.abs(item)>zqd){

item=-item*x*x/((2*i+1)*(2*i+2)); sum=sum+item; i++; }

System.out.println(\的值为:\ }

public static void main(String args[]){ System.out.print(\请输入x的值:\ Scanner input=new Scanner(System.in); double a=input.nextDouble(); four b=new four(); b.calcos(a); } }

5、设计一个Java程序,利用二维数组实现井字游戏。这个游戏的具体规则是:在一个3×3的方阵中,两个人轮流在空白处做符号标记,例如,一个人做√标记,另一个人做?标记,先将同一种标记在一行、一列或者两个对角线上连成线者为胜。图中表示√方胜。

√ ? √ ? √ 6、设计一个Java程序,其功能为:随机生成行个介于0?100之间的整数,统计每个整数的出现次数,并

根据这个统计结果,按照从小到大的顺序显示生成的每个整数。 package newpackage; import java.util.*; //import java.lang.*; public class six {

public static void main(String args[]) {

int i;

int array[]=new int[30]; //生成随机地0个整数 for(i=0;i<30;i++) {

int n;

第 5 页 共 10 页

西华大学计算机系学生上机实践报告

n=(int) ((100 * (Math.random()))); array[i]=n;

System.out.print(n+\ \ }

System.out.println();

//统计每个随机生成数的的个数 for(int k=0;k<30;k++) {

int count=0;

for(int j=k;j<30;j++) {

if(array[k]==array[j]) count++; }

System.out.println(\随机生成的数\出现的次数为:\ } //排序 int p=0; int q=0; int temp=0;

for(p=0;p<30;p++){ for(q=0;q<30;q++){

if(array[p]

} }

System.out.println(\排序后的30个随机生成数如下:\ for(int r=0;r<30;r++){

System.out.print(array[r]+\ \ } } }

第 6 页 共 10 页

西华大学计算机系学生上机实践报告

7、设计一个Java程序,其功能为:从键盘输入一个m×n的矩阵,并对这个矩阵进行转置操作,即将矩阵中所有的aij内容与aji内容互换。 package newpackage; import java.util.*;

public class sevenmatrix{

public static void main(String args[]){ Scanner s= new Scanner(System.in);

System.out.print(\请输入矩阵的行数m:\ int m=s.nextInt();

System.out.print(\请输入矩阵的列数n:\ int n=s.nextInt();

int a[][]=new int[m][n]; int b[][]=new int[n][m]; int i,j;

//输入数据

System.out.println(\请输入矩阵:\ for(i=0;i

System.out.println(\原始矩阵: \ for (i=0;i

b[j][i]=a[i][j];

System.out.print(a[i][j]+\ }

System.out.println(); }

//转置矩阵

第 7 页 共 10 页

西华大学计算机系学生上机实践报告

for(i=0;i

//显示转置后的矩阵

System.out.println(\转置后的矩阵:\ for(i=0;i

for (j = 0; j < m; j++)

System.out.print(b[i][j] + \ System.out.println(); }

} }

8、某火车站规定:在旅游旺季7~9月份,如果订票20张及其以上者,优惠票价10%;20张以下,优惠5%;在旅游淡季1~6月份、10~12月份,订票20张及其以上者,优惠票价20%;20张以下,优惠10%。编写一个Java程序能够根据月份和旅客订票张数决定优惠率。 package newpackage; import java.util.*; public class eight {

public static void main(String args[]){ int month,ticket; float privilege;

Scanner in=new Scanner(System.in); System.out.print(\请输入当前月份:\ month=in.nextInt();

while(month<=1 || month>12){

System.out.print(\月份格式不正确,请重新输入:\ month=in.nextInt(); }

System.out.print(\请输入旅客订票数:\ ticket=in.nextInt();

if((month>=1 && month<=6) ||(month>=10 && month<=12)){ if (ticket > 0 && ticket <= 20) privilege=0.1f; else

privilege=0.2f; }

第 8 页 共 10 页

西华大学计算机系学生上机实践报告

else{

if (ticket > 0 && ticket <= 20) privilege=0.05f; else

privilege=0.1f; }

System.out.println(month+\月份\张的优惠率是:\ } }

第 9 页 共 10 页

西华大学计算机系学生上机实践报告

五、总结

通过这次上机,我对Java有了一定的认识,知道了Java与C、C++、C#编程的部分不同地方,比如:输入/输出方式、换行的表达、数组的声明与创建、代码查错等等。Java中输入需要创建对象,通过对象实现各种类型的数据的输入;用System.out.print()实现数据的输出;System.out.printlb()用于换行。对于Java的包的概念有了一定的了解,并知道导入import类的重要性,一般都需要导入java.util.*类。Java的程序都是在类中实现的,且public static void main(String args[])是固定模式。若创建了方法,在调用方法或方法中的类时,根据情况直接调用或用对象调用。虽然最终完成了上机作业,但是因为对教材的不熟悉,代码编写用了较长的时间,在以后的日子,我尽量多花时间看书熟悉java的知识并多加练习编程。

第 10 页 共 10 页

本文来源:https://www.bwwdw.com/article/9q5o.html

Top