java实现鲜花销售系统

 更新时间:2021年06月24日 10:52:15   作者:司天宏  
这篇文章主要为大家详细介绍了java实现鲜花销售系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别解析

    spring boot参数验证注解@NotNull、@NotBlank和@NotEmpty区别解析

    使用spring boot参数验证是常常会使用@NotNull、@NotBlank和@NotEmpty三个判断是否不为空的注解,中文都有不能为空的意思,大部分使用者都傻傻分清它们之间到底有什么区别,今天就让咱们来一起探索它们之间的不同吧,感兴趣的朋友一起看看吧
    2024-05-05
  • JAVAEE Filter 过滤器设置是否缓存实例详解

    JAVAEE Filter 过滤器设置是否缓存实例详解

    网页中,每次的客户端访问服务器,有部分不用重复请求的,这样可以减轻服务器的工作量。那么如何设置客户端是否都缓存呢?接下来通过本文给大家介绍JAVAEE Filter 过滤器设置是否缓存的实例,感兴趣的朋友一起学习吧
    2016-05-05
  • SpringBoot2 实现JPA分页和排序分页的案例

    SpringBoot2 实现JPA分页和排序分页的案例

    这篇文章主要介绍了SpringBoot2 实现JPA分页和排序分页的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SpringBoot使用@Async注解实现异步调用

    SpringBoot使用@Async注解实现异步调用

    这篇文章主要介绍了SpringBoot使用@Async注解实现异步调用,异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待,程序执行完即可执行,可以减少程序执行时间,需要的朋友可以参考下
    2023-10-10
  • 解决springboot集成swagger碰到的坑(报404)

    解决springboot集成swagger碰到的坑(报404)

    这篇文章主要介绍了解决springboot集成swagger碰到的坑(报404),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 深入剖析Java工厂模式让你的代码更灵活

    深入剖析Java工厂模式让你的代码更灵活

    Java工厂模式是一种创建对象的设计模式,它可以在不暴露对象创建逻辑的情况下,将对象的创建委托给子类或者其他对象。本文就来深入剖析一下Java工厂模式是如何让你的代码更灵活、可扩展、易维护的
    2023-05-05
  • Java中将String类型转换为int类型的几种常见方法

    Java中将String类型转换为int类型的几种常见方法

    在java中经常会遇到需要对数据进行类型转换的场景,这篇文章主要给大家介绍了关于Java中将String类型转换为int类型的几种常见方法,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Python爬虫 12306抢票开源代码过程详解

    Python爬虫 12306抢票开源代码过程详解

    这篇文章主要介绍了Python爬虫 12306抢票开源代码过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • java服务器的简单实现过程记录

    java服务器的简单实现过程记录

    在线浏览网页离不开服务器,用户发出请求request,服务器做出响应response,提供给用户需要的页面,这篇文章主要给大家介绍了关于java服务器简单实现的相关资料,需要的朋友可以参考下
    2021-11-11
  • 在Eclipse中使用版本管理工具SVN的图文教程

    在Eclipse中使用版本管理工具SVN的图文教程

    下面小编就为大家分享一篇在Eclipse中使用版本管理工具SVN的图文教程,具有很好的参考价值,一起跟随小编过来看看吧
    2017-11-11

最新评论