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);
}
}
}