Java面向对象程序设计实验报告(实验三 继承的练习)

article/2025/10/19 15:49:09

作者:命运之光 
✨ 专栏:Java面向对象程序设计实验报告

 

目录

✨一、需求设计

✨二、概要设计

✨三、详细设计

✨四、调试结果

✨五、测试结果

✨附录:源程序代码(带注释)

demo3类

Person类

Student类

Account类 


实验三 继承的练习

实验环境:Eclipse+JDK

实验目的:

  1. 掌握并理解面向对象的编程思想;
  2. 熟练掌握类和对象的定义及使用;
  3. 掌握面向对象特征之一——继承的使用。

实验内容:

1、建立一个人类(Person)和学生类(Student)功能要求:

  • Person中包含4个保护型的数据成员name、address、sex、age分别为字符串,字符串,字符及整型。表示:姓名、地址、性别和年龄;
  • 一个四参构造方法,一个无参构造方法,及一个输出方法用于显示四种属性。
  • Student继承Person,并增加输出成员math、english存放数学和英语成绩。
  • 一个六参构造方法,一个两参构造方法,一个无参构造方法,重写输出方法用于显示全部六种属性.

2、写一个名为 Account 的类模拟账户。该类的属性和方法如下所示。

  • 该类包括的属性:
    1. 账号 id
    2. 余额 balance
    3. 年利率 annualInterestRate
  • 包含的方法:
    1. 构造器;
    2. getter 和setter 方法;
    3. 返回月利率的方法 getMonthlyInterest();
    4. 取款方法 withdraw();
    5. 存款方法deposit()。

要求:写一个用户程序测试 Account 类。在用户程序中,创建一个账号为 1122、余额为 20000、年利率 4.5%的 Account 对象。使用 withdraw 方法提款 30000 元,并打印余额。再使用 withdraw 方法提款 2500 元,使用 deposit 方法存款 3000 元,然后打印余额和月利率。

提示:

  1. 在提款方法 withdraw 中,需要判断用户余额是否能够满足提款数额的要求,如果不能,应给出提示。
  2. 年利率是指一名用户以一年计算的存款利率,年利率=月利率*12=日利率*360 


以下是实验报告内容

✨✨前言:由于五一假期导致最后一节Java上机实验课没有上,所以不是很清楚实验报告的具体要求,我就按照之前数据结构实验报告的格式写了这次的Java上级报告,有需要的还是直接复制粘贴就行了,不过这次我写的比较敷衍,自己要上交实验报告的话,最好还是稍微修改美化一下🦄。

✨一、需求设计

1、建立一个人类(Person)和学生类(Student)功能要求:

Person中包含4个保护型的数据成员name、address、sex、age分别为字符串,字符串,字符及整型。表示:姓名、地址、性别和年龄;

一个四参构造方法,一个无参构造方法,及一个输出方法用于显示四种属性。

Student继承Person,并增加输出成员math、english存放数学和英语成绩。

一个六参构造方法,一个两参构造方法,一个无参构造方法,重写输出方法用于显示全部六种属性.

2、写一个名为 Account 的类模拟账户。该类的属性和方法如下所示。

该类包括的属性:

账号 id

余额 balance

年利率 annualInterestRate

包含的方法:

构造器;

getter 和setter 方法;

返回月利率的方法 getMonthlyInterest();

取款方法 withdraw();

存款方法deposit()。

✨二、概要设计

本实验设计了四个类,一个测试类demo3,一个人类Person类,一个Student类,一个Account类。在人类中设置四个保护类成员属性分别是name,address,sex,age,表示:姓名,地址,性别和年龄。设置四个参构造方法,一个无参构造方法,及一个输出方法用于显示四种属性。Student继承Person,并增加输出成员math、english存放数学和英语成绩。一个六参构造方法,一个两参构造方法,一个无参构造方法,重写输出方法用于显示全部六种属性。在Account类中设置三个私有成员属性账号 id,余额 balance,年利率 annualInterestRate一个公有属性月利率monthlinterest,构造相对应的setter和getter方法,设置返回月利率的方法 getMonthlyInterest(),取款方式为withdraw(),存款方法deposit()。

三、详细设计

新建一个class类类名为Person,依据题意定义私有成员属性姓名,地址,性别和年龄,分别为:

protected String name;protected String address;protected String sex;protected String age;

写入setter,getter方法

 public void setName(String name) {this.name = name;}public void setAge(String age) {this.age = age;}public void setAddress(String address) {this.address = address;}public void setSex(String sex) {this.sex = sex;}public String getName() {return name;}public String getAddress() {return address;}public String getAge() {return age;}public String getSex() {return sex;}

最后定义薪水增长额方法

public double giverise(double rise) {return rise * money;}

定义无参全参构造。

    public Person(){}public Person(String name,String address,String sex,String age){this.name=name;this.address=address;this.sex=sex;this.age=age;}

新建一个class类类名为Student继承Person并增加输出成员math、english存放数学和英语成绩。

private double math;private double english;

构造Student类的无参有参两参构造。

//无参构造
public Student(){}
//六参构造
public Student(String name,String address,String sex,String age,double math,double english)
{this.name=name;this.address=address;this.sex=sex;this.age=age;this.math=math;this.english=english;
}
//两参构造
public Student(double math,double english)
{this.math=math;this.english=english;
}

写入getter方法

//重写输方法
public double getMath()
{return math;
}
public double getEnglish()
{return english;
}
public String getName()
{return name;
}
public String getAddress()
{return address;
}
public String getSex()
{return sex;
}
public String getAge()
{return age;
}

新建一个class类类名为Account,依据题意定义三个私有成员属性账号 id,余额 balance,年利率 annualInterestRate一个公有属性月利率monthlinterest。

private String id;
private double balance;
private double annualInterestRate;
double monthlinterest;
setter,getter重写
//set重写
public String setId(String id)
{this.id=id;return this.id;
}
public double setBalance(double balance)
{this.balance=balance;return this.balance;
}
public double setAnnualInterestRate(double annualInterestRate)
{this.annualInterestRate=annualInterestRate;return this.annualInterestRate;
}
//get重写
public String getId()
{return this.id;
}
public double getBalance()
{return this.balance;
}
public double getAnnualInterestRate()
{return this.annualInterestRate;
}

定义返回月利率方法

public double getMonthlyInterest()
{monthlinterest=annualInterestRate/12;return monthlinterest;
}

定义取款方式

public double withdraw(double qu)
{//qu为取款值if(qu>balance){System.out.println("余额不足!");System.out.println("您的账户余额为:"+balance);}else{balance=balance-qu;System.out.println();}return balance;
}

定义存款方式

public double deposit(double cun)
{//cun为存款值balance=balance+cun;return balance;
}

四、调试结果

输入第一题的测试样例为:

姓名为李四,地址为西安明德理工学院,性别为男,年龄为21,数学成绩为98.0,英语成绩为89.0。

以下为调试结果截图:

 提款 40000 元在提款 1500 元然后存款 5000 元打印余额和月利率

以下为调试结果截图:

 

五、测试结果

依据实验要求第一题依此传入值,姓名为张三,地址为北京吸尘发给你区甲11号德外大街德胜科技园美江大厦 A座-6层,性别为男,年龄为25,数学成绩为99.0,英语成绩为99.0以下为测试结果截图:

 依据实验要求第二题依此传入值,提款 30000 元在提款 2500 元然后存款 3000 元打印余额和月利率以下为测试结果截图:

 

 

附录:源程序代码(带注释)

demo3类

package 命运之光;
public class demo3 {public static void main(String[] args){System.out.println("--------第一题--------");Student s=new Student("张三","北京吸尘发给你区甲11号德外大街德胜科技园美江大厦 A座-6层","男","25",99.0,99.0);System.out.println("姓名:"+s.getName());System.out.println("地址:"+s.getAddress());System.out.println("性别:"+s.getSex());System.out.println("年龄:"+s.getAge());System.out.println("数学成绩:"+s.getMath());System.out.println("英语成绩:"+s.getEnglish());System.out.println("--------第二题--------");Account a=new Account();a.setId("1122");a.setBalance(20000);a.setAnnualInterestRate(0.045);//以下进行测试数据a.withdraw(30000);a.withdraw(2500);a.deposit(3000);//打印余额System.out.println("您的账户余额为:"+a.getBalance());//打印月利率System.out.println("月利率为:"+a.getMonthlyInterest());}
}

Person类

package 命运之光;
public class Person {protected String name;protected String address;protected String sex;protected String age;public Person(){}public Person(String name,String address,String sex,String age){this.name=name;this.address=address;this.sex=sex;this.age=age;}public void setName(String name) {this.name = name;}public void setAge(String age) {this.age = age;}public void setAddress(String address) {this.address = address;}public void setSex(String sex) {this.sex = sex;}public String getName() {return name;}public String getAddress() {return address;}public String getAge() {return age;}public String getSex() {return sex;}
}

Student类

package 命运之光;
public class Student extends Person {private double math;private double english;//无参构造public Student(){}//六参构造public Student(String name,String address,String sex,String age,double math,double english){this.name=name;this.address=address;this.sex=sex;this.age=age;this.math=math;this.english=english;}//两参构造public Student(double math,double english){this.math=math;this.english=english;}//重写输方法public double getMath(){return math;}public double getEnglish(){return english;}public String getName(){return name;}public String getAddress(){return address;}public String getSex(){return sex;}public String getAge(){return age;}
}

Account类

package 命运之光;
public class Account {private String id;private double balance;private double annualInterestRate;double monthlinterest;//set重写public String setId(String id){this.id=id;return this.id;}public double setBalance(double balance){this.balance=balance;return this.balance;}public double setAnnualInterestRate(double annualInterestRate){this.annualInterestRate=annualInterestRate;return this.annualInterestRate;}//get重写public String getId(){return this.id;}public double getBalance(){return this.balance;}public double getAnnualInterestRate(){return this.annualInterestRate;}//返回月利率方法public double getMonthlyInterest(){monthlinterest=annualInterestRate/12;return monthlinterest;}//取款方法public double withdraw(double qu){//qu为取款值if(qu>balance){System.out.println("余额不足!");System.out.println("您的账户余额为:"+balance);}else{balance=balance-qu;System.out.println();}return balance;}//存款方式public double deposit(double cun){//cun为存款值balance=balance+cun;return balance;}
}

  点击下方个人名片,可添加博主的个人QQ,交流会更方便哦~
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓


http://chatgpt.dhexx.cn/article/ih8eNwda.shtml

相关文章

《程序设计基础课程设计》实验报告

《程序设计基础课程设计》实验报告 班 级: 学 号: 姓 名: 完成题目:1、2、3、4、5、6 概述 此次六道题目里面第四题是参考某博主的文章后实现的,有一些地方仍然不是特别理解,但是原文章里面存在一些小错…

Java面向对象程序设计实验报告(实验五 接口的练习)

✨作者:命运之光 ✨专栏:Java面向对象程序设计实验报告 ​ 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) demo5类 Instrument类 Piano类 …

Python程序设计实验报告【合集】

课堂作业 1、词频统计:输入一个文件,程序读取文件,文件内容是英文内容,不少于500个单词的内容,统计每个单词在该短文内出现的次数。 https://www.jb51.net/article/144405.htm https://www.cnblogs.com/Eudemines/p/9…

Java面向对象程序设计实验报告(实验一 面向对象基础练习)

✨作者:命运之光 ✨ 专栏:Java面向对象程序设计实验报告 目录 ✨一、需求分析 ✨二、概要设计 ✨三、详细设计 ✨四、调试分析 ✨附录:源代码(带注释) 实验一 面向对象基础练习 实验环境:EclipseJDK …

《C语言程序设计》课程总结报告

《C语言程序设计》课程总结报告 一、我学到的内容 二、我的收获(包括我完成的所有作业的链接收获) 1.PTA作业 22年秋-第1周基础作业 https://pintia.cn/problem-sets/1575138141596397568 22年秋-第2周课后作业 https://pintia.cn/problem-sets/1…

(软件工程)-- 总体设计报告

1引言 1.1编写目的 本阶段完成系统的大致设计并说明系统的数据结构与软件结构,本概要设计说明书的目的就是进一步细化软件设计阶段得出的软件概貌,把它加工成程序细节上非常接近与源程序开发的软件标识。 预期读者:软件测试人员、程序开发员…

程序设计报告模板

一、问题及代码 /* * 文件名称:Ex1-1.cpp * 作 者:曾辉 * 完成日期:2015 年 1 月 1 日 * 版 本 号:v1.0 * 对任务及求解方法的描述部分: * 输入描述:无 * 问题描述:我的第一个C程序,熟…

C语言程序设计期末大作业—教师工资管理系统(附程序设计报告)

C语言大作业——教师工资管理系统 主要的难点在于文件读取 数据结构用的是链表 源码放上&#xff0c;直接粘贴复制就可以&#xff0c;我的C程大作业 具体的问题不懂的可以评论和私信&#xff0c;总之还是简单的 放张图片 程序设计报告可以私信我 #include<stdio.h> …

C语言程序设计 课程设计报告

C语言程序设计课程设计报告 一、 系统简介 学生成绩管理系统简介&#xff1a;一个简易的学生成绩管理系统&#xff0c;它包括并可以实现&#xff1a;“录入并保存学生信息、打印学生信息、读取学生信息、查找学生信息、删除学生信息、修改学生信息、排序学生信息、退出系统 ”…

程序设计基础实训报告

一、实训目的 程序设计基础是程序设计C语言和C语言的入门课程&#xff0c;该课程兼顾基础理论和编程实践。通过学习该课程的理论知识和编程实战&#xff0c;培养学生的专业实践技能&#xff0c;学校设有专用实训周&#xff0c;帮助学生全面牢固地掌握课堂教学内容、提升实际动手…

程序设计课程设计报告(学生成绩管理系统)

程序设计课程设计报告 课程设计题目及内容 题目&#xff1a;学生成绩管理系统 设计要求及提示如下&#xff1a; &#xff08;1&#xff09;、设计一个学生类Student,包括数据成员&#xff1a;姓名、学号、二门课程(面向对象程序设计、高等数学)的成绩。 &#xff08;2&…

如何在A4相纸上打印4张5寸相片

第一步&#xff0c;打开ps&#xff0c;点击文件-新建&#xff0c;新建一个空白文档&#xff0c;宽度设置为12.7cm&#xff0c;高度设置为8.9cm&#xff0c;分辨率设置为300&#xff0c;rgb颜色设置为8位。 如下图&#xff1a; 第二步&#xff0c;设置完点确定&#xff0c;然后…

PS照片排版1寸2寸等及照片规格

我的电脑是macOS&#xff0c;为了这个文章通用win的朋友&#xff0c;尽量少用快捷键&#xff0c;多截图&#xff0c;本文以1寸为例介绍&#xff1a; 1.打开PS&#xff0c;文件-打开-选择要打印的照片 2.点裁剪-选择宽/高/分辨率-输入高度-输入宽度-输入分辨率-确定 3. 点击图像…

自制1寸照片及打印排版

1、打开Photoshop,新建一个2.5*3.5cm的图层&#xff0c;分辨率为300的文件。如果是2寸的就新建一个3.5*5.3cm的图层。&#xff08;文件----新建&#xff09; 2、打开拍摄的照片&#xff0c;使用”拖动”工具将照片拖到之前新建的1寸照片中&#xff0c;照片拖进去之后原始尺寸肯…

计算机报名照片 1寸,国考录用系统2021国家公务员考试报名照片尺寸是1寸还是2寸?...

国考录用系统2021国家公务员考试报名照片尺寸是1寸还是2寸?由国家公务员考试网其他答疑栏目提供&#xff0c;更多关于国家公务员考试,国考报名确认,国考缴费入口,国考照片,国家公务员考试其他答疑的内容&#xff0c;请关注国家公务员考试网/河北人事考试网&#xff01; 2021年…

photoshop中如何在6寸相纸上打印1寸照片10张2X5模式(自动填充模式)

如何在6寸相纸上打印1寸照片 初学photoshop&#xff0c;在ps中设置。 1.将照片拖入到ps中 2.在图像->图像大小中设置图像尺寸&#xff0c;如下图&#xff1a; 3.确认后&#xff0c;将图片另存为 4.在文件->新建 由于6寸照片是152mmX102mm 因此将1寸尺寸画布尺寸设置成3.…

六寸画布平铺16张一寸照片并打印

1、新建一个一寸画布 2、照片拷贝进来 适当缩放 铺满 3、新建一个六寸画布 4、ctrlc拷贝一寸照片 粘贴到六寸画布中 调整位置 复制图层 可以用方向键微调 合并图层&#xff08;ctrlE&#xff09;后继续复制图层 可以放16张一寸照片 5、添加打印机&#xff08;已添加…

4r照片尺寸是多大_数码照片4D、4R、6RW是什么意思,怎样调整4D照片尺寸?

数码照片4D、4R、6RW是什么意思,怎样调整4D照片尺寸?数码相机和DV进入寻常百姓家&#xff0c;有些朋友希望把外出旅游或者居家时拍的照片冲印出来&#xff0c;但是一些朋友对里面的专业说法不太熟悉&#xff0c;比如3R,4R,4D,5D,5R,6R等照片的规格和尺寸不清楚&#xff0c;其实…

计算机一级报名照片是几寸的,法考报名照片要求几寸

法考报名照片要求尺寸是2寸照片。证件照为电子照片&#xff0c;标准尺寸为413像素(宽)626像素(高)&#xff0c;文件类型为jpg格式&#xff0c;文件大小为40KB ≤ 文件大小 ≤ 100KB。电子照片需本人近三个月内正面、免冠、彩色(蓝、红、白色底)证件电子照片&#xff0c;照片必须…

5寸照片尺寸_证件照尺寸及更换背景颜色教程

证件照主要分三种尺寸&#xff0c;分别为&#xff1a; 1寸“2.5cm*3.5cm”&#xff1b; 小2寸(护照)“3.3cm *4.8cm”。 2寸“3.5cm*5.3cm”&#xff1b; 证件照常见背景色为白色、红色、蓝色。 背景色的参数分别为&#xff1a; 白色“R:255 G:255 B:255”&#xff1b; 红色“R…