Java实验报告

班级 计算机科学与技术二班 学号 20188442 姓名 吴怡君

完成时间 2019/9/19

评分等级

实验二 Java简单类与对象

实验目的

掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;

理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;

理解static修饰付对类、类成员变量及类方法的影响。

实验内容

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

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

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

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


import java.util.Scanner;
import java.util.Date; class Handle {
private String sign,password,name="none",date;
private double balance;
public Handle(String password,double balance){
this.setPassword(password);
this.setBalance(balance);
}
public String getsign() {
return sign;
}
public void setsign(String sign) {
this.sign = sign;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
} public class 银行系统 {
static Handle per[]=new Handle[100];
static int i=-1;
static int id=0;
static String s;
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int j=0;j<100;j++){
per[j]=new Handle("123456",0.0);
}
zhuyemian();
} public static void yewu(int i) {
// TODO Auto-generated method stub
System.out.println("1:存款 2:取款 3:变更密码 4:查询账户标识 5:查询姓名 6:查询开户日期 7:当前余额 0:返回");
Scanner input=new Scanner(System.in);
switch(input.nextInt()){
case 1:System.out.println("存款金额:");
per[i].setBalance(input.nextDouble()+per[i].getBalance());
System.out.println("存款成功!");yewu(i);
case 2:System.out.println("取款金额:");
if(per[i].getBalance()-input.nextDouble()<0){
System.out.println("余额不足!");yewu(i);
}
else{
per[i].setBalance(per[i].getBalance()-input.nextDouble());
System.out.println("取款成功!");yewu(i);
}
case 3:System.out.println("请输入新密码:");
per[i].setPassword(input.next());
System.out.println("修改成功!");yewu(i);
case 4:System.out.println("您的账户标识为:"+per[i].getsign());yewu(i);
case 5:System.out.println("您的姓名为:"+per[i].getName());yewu(i);
case 6:System.out.println("您的开户日期为:"+per[i].getDate());yewu(i);
case 7:System.out.println("您的余额为:"+per[i].getBalance());yewu(i);
case 0:zhuyemian();
}
} public static void denglu() {
// TODO Auto-generated method stub
System.out.println("请输入您的姓名:");
Scanner input=new Scanner(System.in);
s=input.next();
i=-1;
while(i<99){
i++;
if(s.equals(per[i].getName())){
System.out.println("请输入您的密码:");
if(input.next().equals(per[i].getPassword())){
System.out.println("登陆成功!");
yewu(i);
}
else{
System.out.println("姓名或密码有误,请重新输入");
denglu();
}
}
}
System.out.println("没有此用户!");
zhuyemian();
} public static void kaihu() {
// TODO Auto-generated method stub
per[id]=new Handle("123456",0.0);
if(id>=100){
s="uniqueid"+id;
per[id].setsign(s);
}else if(id>=10){
s="uniqueid0"+id;
per[id].setsign(s);
}else{
s="uniqueid00"+id;
per[id].setsign(s);
}
Date date=new Date();
per[id].setDate(date.toString());
System.out.println("请输入您的姓名:");
Scanner input=new Scanner(System.in);
per[id].setName(input.next());
System.out.println("开户成功,您的初始密码为123456,请尽快更改!");
id++;
denglu();
} public static void zhuyemian() {
// TODO Auto-generated method stub
System.out.println("1:开户 2:业务办理");
Scanner input =new Scanner(System.in);
s=input.next();
if(s.equals("1")){
kaihu();
}
if(s.equals("2")){
denglu();
}
}
}
运行结果
1:开户 2:业务办理 1
请输入您的姓名:
吴怡君
开户成功,您的初始密码为123456,请尽快更改!
请输入您的姓名:
吴怡君
请输入您的密码:
123456
登陆成功!
1:存款 2:取款 3:变更密码 4:查询账户标识 5:查询姓名 6:查询开户日期 7:当前余额 0:返回
3
请输入新密码:
990903
修改成功!
1:存款 2:取款 3:变更密码 4:查询账户标识 5:查询姓名 6:查询开户日期 7:当前余额 0:返回
1
存款金额:
10000000
存款成功!
1:存款 2:取款 3:变更密码 4:查询账户标识 5:查询姓名 6:查询开户日期 7:当前余额 0:返回
4
您的账户标识为:uniqueid000
1:存款 2:取款 3:变更密码 4:查询账户标识 5:查询姓名 6:查询开户日期 7:当前余额 0:返回
7
您的余额为:1.0E7
1:存款 2:取款 3:变更密码 4:查询账户标识 5:查询姓名 6:查询开户日期 7:当前余额 0:返回
2
取款金额:
10000000
取款成功!
1:存款 2:取款 3:变更密码 4:查询账户标识 5:查询姓名 6:查询开户日期 7:当前余额 0:返回
实验过程 

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

package 面对对象Java开发程序设计;

public class Rectangle {
public static void main(String args[]){
double width=3,height=4;
String color="blue";
Rectangle Rec = new Rectangle( width, height, color);
Rec.getArea();
Rec.getLength();
Rec.getColor();
System.out.println("面积="+Rec.getArea()+",周长="+Rec.getLength()+",颜色:"+Rec.getColor());
}
private double width, height;
private String color;
public Rectangle(double width,double height,String color){
this.setWidth(width);
this.setHeight(height);
this.setColor(color);
}
public void setWidth(double w){
width = w;
}
public void setHeight(double h){
height = h;
}
public void setColor(String c){
color = c;
}
public double getWidth(){
return width;
}
public double getHeight(){
return height;
}
public String getColor(){
return color;
}
public double getArea(){
return width*height;
}
public double getLength(){
return (width+height)*2;
} }

课程总结:通过学习,我感觉学的不错,老师教的很好!李津老师讲课非常有活力,每堂课都自己操作,然后每个知识点讲的也是非常的特撤,JAVA类的基本构造规则啊,一讲就懂。运用起来非常方便,类也讲了不少东西了,基本都学到了。

具体思路:矩形的封装思路比较简单,看看书都知道,很简单的东西。

关于银行系统的思路很清晰:首先要明确题目要求,然后用姓名做密码,用字符控制用银行系统的功能,结合收取的信息完成。

目前只是个简单程序,还有很多问题,比如说开户这里最多达到1010,存钱是double型,所以有限制,所以后续可以继续优化其功能。

总体来说JAVA没有C语言那么多算法,但是调用的方法和有些东西却多得多,所以要持续努力。

2019JAVA第二次实验报告的更多相关文章

  1. 20145330《Java程序设计》第二次实验报告

    20145330<Java程序设计>第二次实验报告 实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承多态 3.初步掌握UM ...

  2. 20145320《Java程序设计》第二次实验报告

    20145320<Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.12 15: ...

  3. 《Java程序设计》第二次实验报告

    20145220 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测 ...

  4. 20145333 《Java程序设计》第二次实验报告

    2014333 <Java程序设计>第二次实验报告 课程:Java程序设计 指导教师:娄嘉鹏 实验日期:2016.04.12 实验名称:Java面向对象程序设计 实验内容 初步掌握单元测试 ...

  5. 20145240 《Java程序设计》第二次实验报告

    20145240 <Java程序设计>第二次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1452 指导教师:娄嘉鹏 实验日期:2016.04.12 实验 ...

  6. 第二次实验报告:使用 Packet Tracer 分析应用层协议

    个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...

  7. java第二次实验报告

    课程:Java实验   班级:201352     姓名:池彬宁  学号:20135212 成绩:             指导教师:娄佳鹏   实验日期:15.05.05 实验密级:         ...

  8. java程序设计第二次实验报告

    北京电子科技学院(BESTI) 实验报告 课程:数据结构    班级:1352    姓名:何伟钦     学号:20135223 成绩:            指导教师:娄嘉鹏      实验日期: ...

  9. java第二次实验报告20135231

    Java实验报告二:Java面向对象程序设计 20135231 何佳 实验要求: 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉 ...

随机推荐

  1. node.js 实现 AES CTR 加解密

    node.js 实现 AES CTR 加解密 node aesctr 前言 由于最近我们在做一款安全的文件分享 App, 所有文件均需要使用 aes ctr 来进行加密,aes key 还有一整套完整 ...

  2. cssfloat布局以及其他小技巧

    css float 布局以及其他小技巧总结 这篇博文 前面四个部分是关于css 经典布局 如果你已经知道了 可以直接跳过看第六部分 css 的其他小技巧 1.0 左右居中布局 <!DOCTYPE ...

  3. strtok的使用

    /* strtok函数的使用 */ #include <stdio.h> #include <stdlib.h> #include <string.h> // 函数 ...

  4. 工作流学习之入门demo

    /** * Copyright (C), 2015-2018, XXX有限公司 * FileName: DemoMain * Author: happy * Date: 2018/6/23 16:33 ...

  5. vue项目刷新页面,使数据不丢失(sessionStorage、localStorage、cookie)

    vue项目刷新页面时,存储在vuex中的数据会丢失,把他们存到stroage中可以保证不丢失.

  6. elasticsearch基本Restful操作

    1.添加数据curl -H "Content-Type: application/json" -XPUT 'http://localhost:9200/megacorp/emplo ...

  7. 目标检测 | OHEM

    参考:https://blog.csdn.net/app_12062011/article/details/77945600 参考:http://www.cnblogs.com/sddai/p/102 ...

  8. 018:include函数详解

    include函数详解(了解——虽然用的很少): include函数的用法,目前有三种使用方式: 1.include(module,namespace=None): module:子url的模块字符串 ...

  9. 装sqlserver2005驱动解决firedac连接sql2000问题

    装了sqlserver2005驱动, 系统里装的sqlserver2012也能连上sql2000了. 当然firedac连sql2000也没问题了.设置个ODBCAdvanced为SQL Native ...

  10. Python文件对象方法

    使用open()函数创建一个文件对象,这里是可以在这个对象上调用的函数的列表 - 编号 方法名称 描述 1 file.close() 关闭文件,无法读取或写入关闭的文件. 2 file.flush() ...