java实现水果超市管理系统
时间:2019-04-12
本文章向大家介绍java实现水果超市管理系统,主要包括java实现水果超市管理系统使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文为大家分享了java实现水果超市管理系统的具体代码,供大家参考,具体内容如下
首先建立水果类的界面
public class Fruit { //定义ID private String id; //定义名称 private String name; //定义价格 private int price; //定义单位 private String unit; //定义数量 private int number; public Fruit(String id, String name, int price, String unit) { super(); this.id = id; this.name = name; this.price = price; this.unit = unit; } public Fruit() { super(); // TODO Auto-generated constructor stub } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getUnit() { return unit; } public void setUnit(String unit) { this.unit = unit; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } //获取价格 public int getMoney(){ return price * number; } }
水果超市的界面
import java.io.IOException; import java.util.Scanner; public class FruitTest { public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); Shopper shopper = new Shopper(); Manager manager = new Manager(); while(true){ System.out.println( " 欢迎光临水果系统"); System.out.println("请输入你的角色:(1.顾客 2.管理员 3.退出)"); int choice = sc.nextInt(); switch(choice){ case 1: //顾客 shopper.shop(); break; case 2: //管理员 manager.manager(); break; case 3: System.exit(0); default: System.out.println("你的输入有误!"); } } } }
顾客类
import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; public class Shopper { public void shop() throws IOException { Scanner sc = new Scanner(System.in); ArrayList<Fruit> list = new ArrayList<Fruit>(); check(list); while (true) { System.out .println(" 欢迎光临水果系统"); System.out .println("请输入你的操作:(1.查看水果 2.购买水果 3.结账 4.退出)"); int choice = sc.nextInt(); switch (choice) { case 1: // 查看水果 print(list); break; case 2: // 购买水果 buy(list); break; case 3: // 结账 checkOut(list); break; case 4: // 退出 return; default: System.out.println("你输入的操作有误!"); } } } //结账 private void checkOut(ArrayList<Fruit> list) { int sum = 0; for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); sum += f.getMoney(); } if(sum>200){ int newSum = (int) (sum * 0.9); System.out.println("金额:" + sum+ "元, 优惠价格:"+ newSum+"元"); }else{ System.out.println("金额:" + sum+"元"); } //结完账后,将数量清0 for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); f.setNumber(0); } } // 购买水果 public void buy(ArrayList<Fruit> list) throws IOException { Scanner sc1 = new Scanner(System.in); Scanner sc2 = new Scanner(System.in); print(list); while (true) { System.out.println("购买超过200元,享受九折优惠!"); System.out.println("请输入想要购买的水果的ID:(如果不想购买,请输入-1退出)"); String id = sc1.nextLine(); if ("-1".equals(id)) { System.out.println("购买已结束,请去结账 "); return; } else { boolean flag = false; for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); if(f.getId().equals(id)) { System.out.println("请输入购买" + f.getName() + "数量: "); int num = sc2.nextInt(); f.setNumber(num); flag = true; } } if(!flag){ System.out.println("你输入的水果ID不正确,请重新输入"); } } } } // 查看水果 public void check(ArrayList<Fruit> list) throws IOException { BufferedReader br = new BufferedReader(new FileReader("fruit.txt")); String line; while ((line = br.readLine()) != null) { String[] str = line.split(" "); Fruit f = new Fruit(str[0], str[1], Integer.parseInt(str[2]), str[3]); list.add(f); } br.close(); } public void print(ArrayList<Fruit> list) { System.out.println("ID\t水果\t价格\t单位"); for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); System.out.println(f.getId() + "\t" + f.getName() + "\t" + f.getPrice() + "\t" + f.getUnit()); } } }
管理员类
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; public class Manager { public void manager() throws IOException { if (load()) { Scanner sc = new Scanner(System.in); while (true) { ArrayList<Fruit> list = new ArrayList<Fruit>(); check(list); System.out .println("请输入您的操作: (1.查看水果种类 2.增加水果种类 3.修改水果种类 4.删除水果种类 5退出)"); int choice = sc.nextInt(); switch (choice) { case 1: // 查看水果种类 print(list); break; case 2: // 增加水果种类 addFruit(list); break; case 3: // 修改水果种类 reverse(list); break; case 4: // 删除水果种类 remove(list); break; case 5: // 退出 return; default: System.out.println("你输入的操作有误!"); break; } } } else { return; } } public void remove(ArrayList<Fruit> list) throws IOException { Scanner sc = new Scanner(System.in); print(list); System.out.println("请输入要删除的水果ID: "); String id = sc.nextLine(); for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); if(f.getId().equals(id)){ list.remove(i); write(list); System.out.println("删除成功"); return; } } System.out.println("找不到要删除的水果ID!"); } //修改水果 public void reverse(ArrayList<Fruit> list) throws IOException { Scanner sc1 = new Scanner(System.in); Scanner sc2 = new Scanner(System.in); print(list); System.out.println("请输入要修改的水果ID: "); String id = sc1.nextLine(); for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); if(f.getId().equals(id)){ System.out.println("请输入水果的名称: "); String name = sc1.nextLine(); System.out.println("请输入水果的价格: "); int price = sc2.nextInt(); System.out.println("请输入水果的单位: "); String unit = sc1.nextLine(); f.setName(name); f.setPrice(price); f.setUnit(unit); write(list); System.out.println("修改成功"); return; } } System.out.println("找不到要修改的水果ID!"); } //增加水果 public void addFruit(ArrayList<Fruit> list) throws IOException { Scanner sc1 = new Scanner(System.in); Scanner sc2 = new Scanner(System.in); print(list); System.out.println("请输入要增加水果的ID: "); String id = sc1.nextLine(); for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); if(f.getId().equals(id)){ System.out.println("水果ID名重复!"); return; } } System.out.println("请输入水果的名字: "); String name = sc1.nextLine(); System.out.println("请输入水果的价格: "); int price = sc2.nextInt(); System.out.println("请输入水果的单位: "); String unit = sc1.nextLine(); Fruit f = new Fruit(id, name, price, unit); list.add(f); write(list); System.out.println("增加成功"); } //写入新加的种类 private void write(ArrayList<Fruit> list) throws IOException { BufferedWriter bw = new BufferedWriter(new FileWriter("fruit.txt")); for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); bw.write(f.getId()+" " + f.getName() + " " + f.getPrice() + " " + f.getUnit()); bw.newLine(); } bw.close(); } public void print(ArrayList<Fruit> list) { System.out.println("ID\t水果\t价格\t单位"); for (int i = 0; i < list.size(); i++) { Fruit f = list.get(i); System.out.println(f.getId() + "\t" + f.getName() + "\t" + f.getPrice() + "\t" + f.getUnit()); } } // 查看水果 public void check(ArrayList<Fruit> list) throws IOException { BufferedReader br = new BufferedReader(new FileReader("fruit.txt")); String line; while ((line = br.readLine()) != null) { String[] str = line.split(" "); Fruit f = new Fruit(str[0], str[1], Integer.parseInt(str[2]), str[3]); list.add(f); } br.close(); } // 登陆系统 public boolean load() throws FileNotFoundException, IOException { Scanner sc = new Scanner(System.in); System.out.println("请输入用户名: "); String username = sc.nextLine(); System.out.println("请输入密码: "); String password = sc.nextLine(); BufferedReader br = new BufferedReader(new FileReader("admin.txt")); String line = br.readLine(); String[] str = line.split(","); if (str[0].equals(username) && str[1].equals(password)) { System.out.println("欢迎您进入水果管理系统: " + username); return true; } else { System.out.println("你的用户名或密码输入不正确,无法进入管理系统"); return false; } } }
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 原创 | 实战:R环境下Echart的8种可视化
- Yarn(MapReduce 2.0)下分布式缓存(DistributedCache)的注意事项
- Yaffs_guts(三)
- 浅谈 python multiprocessing(多进程)下如何共享变量
- 文件地址映射之yaffs_GetTnode
- bash/shell 解析命令行参数工具:getopts/getopt
- ssh 双机互信:免密码登录设置步骤及常见问题
- yaffs_guts(一)
- 聊聊 Java 中 HashMap 初始化的另一种方式
- 基于 Hive 的文件格式:RCFile 简介及其应用
- MapReduce 计数器简介
- 流水线乘法器
- Hive 基础(2):库、表、字段、交互式查询的基本操作
- 玩转 Linux 之:磁盘分区、挂载知多少?
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Andriod Studio实现保存QQ密码功能(案例代码详解)
- Android Studio编写微信页面提交功能
- android 实现按钮浮动在键盘上方的实例代码
- 创建Android守护进程实例(底层服务)
- android studio xml文件实现添加注释
- 解决Android studio xml界面无法预览问题
- Android Studio通过Artifactory搭建本地仓库优化编译速度的方法
- Android实现向本地写入一个XML文件和解析XML文件
- Android自定义View实现带4圆角或者2圆角的效果
- Android 在 res/layout 文件夹 下创建一个 子文件夹实例
- Android开发实现TextView超链接5种方式源码实例
- Android根据包名停止其他应用程序的方法
- Android APP存活检测方式
- 利用Android两行代码真正杀死你的App
- android判断应用是否已经启动的实例