• 第二次实验报告及学习总结


    1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

    (1) 使用构造函数完成各属性的初始赋值

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

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

    实验代码:

       package xingqisan;
    
       public class Rectangle {	                   //定义Rectangle类
    		private double width;                       
    		private double height;
    		private String color;                //定义属性
    		public double getHeight() {
    			return height;                  //取得height属性
    		}
    		public void setHeight(double height) {
    			this.height = height;          //设置height属性下同
    		}
    		public double getWidth() {
    			return width;
    		}
    		public void setWidth(double width) {
    			this.width = width;
    		}
    		public String getColor() {
    			return color;
    		}
    		public void setColor(String color) {
    			this.color = color;
    		}
    		
    		public void getArea() {
    			double area=0;
    			area=this.height*this.width;
    			System.out.println("面积为"+area);
    		}
    		public void getLength() {
    			double length=0;
    			length=(this.height+this.width)*2;
    			System.out.println("周长为"+length);
    		}
    		public static void main(String args[]) {
    			Rectangle rec=new Rectangle();
    			rec.setWidth(3);
    			rec.setHeight(4);
    			rec.setColor("黄色");
    			rec.getArea();
    			rec.getLength();
    			System.out.println("长:"+rec.getWidth()+",高:"+rec.getHeight()+",颜色:"+rec.getColor());
    		}
       }
    

    实验结果截图:

    实验所遇问题:

    1.首先代码太过繁琐,应该有比这简单很多的代码,但是现还无法实现
    2.还不太理解this关键字的应用,这里面只是根据书上的应用来。
    3.输出问题,加号和逗号的位置没有注意,所以一直显示程序错误。
    4.对set和get的理解问题,对其理解不是很好,还得通过视频多加学习。
    5.对于最后要新创建一个类不懂。

    银行的账户

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

    实验代码:

       package xingqisan;
       import java.util.Scanner; 
    
       public class yinhang {    //定义初始参数 
    	  Scanner sc = new Scanner(System.in);
          private String characteristic="qwertyuiop1";
          private String name;
          private String date;
          private double meony=0;
          private String word;
          public String getWord() {   //设置属性
        		return word;
        	}
        	public void setWord(String word) {   //取得属性(下同)
        		this.word = word;
        	}
    	public String getCharacteristic() {
    		return characteristic;
    	}
    	public void setCharacteristic(String characteristic) {
    		this.characteristic = characteristic;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getDate() {
    		return date;
    	}
    	public void setDate(String date) {
    		this.date = date;
    	}
    	public double getMeony() {
    		return meony;
    	}
    	public void setMeony(double meony) {
    		this.meony = meony;
    	}
    	public void land() {   //登陆界面
    		System.out.println("请选择操作:0.开户,1.查询账户信息,2.存款,3.取款,4.更改密码,5.退出");
    		int a = sc.nextInt();
    		switch(a) {  //用switch进行选择操作
    		case(0):     //每个选项构建该选项的方法
    			newacounnt(); 
    		    break;
    		case(1):
    			acounnt();  
    		    break;
    		case(2):
    		    get();
    		    break;
    		case(3):
    			put();
    		    break;
    		case(4):
    		    password();
    		    break;
    		case(5):
    		    setout();
    		    break;
    		}
    		
    	}
    public void newacounnt() {    //开户
    	System.out.println("请输入用户名");
    	Scanner sc = new Scanner(System.in);
    	String a = sc.nextLine();
    	setName(a);
    	System.out.println("请设置密码");
    	Scanner sc1 = new Scanner(System.in);
    	String a1 = sc.nextLine();
    	word=a1;
    	System.out.println("请输入日期");
    	Scanner sc11 = new Scanner(System.in);
    	String a11 = sc1.nextLine();
    	date=a11;
    	land();
    }
    public void acounnt() {      //输出账户信息
    	System.out.println("标识符:"+characteristic+"
    用户名"+name+"
    开户日期"+date+"
    余额"+meony);
    	land();
    }
    public void get() {          //存款
    	System.out.println("请输入存款数额:");
    	int a = sc.nextInt();
        meony=meony+a;
        System.out.println("当前余额为:"+meony);
        land();
    }
    public void put() {         //取款
    	System.out.println("请输入取款数额:");
    	int a = sc.nextInt();
        if(a>meony) {
        	System.out.println("余额不足!");  	
        }
        else {      
        	meony=meony-a;
        	System.out.println("当前余额为:"+meony);
        }
        land();
    }
    public void password() {   //修改密码
    	System.out.println("请输入新密码:");
    	Scanner sc = new Scanner(System.in);
    	String a = sc.nextLine();
    	word=a;
        System.out.println("新密码为:"+word);
        land();
    }
    public void setout() {      //退出系统
    	System.out.println(0);
    }
    public static void main(String args[]) {
    	yinhang a=new yinhang();
    	a.land();
    }
    }
    

    实验结果截图:

    实验所遇问题:

    1.在下面定义的方法输入中,有多个输入的没有加上相应的new。
    2.方法的定义较为简单,但在主函数中引用上面定义的方法时不知道怎么引用,后查询只需要新建立一个对象才能实现引用。
    3.不知道如何将底下的方法与登陆land联系起来,解决:在每个方法后加入land()。

    总结:

    这周的作业看起来比较复杂但写起来还是很容易,主要用到的方法就是面向对象编程。另外感觉用java写代码比c语言要方便许多。

  • 相关阅读:
    9.对话框
    8.布局管理器
    7.对象模型
    6.添加动作
    5.Qt模块简介
    4.自定义信号槽
    3.信号槽
    2.Helloworld
    1.Qt简介
    Problem E: 成绩排序
  • 原文地址:https://www.cnblogs.com/fengmixinluo/p/11541228.html
Copyright © 2020-2023  润新知