类与对象

1.编写一个代表三角形的类,其中三条边为三角形的属性,并且封装有求三角形的面积和周长的方法。分别针对三条边为3,4,5,和7,8,9的两个三角形进行测试。

 

程序代码:

package ex5; 
public class ex5_1 {
	public static class Tri{
		double a,b,c;
		Tri(double a,double b,double c){
			this.a=a;
			this.b=b;
			this.c=c;
		}
		double Area(double a,double b,double c)
		{
			double p,area;
			p=a+b+c;
			area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
			return area;
		}
		double Peri(double a,double b,double c){
			return a+b+c;
		}

	public static void main(String args[]) {
		Tri t1=new Tri(3,4,5);
		System.out.println("第一个三角形的周长为:"+t1.Peri(3,4,5)+" 面积为"+t1.Area(3, 4, 5));
		Tri t2=new Tri(7,8,9);
		System.out.println("第二个三角形的周长为:"+t2.Peri(7,8,9)+" 面积为"+t2.Area(7,8,9));
	}
	}
}

 

2.编写一个学生类student,包含的属性有学号,姓名,年龄,将所有学生存储在一个数组中,自拟数据,用数组的初始化方法给数组赋值。并且实现以下操作:

 

(1) 将所有学生年龄增加一岁

(2)按数组中顺序显示所有学生信息

(3)查找显示所有年龄大于20岁的学生名单

程序代码:

package ex5;

public class ex5_2 {
public static class Student{
	int num;
	String name;
	int age;
	
	Student(int num,String name,int age){
		this.num=num;
		this.name=name;
		this.age=age;
	}
	
	void Add(Student[] arr) {
		for(int i=0;i<arr.length;i++)
			arr[i].age+=1;
			}
	void Check(Student[] arr) {
		for(int i=0;i<arr.length;i++)
	{
		if(arr[i].age>20)
			System.out.println("学号:"+arr[i].num+"   "+"姓名:"+arr[i].name+"   "+"年龄:"+arr[i].age);
	}
	}
	
	void Print(Student[] arr) {
		for(int i=0;i<arr.length;i++)
		System.out.println("学号:"+arr[i].num+"   "+"姓名:"+arr[i].name+"   "+"年龄:"+arr[i].age);
	}
}
	public static void main(String[] args) {
		Student s1=new Student(1001,"张三",20);
		Student s2=new Student(1002,"李四",19);
		Student s3=new Student(1003,"王五",22);
		Student s4=new Student(1004,"赵六",23);
		Student[] arr= {s1,s2,s3,s4};
		System.out.println("所有学生初始信息如下:");
		s1.Print(arr);
		s1.Add(arr);
		System.out.println("所有学生年龄加一后信息如下:");
		s1.Print(arr);
		System.out.println("年龄大于20的学生信息如下:");
		s1.Check(arr);
		
	}

4.编写一个日期类,创建对象时要判断输入是否合法,不合法要改正,输出时用/隔开

package ex5;
import java.util.*;
public class ex5_4 {
 public static class Date{
	 int year,month,day;
	 Date(int x,int y,int z){
		 System.out.println("请输入年(年份需大于2000):");
		 Scanner a=new Scanner(System.in);
		 int ye=a.nextInt();
		while(ye<2000)
		 {
	     System.out.println("您输入的年份有误(年份需大于2000),请重新输入:");
	     System.out.println("请输入新的年份:");
		 Scanner aa=new Scanner(System.in);
		 int yee=aa.nextInt();
		 ye=yee;
		 } 
			 x=ye;
			 year=x;
		 System.out.println("请输入月:");
		 Scanner b=new Scanner(System.in);
		 int mo=b.nextInt();
		 while(mo>12||mo<1)
		 {
			 System.out.println("您输入的月份有误(月份需在1-12之间),请重新输入:");
			 Scanner  bb=new Scanner(System.in);
			 int moo=bb.nextInt();
			 mo=moo;
		 }
		 y=mo;
		 month=y;
		 System.out.println("请输入日:");
		 Scanner c=new Scanner(System.in);
		 int da=c.nextInt();
		 if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
		 {
			 while(da<1||da>31)
			 {
				 System.out.printf("您输入的日有误(一月的天数在1-31之间),请重新输入:");
			 Scanner c1=new Scanner(System.in);
			 int d1=c1.nextInt();
			 da=d1;
			 }
			 z=da;
			 day=z;
		 }
		 if(month==4||month==6||month==9||month==11)
			 while(da<1||da>30)
				 {
					 System.out.printf("您输入的日有误("+month+"月的天数在1-30之间),请重新输入:");
				 Scanner c01=new Scanner(System.in);
				 int d01=c01.nextInt();
				 da=d01;
				 }
				 z=da;
				 day=z;
		 if(month==2)
			 if((x/4==0&&x/100!=0)||(x/400==0))
				 {
					 while(da<1||da>29)
					 {
						 System.out.printf("您输入的日有误(闰年二月的天数在1-29之间),请重新输入:");
					 Scanner c02=new Scanner(System.in);
					 int d02=c02.nextInt();
					 da=d02;
					 }
					 z=da;
					 day=z;
				 }
				 else
				 {
					 while(da<1||da>28)
					 {
						 System.out.printf("您输入的日有误(平年二月的天数在1-28之间),请重新输入:");
					 Scanner c2=new Scanner(System.in);
					 int d2=c2.nextInt();
					 da=d2;
					 }
					 z=da;
					 day=z;
				 }
	 }
	 void Print(Date a) {
      System.out.println("您输入的日期为:"+a.year+"/"+a.month+"/"+a.day);
		 
	 }

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
      Date ex=new Date(2000,1,1);
      ex.Print(ex);
	}
 }
 }

 

6.创建简单的银行账户类,包括开户人,账号,存款余额三个属性,以及查询余额,存款,取款的方法,创建两个账户验证。

程序代码:

package ex5;
import java.util.*;
public class ex5_6 {
public static class Bank{
	String acc;
	String name;
    double money;
    
    Bank(String acc,String name,double money)
    {
    	this.name=name;
    	this.acc=acc;
    	this.money=money;
    	
     }
    
    void Save(Bank b)
    {
    	System.out.println("请输入您要存入的金额:");
    	Scanner a=new Scanner(System.in);
    	double aa=a.nextDouble();
    	b.money=b.money+aa;
    	System.out.println("存款成功!当前存款余额为:"+b.money);
    }
    
    void Take(Bank b)
    {
    	System.out.println("请输入您要取走的金额:");
    	Scanner a=new Scanner(System.in);
    	double aa=a.nextDouble();
    	if(b.money<0||aa>b.money)
    	{	System.out.println("当前账户余额不足,取款失败!");
    	}
    	else
    	{
    	b.money=b.money-aa;
    	System.out.println("取款成功!当前存款余额为:"+b.money);
    	}
    	
    }
    
    void Show(Bank b)
    {
    	System.out.println(b.name+"先生的账户当前余额为:"+b.money);
    }
    
    public static void main(String[] args)
    {
    	Bank ex1=new Bank("ax1001","张三",50000);
    	ex1.Show(ex1);
    	ex1.Save(ex1);
    	ex1.Take(ex1);
    	System.out.println();
    	System.out.println();
    	Bank ex2=new Bank("jk1221","王五",12345);
    	ex2.Show(ex2);
    	ex2.Save(ex2);
    	ex2.Take(ex2);
    }
    
}
}

 

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值