java实现鲜花销售系统
作者:司天宏 发布时间:2023-08-29 20:23:42
本文实例为大家分享了java实现鲜花销售系统的具体代码,供大家参考,具体内容如下
一、练习目标
1.体会数组的作用
2.找到分层开发的感觉
3.收获分层开发的兴趣
4.作出效果,找到自信
5.学会调试错误
6.掌握数组的增删改查方法
二、项目需求
1.使用分层开发:表示层(测试类)、业务层(鲜花管理类)、实体层(鲜花类)
2.使用数组的相关方法实现鲜花销售系统的查询订单、修改订单、删除订单功能。
3.查询订单之前需要对数组进行初始化操作
4.修改订单时,需要先判断订单是否存在,存在才可以修改,修改后可以选择是否保存修改,若保存修改,显示修改后的订单信息
5.删除订单时,需要先判断订单是否存在,存在才可删除,询问用户是否确认删除,确认后再删除订单信息,删除成功后,显示目前最新的订单信息
三、提供的素材
1.项目运行效果图
四、实施步骤
1.教师运行项目,学生熟悉项目功能
2.教师讲解基本代码思路
3.给学生提供运行效果截图
4.学生根据截图实现效果
5.教室讲解编写代码步骤
6.期间穿插已完成学生展示效果
五、编写代码步骤
1.定义鲜花类Flower,放入实体层
2.定义鲜花管理类FlowerMgr,通过一个数组实现对鲜花的管理,放入业务层。
3.FlowerMgr类中,实现public void inital(){}方法,用于完成对鲜花管理系统的初始化功能(数组的初始化)
4.FlowerMgr类中,实现public void mainMenu(){}方法,用于完成功能面板的展示及功能选择
5.FlowerMgr类中,实现private void searchAll(){}方法,用于完成查询订单的功能
6.FlowerMgr类中,实现private void updateSale(){}方法,用于完成修改订单的功能
7.FlowerMgr类中,实现private void deleteSale(){}方法,用于完成删除订单的功能
8.定义测试类Test,放入表示层;在测试类中,先初始化鲜花管理系统,然后调用mainMenu()方法,实现具体功能
9.编写代码过程中,尽量每完成一个功能,就对其进行测试
六、学生扩展
1.学生尝试增加鲜花管理系统的功能:
a)增加新增订单功能
b)在学习异常处理后,可进行必要的异常处理
2.完善功能代码:
a)销售数量不能为负数
b)鲜花价格不能为负数
public class Flower {
private int number;
private String name;
private int count;
private double price;
private String date;
private String saler;
public Flower(int number, String name, int count, double price, String date, String saler) {
super();
this.number = number;
this.name = name;
this.count = count;
this.price = price;
this.date = date;
this.saler = saler;
}
public Flower() {
super();
// TODO Auto-generated constructor stub
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getSaler() {
return saler;
}
public void setSaler(String saler) {
this.saler = saler;
}
}
import java.util.*;
import java.util.Scanner;
public class FlowerMgr {
Scanner input1=new Scanner(System.in);
static Flower[] flower=new Flower[5];
//public void inital(){
//初始化,花的数组
static{
flower[0]=new Flower(1001,"香槟玫瑰",10,318.0,"2018-12-12","王二");
flower[1]=new Flower(1002,"白玫瑰",99,538.0,"2018-2-2","张星宇");
flower[2]=new Flower(1003,"紫色桔梗",40,123.0,"2018-12-16","王二");
flower[3]=new Flower(1004,"粉色百合",120,188.0,"2016-12-11","王二");
flower[4]=new Flower(1005,"无声的爱",1000,219.0,"2016-12-15","张星宇");
}
//完成功能面板的展示功能
public void mainMenu(){
System.out.println("~~~~~~~~~~欢迎光临鲜花管理系统~~~~~~~~~~~");
System.out.println("\t1.查询销售订单");
System.out.println("\t2.修改销售订单");
System.out.println("\t3.删除销售订单");
System.out.println("\t4.系统退出");
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
//查询订单功能
public void searchAll(){
System.out.println("这里是全部的订单");
System.out.println("编号\t鲜花名称\t销售数量\t价格\t销售日期\t\t销售员");
for(int i=0;i<flower.length;i++){
**if(flower[i]!=null)**{
Flower f=flower[i];
System.out.println(f.getNumber()+"\t"+f.getName()+"\t"+f.getCount()+"\t"
+f.getPrice()+"\t"
+f.getDate()+"\t"+f.getSaler());
}
}
}
//修改订单功能
public void updateSale(){
System.out.println("这里是修改订单功能");
searchAll();
System.out.println("请输入要修改编号");
int index=-1;
int num1=input1.nextInt();
for(int i=0;i<flower.length;i++){
Flower f=flower[i];
int number=f.getNumber();
if(num1==number)
index=i;
}
if(index==-1)System.out.println("输入的编号有误");
else{System.out.println("请输入改变后的鲜花名称");
String name=input1.next();
System.out.println("请输入改变后的销售数量");
int number=input1.nextInt();
System.out.println("请输入改变后的价格");
double price =input1.nextDouble();
System.out.println("请输入改变后的销售日期");
String date =input1.next();
System.out.println("请输入改变后的销售员");
String saler=input1.next();
System.out.println("你确定要修改吗?(y/n)");
String choice=input1.next();
if("y".equals(choice)){
flower[index].setName(name);
flower[index].setCount(number);;
flower[index].setPrice(price);
flower[index].setDate(date);
flower[index].setSaler(saler);
}
System.out.println("修改后的全部订单");
searchAll();
}
}
//删除订单功能
public void deleteSale(){
System.out.println("这里是删除订单功能");
searchAll();
System.out.println("请输入要删除的编号");
int number=input1.nextInt();
int index=-1;
for(int i=0;i<flower.length;i++){
Flower f=flower[i];
if(number==f.getNumber())
index=i;
}
if(index==-1)System.out.println("你输入的编号有误");
else{System.out.println("你要修改的订单如下");
Flower f=flower[index];
System.out.println("编号\t鲜花名称\t销售数量\t价格\t销售日期\t\t销售员");
System.out.println(f.getNumber()+"\t"+f.getName()+"\t"+f.getCount()+"\t"
+f.getPrice()+"\t"
+f.getDate()+"\t"+f.getSaler());
System.out.println("你确定要删除吗(y/n)");
System.out.println("请选择");
String choice=input1.next();
if("y".equals(choice)){
**for(int i=index;i<flower.length-1;i++){
flower[i]=flower[i+1];**
}
**flower[flower.length-1]=null;**
System.out.println("删除成功");
searchAll();
}
else
{System.out.println("已取消删除");}
}
}
}
import java.util.Scanner;
public class test {
public static void main(String[] args) {
do{Scanner input=new Scanner(System.in);//打印对象
FlowerMgr f=new FlowerMgr();
f.mainMenu();
System.out.println("请选择");
int num=input.nextInt();
//方法的选用
switch(num){
case 1: f.searchAll();break;//查询销售订单
case 2:f.updateSale();break;//修改订单功能
case 3:f.deleteSale();break;//删除功能
case 4: return;
}}while(true);
}
}
来源:https://blog.csdn.net/qq_41532872/article/details/85040249


猜你喜欢
- 静态方法可以不用创建对象就调用,非静态方法必须有了对象的实例才能调用。因此想在静态方法中直接引用非静态方法是不可能的,因为不知道调用哪个对象
- Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制。
- 1、悲观锁悲观锁假设最坏的情况(如果果你不锁门,那么捣蛋鬼就会闯入并搞得一团糟),只有在确保其他线程不受干扰(获得正确的锁)的情况下才能执行
- 一、链表1.1 概述链表是真正动态的数据结构,最简单的动态数据结构,基本用于辅助组成其他数据结构。数据存储在“节点”(Node)中优点:真正
- 今天在做项目的时候突然遇到一个问题:启动服务器的时候spring没报错,可是当我访问某个页面的时候spring报Request bean i
- 详解Java中HashSet和TreeSet的区别1. HashSetHashSet有以下特点:不能保证元素的排列顺序,顺序有可能发生变化不
- C# 中可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可。1. 什么是局部类型?C# 2.0 引入
- 过年微信红包很火,最近有个项目也要做抢红包,于是写了个红包的生成算法。红包生成算法的需求预先生成所有的红包还是一个请求随机生成一个红包简单来
- 前言项目流程图如下:这里我们通过:163邮箱来实现激活码发送qq邮箱来进行接收学习之前需要掌握的知识springboot的基本使用方法mys
- 本文主要给大家介绍了关于RxJava的一些特殊用法,分享出来供大家参考学习,需要的朋友们下面来一起看看吧。一、按钮绑定通过 RxView 可
- 在做android开发时有这样一个需求,我们需要把地图的zoomcontroller放置于地图的右下角。 默认情况下,我们在eclipse中
- 项目分为前台和后台,前台主要为学生角色、后台主要为管理员角色。管理员添加试题和发布试卷,学生负责在线考试、在线查看成绩和错题记录列表等。管理
- 前言什么是AptAPT从原理上讲是一个编译期的注解处理工具(Annotation Processing Tool)。一些主流的三方库(But
- 这篇文章主要介绍了SpringMVC的执行流程及组件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 仿Keep运动休息倒计时控件,供大家参考,具体内容如下源码控件本身非常非常简单,唯一难点在于倒计时期间动态增减时长,如果说动态增减时长是瞬间
- 功能介绍大家都知道在Spring boot开发过程中,需要在配置文件里配置许多信息,如数据库的连接信息等,如果不加密,传明文,数据库就直接暴
- 简介本文用示例介绍java的Duration的用法。Duration和Period说明Duration类通过秒和纳秒相结合来描述一个时间量,
- Java中为什么需要Callable在java中有两种创建线程的方法:一种是继承Thread类,重写run方法:public class T
- 小编在之前给大家介绍过很多android项目打包的经验,本篇内容我们通过一个项目实例来给大家讲解android每一步打包和签名的过程。and
- 本文实例为大家分享了Java实现 * 系统的具体代码,供大家参考,具体内容如下父类Vehiclepublic abstract class