紫金电光院JAVA课程习题<2>

紫金电光院JAVA课程习题<2>

本篇是针对对JAVA类和对象的有关习题。

课程习题 2:

1.编写一个圆类 Circle,该类拥有:一个成员变量 Radius(私有,浮点型,存放圆的半径);两个构造方法(Circle( ),将半径设为 0;Circle(double r ),创建 Circle 对象时将半径初始化为 r);三个成员方法(double getArea( ),获取圆的面积;double getPerimeter( ),获取圆的周长;void show( ),将圆的半径、周长、面积输出到屏幕)。
编写一个圆柱体类 Cylinder,它继承于上面的 Circle 类。还拥有一个成员变量(double hight(私有,浮点型,存放圆柱体的高);一个构造方法(Cylinder (double r, double h ),创建 Circle 对象时将半径初始化为 r;成员方法(double getVolume( ),获取圆柱体的体积;void showVolume( ) ,将圆柱体的体积输出到屏幕)。
编写应用程序,在 main()方法中创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。

/*Circle类
编写一个圆类 Circle,
该类拥有:
一个成员变量 Radius(私有,浮点型,存放圆的半径);
两个构造方法
(Circle( ),将半径设为 0;
Circle(double r ),创建 Circle 对象时将半径初始化为 r);
三个成员方法(double getArea( ),获取圆的面积;
double getPerimeter( ),获取圆的周长;void show( ),将圆的半径、周长、面积输出到屏幕)。*/
package xiti2_1;

public class Circle {
		private double Radius;
		//一个成员变量 Radius(私有,浮点型,存放圆的半径)
		public double getRadius() {
			  return Radius;
			 }
		public void setRadius(double radius) {
			Radius=radius;
		}//私有变量公有化
		public Circle() {
			
		}
		//构造方法 Circle( ),将半径设为 0;
		public Circle(double r)
		{
			this.Radius=r;
		}
		//构造方法:Circle(double r ),创建 Circle 对象时将半径初始化为 r
		public double getArea(double Radius) {
			return Radius*Radius*Math.PI;
			
		}
		//成员方法:double getArea( ),获取圆的面积
		public double getPerimeter(double Radius) {
			return 2*Math.PI*Radius;
			
		}
		//成员方法:double getPerimeter( ),获取圆的周长
		public void show() {
			System.out.println("圆的半径为:"+Radius);
			System.out.println("圆的面积为:"+this.getArea(Radius));
			System.out.println("圆的周长为:"+this.getPerimeter(Radius));
		}
		//成员方法:void show( ),将圆的半径、周长、面积输出到屏幕
}	
/*Cylinder类
编写一个圆柱体类 Cylinder,它继承于上面的 Circle 类。
还拥有一个成员变量(double hight(私有,浮点型,存放圆柱体的高);
一个构造方法(Cylinder (double r, double h ),创建 Circle 对象时将半径初始化为 r;
成员方法(double getVolume( ),获取圆柱体的体积;void showVolume( ) ,将圆柱体的体积输出到屏幕)。*/
package xiti2_1;

//import xiti2_1.Circle;

//圆柱体类 Cylinder,它继承于上面的 Circle 类
public class Cylinder extends Circle{
	 private double hight;
	 //一个成员变量(double hight(私有,浮点型,存放圆柱体的高)
	 public Cylinder() {
		 
	 }
	 public Cylinder(double r,double h) {
		     super(r);
		     this.hight=h;
	 }
	 //一个构造方法(Cylinder (double r, double h ),创建 Circle 对象时将半径初始化为 r
	 public double getVolume() {
		  return Math.PI*this.getRadius()*this.getRadius()*hight;
	 }
	 //成员方法(double getVolume( ),获取圆柱体的体积
	 public void show() {
		 System.out.println("圆的体积为:"+this.getVolume());
	 }
	 //void showVolume( ) ,将圆柱体的体积输出到屏幕
}
/*
应用程序,在 main()方法中创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。
*/
package xiti2_1;

import xiti2_1.Circle;
import xiti2_1.Cylinder;

public class xiti2_1 {
	public static void main(String[] args) {
		 Circle circle=new Circle(2);
		 circle.show();
		 Cylinder cylinder=new Cylinder(2,1);
		 cylinder.show();
	 }
}

2.定义一个表示学生信息类 Student,要求如下:
(1)类 Student 的成员变量:sNO 表示学号;sName 表示姓名;sSex 表示性别;sAge 表示年龄;sJava:表示 Java 课程成绩。
(2)类 Student 带参数的构造方法: 在构造方法中通过形参完成对成员变量的赋值操作。
(3)类 Student 的方法成员:getNo():获得学号;getName():获得姓名; getSex():获得性别;getAge()获得年龄;getJava():获得 Java 课程成绩
(4)根据类 Student 的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生 Java 语言成绩的平均值,以及计算并输出他们 Java 语言成绩的最大值和最小值。

package xiti2_2;



public class student {
/*
成员变量:sNO 表示学号;sName 表示姓名;sSex 表示性别;sAge 表示年龄;sJava:表示 Java 课程成绩。 
*/
       public int sNo;
      
       public String sName;
       
       public String sSex;
       
       public int sAge;
      
       public int sJava;
       /*
       构造方法: 在构造方法中通过形参完成对成员变量的赋值操作。
       */
       public student(int n,String a,String b,int c,int d) {
    	   //super();
    	   sNo=n;
    	   sName=a;
    	   sSex=b;
    	   sAge=c;
    	   sJava=d;
       }
       /*
       方法成员:getNo():获得学号;getName():获得姓名; getSex():获得性别;getAge()获得年龄;getJava():获得 Java 课程成绩
*/
       public int getAge() {
    	   return sAge;
       }
       public String getSex() {
    	   return sSex;
       }
       public String getName() {
    	   return sName;
       }
       public int getNo() {
    	   return sNo;
       }
       public int getJava() {
    	   return sJava;
       }
       public static void main(String[] args) {
    	  int min=100,max=0,sum=0;
   		student sd[] = new student[5];
   		sd[0] = new student(170210101,"张二","女",17,85);
   		sd[1] = new student(170210102,"张三","男",18,86);
   		sd[2] = new student(170210103,"王二","女",19,87);
   		sd[3] = new student(170210104,"王三","男",20,88);
   		sd[4] = new student(170210105,"小王","女",19,89);
   		for(int i=0;i<sd.length;i++){
   			System.out.println("学号:"+sd[i].sNo+"年龄:"+sd[i].sAge+sd[i].sName+sd[i].sSex+sd[i].sJava);
   			if(sd[i].sJava<min){
   				min = sd[i].sJava;
   			}
   			if(sd[i].sJava>max){
   				max = sd[i].sJava;
   			}
   			sum = sum+sd[i].sJava;
   		}
   		System.out.println("最小值:"+min+"最大值:"+max+"平均值:"+sum/sd.length);
   	}

}
       

3.编写程序,模拟银行账户功能。编写银行类 Account,该类具备以下属性和方法:
属性:账号、储户姓名、存款余额、最小余额。
方法:存款、取款、查询。
根据用户操作显示储户相关信息。如:存款操作后,显示储户原有余额、今日存款数额及最终存款余额;取款时,若最后余额小于最小余额,拒绝取款,并显示“至少保留余额:XXX元”
提示:(1)可把最小余额定义成静态变量。
(2)要有 Account 类的构造方法。

package xiti2_3;

import java.util.Scanner;

import javax.security.auth.login.AccountException;

public class Account {
        public String id;
        public String name;
        public int savemoney;
        public int minmoney;
        public  Account(String sid,String sname,int ssavemoney,int sminmoney) {
        	id=sid;
        	name=sname;
        	savemoney=ssavemoney;
        	minmoney=sminmoney;
        }
        //构造方法
        public void display() {
        	System.out.println("账号为:"+id);
        	System.out.println("账户姓名为:"+name);
        	System.out.println("存款余额为:"+savemoney);
        }
       //成员方法
       //存款
        public void save(int today_save) {
        	System.out.println("原有余额为:"+savemoney);
        	savemoney=savemoney+today_save;
        	System.out.println("今日存款数为:"+today_save);
        	System.out.println("最终存款余额为:"+savemoney);
        }
        //取款
        public void take() {
        	Scanner sc1=new Scanner(System.in);
        	int takemoney=sc1.nextInt();
        	if((savemoney-takemoney)>=minmoney)
        	{
        		savemoney=savemoney-takemoney;
        		System.out.println("允许取款");
        		System.out.println("今日取款数为:"+takemoney);
        		System.out.println("最终余额数为:"+savemoney);
        	}
        	else {
        		System.out.println("拒绝取款");
        		System.out.println("最少保留余额"+minmoney+"元");
        	}
        }
        public static void main(String[] args) {
        	Account account=new Account("123456","张三",10000,100);
        	while(true) {
        	System.out.println("---欢迎进入银行账户操作系统---");
		    System.out.println("---------1银行账户信息--------");
		    System.out.println("---------2取款操作------------");
		    System.out.println("---------3存款操作------------");
		    System.out.println("---------4退出系统------------");
		    System.out.println("------------------------------");
		    Scanner sc2=new Scanner(System.in);
            int choice=sc2.nextInt();
            switch(choice)
            {
            case 1:{
            	System.out.println("---------1银行账户信息--------");
            	account.display();
            	break;
            }
            case 2:{
            	System.out.println("---------2取款操作------------");
            	account.take();
            	break;
            }
            case 3:{
            	System.out.println("---------3存款操作------------");
            	account.save(200);
            	break;
            }
            case 4:{
            	System.out.println("---------4退出系统------------");
            	System.out.println("欢迎再次使用本系统!");
            	break;
            }
            default:
            	System.out.println("输入有误!");
            }
            
        	}
        	
        }
}

4.创建银行账户类 SavingAccount,用静态变量存储年利率,用私有实例变量存储存款额。提供计算年利息方法(即余额乘以年利率)和计算月利息方法(即年利息/12)。
编写一个测试程序测试该类,建立 SavingAccount 的对象 saver,存款额是 3000,设置年利率是 3%,计算并显示 saver 的存款额、年利息和月利息。
要求:
(1)SavingAccount 类要有构造方法,用于对存款额赋初值。
(2)SavingAccount 类要有显示存款额的方法。

package xiti2_4;



public class Savingaccount {
        public static double year_rate;
        private double savemoney;
        /*public double getsavemoney() {
        	return savemoney;
        }
        public void setsavemoney(double m) {
        	this.savemoney=m;
        }*/
        public void cyear() {
            double cyear;
            cyear=savemoney*year_rate;
            System.out.println("年利息为:"+cyear);
        }//年利息
        public void cmonth() {
        	double cmonth;
        	cmonth=(year_rate/12)*savemoney;
        	System.out.println("月利息为:"+cmonth);
        }//月利息
        public void show() {
        	System.out.println("存款额为:"+savemoney);
        }
        public Savingaccount(double Year_rate,double Savemoney) {
        	year_rate=Year_rate;
        	savemoney=Savemoney;
        }//构造方法
        public static void main(String[] args) {
        	Savingaccount saver=new Savingaccount(0.03, 3000);
        	saver.show();
        	saver.cyear();
        	saver.cmonth();
        }
        
}

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值