java写花束_Java作业 题目:16版.情人节送玫瑰花
1、实验要求
本实验要求:以情人节送花为业务背景,体验自定义异常以及异常处理机制。
1-1. 业务说明:
1-1.1. 本实验以情人节送花为业务背景,女方提出送花需求,男方送出鲜花。
1-1.2. 当女方提出送花数超过男方可承受范围(例如:100朵)时,需要抛出异常。
1-2. 创建工程并配置环境:
1-2.1. 限制1. 创建实验工程,命名为:SE_JAVA_EXP_E038;
1-2.2. 限制2. 创建包,命名为:cn.campsg.java.experiment;
1-2.3. 限制3. 创建包,命名为:cn.campsg.java.experiment.exception。
1-3. 创建送花异常类:
1-3.1. 限制1. 在cn.campsg.java.experiment.exception 包中创建异常类:
1)异常类名:RoseException
1-3.2. 为异常类RoseException创建0参构造器:
1)在RoseException构造器内调用父类构造器。
1-3.3. 为异常类RoseException创建1参构造器(参数为字符串类型):
1)在RoseException构造器内调用父类1参构造器。
1-4. 创建送花业务类:
1-4.1. 限制1. 在cn.campsg.java.experiment包中创建送花业务类:
1)业务类类名:Rose
1-4.2. 为类Rose创建私有属性:
1)男方鲜花持有数:int total;
1-4.3. 为类Rose创建0参构造器:
1-4.4. 为类Rose创建1参构造器:
1)在构造器内对total属性赋值:鲜花持有数 = 构造器参数值。
1-4.5. 为Rose类创建如下方法:
访问权限
方法名称
返回值
方法参数
参数说明
方法说明
public
giveRose
void
int num
送花数量
模拟“送花”
1)该方法用于模拟男方向女方送花。
1-4.6. 送花业务逻辑描述如下:
1)当送花需求(参数)小于1时,方法输出以下信息提示错误:
“送花的数量不正确:数量不能小于1!”
2)当送花需求(参数)大于男方的鲜花持有数(total)时,方法抛出异常;
异常为:RoseException,错误信息:"没钱买" + num + "支玫瑰花"
3)当有送花需求时,男方鲜花已经送完(total = 0),方法抛出异常;
异常为:RoseException,错误信息:"没钱买" + num + "支玫瑰花"
4)当送花需求(参数)小于等于男方的鲜花持有数(total)时,输出如下信息:
"亲爱的,送你" + 送花数量 + "朵玫瑰花!"
5)同时更新男方的鲜花持有数(total):total = total - num。
1-5. 显示送花的结果:
1-5.1. 限制1. 在cn.campsg.java.experiment包中创建主类:MainClass;
1-5.2. 为MainClass创建入口主方法:main;
1-5.3. 在main中,调用Rose的1参构造器创建1个Rose对象;
1-5.4. 提示用户输入送花数量,提示信息:你想送女朋友多少朵玫瑰(数字):
1-5.5. 接收用户输入的送花数;
1-5.6. 在main中,执行送花操作并捕获送花时可能出现的异常;
1-5.7. 确保送花操作无论是否成功都显示:无论如何,我都是爱你的。
2、实现思路
2-1. 创建工程并配置环境。
2-2. 创建送花异常类:
2-2.1. 在cn.campsg.java.experiment.exception 包中创建异常类:
1)异常类名:RoseException
2-2.2. 为RoseException类创建0参构造器:
1)在RoseException构造器内调用父类0参构造器。
2-2.3. 为RoseException类创建1参构造器,其形式如下:
+提示
public RoseException(String msg){
}
1)在构造器内调用父类的1参构造器:super(msg);
2-3. 创建送花业务类:
2-3.1. 在cn.campsg.java.experiment包中创建送花业务类Rose;
2-3.2. 为Rose类创建私有属性,男方鲜花持有数:int total;
2-3.3. 为Rose类创建0参构造器;
2-3.4. 为Rose类创建1参构造器,其形式如下:
+提示
public Rose (int total){
}
1)在构造器内为属性total赋值:total = total - num。
2-3.5. 为Rose类创建送花方法:giveRose并申明自定义异常,其形式如下:
+提示
public void giveRose(int num) throws RoseException {
}
2-3.6. giveRose方法业务逻辑如下;
1)当送花需求(参数)小于1时,方法输出以下信息提示错误:
“送花的数量不正确:数量不能小于1!”
2)当送花需求(参数)大于男方的鲜花持有数(total)时,方法抛出异常;
异常为:RoseException,错误信息:"没钱买" + num + "支玫瑰花"
3)当有送花需求时,男方鲜花已经送完(total = 0),方法抛出异常;
异常为:RoseException,错误信息:"没钱买" + num + "支玫瑰花"
+ 提示
if (total <= 0 || num > total)
throw new RoseException("没钱买" + num + "支玫瑰花");
4)当送花需求(参数)小于等于男方的鲜花持有数(total)时,输出如下信息:
"亲爱的,送你" + num + "朵玫瑰花!"
5)同时更新男方的鲜花持有数(total):total = total - num。
+ 提示
System.out.println("亲爱的,送你" + num + "朵玫瑰花!");
this.total -= num;
2-4. 显示送花的结果:
2-4.1. 在包cn.campsg.java.experiment中创建业务主类:MainClass;
2-4.2. 在MainClass中定义主方法:main;
2-4.3. 接收用户输入的送花数:
1) 要求用户输入送花数,提示语句:你想送女朋友多少朵玫瑰(数字):。
2)创建Scanner对象,设置参数:System.in:
+ 提示
Scanner in = new Scanner(System.in);
3)调用Scanner的nextInt方法获取用户输入的送花数。
2-4.4. 在main方法中,创建Rose对象并初始化男方拥有100多鲜花:
+ 提示
Rose rose = new Rose(100);
2-4.5. 在main中,执行送花操作并捕获送花时可能出现的异常:
1)调用rose的giveRose函数,并传入用户输入的鲜花数;
2)捕捉giveRose函数可能抛出的RoseException。
3)在catch块中打印RoseException对象中的错误信息。
2-4.6. 增加finally块,在finally块中向控制台输出:无论如何,我都是爱你的。
+ 提示
try {
// 获取用户输入的玫瑰花
int num = scan.nextInt();
// 开始送花
rose.giveRose(num);
} catch (RoseException e) {
System.out.println(e.getMessage());
} finally {
scan.close();
System.out.println("无论如何,我都是爱你的!\n");
}
3、验证与测试
3-1. 在工程中定位主类MainClass。
3-2. 右键点击MainClass类,依次选择:Run As->Java Application。
3-3. 运行程序,查看输出结果是否符合预期。
java写花束_Java作业 题目:16版.情人节送玫瑰花相关推荐
- JAVA定义一个鲜花类_Java作业 题目:16版.情人节送玫瑰花
1.实验要求 本实验要求:以情人节送花为业务背景,体验自定义异常以及异常处理机制. 1-1. 业务说明: 1-1.1. 本实验以情人节送花为业务背景,女方提出送花需求,男方送出鲜花. 1-1.2. 当 ...
- java rectangle 单位_Java作业(创建Rectangle类).doc
<Java语言>课程作业 (第一次) 题 目 学 院 专 业 班 别 学 号 姓 名 2010年10月8日 一.课程题目 12.创建一个名为Rectangle的类来表示一个使用宽度和高度来 ...
- 实验楼Java写计算器_Java版图形界面计算器
Java 版图形界面计算器 实验说明及介绍 环境登录 无需密码自动登录,系统用户名 shiyanlou,密码 shiyanlou 环境介绍 本实验环境采用带桌面的 Ubuntu Linux 环境,实验 ...
- java api 英文_JAVA中英文API(在线版)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 www.qht02.com.cn 全球最大搜索 package com.qhit; import java.awt.Graphics; import ja ...
- java写龟兔赛跑_Java实现龟兔赛跑
闲极无聊,加上翻手机看到龟兔赛跑的词语,想到了可以通过java起两个线程来实现龟兔赛跑的实现. 代码实现其实很简单: 首先是乌龟类: 然后是兔子类: 最后是赛跑类: 接下里让我们看一下输出结果吧: 乌 ...
- 自考java填空题_java 自考题目
1.在实现接口ActionListener的方法actionPerformed()中,常用的两个获得事件源方法有getActionCommend()和_____________.2.Connectio ...
- java treemap用法_JAVA作业,使用TreeMapK,V类
展开全部 import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util. ...
- java 二叉树 遍历_JAVA实现二叉树(简易版--实现了二叉树的各种遍历)
1 packagetree;2 3 importjava.util.ArrayDeque;4 importjava.util.ArrayList;5 importjava.util.List;6 im ...
- java写病毒_java编写小病毒程序
import java.io.File;//在你的桌面上创建无数个文件夹或文件,那电脑内存消耗很大了!import java.util.*;public class chuangjianwenjian ...
最新文章
- 系统时间大全,待整理
- 求出该数组中特定元素的和,特定元素是指个位和十位不包含7的偶数。
- ubuntu安装Redis+安装mysql(配置远程登录)+安装jdk+安转nginx+安转teamviewer+安装terminator+安装sublime
- 添加谷歌翻译到你的网站
- Java方法区和运行时常量池溢出问题分析(转)
- 在线教育软件开发 教育APP软件开发分析
- java数组冒泡排序法编程_java实现数组冒泡排序的方法
- 矢量网络分析仪的基本原理
- IntelliJ IDEA Ultimate破解安装及使用其进行Spring程序开发
- 共享磁盘到远程服务器上,远程桌面链接怎么共享本地磁盘,你值得一看的技巧...
- maya2018模型传递点序
- bcoma 应用程序发生错误_打开网页老是出现《应用程序错误》是怎么回事?
- 华为、中兴短信网关最新3.0协议封装代码说明
- Android优雅的ui倒计时,Hurry - 一款颜值超高的日历+倒计时 APP - Android 应用 - 生活 - 【最美应用】...
- 大数据分析与机器学习领域Python兵器谱
- OCI指南—OCIStmtExecute()函数
- TOM、网易、腾讯企业邮箱 | 邮箱登录入口你了解多少?
- 开源当道,群英荟萃!1024 程序员节北京峰会火热来袭
- CatiaV5R21安装
- iOS - 外加字体(只需三步-教你轻松实现)