用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

家具商城

2020-06-10 作者:欧式123举报

[java]代码库

package cn.edu.neusoft.example.purchase;

import cn.edu.neusoft.example.goods.Good;
import cn.edu.neusoft.example.goods.bed;
import cn.edu.neusoft.example.goods.sofa;
import cn.edu.neusoft.example.goods.table;

/**
 * 采购方法:提供完整的采购流程。
 * 如果指定采购的商品类,会随机出商品进行模拟使用。
 */
public class Purchase {

	public Good[][] good;

	Purchase() {
		Suppliers[] supplier = new Suppliers[5];

		// 创建二维数据g,方便下面使用
		good = new Good[3][];
		good[0] = new bed[5];
		good[1] = new table[4];
		good[2] = new sofa[4];

		// 随机初始化各个类的数据
		readS(supplier);
		readK(good[0], supplier);
		readC(good[1], supplier);
		readG(good[2], supplier);

		show("欢迎使用采购系统\n请按提示操作");
	}

	Purchase(Good[][] good) {
		this.good = good;
		show("欢迎使用采购系统\n请按提示操作");
	}

	public void select() {
		System.out.println("请输入需要购买的商品:");
		for (int i = 0; i < good.length; i++)
			System.out.println((i + 1) + "、" + good[i][0].name);
		try {
			int s = CInput.readInt() - 1;
			System.out.println("最便宜的:");
			int r = select(compare(good[s]));
			if (r != 0) {
				System.out.println();
				rank(good[s], r);
				select(good[s]);
			}
		} catch (Exception e) {
			System.out.println("\n请输入正确的序号!!\n");
			select();
		}
	}

	public void select(Good[] g) {
		System.out.println("请输入需要购买的商品:");
		for (int i = 0; i < g.length; i++)
			System.out.println((i + 1) + "、" + g[i].describe());
		try {
			int s = CInput.readInt() - 1;
			System.out.println("当前选择的是:");
			int r = select(g[s]);
			if (r != 0) {
				System.out.println();
				rank(g, r);
				select(g);
			}
		} catch (Exception e) {
			System.out.println("\n请输入正确的序号!!\n");
			select(g);
		}
	}

	public int select(Good g) {
		System.out.println(g.describe());
		System.out.println("1、购买");
		System.out.println("2、查看详细信息");
		System.out.println("3、查看全部商品(按价格升序)");
		System.out.println("4、查看全部商品(按价格降序)");

		int s = CInput.readInt("请输入您要进行的操作:");

		switch (s) {
		case 1:
			buy(g);
			break;
		case 2:
			show(g.toString());
			return select(g);
		case 3:
			return 1;
		case 4:
			return 2;
		default:
			System.out.println("\n请输入正确的序号!\n");
			return select(g);
		}
		return 1;
	}

	public void buy(Good g) {
		int n = CInput.readInt("请输入购买数量:");
		while (n <= 0) {
			System.out.println("\n请输入大于0的整数!\n");
			n = CInput.readInt("请输入购买数量:");
		}

		String s = "";
		s += g.describe() + "\n单价:" + g.price + "\t购买数量:" + n + "\n总计:" + g.price * n + "元!";
		show(s);
		System.out.println("采购成功,是否继续采购(Y/N)?");
		if (CInput.readString().equalsIgnoreCase("y"))
			select();
		else {
			show("谢谢使用!再见~");
			System.exit(0);
		}
	}

	// 价格比较。返回最便宜的商品
	public static Good compare(Good[] a) {
		int n = 0;
		for (int i = 0; i < a.length; i++) {
			if (a[i].price < a[n].price)
				n = i;
		}
		return a[n];
	}

	// 价格排序。参数1代表从低到高,2代表从高到低
	public void rank(Good[] a, int order) {
		Good b;
		if (order == 1) {
			for (int i = 0; i < a.length; i++) {
				for (int o = i; o < a.length; o++) {
					if (a[i].price > a[o].price) {
						b = a[i];
						a[i] = a[o];
						a[o] = b;
					}
				}
			}
		} else if (order == 2) {
			for (int i = 0; i < a.length; i++) {
				for (int o = i; o < a.length; o++) {
					if (a[i].price < a[o].price) {
						b = a[i];
						a[i] = a[o];
						a[o] = b;
					}
				}
			}
		}
	}

	// 随机初始化供应商数据
	static void readS(Suppliers[] Supplier) {
		Supplier[0] = new Suppliers("城阳区建材", "大连", "84830000");
		Supplier[1] = new Suppliers("李沧区", "美国", "84830001");
		Supplier[2] = new Suppliers("安装集团", "北京", "84830002");
		Supplier[3] = new Suppliers("中项建材集团", "北京", "84830003");
		Supplier[4] = new Suppliers("洁石实业集团", "台北", "84830004");
	}

	// 随机初始化键盘数据
	static void readK(Good[] Kbd, Suppliers[] suppliers) {
	
		String[] material = { "红木", "硬木", "弹簧床", "棉花", "羽毛" };
		for (int i = 0; i < Kbd.length; i++) {
			double price = dRandom(100) + 80;
			int number = iRandom(1000);
	
			String type = material[iRandom(5)];
			Suppliers supplier = suppliers[iRandom(5)];
			Kbd[i] = new bed(null, null, price, number, null) ;
		}
	}

	// 随机初始化电脑数据
	static void readC(Good[] Com, Suppliers[] suppliers) {
	
		
		
		for (int i = 0; i < Com.length; i++) {
			
		
			double price = dRandom(5000) + 5000;
			int number = iRandom(1000);
			
			
			Suppliers supplier = suppliers[iRandom(5)];
			Com[i] = new table(i, i, null, null, supplier );
		}
	}

	// 随机初始化显卡数据
	static void readG(Good[] Grp, Suppliers[] suppliers) {
		for (int i = 0; i < Grp.length; i++) {
		
			double price = dRandom(500) + 499;
			int number = iRandom(1000);
			Suppliers supplier = suppliers[iRandom(5)];
			Grp[i] = new sofa(i, i, i, supplier );
		}

	}

	// 生成double类型的随机数,保留两位小数
	static double dRandom(int a) {
		double b = Math.random() * a;
		b = ((int) (b * 10)) / 10.0;
		return b;
	}

	// 生成int类型的随机数
	static int iRandom(int a) {
		return (int) (Math.random() * a);
	}

	// 显示带星号分割的文字
	void show(String s) {
		int l = s.length();
		if (l > 30)
			l = 30;
		s = "\n" + s + "\n";
		for (int i = 0; i < l * 2 - 1; i++) {
			s = "*" + s + "*";
		}
		System.out.println(s);
	}

}

[源代码打包下载]




分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。