Java实现商品管理系统(文件操作,面向对象)

Java实现商品管理系统(文件操作,面向对象)

一、需求分析

  • 商品管理系统所具备功能
    1. 管理员登录账号
    2. 对商品信息进行增删改查
    3. 将商品信息保存至对应文件

二、系统分析

  1. 系统管理员登录模块

  2. 商品信息管理模块

    1)添加商品模块

    2)更改商品模块

    3)删除商品模块

    4)显示所有商品模块

    5)查寻商品模块

三、详细代码

1、Good类

package Goods;

public class Good {
	String  id;
	String name;
	int store=0;
	double price;
	
	public Good() {}
	
	public Good(String id, String name, double price) {
		this.id = id;
		this.name = name;
		this.price = price;
	}
	
	Good(String id, String name,int store, double price) {
		this(id,name,price);
		if(store>=0)
			this.store=store;
		else
			this.store=0;
	}
	
	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 getStore() {
		return store;
	}
	public void setStore(int store) {
		this.store = store;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	@Override
	public String toString() {//显示格式
		String remarks="";
		if(store<10)
			remarks="*该商品不足10件!";
		return id+"\t"+name+"\t"+store+"\t"+price+"\t"+remarks;
	}
	public String tranString() {//存储&读取格式
		return id+"|"+name+"|"+store+"|"+price+"\n";
	}
}

2、ManageGood类

package Goods;

import java.io.*;
import java.util.ArrayList;

public class ManageGood {

	private String route = "e:\\good.txt";

	ArrayList<Good> goods=new ArrayList<Good>();
	//添加商品
	boolean add(Good good){
		boolean t=true;
		//判断集合是否有商品
		if(goods.size()==0) {
			goods.add(good);
		}else {
			//判断是否存在重复商品
			for(int i=0;i<goods.size();i++){
				if(goods.get(i).id.equals(good.id)){
					t=false;
					break;
				}
			}
			//若没有重复则添加
			if(t) {
				goods.add(good);
			}
		}
		return t;
	}
	//删除商品
	boolean delete(String id){
		boolean t=false;
		for(int i=0;i<goods.size();i++){
			if(goods.get(i).id.equals(id) ){
				goods.remove(i);
				t=true;
			}
		}		
		return t;		
	}
	//修改商品名称
	boolean update(String id,String name){
		boolean t=false;
		for(int i=0;i<goods.size();i++){
			if(goods.get(i).id.equals(id) ){
				goods.get(i).setName(name);
				t=true;
			}
		}	
		return t;	
	}
	//修改商品库存
	boolean update(String id,int store){
		boolean t=false;
		for(int i=0;i<goods.size();i++){
			if(goods.get(i).id.equals(id) ){
				goods.get(i).setStore(store);
				t=true;
			}
		}		
		return t;	
	}
	//修改商品价格
	boolean update(String id,double price){
		boolean t=false;
		for(int i=0;i<goods.size();i++){
			if(goods.get(i).id.equals(id) ){
				goods.get(i).setPrice(price);
				t=true;
			}
		}		
		return t;	
	}
	//商品入库
	boolean inStore(String id,int store){
		boolean t=false;
		if(store<=0) {
			System.out.println("入库信息错误,入库失败!");
		}else {
			for(int i=0;i<goods.size();i++){
				if(goods.get(i).id.equals(id) ){
					int n=store+goods.get(i).getStore();
					goods.get(i).setStore(n);
					t=true;
				}
			}
		}
		return t;
	}
	//商品出库
	boolean outStore(String id,int store){
		boolean t=false;
		if(store<=0) {
			System.out.println("出库信息错误,出库失败!");
		}else {
			for(int i=0;i<goods.size();i++){
				if(goods.get(i).id.equals(id) ){
					int n=goods.get(i).getStore();
					//判断库存是否充足
					if(n>=store) {
						goods.get(i).setStore(n-store);
						t=true;
					}else {
						System.out.println("库存不足,出库失败!");
					}
				}
			}
		}
		return t;
	}
	//显示商品信息
	void show(){
		System.out.println("商品ID\t商品名\t库存\t单价\t备注");
		for(int i=0;i<goods.size();i++){
			System.out.println(goods.get(i).toString());
		}
	}
	//查询商品信息
	boolean check_id(String id) {
		boolean t=false;
		for(int i=0;i<goods.size();i++){
			if(goods.get(i).id.equals(id) ){
				t=true;
				System.out.println("商品ID\t商品名\t库存\t单价\t备注");
				System.out.println(goods.get(i).toString());
				break;
			}
		}		
		return t;
	}
	boolean check_name(String name) {
		boolean t=false;
		int x=0;
		for(int i=0;i<goods.size();i++){
			if(goods.get(i).name.equals(name) ){
				t=true;
				x++;
				if(x==1)
					System.out.println("商品ID\t商品名\t库存\t单价\t备注");
				System.out.println(goods.get(i).toString());
			}
		}		
		return t;
	}
	//存储商品信息
	public boolean storage() throws Exception {
		boolean t=false;
		FileWriter out=new FileWriter(route);
		for(int i=0;i<goods.size();i++){
			out.write(goods.get(i).tranString());
			t=true;
		}
		out.close();
		return t;
	}
	//读取商品信息
	public boolean fetch() throws Exception {
		boolean t=false;
		FileReader in=new FileReader(route);
		int n=0;
		String s="";
		while(true) {
			n=in.read();
			if(n==-1) break;
			s+=(char)n;
		}
		char[] a= s.toCharArray();
		int len=a.length;
		for(int i=0;i<len;i++) {
			String[] nisp=new String[4];
			nisp[0]=nisp[1]=nisp[2]=nisp[3]="";
			for(int j=0;j<4;) {
				if(a[i]=='|') {
					j++;
					i++;
				}
				if(a[i]=='\n') break;
				nisp[j]+=a[i++];
			}
			Good good=new Good(nisp[0],nisp[1],Integer.valueOf(nisp[2]),Double.valueOf(nisp[3]));
			goods.add(good);//将商品信息存入集合
		}
		in.close();
		return t;
	}
}

3、Main类

package Goods;

import java.io.IOException;
import java.util.Scanner;

public class Main {
	static String pass="12345";
	public static void main(String[] args) throws Exception {
		Scanner in =new Scanner(System.in);
		ManageGood mGood=new ManageGood();
		int x=1;//记录输入密码次数
		System.out.println("欢迎使用商品管理系统");
		boolean t =false;
		while(x<=3) {
			System.out.print("请输入密码:");
			String ps=in.next();
			t =pass.matches(ps);
			if(t) break;
			if(x!=3)
				System.out.println("密码输入错误,还可以输入"+(3-x)+"次!");
			else 
				System.out.println("输入错误密码次数已到上限,退出系统!");
			x++;
		}
		mGood.fetch();//读取商品信息
		while (t) {
			char a='y';
			String  id = null ;
			String name;
			int store=0;
			double price;
			print_1();
			int n=in.nextInt();
			switch (n) {
			case 0:t=false;break;
			case 1: {
				while(a=='y') {
					System.out.println("正在执行添加商品功能...\n");
					System.out.print("请输入商品ID:");
					id=in.next();
					System.out.print("请输入商品名称:");
					name=in.next();
					System.out.print("请输入商品单价:");
					price=in.nextDouble();
					Good good=new Good(id,name,price);
					if (mGood.add(good)) {
						System.out.print("添加成功,是否继续(y/n):");
						a=(char) System.in.read();
					}else {
						System.out.println("添加失败!");
						a='n';
					}
				}
			}break;
			case 2:{
				print_2();
				int m=in.nextInt();
				while(a=='y') {
					boolean t1=false;
					if(m<=5&&m>0) {
						System.out.print("请输入要修改商品ID:");
						id=in.next();
					}
					switch(m) {
					case 0:a='n';break;
					case 1:{
						System.out.print("商品名称修改为:");
						name=in.next();
						t1=mGood.update(id,name);
					}break;
					case 2:{
						System.out.print("商品库存修改为:");
						store=in.nextInt();
						t1=mGood.update(id,store);
					}break;
					case 3:{
						System.out.print("商品价格修改为:");
						price=in.nextDouble();
						t1=mGood.update(id,price);
					}break;
					case 4:{
						System.out.print("请输入入库数量:");
						store=in.nextInt();
						t1=mGood.inStore(id, store);
					}break;
					case 5:{
						System.out.print("请输入出库数量:");
						store=in.nextInt();
						t1=mGood.outStore(id, store);
					}break;
					default:{
						System.out.println("指令输入错误!");
						m=0;
					}
					}
					if (t1) {
						System.out.print("修改成功,是否继续(y/n):");
						a=(char) System.in.read();
					}else if(m!=0){
						System.out.println("修改失败!");
						a='n';
					}
				}
			}break;
			case 3:{
				while(a=='y') {
					System.out.print("请输入商品ID:");
					id=in.next();
					if (mGood.delete(id)) {
						System.out.print("删除成功,是否继续(y/n):");
						a=(char) System.in.read();
					}else {
						System.out.println("删除失败!");
						a='n';
					}
				}
			}break;
			case 4: mGood.show();break;
			case 5:{
				print_3();
				int m=in.nextInt();
				while(a=='y') {
					switch(m) {
					case 0: a='n';break;
					case 1:{
						System.out.print("请输入商品ID:");
						id=in.next();
						if (mGood.check_id(id)) {
							System.out.print("查询成功,是否继续(y/n):");
							a=(char) System.in.read();
						}else {
							System.out.println("查询失败!");
							a='n';
						}
					}break;
					case 2:{
						System.out.print("请输入商品名:");
						name=in.next();
						if (mGood.check_name(name)) {
							System.out.print("查询成功,是否继续(y/n):");
							a=(char) System.in.read();
						}else {
							System.out.println("查询失败!");
							a='n';
						}
					}break;
					default:{
						System.out.println("指令输入错误!");
						m=0;
					}
					}
				}
			}break;
			default:
				System.out.println("指令输入错误!");
			}
		}
		mGood.storage();//存储商品信息
	}
	public static void print_1() {
		System.out.println("*****************************************");
		System.out.println("*\t     超市商品管理系统             *");
		System.out.println("*****************************************");
		System.out.println("*\t      1.添加商品                 *");
		System.out.println("*\t      2.更改商品                 *");
		System.out.println("*\t      3.删除商品                 *");
		System.out.println("*\t      4.显示所有                 *");
		System.out.println("*\t      5.查寻商品                 *");
		System.out.println("*\t      0.退出系统                 *");
		System.out.println("*****************************************");
		System.out.print("请输入指令(0~5):");
	}
	public static void print_2() {
		System.out.println("*****************************************");
		System.out.println("*\t     修改商品属性系统             *");
		System.out.println("*****************************************");
		System.out.println("*\t      1.修改名称                 *");
		System.out.println("*\t      2.修改库存                 *");
		System.out.println("*\t      3.修改价格                 *");
		System.out.println("*\t      4.商品入库                 *");
		System.out.println("*\t      5.商品出库                 *");
		System.out.println("*\t      0.返回上级                 *");
		System.out.println("*****************************************");
		System.out.print("请输入指令(0~5):");
	}
	public static void print_3() {
		System.out.println("*****************************************");
		System.out.println("*\t     查询商品属性系统             *");
		System.out.println("*****************************************");
		System.out.println("*\t      1.按ID                    *");
		System.out.println("*\t      2.按名称                   *");
		System.out.println("*\t      0.返回上级                 *");
		System.out.println("*****************************************");
		System.out.print("请输入指令(0~2):");
	}
}

**注:**登录密码为12345,在Main类中可以更改;文件保存路径为e:\\good.txtManageGood类中。

good.txt

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值