文章目录
- 第二章 Java编程基础
-
- 第一次实验
-
- 1.定义一个整型的长度为6的一维数组k[6],并将数组中元素k[i] 值初始化为i。然后,将元素k[3]打印出来。
- 2.定义一个整型的长度为3 x 4的二维数组k[3] [4],并将数组中元素k[i] [j] 值初始化为值ixj。然后,将元素k[2] [3]打印出来。(可以直接赋值)
- 3.从命令行输入几个字符串,统计并打印出输入字符串的个数、以及各字符串的字符个数。(提示:args.length / args[k].length() )
- 4.从命令行输入一个数字,判断它是奇数还是偶数。(提示:利用%;三元条件 或 if/else ; int a=Integer.parseInt(args[0]) //数据输入)
- 5.从命令行输入两个数字,判断两个数谁大谁小。(提示:读输入参数args[];三元条件 或 if/else )
- 第二次实验
- 第三章 面向对象
-
- 第一次实验
-
- 1.定义一个复数类complex,它的内部具有两个实例变量:realPart和imagPart,分别代表复数的实部和虚部,编程实现要求的数学运算:1)实现两个复数相加;2)实现两个复数相减;3)输出运算的结果。然后,调用上述方法实现两个复数18+2i、19-13i的相加、相减,并打印出结果。
- 2.首先定义一个计算二维坐标系中圆面积的类circleClass,要求类中有一个定义圆心座标,圆上一点座标的构造函数,以及一个通过圆上一点座标与圆心座标计算圆面积的方法area。然后,通过上述类生成两个圆对象circle1、circle2进行测试:一个圆心、圆上一点座标分别为(0,0)、(8.5,9),另一个圆心、圆上一点座标分别为(2,3.5)、(9,6),并分别显示各自面积。
- 3.首先定义一个计算长方形面积的类rectangleClass,要求类中有一个定义长方形左上角和右下角座标的构造函数,以及一个通过长方形右下角座标与左上角座标计算长方形面积,并实例化两个长方形进行测试.
- 4.将笛卡尔坐标系上的点定义为一个类Point,该类要求提供求得坐标系上两点间距离的功能、获取和设置坐标的功能、获取极坐标的功能,以及完成对已创建的Point类对象进行个数统计的功能。设计测试Point类的应用程序主类,测试并显示输出提供所有功能的结果。(实验指导书P91----第6题)
- 5.设计一个表示图书的Book类,它包含图书的书名、作者、月销售量等属性,另有两个构造方法(一个不带参数,另一个带参数),成员方法setBook( ) 和printBook()分别用于设置和输出书名、作者、月销售量等数据。并设计相应的测试Book类的应用程序主类,测试并显示输出提供所有功能的结果。
- 6.请创建一个银行帐户类,要求如下:(1)类包括帐户名、帐户号、存款额等属性;(2)可实现余额查询,存款和取款的操作。(3)创建该类的对象,验证以上两项。
- 第二次实验
-
- 7. 设计一个学生类Student,其数据成员有name(姓名)、age(年龄)和degree(学位)。由Student类派生出本科生类Undergraduate和研究生类Graduate,本科生类Undergraduate增加成员specialty(专业),研究生类增加成员direction(研究方向)。每个类都有show()方法,用于输出数据成员信息。最后请输出下列信息:
- 8. 编程实现有一个电话类Phone,它有号码的属性number,是一个12位的字符数组,它有四个功能,设置电话号码setNumber(),显示电话号码getNumber(),接电话answer(),拨打电话dial();移动电话mobilePhone和固定电话fixPhone是电话的两个子类, 但移动电话号码为11位, 并且移动电话和固定电话接听和拨打电话的方式不同.固定电话又有一个子类:无绳电话cordlessPhone,无绳电话号码为4位,它相对固定电话还多一个移动功能move().实现这几个类,并且测试它们的功能.
- 9.有工人、服务员、教师、科学家四种角色,其中服务员、工人只有月固定工资(元/月),教师除月固定工资外,还有课酬(元/节)。科学家除月固定工资外,还有科研激励奖(元/季度)。请通过继承设计出相应的类,将各种类型的员工的全年工资打印出来,并测试(张三、工人、4000元/月)、(李四、服务员、3500元/月)、(王五、教师、5000元/月、100元/节,200节/年)、(刘六、科学家、7000元/月、20000元/季度)。
- 第三次实验
-
- 10.在biology包中的animal包中有human类,它具有name,height,weight的属性,还具有eat(),sleep()和work()的行为,在biology包中的plant包中有flower类,它具有name,color,smell的属性,还具有drink()和blossom()的行为.现在在一个school包中的garden包中一个张三的人,他是一个human类的对象,种植的rose是一个flower类对象,编程实现并测试各自的方法.
- 11.在computer包中的mainbroad包中有一个VGACard的类,它有一个显示方法show(),显示”VGA checked success”,在server的包的mainbroad包中的showCard类是继承自VGACard,请测试showCard的show()功能。
- 12.在com.graphic包中定义一个圆柱体类Cylinder,其半径r,高h都为私有属性,有构造方法和求体级方法volume()。在com.test包中定义一个测试类test,测试一个半径为5.34、高为2的圆柱体体积。半径PI为3.14。
- 第四次实验
-
- 13.首先设计一个学生抽象类Student,其数据成员有name(姓名)、age(年龄)和degree(学位),以及一个抽象方法show()。然后由Student类派生出本科生类Undergraduate和研究生类Graduate,本科生类Undergraduate增加成员specialty(专业),研究生类增加成员direction(研究方向)。并且每个类都有show()方法,用于输出数据成员信息。请定义对象,并打印输出下列信息:
- 14.设计一个抽象类Graphics,它具有一个String类型参数name和两个抽象方法parameter()、area(),name用来存储图形的名称,parameter()方法用于输出图形的名称和其它属性特征,area()方法用于输出图形的面积。请用该类派生的子类实现输出一个形状为长方形、长为3宽为2和它面积以及输出一个形状为圆形、颜色为红色、半径为4和它面积。
- 15.设计一个接口circleInterface,要求接口中有一个定义PI的常量以及一个计算圆面积的空方法circleArea()。然后设计一个类circleClass实现该接口,通过构造函数circleClass(double r)定义圆半径,并增加一个显示圆面积的方法。最后,通过上述类生成两个半径分别为3.5、5.0的圆对象circle1、circle2进行测试。
- 16.设计一个Shape接口和它的两个实现类Square和Circle,要求如下:1)Shape接口中有一个抽象方法area(),方法接收一个double类型的参数,返回一个double类型的结果。2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回。在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的园面积。
- 第四章 Java API
- 第六章 图形用户界面
第二章 Java编程基础
第一次实验
1.定义一个整型的长度为6的一维数组k[6],并将数组中元素k[i] 值初始化为i。然后,将元素k[3]打印出来。
public class less02_1{
public static void main(String[] args){
int k[] = new int[6];
for(int i = 0;i < k.length;i++)
k[i] = i;
System.out.println("k[3]=" + k[3]);
}
}
结果:
2.定义一个整型的长度为3 x 4的二维数组k[3] [4],并将数组中元素k[i] [j] 值初始化为值ixj。然后,将元素k[2] [3]打印出来。(可以直接赋值)
public class less02_1{
public static void main(String[] args){
int k[][] = new int[3][4];
for(int i = 0;i < k.length;i++) {
for(int j = 0;j < k[i].length;j++)
k[i][j] = i * j;
}
System.out.println("k[2][3]="+k[2][3]);
}
}
结果:
3.从命令行输入几个字符串,统计并打印出输入字符串的个数、以及各字符串的字符个数。(提示:args.length / args[k].length() )
public class less02_1{
public static void main(String[] args){
System.out.println("字符串的个数"+args.length);
for(int i = 0;i < args.length;i++)
System.out.println("第"+(i + 1)+"个字符串的字符数"+args[i].length());
}
}
结果:
4.从命令行输入一个数字,判断它是奇数还是偶数。(提示:利用%;三元条件 或 if/else ; int a=Integer.parseInt(args[0]) //数据输入)
public class less02_1{
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
if(a % 2 == 0) System.out.println(a+"是偶数");
else System.out.println(a+"是奇数");
}
}
结果:
5.从命令行输入两个数字,判断两个数谁大谁小。(提示:读输入参数args[];三元条件 或 if/else )
public class less02_1{
public static void main(String[] args){
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
if(a > b) System.out.println(a+">"+b);
else if(a == b) System.out.println(a+"="+b);
else System.out.println(a+"<"+b);
}
}
第二次实验
6.角谷猜想:任何一个正整数n,如果它是偶数则除以2,如果是奇数则乘3加1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1。编写应用程序证明:在3~10000之间的所有正整数都符合上述规则。
public class less2_02 {
public static void main(String[] args){
int tmp = 0;
for (int n = 3; n <= 10000; n++) {
tmp = n;
while(tmp != 1){
if(tmp % 2 == 1)
tmp = tmp * 3 + 1;
else
tmp = tmp / 2;
}
System.out.println(n+"符合角谷猜想!");
}
}
}
7.编写一个模拟同时掷骰子的程序。要用Math.random()模拟产生两个骰子,将两个结果相加,相加的和等于7的可能性最大,等于2和12的可能性最小。程序模投掷3600次,判断求和的结果是否合理。
public class less2_02 {
public static void main(String[] args) {
// 方法一
int r1=0,r2=0;
int sum=0,sum2=0,sum3=0,sum4=0,sum5=0,sum6=0,sum7=0,sum8=0,sum9=0,sum10=0,sum11=0,sum12=0;
for (int n=0; n<3600; n++) {
r1=(int)(Math.random()*6+1);
r2=(int)(Math.random()*6+1);
sum=r1+r2;
switch(sum){
case 2:sum2++;break;
case 3:sum3++;break;
case 4:sum4++;break;
case 5:sum5++;break;
case 6:sum6++;break;
case 7:sum7++;break;
case 8:sum8++;break;
case 9:sum9++;break;
case 10:sum10++;break;
case 11:sum11++;break;
case 12:sum12++;break;
}
}
System.out.println("和为2的次数:"+sum2);
System.out.println("和为3的次数:"+sum3);
System.out.println("和为4的次数:"+sum4);
System.out.println("和为5的次数:"+sum5);
System.out.println("和为6的次数:"+sum6);
System.out.println("和为7的次数:"+sum7);
System.out.println("和为8的次数:"+sum8);
System.out.println("和为9的次数:"+sum9);
System.out.println("和为10的次数:"+sum10);
System.out.println("和为11的次数:"+sum11);
System.out.println("和为12的次数:"+sum12);
}
}
结果:
public class less2_02 {
public static void main(String[] args) {
//方法2
int r1=0,r2=0,sum=0;
int[] res=new int[13];
for (int n=0; n<3600; n++) {
r1=(int)(Math.random()*6+1);
r2=(int)(Math.random()*6+1);
sum=r1+r2;
res[sum]++;
}
for(int n=2;n<=12;n++){
System.out.println("和为 "+n+" 的次数:"+res[n]);
}
}
}
结果:
8.编程:从键盘读取星号数,采用循环语句打印如下图形。如:从键盘输入10,则星号排列最大数是10。注意图4图5星号数需要为奇数:
//图1
import java.util.Scanner;
public class less2_02 {
//定义一个打印n个星号的方法
static void pStar(int n){
for (int i=0; i<n; i++) {
System.out.print("*");
}
}
//定义一个打印n个空格的方法
static void pSpace(int n){
for (int i=0; i<n; i++) {
System.out.print(" ");
}
}
//定义一个换行的方法
static void pEnter(){
System.out.println();
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入星号数:");
int n=sc.nextInt();
//图形1
for(int i=1;i<=n;i++){
pSpace(n-i);
pStar(i);
pEnter();
}
}
}
结果:
//图2
import java.util.Scanner;
public class less2_02 {
//定义一个打印n个星号的方法
static void pStar(int n){
for (int i=0; i<n; i++) {
System.out.print("*");
}
}
//定义一个打印n个空格的方法
static void pSpace(int n){
for (int i=0; i<n; i++) {
System.out.print(" ");
}
}
//定义一个换行的方法
static void pEnter(){
System.out.println();
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入星号数:");
int n=sc.nextInt();
//图形2
for(int i=1;i<=n;i++){
pStar(i);
pEnter();
}
for(int i=n-1;i>=1;i--){
pStar(i);
pEnter();
}
}
}
结果:
//图3
import java.util.Scanner;
public class less2_02 {
//定义一个打印n个星号的方法
static void pStar(int n){
for (int i=0; i<n; i++) {
System.out.print("*");
}
}
//定义一个打印n个空格的方法
static void pSpace(int n){
for (int i=0; i<n; i++) {
System.out.print(" ");
}
}
//定义一个换行的方法
static void pEnter(){
System.out.println();
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入星号数:");
int n=sc.nextInt();
//图形3
for(int i=1;i<=n;i++){
pStar(i);
pEnter();
}
for(int i=1;i<n;i++){
pSpace(i);
pStar(n-i);
pEnter();
}
}
}
结果:
//图4
import java.util.Scanner;
public class less2_02 {
//定义一个打印n个星号的方法
static void pStar(int n){
for (int i=0; i<n; i++) {
System.out.print("*");
}
}
//定义一个打印n个空格的方法
static void pSpace(int n){
for (int i=0; i<n; i++) {
System.out.print(" ");
}
}
//定义一个换行的方法
static void pEnter(){
System.out.println();
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入星号数:");
int n=sc.nextInt();
//图形4
for(int i=0;i<=(n-1)/2;i++){
pSpace((n-1)/2-i);
pStar(i*2+1);
pEnter();
}
}
}
结果:
//图5
import java.util.Scanner;
public class less2_02 {
//定义一个打印n个星号的方法
static void pStar(int n){
for (int i=0; i<n; i++) {
System.out.print("*");
}
}
//定义一个打印n个空格的方法
static void pSpace(int n){
for (int i=0; i<n; i++) {
System.out.print(" ");
}
}
//定义一个换行的方法
static void pEnter(){
System.out.println();
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入星号数:");
int n=sc.nextInt();
//图形5
for(int i=0;i<=(n-1)/2;i++){
pSpace((n-1)/2-i);
pStar(i*2+1);
pEnter();
}
for(int i=1;i<=(n-1)/2;i++){
pSpace(i);
pStar(n-i*2-1); //输入奇数不用-1
pEnter();
}
}
}
结果:
9.编程:从键盘读取一个矩形的长度,然后输出一个空心矩形。
import java.util.Scanner;
public class less2_02 {
//定义一个打印n个星号的方法
static void pStar(int n){
for (int i=0; i<n; i++) {
System.out.print("*");
}
}
//定义一个打印n个空格的方法
static void pSpace(int n){
for (int i=0; i<n; i++) {
System.out.print(" ");
}
}
//定义一个换行的方法
static void pEnter(){
System.out.println();
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入星号数:");
int n=sc.nextInt();
// 9 读取一个矩形长度
pStar(n);
pEnter();
for(int i=0;i<n-2;i++){
pStar