面对对象的简单小程序

JAVA之电商系统!!

   学习之初,没有什么比自己动手写出一个简单较完整的程序来的实在、兴奋。这次的电商系统,结合了之前所学的一大部分知道,方法的封装,调用再实现,实现了管理者登录页面,同时丰富了更多客户端的选择。

如下图所示:

熟练运用到了增、删、查、改,同时在设计程序时,要时刻有面对对象的思维。今后还会持续更新更多的类容。

实现代码如下:

Store.java
public class Store {

	private int sid;
	private String sname;
	private String type;
	private double price;
	private int snumber;
	private String address;
	private String unit;
	
	public Store() {

	}	

	public Store(int sid, String sname, String type, double price, int snumber, String address, String unit) {
		super();
		this.sid = sid;
		this.sname = sname;
		this.type = type;
		this.price = price;
		this.snumber = snumber;
		this.address = address;
		this.unit = unit;
	}
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public int getSnumber() {
		return snumber;
	}
	public void setSnumber(int snumber) {
		this.snumber = snumber;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getUnit() {
		return unit;
	}
	public void setUnit(String unit) {
		this.unit = unit;
	}

	@Override
	public String toString() {
		return  sid  +"\t"+ sname + "\t"+ type +"\t"+ price + "\t"+ snumber +"\t"+ address + "\t"+unit;
	}
}

StoreManager.java

import java.util.ArrayList;

public class StoreManager {

	static ArrayList<Store> list = new ArrayList<>();
	/**1商品添加*/
	public void addStore(Store sto){
		list.add(sto);
	}
	
	/**2商品列表*/
	public ArrayList<Store> findAll(){
		return list;
	}
	
	/**3查询指定Id的商品*/
	public Store findBySid(int sid){
		Store sto = null;
		for(Store s:list){
			if(s.getSid()==sid){
			sto = s;
			break;
		}
		}
		return sto;
	}
	
	/**4根据商品id删除商品*/
	public boolean delete(int sid){
		Store sto = findBySid(sid);
		if(sto != null){
			return list.remove(sto);
		}
		return false;
	}
	
	/**5修改指定商品的价格*/
	public boolean updateByPrice(int sid,double price){
		Store sto = findBySid(sid);
				if(sto != null){
					sto.setPrice(price);
					return true;
				}
				return false;
	}
	
	/**6修改指定商品的库存*/
	public boolean updateBySnumber(int sid,int snumber){
		Store sto = findBySid(sid);
		if(sto != null){
			sto.setSnumber(snumber);
			return true;
		}
		return false;
	}
	
	/**7根据商品类别查询所有商品*/
	public ArrayList<Store> findByType(String type){
		ArrayList<Store> sto = new ArrayList<Store>();
		for(Store s:list){
			if(s.getType().equals(type)){
				sto.add(s);
			}
		}
		return sto;
	}
	
	/**8查询指定价格区间的商品信息*/
	public ArrayList<Store> findByPrice(double price1,double price2){
		ArrayList<Store> sto = new ArrayList<Store>();
		for(Store s:list){
			if(s.getPrice()>price1&& s.getPrice()<price2){
				sto.add(s);
			}
		}
		return sto;
	}
}

User.java
public class User {

	private String username;
	private String password;
	public User() {
		username = "admin";
		password = "admin";
	}
	
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	

}

StoreClient.java

import java.util.ArrayList;
import java.util.Scanner;

public class StoreClient {

	StoreManager sm = new StoreManager();
	User u = new User();
	private Scanner sc;
	
	public void denglu(){
		
		msg("请输入你的选择:");
		msg("[1]管理员登录");
		msg("[2]退出");
		sc = new Scanner(System.in);
		int i = sc.nextInt();
		switch(i){
		case 1:
			user();
			break;
		case 2:
		default:
			msg("谢谢使用!");
			System.exit(0);
			break;
		}
		
	}
	
	public void mune(){
		msg("----------------------------------");
		msg("---------欢迎来到电商系统----------");
		msg("--------【1】商品添加---------------");
		msg("--------【2】商品列表-----------------");
		msg("--------【3】查看指定ID的商品---------");
		msg("--------【4】删除指定ID的商品------------");
		msg("--------【5】修改指定商品的价格---------");
		msg("--------【6】修改指定商品的库存-----------");
		msg("--------【7】根据商品类别查询所有商品--------");
		msg("--------【8】查询指定价格区间的商品信息-----");
		msg("--------【9】修改管理员密码-------------------");
		msg("--------【0】退出-------------------");
		msg("请选择");
		start();
	}
	
	public void start(){
		sc = new Scanner(System.in);
		int i = sc.nextInt();
		switch(i){
		case 1://商品添加
			add();
			break;
		case 2://商品列表
			list();
			break;
		case 3://查看指定ID的商品
			queryBySid();
			break;
		case 4://删除指定ID的商品
			delete();
			break;
		case 5://修改指定商品的价格
			queryByPrice();
			break;
		case 6://修改指定商品的库存
			queryBySnumber();
			break;
		case 7://根据商品类别查询所有商品
			findTpye();
			break;
		case 8://查询指定价格区间的商品信息
			findPrice();
			break;
		case 9://修改管理员密码
			setPassword();
			break;
		case 0://退出
			
		default:
			msg("谢谢使用!");
			System.exit(0);
			break;
		}
		mune();
	}
	
	public void add(){
		sc = new Scanner(System.in);
		msg("请按指定格式输入商品信息:商品ID/名称/类型/单价/库存/生产地/单位");
		String s = sc.nextLine();
		String[] info = s.split("/");
		if(sm.findBySid(Integer.parseInt(info[0]))!=null){
			msg("此商品已存在,请重新输入!");
			add();
			return;
		}else{
			Store sto = new Store(Integer.parseInt(info[0]), info[1], info[2], Double.parseDouble(info[3]), Integer.parseInt(info[4]), info[5], info[6]);
			sm.addStore(sto);
			msg("添加成功");
		}
		
	}
	
	public void list(){
		msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
		for(Store sto:sm.findAll()){
			msg(sto);
		}
	}
	
	public void queryBySid(){
		sc = new Scanner(System.in);
		msg("请输入需要查询的商品ID:");
		int sid = sc.nextInt();
		Store sto = sm.findBySid(sid);
		if(sto == null){
			msg(sid+"号员工不存在,请重新输入");
			queryBySid();
			return;
		}
		msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
		msg(sto);
	}
	
	public void delete(){
		sc = new Scanner(System.in);
		msg("请输入需要删除的商品ID:");
		int sid = sc.nextInt();
		if(sm.delete(sid)){
			msg("删除成功");
		}else{
			msg("删除失败");
		}
	}
	
	public void queryByPrice(){
		sc = new Scanner(System.in);
		msg("请输入需要修改的商品ID:");
		int sid = sc.nextInt();
		msg("输入修改后的金额");
		double price = sc.nextDouble();
		if(sm.updateByPrice(sid, price)){
			msg("修改成功");
		}else{
			msg("修改失败");
		}
	}
	
	public void queryBySnumber(){
		sc = new Scanner(System.in);
		msg("请输入需要修改的商品ID:");
		int sid = sc.nextInt();
		msg("输入修改后的库存");
		int snumber = sc.nextInt();
		if(sm.updateBySnumber(sid, snumber)){
			msg("修改成功");
		}else{
			msg("修改失败");
		}
	}
	
	
	public void findTpye(){
		sc = new Scanner(System.in);
		msg("请输入需要查询商品的类别:");
		String type = sc.nextLine();
		ArrayList<Store> list = sm.findByType(type);
		msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
		if(list.size()>0){
			for(Store sto:list){
				msg(sto);
			}
		}
		
	}
	
	
	public void findPrice(){
		sc = new Scanner(System.in);
		msg("请输入需要查询商品的金额范围:");
		double price1 = sc.nextDouble();
		double price2 = sc.nextDouble();
		ArrayList<Store> list = sm.findByPrice(price1, price2);
		msg("商品ID\t名称\t类型\t单价\t库存\t生产地\t单位");
		if(list.size()>0){
			for(Store sto:list){
				msg(sto);
			}
		}
	}
	
	public void setPassword(){
		sc = new Scanner(System.in);
		msg("请输入需要修改的密码:");
		String password = sc.nextLine();
		u.setPassword(password);
		msg("修改成功!");
		msg("请重新输入用户名和密码!");
		user();
	}
	
	public void user(){
		msg("用户名:");
		sc = new Scanner(System.in);
		String username = sc.nextLine();
		
		msg("密码:");
		String password = sc.nextLine();
		
		if(username.equals(u.getUsername()) && password.equals(u.getPassword())){
			msg("登陆成功");
			mune();
		}
		msg("登陆失败,请重新输入!");
		user();
	}
	
	public void msg(Object obj){
		System.out.println(obj);
	}
	public static void main(String[] args) {

		new StoreClient().denglu();
	}

}

 

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值