实验四
1.(方法调用)通过方法调用实现1!+2!+3!+4!+5!+6!+7!+8!.
要求:编写一个方法实现N!,然后通过方法调用实现。
答题解析:此题考查递归的思想,即 N!=N*(N-1) !的阶乘,此题的重点在于设计阶乘方法。阶乘的停止条件为:当N=1时,N!=1。
实例代码:
public class t1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("1!+2!+3!+4!+5!+6!+7!+8!的和为:");
int sum=0;
for(int i=1;i<=8;i++)
sum=sum+jichen(i);
System.out.println(sum);
}
public static int jichen(int n)
{
if(n>1)
return n*jichen(n-1);
else
return 1;
}
}
2.(方法重载)通过方法重载计算圆、长方形的面积。方法名统一用area。提示:计算圆面积时应提供半径,计算长方形面积时应提供长和宽。
答题解析:此题主要考查方法重载的概念,重载方法通过参数个数和参数类型来加以区分。
实例代码:
package test4;
import java.util.Scanner;
public class t2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
int n;
while(true)
{
System.out.println("请选择具体操作:\n输入1:计算圆面积\n输入2:计算矩形面积\n输入0:退出");
Int();
if(n==0)
break;
if(n==1)
{
System.out.println("请输入半径:");
double Double();
System.out.println("圆面积是:"+area(radius));
}
if(n==2)
{
System.out.println("请输入长和宽:");
double Double();
double Double();
System.out.println("矩形的面积是:"+area(length,width));
}
}
}
public static double area(double radius)//计算圆面积
{
return 3.14*radius*radius;
}
public static double area(double length,double width)//计算矩形面积
{
return length*width;
}
}
3.(判断数组排序)编写程序从键盘任意输入6个整数,并编写方法判断该数组是否从小到大排序。若已排序,输出“已排序”,否则编写方法实现数组从小到大排序并输出排好序的数组元素。
提示:需编写两个方法:
方法一:用于判断方法是否排序
方法二:当未排序时,需调用方法二,实现从小到大排序。
答题解析:此题考查数组作为参数的方法调用及排序方法,这里采用冒泡排序。
实例代码:
package test4;
import java.util.Scanner;
public class t3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
System.out.println("请输入6个整数用于数组从小到大排序:");
int n[] = new int[6];
for (int i = 0; i < n.length; i++)
n[i] = in.nextInt();
if (!isSorted(n)) {
arraySort(n);// 判断数组是否从小到大排序,若未排序,则排序
System.out.println("数组从小到大排序为:");
for (int i = 0; i < n.length; i++)
// 输出排好序的数组
System.out.print(n[i] + " ");
} else
System.out.println("数组已排序!");
}
public static boolean isSorted(int n[])// 判断数组是否排序
{
for (int i = 0; i < n.length - 1; i++)
if (n[i] > n[i + 1])
return false;// 若发现后面一个数大于前一个数,则未排序
return true;
}
public static void arraySort(int冒泡排序java代码详解 n[])// 冒泡排序
{
for (int i = 0; i < n.length - 1; i++)// n个数,需进行n-1次排序
{
for (int j = 0; j < n.length - i - 1; j++)// 依次从未排序的数组元素中将最大的数排到最后
{
if (n[j] > n[j + 1])// 若发现后一个数大于前一个数,两两交换
{
int temp = n[j];
n[j] = n[j + 1];
n[j + 1] = temp;
}
}
}
}
}
4.编写一个类circle表示圆。
1)该圆具有名为radius的double型成员变量,表示半径,默认值为1.
2)一个无参的构造方法。
3)一个有参的构造方法,用于为radius(半径)重新赋值。
4)一个计算圆面积的方法getArea();
5)一个计算圆周长的方法getPerimeter();
6)在主方法中生成两个实例:c1:调用默认构造方法生成;c2:调用有参的构造方法生成(半径为10)。
7)输出c2的圆面积和周长。
答题解析:此题考查类的基本概念。
实例代码:
package test4;
public class circle {
private double radius=1;
public circle()
{
}
public circle(double radius)
{
this.radius=radius;
}
public double getArea()
{
return 3.14*radius*radius;
}
public double getPerimeter()
{
return 3.14*2*radius;
}
public static void main(String args[])
{
circle c1=new circle();
circle c2=new circle(10);
System.out.println("半径为10的圆面积为:"+c2.getArea()+",圆周长为:"+c2.getPerimeter());
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论