第四周课程总结&试验报告(二)
第四周课程总结&试验报告(二)
课程总结
这周主要学习了String类的一些操作方法,学习了函数构造,还简单的了解了包的概念,我上课还是会经常走神,课后我有巩固上课所学的知识。虽说还有一些地方弄得不是特别懂,不过比起前两周来说已经要好很多。
实验报告(二)
1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
package shiyans;
class Demol {
private double width,height;
private String color;
public Demol(double width,double height,String color){
this.setColor(color);
this.setWidth(width);
this.setHeight(height);
}
public void tell() {
System.out.println("面积:"+getArea()+"周长:"+getLength());
System.out.println("颜色:"+getColor());
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public double getArea(){
return (getWidth()*getHeight());
}
public double getLength(){
return (getWidth()+getHeight())*2;
}
}
public class Ce{
public static void main(String[] args) {
Demol ce=new Demol(20,30,"红色");
ce.tell();
}
}
2.银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
package shiyans;
import java.util.Scanner;
class Account {
private String accId;
private double money;
String code;
private String date;
private String name;
public Account(String accId, String name,String date){
this(accId, name, 0,date);
}
private Account(String accId, String name, double money,String date) {
this.accId = accId;
this.name = name;
this.money = money;
this.code="123456";
this.date=date;
}
public void saveMoney(double money) {
if (money <= 0) {
System.out.println("存款金额必须大于0");
}
this.money += money;
System.out.println("存款成功"+"\n"+"账户余额:"+money);
}
public double getMoney(double money) {
if (money <= 0) {
System.out.println("取款金额必须大于0");
return 0;
}
if (this.money <= money) {
System.out.println("余额不足,无法取款");
return 0;
}
this.money -= money;
System.out.println("取款成功"+"\n"+"账户余额:"+money);
return money;
}
public String alter(String code){
this.code=code;
System.out.println("修改成功");
return code;
}
public double getBalance() {
return this.money;
}
public double getOverdraft() {
return 0;
}
public void tell(){
System.out.println("账户:"+accId+"\n"+"姓名:"+name+"\n"+"开户日期"+date+"\n"+"余额:"+money+"\n\n\n");
}
public void tell1(){
System.out.println("账户:"+accId);
}
public void tell2(){
System.out.println("姓名:"+name);
}
public void tell3(){
System.out.println("余额:"+money);
}
}
class Ce{
public static void main(String[] args){
System.out.println("请输入开户人姓名");
Scanner m=new Scanner(System.in);
String v=m.next();
System.out.println("请输入开户日期");
Scanner p=new Scanner(System.in);
String g=p.next();
Account per=new Account("c1476351119",v,g);
per.tell();
System.out.println("请输入密码");
Scanner x=new Scanner(System.in);
String chr=x.next();
if(chr.equals(per.code)){
System.out.println("1.取款\n2.存款\n3.变更密码\n4.账户标识\n5.姓名\n6.当前余额"+"\n\n\n");
Scanner n=new Scanner(System.in);
int t=n.nextInt();
switch(t){
case 1:
System.out.println("请输入取款金额");
Scanner q=new Scanner(System.in);
double y=q.nextDouble();
per.getMoney(y);
break;
case 2:
System.out.println("请放入存款金额");
Scanner c=new Scanner(System.in);
double s=c.nextDouble();
per.saveMoney(s);
break;
case 3:
Scanner z=new Scanner(System.in);
String b=z.next();
per.alter(b);
break;
case 4:
per.tell1();
break;
case 5:
per.tell2();
break;
case 6:
per.tell3();
break;
}
}
else{
System.out.println("密码错误");
}
}
}