训练实例——食品库存管理系统(集合类)
2019-01-24 本文已影响0人
就这样吧嘞
运用集合类编写的食品库系统
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
分为主类 食品类 食品管理类
完整代码如下
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {//主类
SPGL spgl=new SPGL();
BufferedReader shuru =new BufferedReader (new InputStreamReader(System.in));
//InputStreamReader输入流 通过BufferedReader导入
while(true) {//死循环 除非按0
System.out.println("按照提示输入序号");
System.out.println("1 食品列表");
System.out.println("2 添加食品");
System.out.println("3 查找食品");
System.out.println("4 修改价格");
System.out.println("5 删除食品");
System.out.println("0 退出");
String xuhao=shuru.readLine();//读取一行 readLine() 必须为String类型 而且会要求异常处理为 throws
if(xuhao.equals("1")) {//输出列表
spgl.splb();
}
else if(xuhao.equals("2")) {//添加食品
System.out.println("食品编号");
String bianhao=shuru.readLine();
System.out.println("食品名称");
String mincheng=shuru.readLine();
System.out.println("食品价格");
float jiage=Float.parseFloat(shuru.readLine());
SP x = new SP(bianhao,mincheng,jiage); //建立一个食品类对象x 并附上属性
spgl.addsp(x); //将x加入到集合类aa中
}
else if(xuhao.equals("3")) {//查找商品
System.out.println("请输入食品编号");
String bianhao=shuru.readLine();
spgl.spcx(bianhao);
}
else if(xuhao.equals("4")) {//修改价格
System.out.println("请输入食品编号");
String bianhao=shuru.readLine();
spgl.spcx(bianhao);
System.out.println("请输入修改价格");
float jiage=Float.parseFloat(shuru.readLine());
spgl.spjgxg(bianhao, jiage);
}
else if(xuhao.equals("5")) {//删除商品
System.out.println("请输入食品编号");
String bianhao=shuru.readLine();
spgl.spsc(bianhao);
}
else if(xuhao.equals("0")) {//退出系统
System.out.println("谢谢使用,再见");
System.exit(0);//系统关闭 此系统只有一个while循环,也可用break;
//break;
}
else {
System.out.println("输入有误");
}
}
}
}
class SPGL {//食品管理类
private ArrayList aa=null; //建立一个集合类aa 为空
SPGL(){
aa=new ArrayList();//初始化 aa
}
public void addsp(SP i) {//添加食品
aa.add(i);
System.out.println("添加成功");
}
public void splb() {//食品列表
System.out.println(" 食品编号 "+" "+" 食品名称 "+" "+" 食品价格 ");
for(int i=0;i<aa.size();i++) {
SP sp=(SP) aa.get(i);
shuchusp(sp);
}
}
public void spcx(String bh) {//食品查询(编号)
if(aa.size()==0) {
System.out.println("食品列表里没有食品");
}
int i;
for(i=0;i<aa.size();i++) {
SP sp=(SP) aa.get(i);//局部变量sp=遍历某个食品
if(sp.getbianhao().equals(bh)) { //**此处可能不能用==**
System.out.println(" 食品编号 "+" "+" 食品名称 "+" "+" 食品价格 ");
shuchusp(sp);
break;
}
}
if(i==aa.size()&&(i!=0)) { //当i累加到 aa.size() 时,说明遍历完还没找到,此时if在for外面,所以i要在for外定义
System.out.println("未查询到此食品");
}
}
public void spsc(String bh) {//食品删除(编号)
if(aa.size()==0) {
System.out.println("食品列表里没有食品");
}
int i;
for(i=0;i<aa.size();i++) {
SP sp=(SP) aa.get(i);//局部变量sp=遍历某个食品
if(sp.getbianhao().equals(bh)) { //**此处可能不能用==**
aa.remove(i); //删除
System.out.println("食品已删除成功");
break;
}
}
if(i==aa.size()&&(i!=0)) { //
System.out.println("未找到到此食品,删除失败");
}
}
public void spjgxg(String bh,float jg) {//食品价格修改
if(aa.size()==0) {
System.out.println("食品列表里没有食品");
}
int i;
for(i=0;i<aa.size();i++) {
SP sp=(SP) aa.get(i);//局部变量sp=遍历某个食品
if(sp.getbianhao().equals(bh)) { //**此处可能不能用==**
sp.setjiage(jg);
System.out.println("价格修改成功");
break;
}
}
if(i==aa.size()&&(i!=0)) { //当i累加到 aa.size() 时,说明遍历完还没找到,此时if在for外面,所以i要在for外定义
System.out.println("未找到到此食品,价格修改失败");
}
}
public void shuchusp(SP x) {//打印食品
System.out.println(x.getbianhao()+" "+x.getmingcheng()+" "+x.getjiage());
}
}
class SP{//食品类
private String bianhao;
private String mingcheng;
private float jiage;
SP(String bianhao,String mingcheng,float jiage) {
this.bianhao=bianhao;
this.mingcheng=mingcheng;
this.jiage=jiage;
}
public String getbianhao() {
return bianhao;
}
public String getmingcheng() {
return mingcheng;
}
public float getjiage() {
return jiage;
}
public void setbianhao(String i) {
this.bianhao=i;
}
public void setmingcheng(String i) {
this.mingcheng=i;
}
public void setjiage(float i) {
this.jiage=i;
}
}
测试结果:
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
2
食品编号
001
食品名称
wertyui
食品价格
99
添加成功
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
2
食品编号
002
食品名称
cvghui
食品价格
38
添加成功
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
2
食品编号
003
食品名称
udjssxcf
食品价格
67
添加成功
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
1
食品编号 食品名称 食品价格
001 wertyui 99.0
002 cvghui 38.0
003 udjssxcf 67.0
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
3
请输入食品编号
002
食品编号 食品名称 食品价格
002 cvghui 38.0
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
4
请输入食品编号
001
食品编号 食品名称 食品价格
001 wertyui 99.0
请输入修改价格
98
价格修改成功
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
5
请输入食品编号
002
食品已删除成功
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
1
食品编号 食品名称 食品价格
001 wertyui 98.0
003 udjssxcf 67.0
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
输入有误
按照提示输入序号
1 食品列表
2 添加食品
3 查找食品
4 修改价格
5 删除食品
0 退出
0
谢谢使用,再见
目前发现的部分缺陷如下:
- 食品列表未增加空判断
- 食品编号未限制