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. Python之网路编程之粘包现象

    一.什么是粘包 须知:只有TCP有粘包现象,UDP永远不会粘包 粘包不一定会发生 如果发生了:1.可能是在客户端已经粘了 2.客户端没有粘,可能是在服务端粘了 首先需要掌握一个socket收发消息的原 ...

  2. day_14 匿名函数与内置函数连用 作业题

    ''' 要求: 从文件中取出每一条记录放入列表中,列表的每个元素都是` {'name':'egon','sex':'male','age':18,'salary':3000}`的形式 ''' all_ ...

  3. redis开发使用规范

    redis开发使用规范 1.冷热数据分离,不要将所有数据全部都放在Redis中 根据业务只将高频热数据存储到Redis中[QPS大于5000],对于低频冷数据可以使用mysql等基于磁盘的存储方式. ...

  4. Python 3标准库第四章

    第四章日期和时间-----------------    不同于int.float和str,Python没有包含对应日期和时间的原生类型,不过提供了3个相应的模块,可以采用多种表示来管理日期和时间值. ...

  5. 【NOIP2014模拟11.3】蛋糕

    题目 今天是Bessie的生日,他买了一个蛋糕和朋友们一起分享,蛋糕可以看成是一个R行C列的表格,共有R*C个格子,每个格子都有一个0至9的数字,表示该格子蛋糕拥有的巧克力.现在Bessie要把蛋糕横 ...

  6. 12.python csv文件写入和读出

    import csv headers = ["class", "name", "sex", "height", &quo ...

  7. python 输出一个随机数

    题目:输出一个随机数. 程序分析:使用 random 模块. #!/user/bin/env python #coding:utf-8 import random print random.rando ...

  8. Centos7安装Redis3.X

    本文只是简单搭建Redis,为了整合ELK用,后面会详细写. Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高 ...

  9. prometheus 监控项

    此处记录prometheus监控项,exporter为 node_exporter vim rules.yml groups: - name: node rules: - alert: server_ ...

  10. 详解设备PID和VID

    根据USB规范的规定,所有的USB设备都有供应商ID(VID)和产品识别码(PID),主机通过不同的VID和PID来区别不同的设备. VID和PID都是两个字节长,其中,供应商ID(VID)由供应商向 ...