项目概述:
这个项目可以实现用户对商品信息的录入、查询、修改、删除功能
学习目的:
主要是对java的基础知识的应用、ArrayList的使用和类的封装调用
第一步:
创建一个Product 类里面的成员有商品编号,商品名称,商品价格,以及实现商品编号,商品名称,商品价格的设置方法和获取方法
public class Product {
private String No;//商品编号
private String name;//商品名称
private Double price;//商品价格
public void setNo(String no) {
No = no;
}
public void setName(String name) {
this.name = name;
}
public void setPrice(Double price) {
this.price = price;
}
public String getNo() {
return No;
}
public String getName() {
return name;
}
public Double getPrice() {
return price;
}
}
第二步:
1、创建一个ProductManageSys 类,用来实现这个项目的主要功能
2、创建一个ArrayList集合,用来用来存储product对象`
public static ArrayList<Product> product=new ArrayList<Product>();
3、主程序
public static void main(String[] args) {
while (true) {
//显示菜单
String input = showmen();
//对用户输入的选项进行相应操作
funSelect(input);
}
}
4、构造一个showmen()方法实现用户菜单显示界面,方便用户使用
public static String showmen() {
//1.显示菜单页面
System.out.println("======欢迎来到商品管理系统======");
System.out.println("1、查看商品信息");
System.out.println("2、添加商品信息");
System.out.println("3、删除商品信息");
System.out.println("4、修改商品信息");
System.out.println("0、退出商品管理系统");
System.out.println("请输入你要选择的功能选项");
//接收用户输入
Scanner sc=new Scanner(System.in);
String input =sc.next();
return input;
}
5、构造funSelect()方法,执行用户输入的操作
public static void funSelect(String input) {
switch (input){
case "1":
findAll(product);
break;
case "2":
addProduct(product);
break;
case "3":
delProduct(product);
break;
case "4":
modifyProduct(product);
break;
case "0":
System.out.println("系统已完成退出");
break;
default:
System.out.println("你的输入用误,请重新输入!");
}
}
6、构造addProduct()方法,将用户输入的节点存入ArrayList集合,如果集合中有相同的编号则提示用户重新输入商品信息。
public static void addProduct(ArrayList<Product> products){
//创建Product对象
Product product=new Product();
Scanner sc=new Scanner(System.in);
System.out.println("输入商品编号:");
String ProNo=sc.next();
//处理有相同编号的商品
for(int i=0;i<products.size();i++){
if(ProNo.equals(products.get(i).getNo())){
System.out.println("已经存在这个编号的商品,请重新录入不同的商品编号!");
return;
}
}
product.setNo(ProNo);
System.out.println("输入商品名称:");
String Proname=sc.next();
product.setName(Proname);
System.out.println("输入商品价格");
double Propice=sc.nextDouble();
product.setPrice(Propice);
products.add(product);
6、构造findAll()方法,实现用户对商品信息的查询,如果ArrayList集合为空则提示用户没有数据。
public static void findAll(ArrayList<Product> products){
//Product product=new Product()
System.out.println("商品编号\t商品名称\t商品价格");
if(products.isEmpty()){
System.out.println("系统没有数据");
return;
}else{
for (int i=0;i<products.size();i++){
Product pro=products.get(i);
String proNo=pro.getNo();
String proName=pro.getName();
Double proPrice=pro.getPrice();
System.out.println(proNo +"\t\t "+proName + "\t\t" + proPrice );
}
}
}
7、 构造delProduct()方法,实现用户对商品信息的删除。用户输入要删除的商品编号,集合中有这个编号则提示删除成功,没有提示用户删除失败。
注意这个小细节:
if(num.equals(proNo)):不能写成if(num==proNo),num和proNo的内容虽然相等,但它们的地址不相等,所以要调用equals()只比较它们的内容
public static void delProduct(ArrayList<Product> products){
boolean key=false;
System.out.print("请你输入要删除商品的编号:");
Scanner sc=new Scanner(System.in);
String num=sc.next();
for(int i=0;i<products.size();i++){
Product pro=products.get(i);
String proNo=pro.getNo();
if(num.equals(proNo)){
products.remove(pro);
key=true;
}
}
if(key==false){
System.out.println("没有这个商品,删除失败!");
}else if(key==true){
System.out.println("删除成功!");
}
}
8、构造modifyProduct()方法,用户可以输入要修改的商品编号,进行修改商品价格、或者商品名称、或者对商品价格和名称的同时修改
public static void modifyProduct(ArrayList<Product> products){
System.out.print("请你输入要修改商品的编号:");
Scanner sc=new Scanner(System.in);
String num=sc.next();
for(int i=0;i<products.size();i++){
if(num.equals(products.get(i).getNo())){
Product pro=products.get(i);
System.out.println("商品信息修改前"+"商品编号\t商品名称\t商品价格");
System.out.println(pro.getNo() +"\t\t "+pro.getName() + "\t\t" + pro.getPrice());
System.out.println("请你输入要修改的内容:1、修改价格,2、修改名称,3、修改价格和名称");
Scanner sc3=new Scanner(System.in);
Integer num3=sc3.nextInt();
if(num3==1) {
System.out.print("请输入你商品修改的价格:");
Scanner sc2 = new Scanner(System.in);
Double price = sc2.nextDouble();
pro.setPrice(price);
products.set(i, pro);
System.out.println("商品信息修改后" + "商品编号\t商品名称\t商品价格");
System.out.println(pro.getNo() + "\t\t " + pro.getName() + "\t\t" + pro.getPrice());
System.out.println("修改价格成功!");
}else if(num3==2){
System.out.print("请输入你商品修改的名称:");
Scanner sc4 = new Scanner(System.in);
String name = sc4.next();
pro.setName(name);
products.set(i, pro);
System.out.println("商品信息修改后" + "商品编号\t商品名称\t商品价格");
System.out.println(pro.getNo() + "\t\t " + pro.getName() + "\t\t" + pro.getPrice());
System.out.println("修改名称成功!");
}else if(num3==3){
System.out.print("请输入你商品修改的价格:");
Scanner sc2 = new Scanner(System.in);
Double price = sc2.nextDouble();
pro.setPrice(price);
System.out.print("请输入你商品修改的名称:");
Scanner sc4 = new Scanner(System.in);
String name = sc4.next();
pro.setName(name);
products.set(i, pro);
System.out.println("商品信息修改后" + "商品编号\t商品名称\t商品价格");
System.out.println(pro.getNo() + "\t\t " + pro.getName() + "\t\t" + pro.getPrice());
System.out.println("修改名称成功!");
}
}
}
}