java小项目水果摊

article/2025/10/12 9:55:00

介绍

刚学完java 集合和IO流,想做了一个简单的小项目来练手,于是我就运用一些基础知识做了这个水果摊。水果摊的主要功能有:

  1. 进货
  2. 查看水果列表
  3. 购买水果
  4. 查看购物车
  5. 结账
  6. 退出

都是一些简单的功能,下面就来展示代码;
在这里插入图片描述

代码

主菜单

public class MyList {public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException, IOException {System.out.println("欢迎来到水果摊");Scanner scanner =new Scanner(System.in);int f=0;while(true) {System.out.println("请选择业务类型:");System.out.println("0.进货,1.查看列表,2.购买水果,3.查看购物车,4.结账,5"+ "退出");int m =scanner.nextInt();switch(m) {case 0:Stock.Stock();break;case 1:Kind.Kind();	 break;case 2:Buy.Buy();break;case 3:Shoppings.Shoppings();break;case 4:Pay.Pay();break;case 5:System.out.println("感谢惠顾!");f=1;break;default:System.out.println("输入错误,请重新输入");break;	}if(f==1)break;}}}

进货

package com.vector.units;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.vector.dao.Fruit;
import com.vector.service.FileOutput;public class Stock {static List<Fruit> list;public static void Stock() throws FileNotFoundException {List<Fruit> list = new ArrayList<>();Scanner scanner = new Scanner(System.in);String name;double price;int i = 1;while (true) {System.out.println("请输入第" + i + "种水果的种类:");name = scanner.next();System.out.println("请输入第" + i + "种水果的价格:");price = scanner.nextInt();Fruit sg = new Fruit(name, price);list.add(sg);setList(list);System.out.println("输入0继续,输入1结束进货");i++;int f = scanner.nextInt();if (f == 1) {break;}}FileOutput.FileOutput();}public static List<Fruit> getList() {return list;}public static void setList(List<Fruit> list) {Stock.list = list;}
}

查看水果列表

package com.vector.units;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.List;
import com.vector.dao.Fruit;
import com.vector.service.FileInput;
import com.vector.service.FileOutput;public class Kind {static List<Fruit> list = new ArrayList<Fruit>();static Object ob;public static void Kind() throws ClassNotFoundException, FileNotFoundException, IOException {FileInput fileInput = new FileInput();list = (List<Fruit>) fileInput.FileInput().readObject();Kind.setList(list);System.out.println("总共有" + list.size() + "种水果,分别为:");for (Fruit s : list) {System.out.println(s);}}public static List<Fruit> getList() {return list;}public static void setList(List<Fruit> list) {Kind.list = list;}public static Object getOb() {return ob;}public static void setOb(Object ob) {Kind.ob = ob;}
}

购买水果

package com.vector.units;import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;import com.vector.dao.Fruit;
import com.vector.service.Mapp;public class Buy {static String name;static List<Integer> M;static Map<String, Double> fruit3;public static void Buy() throws FileNotFoundException {Map<String, Fruit> fruit = Mapp.Mapp();Map<String, Double> fruit2 = Mapp.Mapp1();Map<String, Double> fruit3 = Mapp.Mapp2();String name;int m;List<Integer> M = new ArrayList<>();Scanner scanner = new Scanner(System.in);while (true) {System.out.println("请输入你要购买的水果名称:");name = scanner.next();Buy.setName(name);if (fruit.get(name) == null) {System.out.println("输入错误,请重新选择输入!");break;}System.out.println(fruit.get(name));int f1 = 0;Set ss1 = fruit3.entrySet();Iterator it = ss1.iterator();int t = 0;int n = 0;while (it.hasNext()) {Object obj = it.next();Map.Entry entry = (Map.Entry) obj;if (entry.getKey().equals(name)) {t = 1;break;}n++;}int m1;int m2;if (t == 1) {System.out.println("请输入购买的斤数:");m1 = scanner.nextInt();m2 = m1 + M.get(n);M.set(n, m2);} else {fruit3.put(name, fruit2.get(name));// System.out.println(fruit3.get(name));System.out.println("请输入购买的斤数:");m = scanner.nextInt();M.add(m);}Buy.setFruit3(fruit3);System.out.println("输入0继续,输入1结束");int f = scanner.nextInt();if (f == 1) {break;}}Buy.setM(M);}public static String getName() {return name;}public static void setName(String name) {Buy.name = name;}public static Map<String, Double> getFruit3() {return fruit3;}public static List<Integer> getM() {return M;}public static void setM(List<Integer> m) {M = m;}public static void setFruit3(Map<String, Double> fruit3) {Buy.fruit3 = fruit3;}}

购物车

package com.vector.units;import java.io.FileNotFoundException;
import java.util.List;
import java.util.Map;
import com.vector.units.Buy;
import com.vector.service.Mapp;public class Shoppings {static double Total;public static void Shoppings() throws FileNotFoundException {Map<String, Double> fruit = Buy.getFruit3();double n = 0;List<Integer> M = Buy.getM();int m = 0;for (String key : fruit.keySet()) {System.out.println("水果名称: " + key + ",水果的价格:" + fruit.get(key) + "/斤" + "水果的数量" + M.get(m) + "斤");n += M.get(m) * fruit.get(key);m++;}Shoppings.setTotal(n);}public static double getTotal() {return Total;}public static void setTotal(double total) {Total = total;}}

结账

package com.vector.units;public class Pay {public static void Pay() {double inTotal = Shoppings.getTotal();System.out.println("请付钱"+inTotal+"元");	}
}

下面的类都是一些用于实现功能的其他类
水果信息

package com.vector.dao;import java.io.Serializable;public class Fruit implements Serializable {String name;double price;public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public Fruit(String name, double price) {super();this.name = name;this.price = price;}@Overridepublic String toString() {return "水果名称:" + name + ",价格" + price + "/斤";}
}

写出文件


public class FileOutput {public static FileOutputStream FileOutput() throws FileNotFoundException {File file =new File ("D:\\eclip\\Fruit\\list1.txt");FileOutputStream fileOut = new FileOutputStream(file);try {ObjectOutputStream objectOut =new ObjectOutputStream(fileOut);objectOut.writeObject(Kind.getList());objectOut.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return fileOut;}
}

读入

package com.vector.service;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;public class FileInput {public ObjectInputStream FileInput() throws FileNotFoundException, IOException {ObjectInputStream in=new ObjectInputStream(new FileInputStream(new File("D:\\eclip\\Fruit\\list1.txt")));return in;
}
}

Map工具类

package com.vector.service;import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import com.vector.dao.Fruit;
import com.vector.units.Kind;
import com.vector.units.Stock;public class Mapp {public static Map<String, Fruit> Mapp() throws FileNotFoundException {List<Fruit> list = Kind.getList();Map<String, Fruit> fruit = new HashMap<String, Fruit>();for (Fruit list1 : list) {fruit.put(list1.getName(), list1);}return fruit;}public static Map<String, Double> Mapp1() throws FileNotFoundException {List<Fruit> list = Kind.getList();Map<String, Double> fruit2 = new HashMap<String, Double>();for (Fruit list2 : list) {fruit2.put(list2.getName(), list2.getPrice());}return fruit2;}public static Map<String, Double> Mapp2() throws FileNotFoundException {Map<String, Double> fruit3 = new HashMap<String, Double>();return fruit3;}
}

总结

由于是用来练习的小项目,代码写的有些粗糙,还望大家见谅。
.
.
.
.

看都看完了,还不三连鼓励一下吗

.
.
.
.

在这里插入图片描述


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

相关文章

Java个人Web小项目

JavaWeb-HTML实列开发 目录源代码链接部分效果图 目录 #1.用户列表开发 新建一个Maven项目 创建包&#xff1a;com.iflytek 在项目中 在com.iflytek.controller中新建一个类为控制器类&#xff1a;(本网址为/UserController.java) UserController.java package com.iflytek…

Java小项目(一)---超市管理系统

超市管理系统 一、使用技术二、实现功能三、运行效果图3.1 货物清单3.2 增加货物3.3 删除货物3.4 修改货物3.5 退出 四、实现的代码4.1 Good商品货物类4.2 ShoppingSystem超市管理系统测试类 一、使用技术 Java SE 二、实现功能 使用选择结构&#xff0c;循环结构&#xff0…

Java小项目另一个水果摊

文章目录 前言一、包和表截图二、源代码1.JDBC连接Mysql数据管理员界面&#xff1a;增删查改用户界面 &#xff1a;查找水果建立断开连接 2.GUI窗口界面开始选择界面用户购买水果界面管理员登录界面管理员界面 3.水果属性4.main方法 总结拒绝白嫖&#xff0c;给个三连鼓励一下吧…

JavaWeb之综合小项目

案例需求&#xff1a; 使用Java程序操作数据库&#xff0c;并把结果显示在jsp页面上。 &#xff08;这里只做查询操作&#xff0c;增删改操作类似如此&#xff09; 使用工具&#xff1a; maven&#xff0c;idea&#xff0c;tomcat&#xff0c;MySQL数据库。 使用技术&#xff1…

20个Java小项目,献给嗜学如狂的人,拿来练练手

给大家推荐一条由浅入深的JAVA学习路径&#xff0c;首先完成 Java基础、JDK、JDBC、正则表达式等基础实验&#xff0c;然后进阶到 J2SE 和 SSH 框架学习。最后再通过有趣的练手项目进行巩固。 JAVA基础 1. Java编程语言&#xff08;新版&#xff09; 2. Java进阶之设计模式…

Java面试:java小项目实例

前言 本人是底层 211 本科,刚毕业,⽆科研经历,但是有些项⽬经历。 在国内监控行业某头部企业做过一段时间的实习。 想着投下字节,可以积累⼀下⾯试经验和为金九银十面招做准备。投了简历之后,过了一段时 间,HR 就打电话跟我约时间, 说明一下,我投的是北京 office。 以下就是一…

java 练手小项目

学习了javaSE的基础&#xff0c;为了巩固对Java面向对象编程&#xff0c;以及java多线程编程的理解&#xff0c;使用swing 写了一个很简单的小项目&#xff0c;源码github地址: https://github.com/pythondever/swing-demo 喜欢的同学可以学习学习 整体代码流程 * 1. JFra…

javaWeb小项目

作为一个学习加Java的小白&#xff0c;非常开心能记录下自己的成长历程。技术有限&#xff0c;请见谅&#xff01; 我主要学习的是Java后端&#xff0c;当我学着做了一个web小项目之后对javaee项目也有了初步见解&#xff01; 老师说万物皆对象&#xff0c;万物皆增删改查。我的…

java练习小项目(一)

学习java有一段时间了&#xff0c;都是处于那种三天打鱼&#xff0c;两天晒网的状态&#xff0c;没有效率&#xff0c;因为方法不对&#xff0c;一直是在看资料&#xff0c;看视频&#xff0c;并没有实际上手项目&#xff0c;就算当时看了&#xff0c;记住了&#xff0c;最后还…

适合Java新手练手的小项目!

对于很多朋友来说&#xff0c;Java是学习编程的开始&#xff0c;也有很多朋友希望通过Java可以找到工作&#xff0c;那么当我们学习了Java的基础知识之后&#xff0c;我们急需要一些项目去帮我们整理一下自己学习的知识点以及提高一下编程能力&#xff0c;对小的工程有一个大致…

Java小项目谁看谁都会(图书管理)

在我之前的几篇博客中对于Java语法&#xff0c;思想等等进行了总结&#xff0c;但是还是差点那味&#xff0c;就是没有将这些知识串起来那么今天的这篇博客我就将Java中&#xff1a;类 对象 封装 继承 多态 抽象类 接口等等知识共同使用完成一个Java的小项目一起来看 介绍 我…

推荐几个适合新手的Java练手项目(好玩又有趣)

Java练手项目第一波 一、坦克大战 链接&#xff1a;https://www.bilibili.com/video/BV1zP4y1b7gw/?spm_id_from333.337.search-card.all.click Java练手小项目&#xff0c;熟练掌握面向对象编程思想、对象池的使用、IO流、多线程、GUI等基础。 二、贪吃蛇 链接&#xff1a;ht…

10个优质的Java练手项目

10个优质的Java练手项目 最近有很多小伙伴私信我说推荐几个毕设项目&#xff0c;还有就是学了Java有一段时间了&#xff0c;想找几个项目想练练手&#xff0c;在面试的时候也可以增加一点项目经验。 在这里我收集了10个可以直接导入运行的项目。 由简单到复杂&#xff0c;分别…

JAVA小项目(一)——一个简单的记帐本【轻松入门,附源码】

目录 1. 实现效果 2.项目架构 3. 细节代码实现 &#x1f31e;哈喽&#xff0c;大家好丫&#xff0c;你们的小郭子又来啦 ~ &#x1f31e;今天我们用java来写一个简单的小项目——【记账本】&#xff0c;嘿嘿 话不多说&#xff0c;直接上干货&#xff0c; 1. 实现效果 2.项目…

【目标定位】基于matlab TDOA GPS混合定位【含Matlab源码 2310期】

⛄一、基于粒子滤波污染源定位简介 1 混合定位的系统结构 本文提出的GPS/TDOA混合定位系统结构可见于图1。 移动终端集成了无线通信模块和GPS接收模块,终端可同时测得通信网络中相对于服务基站的TDOA和GPS卫星到终端的伪距。在CDMA通信系统中,从通信终端测量TDOA的具体方法和…

基于图像的目标检测与定位方法概述

目录 1. 目标检测与定位概念2. 目标检测与定位方法2.1 传统目标检测流程2.2 two-stage检测算法2.2.1 R-CNN2.2.2 two-stage其他算法2.2.2.1 Spatial Pyramid Pooling&#xff08;空间金字塔池化&#xff09;2.2.2.2 Fast-RCNN2.2.2.3 P11 Faster RCNN 2.3 One-Stage2.3.1 YOLO2…

大疆无人机实现目标定位

大疆无人机实现目标定位 大疆无人机回传的实时视频可以帮助飞友观察发现美景&#xff0c;就称为目标吧&#xff0c;你偏偏对目标很感兴趣&#xff0c;迫切想知道目标的位置&#xff0c;最好是经纬度坐标。你查找大疆Document&#xff0c;欣喜地发现大疆提供了定位机体本身的定…

2-基于单目视觉的目标定位

1-四种坐标系描述 一、世界坐标系 客观三维世界的绝对坐标系&#xff0c;也称客观世界坐标系&#xff0c;是以目标为原点建立起来的坐标系。 二、摄像机坐标系 摄像机坐标系是以摄像机的光心作为坐标系的原点&#xff0c;&#xff3a;c&#xff0e;轴与光轴重合&#xff0c;并…

复杂情况下,目标区域定位

复杂情况下&#xff0c;基于halcon的目标区域定位 原始图源代码处理结果 原始图 源代码 dev_close_window () read_image (Image, E:/Halcon_Learn/黑块提取_网络/1.bmp) get_image_size (Image, Width, Height) dev_open_window_fit_size (0, 0, Width, Height, -1, -1, Wind…

目标检测_精确定位_2020

Side-Aware Boundary Localization for More Precise Object Detection 论文&#xff1a;https://arxiv.org/pdf/1912.04260.pdf 代码&#xff1a; 关键文章&#xff1a;Faster R-CNN [37], RetinaNet [25], and Cascade R-CNN 提出问题&#xff1a; 传统的基于锚点和大小…