第四周课程总结&实验报告(二)

实验报告(二)

1.写一个名为Rectangle的类表示矩形。

其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值

(2) 使用get…()和set…()的形式完成属性的访问及修改

(3) 提供计算面积的getArea()方法和计算周长的getLength()方法

(1).实验代码:

package 测试;

public class Rectangle {
	private double width;
	private double height;
	private String color;
	public double getWidth() {
		return width;
	}
	public void setWidth(double n) {
		width=n;
	}
	public double getHeight() {
		return height;
	}
	public void setHeight(double n) {
		height=n;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String n) {
		color=n;
	}
	public Rectangle(double width,double height,String color) {
		this.setWidth(width);
		this.setHeight(height);
		this.setColor(color);
	}
	public double getArea() {
		return width*height;
	}
	public double getLength() {
		return width*2+height*2;
	}
	public static void main(String[] args) {
		Rectangle rec=new Rectangle(6, 12, "蓝色");
		System.out.println("矩形的宽:"+rec.getWidth());
		System.out.println("矩形的高:"+rec.getHeight());
		System.out.println("矩形的颜色:"+rec.getColor());
		System.out.println("矩形的面积:"+rec.getArea());
		System.out.println("矩形的周长:"+rec.getLength());
	}
}

(2)实验运行结果截图:

(3)实验大致思路:

定义多个函数,用构造函数进行初始赋值,get...(),set...(),用于访问和修改数据,getArea()和getLength()函数分别计算面积和周长.

(4)实验中遇到的问题:

在进行操作的时候有些迷惑,不是很清楚这些函数的意思,在查书还有百度的帮助下,就明白和C语言的函数有很多地方相像,就是语法会有不同,这道题目让我进一步的了解了方法的构筑.

2.银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。

(1).实验代码:

package 测试;
import java.util.Date;
import java.util.Scanner;
public class Account {
	private String id;
	private String name;
	private String password;
	private Date date;
	private double balance;
	public String getId() {
	    return id;
	}
	public void setId(String n) {
	    id=n;
	}
	public String getName() {
	    return name;
	}
	public void setName(String n) {
	    name=n;
	}
	public Date getDate() {
	    return date;
	}
	public void setDate(Date time) {
	    date=time;
	}
	public String getPassword() {
	    return password;
	}
	public void setPassword(String n) {
	    password=n;
	}
	public double getBalance() {
	    return balance;
	}
	public void setBalance(double num) {
	    balance=num;
	}
	public void cun(double num) {
		this.balance=this.balance+num;
	}
	public void qu(double num) {
		this.balance=this.balance-num;
	}
	public Date date() {
		return date;
	}
	public void changepassword() {
	    Scanner sc=new Scanner(System.in);
	    System.out.println("请输入新密码:");
	    String password=sc.nextLine();
	    setPassword(password);
	}
	public Account(String id,String name,String password,double balance) {
	    this.setId(id);
	    this.setName(name);
	    this.date=new Date();
	    this.setPassword(password);
	    this.setBalance(balance);
	}
	public static void main(String[] args) {
		int i;
		double num;
		String n;
		Scanner sc=new Scanner(System.in); 
	    Account a=new Account("abc12345678","朱","666666",1000);//基础账户
	    System.out.println("是否修改密码:1.是,2否(输入数字)");
	    
	    i=sc.nextInt();
	    if(i==1) {
	    	a.changepassword();
	    }
	    System.out.println("存取钱:1.存钱,2取钱3.不进行存取(输入数字)");
	    i=sc.nextInt();
	    if(i==1) {
	    	System.out.println("请输入存入金额: ");
	    	num=sc.nextDouble();
	    	a.cun(num);
	    }
	    if(i==2) {
	    	System.out.println("请输入取出金额: ");
	    	num=sc.nextDouble();
	    	a.qu(num);
	    }
	    System.out.println("是否查询当前账户:1.是,2否(输入数字)");
	    i=sc.nextInt();
	    if(i==1) {
	    System.out.println("账户标识:"+a.getId());
	    System.out.println("密码:"+a.getPassword());//用于显示修改密码成功与否
	    System.out.println("姓名:"+a.getName());
	    System.out.println("开户日期:"+a.date());
	    System.out.println("账户余额:"+a.getBalance());
	}

	
	}
	
}

(2)实验运行结果截图:

(3)实验大致思路:

和第一题类似,定义多个get..(),set...()型的函数用于访问和修改数据,并定义修改密码的函数还有存取钱的函数.最后输出各种信息.

(4)实验中遇到的问题:

对于输入时间还是百度出来的使用方法,使用import java.util.Date;放在代码头就可以了,其他的问题就是不熟悉输入语法,还是进行了一波百度才弄清楚输入的模式,java和C语言输入的区别有点大,java要复杂不少.
我现在无法进行所谓的开户的操作,只能在一个结构体里面进行修改,也就是默认是已经进入了银行的系统,可以进行修改密码,存取款的操作,开不同的户我想可能要用到链表,而我现在在java不会这种操作,这道题虽然不需要进行开户,以及用标识和密码来查询账户数据的操作,但是我觉得以后可能会有这种题,所以说我还是学的太浅了

第四周课程总结:

java的学习已经到了第四周了,java感觉还是很陌生,在做题的时候总是要不停的翻书,查资料,还是学的太少,java那些语法的用法还不是很懂,定义不是很清楚,本周重点学习了String类得使用方法,有2种实例化方式,一种直接赋值,一种通过new赋值,还有String比较方法,知道了"=="和equals()的不同,前者对比内存地址,后者对比内容.还有String类得常用操作方法,还有就是String 对象定义之后,那它的值就无法改变了.还学习了对象数组的概念,声明的方法和初始化,不过这次题目没用到.总之在这几周的学习里能感觉到自己的提升,不过java现在要了解的东西太多(书都那么厚一本),现在还处于一种迷迷糊糊的状态,在以后的练习中这种状态应该会缓解,毕竟熟能生巧,用多了,自然就会用了.

posted on 2019-09-20 17:53  噫~  阅读(246)  评论(1编辑  收藏  举报

导航