超简单的购物系统

简易的购物系统

稍有功能尚未完善,如能帮助还望联系指教,谢谢!
本人初学者小白一位!

商店制作要求

1.用户的登录或新用户的成功注册
至少存在三个用户可直接登录以及可注册使用

2.商品的简洁罗列
包括商品序号、名称、价格、数量

3.购物车的正常使用
货物的增添、修改、结账

4.输出订单信息并完成地址填写和付款成功
打印随机11位订单编号还有购物车所选商品信息以及用户的个人信息
付款成功后结束程序运行

用户登录

1.主界面(选择)
2.用户登录界面(验证用户信息)
3.用户注册界面
4.登录成功进入购物界面(商品选择)

用户基础信息

封装初始化Prototype

import java.util.Scanner;
import java.io.*;

public class Prototype implements Serializable{
 //创建用户信息类型进行初始化
//	1、定义以下成员变量:
//	 * 账号类型:String Type
//	 * 账户号:String No
//	 * 账户密码:String passWord
//	 * 账户姓名:String Name
//	 * 账户联系方式:String phoneNo
//	 * 账户地址:String location
//	 * 所需余额:double balance
	private String type;
	private String No;
	private String passWord;
	private String Name;
	private String phoneNo;
	private String location;
	private double balance;

	static int count=0;
	static final Scanner  scanner = new Scanner(System.in);
	

	public  Prototype() {
//		count++;
//		No = String.format("NO.%04d", count); //账号自动生成为"NO.0001"的格式
	}
	
	
	Prototype person[] = new Prototype[20];
	
//	public String getType() {
//		return type;
//	}
	public String getNo() {
		return No;
	}
	public String getName() {
		return Name;
	}
	public String getPassWord() {
		return passWord;
	}
	public String getPhoneNo() {
		return phoneNo;
	}
	public String getLocation() {
		return location;
	}
	
	public Prototype(String type,String No,String passWord,
			String Name,String phoneNo,String location,double balance) {
		this.setType("VIP");
		this.setNo(No);
		this.setName(Name);
		this.setPassWord(passWord);
		this.setPhoneNo(phoneNo);
		this.setLocation(location);
		this.setBalance(balance);
		
	}
	
//	public void setType(String type) {
//		this.type=type;
//	}
	public void setPrototype(String type,String No,String passWord,
			String Name,String phoneNo,String location,double balance) {
		this.setType("VIP");
		this.setNo(No);
		this.setName(Name);
		this.setPassWord(passWord);
		this.setPhoneNo(phoneNo);
		this.setLocation(location);
		this.setBalance(balance);
	}
	
	public void setPassWord(String No, String passWord) {
		this.setNo(No);
		this.passWord = passWord;
	}
	
	
	public void printIn() {
		System.out.println("---------------------");
		System.out.println("账号类型:" + this.getType());
		System.out.println("用户账号:" + this.getNo());
		System.out.println("用户名称:" + this.getName());
		System.out.println("手机号码:" + this.getPhoneNo());
		System.out.println("收货地址:" + this.getLocation());
		System.out.println("用户余额:" + this.getBalance());
		System.out.println("---------------------");
		
	}
	public String getType() {
		return "VIP";
	}
	public void setType(String type) {
		this.type = "VIP";
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
	public void setLocation(String location) {
		this.location = location;
	}
	public void setName(String name) {
		this.Name = name;
	}
	public void setNo(String no) {
		this.No = no;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	public void setPhoneNo(String phoneNo) {
		this.phoneNo = phoneNo;
	}
	
	byte[] bytes ;
	public byte[] getBytes() {
		// TODO Auto-generated method stub
		return bytes;
	}
	public void setBytes(byte[] bytes) {
		this.bytes = bytes;
	}
	
	


	
}

用户登录代码

LoginTest


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


import java.io.*;
import java.lang.*;
import java.lang.invoke.*;

//* 简易的购物系统
//*
//* 1.主界面(选择)
//* 2.用户登录界面(验证用户信息)
//* 3.用户注册界面
//* 4.登录成功进入购物界面(商品选择)
//*
//*/


public class LoginTest extends Prototype {
	
	//定义创建用户组
	int p = 3;
	static int u = 3;
	public static final int SIZE = 100;
	static LoginTest[] person;
	public LoginTest(String type,String No,String passWord,
			String Name,String phoneNo,String location,double balance) {//继承Prototype类初始化
		super();
		this.setType("VIP");
		this.setBalance(balance);
		this.setLocation(location);
		this.setName(Name);
		this.setNo(No);
		this.setPassWord(passWord);
		this.setPhoneNo(phoneNo);
		
	}
	
	public void setU(int u) {
		LoginTest.u = u;
	}
	public int getU() {
		return u;
	}
	



	public LoginTest() {
		
//		ArrayList<Prototype[]> user = new ArrayList<Prototype[]>();
		person = new LoginTest[100];
		
		person[0] = new LoginTest("VIP","4171","123456","唐准理事","1008611",
				"ID名",1000000.0);
		person[1] = new LoginTest("VIP","4172","123456","留灯一盏","1008611",
				"ID名",1000000.0);
		person[2] = new LoginTest("VIP","4173","123456","黄准理事","1008611",
				"ID名",1000000.0); 
		person[3] = new LoginTest("VIP","4174","123456","黄部长","1008611",
				"ID名",1000000.0); 
		
//		user.add(person);
		
		
	}
	
//	void play() {
//		for(int i = 0;i< u;i++) {
//			person[i].printIn();
//		}
//	}

	void Information() {//输出当前的用户信息,用于订单发货

		System.out.println("----------------------------------");
//		System.out.println(u);
		person[u].printIn();
		System.out.println("----------------------------------");
		
	}



	
	 public void login() {//覆写login的登录方法
		
		 Scanner input = new Scanner(System.in);
		 setBalance(100000.00);
		 System.out.println("请输入用户号:");
		 String no = scanner.next();  
		 System.out.println("请输入密码:");
		 String password = scanner.next();
		 
		 //验证已有用户信息验证
		 
		 for(int i = 0; i < p; i++) {
			 if(no.equals(person[i].getNo())&&password.equals(person[i].getPassWord())){
				 System.out.println("登录成功!");
				 setU(i);
			
				 person[u].printIn();
//				readFromTxt();
				 enter();
				 break;
			 }else if(i == p-1){
				 System.out.println("输入的用户名或密码有误!");
				 System.out.println("请重新输入:");
				 login();
			 }
			 
			 
			 
			 
			 }
		 input.close();
//		 
	 }
	 
	 void enter() {
		 
		 System.out.println("------------------------");
		 System.out.println("    欢迎进入小卖部哟!     ");
		 System.out.println("------------------------");
		 System.out.println(" ");
		 System.out.println("|   0...退出商店 	|");
		 System.out.println("|   1...查看商品   	|");
		 System.out.println("|   2...查找商品   	|");
		 System.out.println(" ");
		 System.out.println("------------------------");
		 System.out.print("请输入选项:");
		 int c1 = 4;
		 while(c1 != 0 || c1 != 1) {//检测错误不会报错,而是返回重新进行输入
		 c1 = scanner.nextInt();
		 switch(c1) {
		 case 0:
			 System.out.println("成功退出商店!");
			 c1 = 0;
			 break;
		 case 1:
			 new Shopping().opt();
			 c1 = 0;
			 break;
		 case 2:
			 new Shopping().findGoods();
			 break;
			 default:
				 System.out.println("输入非法,请重新输入!"); 
		 }
		 if(c1 == 0)
				break;
		 }
		 
		 
	 }
     
	
	 void registration() throws IOException { //账户注册
		int c = 1;
		do {
		 System.out.println("请创建喜欢的用户名:");
		 String name = scanner.next();
		 System.out.println("请创建用户号:");
		 String no = scanner.next();
		 System.out.println("请输入密码:");
		 String passWord = scanner.next();
		 System.out.println("请输入您想成为的账户类型:VIP(自动生成)");
		 String type = "VIP";
		 System.out.println("请输入您的手机号码:");
		 String phoneNo = scanner.next();
		 System.out.println("请输入收货地址:");
		 String location = scanner.next();
		 System.out.println("请输入您的身家:");
		 double balance = scanner.nextDouble();
		 
		 Prototype prototype;
		 prototype = new LoginTest(type,no,passWord,name,phoneNo,location,balance);
		 //信息登记好后进入数组储存
		 person[p] = (LoginTest) prototype;
		 person[p].setPrototype(type, no, passWord, name, phoneNo, location, balance);
//		 person[p].printIn();
//		 System.out.println(p);
		 p++;
		 
		 System.out.println("即将返回登录...");
		 login();//创建完毕返回登录界面进行登录使用
		 c = 0;
		 
		}while(c!=0);
//		 String type,String No,String passWord,String Name,String phoneNo,String location,double balance
	 }
	
	 
	   public static void readFromTxt() throws Exception {
	    	String filename = "D:/EVO/Group assignments/src/User.txt";
	    	File file = new File(filename);
	    	if(file.exists()) {
	    		file.createNewFile();
	    	}
			 FileOutputStream fos = new FileOutputStream(filename);
			 ObjectOutputStream oos = new ObjectOutputStream(fos);
			 LoginTest person[];
			 person = new LoginTest[100];
				
				person[0] = new LoginTest("VIP","4171","123456","唐准理事","1008611",
						"ID名",1000000.0);
				person[1] = new LoginTest("VIP","4172","123456","留灯一盏","1008611",
						"ID名",1000000.0);
				person[2] = new LoginTest("VIP","4173","123456","黄准理事","1008611",
						"ID名",1000000.0); 
				person[3] = new LoginTest("VIP","4174","123456","黄部长","1008611",
						"ID名",1000000.0); 
				for(int i= 0;i < 4;i++) {
					System.out.println("序列化前:" + person[i]);
				}
				for(int i = 0;i < 4;i++) {
					 oos.writeObject(person[i]); //将LoginTest对象序列化成字节数组并写入到文件中
					 oos.flush();
				}
			 oos.close();
			 //讲对象写入文件中
			 FileInputStream fis = new FileInputStream(filename);//文件输入流
			 ObjectInputStream ois = new ObjectInputStream(fis);//对象输入流
			 person = (LoginTest[]) ois.readObject();//从文件中读取数据并反序列化未L对象
			 for(int i = 0; i < 4;i++) {
				 System.out.println("反序列化后:" + person[i]);
			 }
			 
			 ois.close();

			
		
		
	    }




}

商品信息初始化

Commodity

import java.util.Scanner;

public abstract class Commodity {
//	定义商品成员变量
//	*商品序号:String ComNo   账户数量初始化为0。
//	*商品名称:String CommodityName
//	*商品价格:double price
//	*商品数量:int amt
//   static int count=0	
	
	
	int ComNo;
	String ComName;
	double price;
	int amt;
	double endBalance;
	static int count=0;
	static final Scanner  scanner = new Scanner(System.in);
	
	public Commodity() {
//		count++;
//		ComNo = String.format("NO.%04d", count); //账号自动生成为"NO.0001"的格式
	}
	
	//抽象方法
	abstract void opt();//购物车选择方法

	
	//成员初始化
	public Commodity(String ComName,int ComNo,double price,int amt){
		this.ComNo = ComNo;
		this.ComName = ComName;
		this.price = price;
		this.amt = amt;
		
	}
	public int getComNo() {
		return ComNo;
		//商品序号
	}
	public String getComName() {
		return ComName;
		//商品名称
	}
	public double getPrice() {
		return price;
	}
	public int getAmt() {
		return amt;
		//商品数量
	}
	
	public void setAmt(int amt) {
		this.amt = amt;
	}

	
	public void setCommodity(int ComNo,String ComName,double price,int amt){
		this.ComNo = ComNo;
		this.ComName = ComName;
		this.price = price;
		this.amt = amt;
		
	}
	
	
	
	public void printOneLine() {
		System.out.println(ComNo + "\t" + ComName + "\t" 
				+ price + "\t\t" + amt);
	}
	
	public void printList() {
		System.out.println(this.ComNo + "\t\t" + this.ComName + "\t\t" + this.price 
				+ "\t\t" + this.amt + "\t\t" + this.endBalance);
			
		}
	
	
	

}

商店的正常运行

Shopping

import java.util.Scanner;
import java.lang.invoke.*;
public class Shopping extends Commodity {

	
	
//	static int count=0;
//	public Shopping(String ComNo ,String ComName, double price, int amt) {
//		super();
//		count++;
//		ComNo = String.format("NO.%04d", count); //账号自动生成为"NO.0001"的格式
//	}
	Commodity ShoppingGoods[] = new Commodity[100];
	Commodity goods[] = new Commodity[100];
	
	int c1 = 1; //方法opt循环条件
	int k = 0; // 添加商品所用变量
	int count = 13; //已有商品数量
	int SCount = 1; //购物车已选择数量
	double balance1;
	double endBalance;
//	static Prototype[] person;
	LoginTest Prototype[];
	
	public Shopping(){
		
		goods[0] = new Shopping( 1,"Hua电脑    ",8999.0,100);
		goods[1] = new Shopping( 2,"IPHONE     ",5999.0,100);
		goods[2] = new Shopping(3,"Le笔记本电脑",5999.0,100);
		goods[3] = new Shopping( 4,"D电脑       ",6999.0,100);
		goods[4] = new Shopping( 5,"LV包子      ",5999.0,100);
		goods[5] = new Shopping( 6,"迪奥特曼口红 ",999.0,100);
		goods[6] = new Shopping( 7,"克拉奇怪口红 ",59.0,100);
		goods[7] = new Shopping( 8,"满天星花     ",9.9,100);
		goods[8] = new Shopping( 9,"绿色妇联鼠标 ",99.0,100);
		goods[9] = new Shopping( 10,"青岛小麦果汁 ",6.0,100);
		goods[10] = new Shopping( 11,"江西黄色酒液 ",199.0,100);
		goods[11] = new Shopping( 12,"罗技鼠标     ",99.9,100);
		goods[12] = new Shopping( 13,"定制照片墙   ",39.9,100);
		goods[13] = new Shopping( 14,"一包盐       ",2.0,2000);
		
	}
	//初始化变量
	public Shopping(int ComNo,String ComName,double price,int amt) {
		super();
		this.ComNo = ComNo;
		this.ComName = ComName;
		this.price = price;
		this.amt = amt;
	}
	
	//生成订单随机数字
	public static char[] getRandom(int num) {

		String chars = "0123456789";

		char[] rands = new char[num];

		for (int i = 0; i < num; i++) {

		int rand = (int) (Math.random() * 10);

		rands[i] = chars.charAt(rand);

		}

		return rands;

		}

	
	void admin() {//已有商品管理菜单
		int adminChioce = -1;
		while(adminChioce != 0) {
			System.out.println("请输入管理员账号:");
			String adNo = scanner.next();
			System.out.println("请输入管理员密码:");
			String adPassWord = scanner.next();
			 // 管理员登录限制次数
			
				if(adNo.equals("adminadmin") && adPassWord.equals("adminadmin")) {
					adminMenu();
					
				}else {
					System.out.println("输入非法!请重新输入!");
				}
					
			
			
		}
		
	}
	
	
	
	void goodsDisplay() { // 已有商品的展示
		System.out.println("----------------------------------");
		System.out.println(" ");
		System.out.println("序号" + "\t" + "名称" + "\t\t" + "价格¥" + "\t\t" + "数量");
		for(int i =0;i < count;i++) {
			goods[i].printOneLine();
		}
		System.out.println(" ");
		System.out.println("----------------------------------");
		System.out.println(" ");
		
	}
	
	
	void SCDisplay() { //购物车展示
		System.out.println("序号" + "\t" + "名称" + "\t\t" + "价格¥" + "\t\t" + "数量");
		for(int i = 1; i <= k;i++) {
			ShoppingGoods[i].printOneLine();
		}
		
		
	}
	
	
	
	void addCommodity() { // 增加货物
		if(count < 100) {
		count++;
		int no = count;
		System.out.println("请输入增加商品的名称:");
		String name = scanner.next();
		System.out.println("请输入商品的价格:");
		double price = scanner.nextDouble();
		System.out.println("请输入拥有商品的数量:");
		int num = scanner.nextInt();
		goods[count] = new Shopping(no,name,price,num);
		System.out.println("成功添加商品:");
		System.out.println("序号" + "\t" + "名称" + "\t\t" + "价格¥" + "\t\t" + "数量");
		goods[count].printOneLine();

		System.out.println("---------------------");
		System.out.println(" ");
		System.out.println("|   1...继续添加 	|");
		System.out.println("|   2...查看商品  	|");
		System.out.println("|   0...退出添加 	|");
		System.out.println(" ");
		System.out.println("---------------------");
		
		int adminChoice = 4;
		//输入程序开始运行
		while(adminChoice != 0 || adminChoice != 1 
				|| adminChoice != 2 ) {
			
			adminChoice = scanner.nextInt();
		
		switch(adminChoice){
		case 0:
			System.out.println("即将回到管理页面...");
			admin(); //进入管理页面
			break;
		case 1: 
			addCommodity(); //增加新的商品
			adminChoice = 0;
			break;
		case 2:
			goodsDisplay(); //商品信息展示
			adminChoice = 0;
		    break;
		default: 
			System.out.println("输入非法,请重新输入!"); 
			
	}
		if(adminChoice == 0)
			break;
		}
		
	}else {
		System.out.println("");
		System.out.println("请先清清货再添加吧,你这小房间塞不下了哥哥!");
		System.out.println("");
		System.out.println("即将回到管理页面...");
		admin(); //进入管理页面
		
	}
}
	
	
	void revise() { //修改货物信息
		goodsDisplay();
		int chioce = -1;
		while(chioce != 0) {
		System.out.println("请输入需要修改的商品序号:(输入“0”退出修改)");
		chioce = scanner.nextInt();
		if(chioce == 0) {
			System.out.println("即将回到管理页面...");
			admin(); //进入管理页面
			break;
		}else if(chioce <= count) {
			int noOld = goods[chioce-1].getComNo(); //获得商品信息,后面类比
			String nameOld = goods[chioce-1].getComName();
			double priceOld = goods[chioce-1].getPrice();
			int numOld = goods[chioce-1].getAmt(); 
			scanner.nextLine();//释放前一个回车
			
			System.out.println("这是你想要修改的商品:");
			goods[chioce-1].printOneLine(); //显示选择商品信息
			
			System.out.println("请输入新商品名(直接回车保持不变):");
			String name = scanner.next();
			name = nameOld.isEmpty() ? nameOld : name; //判断修改,后面类比
			scanner.nextLine();//释放前一个回车
			System.out.println("请输入新价格(直接回车保持不变):");
			String strPrice = scanner.nextLine();
			double price = strPrice.isEmpty()? priceOld : Double.valueOf(strPrice).doubleValue();
			scanner.nextLine();//释放前一个回车
			System.out.println("请输入新数量(直接回车保持不变):");
			String strNum = scanner.nextLine();
			double num = strNum.isEmpty()? numOld : Double.valueOf(strNum).intValue();
			scanner.nextLine();//释放前一个回车
			numOld = (int)num;
			
			goods[chioce-1].setCommodity(noOld, name, price, numOld); //重新设置商品信息
			System.out.println("修改成功");
			goods[chioce-1].printOneLine(); //显示选择的商品信息
			
			System.out.println("---------------------");
			System.out.println(" ");
			System.out.println("|   1...继续修改 	|");
			System.out.println("|   2...查看商品  	|");
			System.out.println("|   0...退出修改 	|");
			System.out.println(" ");
			System.out.println("---------------------");
			int adminChoice = 3;
			//输入程序开始运行
			while(adminChoice != 0 || adminChoice != 1 
					|| adminChoice != 2 ) {
				
				adminChoice = scanner.nextInt();
			
			switch(adminChoice){
			case 0:
				System.out.println("即将回到管理页面...");
				admin(); // 回到管理页面
				break;
			case 1: 
				revise(); //进入商品信息修改
				adminChoice = 0;
				break;
			case 2:
				goodsDisplay(); //商品信息展示
				adminChoice = 0;
			    break;
			default: 
				System.out.println("输入非法,请重新输入!"); 
				
		}
			if(adminChoice == 0)
				break;
			}
			
		}else {
			System.out.println("");
			System.out.println("商品不存在或输入指令有误,你确定这家店是你的?");
			System.out.println("");
			System.out.println("即将回到管理页面...");
			admin(); //回到管理页面
		}
		
		
		}
		
	}
	
	
	void deleteGoods() {//删除已有商品
		goodsDisplay();
		System.out.println("请输入想要删除的商品序号:");
		System.out.println("输入“0”退出商品删除");
		int no = -1;
		while(no!=0) {
			no = scanner.nextInt();
			if(no == 0) {
				break;
			}else {
			if(no <= count && no > 0) {
				for(int j = no;j < count-1;j++) {
					goods[j] = goods[j+1]; //删除商品,后续进制
				}
				count--;
				System.out.println("删除成功!");
				System.out.println("---------------------");
				System.out.println(" ");
				System.out.println("|   1...继续删除 	|");
				System.out.println("|   2...查看商品  	|");
				System.out.println("|   0...退出修改 	|");
				System.out.println(" ");
				System.out.println("---------------------");
				int adminChoice = 3;
				//输入程序开始运行
				while(adminChoice != 0 || adminChoice != 1 
						|| adminChoice != 2 ) {
					
					adminChoice = scanner.nextInt();
				
				switch(adminChoice){
				case 0:
					System.out.println("即将回到管理页面...");
					admin(); //进入管理页面
					break;
				case 1: 
					deleteGoods(); //进入商店删除商品
					adminChoice = 0;
					break;
				case 2:
					goodsDisplay(); //商品货物展示
					adminChoice = 0;
				    break;
				default: 
					System.out.println("输入非法,请重新输入!"); 
					
				}
					if(adminChoice == 0)
						break;
					}
			}else 
				System.out.println("输入有误!请重新输入!");
			}
			
			
			
		}
		
	}
	
	
	
	void deleteSC() { //删除购物车里的商品
		System.out.println("购物车已有商品:");
		SCDisplay();
		System.out.println("请输入想要删除的商品序号:");
		System.out.println("输入“-1”一键清除购物车");
		System.out.println("输入“0”退出商品删除");
		
		int no = -2;
		while(no!=0) {
			no = scanner.nextInt();
			if(no == 0) {
				System.out.println("输入“1”结账发货....");
				System.out.println("输入“2”继续选择商品");
				System.out.println("输入“3”删除购物车商品");
				break;
			}else if(no == -1){
				for(int i = 0;i < SCount-1;i++) {
					ShoppingGoods[i] = null; //一键清除所有购物车商品
				}
				System.out.println("删除成功!");
				System.out.println("即将回到购物商品页面...");
				opt();
				
				}else {
			
			if(no <= SCount && no > 0) {
				for(int j = no;j < SCount-1;j++) {
					ShoppingGoods[j] = ShoppingGoods[j+1]; //购物车商品删除后续商品进制
					ShoppingGoods[j].ComNo = ShoppingGoods[j].ComNo - 1;
				}
				ShoppingGoods[SCount - 1] = null;
				k--;
				SCount--;
				System.out.println("删除成功!");
				System.out.println("---------------------");
				System.out.println(" ");
				System.out.println("|   1...继续删除 	|");
				System.out.println("|   2...查看购物车  	|");
				System.out.println("|   0...退出修改 	|");
				System.out.println(" ");
				System.out.println("---------------------");
				int adminChoice = 3;
				//输入程序开始运行
				while(adminChoice != 0 || adminChoice != 1 
						|| adminChoice != 2 ) {
					
					adminChoice = scanner.nextInt();
				
				switch(adminChoice){
				case 0:
					System.out.println("即将回到购物商品页面...");
					opt(); //进入商品选择
					break;
				case 1: 
					deleteSC(); //删除购物车商品
					adminChoice = 0;
					break;
				case 2:
					SCDisplay(); //购物车展示
					System.out.println("请输入想要删除的商品序号:");
					System.out.println("输入“-1”一键清除购物车");
					System.out.println("输入“0”退出商品删除");
					adminChoice = 0;
				    break;
				default: 
					System.out.println("输入非法,请重新输入!"); 
					
				}
					if(adminChoice == 0)
						break;
					}
			}else 
				System.out.println("输入有误!请重新输入!");
			}
			
			
			
		}
		
		
		
	}
	
	
	
	void reviseSC() {//修改购物车商品数量
		System.out.println("购物车已有商品:");
		SCDisplay();
		System.out.println("请输入想要修改的商品序号:");
		System.out.println("输入“0”退出商品修改");
		int c = -1;
		while(c != 0) {
			
			c = scanner.nextInt();
			if(c == 0) 
				break;
			else if(c > 0 && c <= SCount){
				System.out.println("请输入想要的商品数量:");
				int RC = scanner.nextInt();
				ShoppingGoods[c].setAmt(RC); //重新设置购物车商品数量
				
				System.out.println("修改成功!");
				System.out.println("---------------------");
				System.out.println(" ");
				System.out.println("|   1...继续修改 	|");
				System.out.println("|   2...查看购物车  	|");
				System.out.println("|   0...退出修改 	|");
				System.out.println(" ");
				System.out.println("---------------------");
				int adminChoice = 3;
				//输入程序开始运行
				while(adminChoice != 0 || adminChoice != 1 
						|| adminChoice != 2 ) {
					
					adminChoice = scanner.nextInt();
				
				switch(adminChoice){
				case 0:
					System.out.println("即将回到购物商品页面...");
					opt(); //进入商品选择
					break;
				case 1: 
					reviseSC(); //调用购物车信息修改
					adminChoice = 0;
					break;
				case 2:
					SCDisplay(); //购物车信息展示
					adminChoice = 0;
				    break;
				default: 
					System.out.println("输入非法,请重新输入!"); 
					
				}
				
			}
			
		}else 
			System.out.println("输入有误!请重新输入!");
		
	}
}		
	
	
	
	
	void opt() {//商品选择
		goodsDisplay(); //商品信息展示
		System.out.println("请输入商品序号:");
		System.out.println("输入“0”查看订单信息");
		
		if(c1!=0) {
		while( c1 != 0 ) {
			int c2 = scanner.nextInt();
			
			if(c2 == 0) {
				ordersDisplay(); //订单信息展示
				break;
			}else if(c2 < 14&&c2>0){ //判断输入是否在商店范围内
			
			String ComName = goods[c2-1].ComName;
			int ComNo = SCount;
			SCount++; //购物车数量自增1
			double price = goods[c2-1].price; 
			System.out.println(" ");
			System.out.println("请输入需要的商品数量:");
			int amt1 = scanner.nextInt();
		
			if(amt1 < goods[c2-1].amt) { //判断所需数量是否大于商店已有数量
			k= k +1; //自增1,备购物车使用
			c1 = c2; //重置循环使用的数字
			Commodity commodity; //创建变量备购物车使用
			commodity = new Shopping(ComNo,ComName,price,amt1);
			ShoppingGoods[k] = commodity; //复制商品信息到购物车
			int amt = goods[c2-1].getAmt(); //获得用户选择商品的数量
			goods[c2-1].setAmt(amt-amt1); //用户选择商品后,商品自动减去数量
			System.out.println("已选择的商品:");
			System.out.println(" ");
			
//			SCDisplay();  //购物车信息展示
			
			System.out.println("序号" + "\t" + "名称" + "\t\t" + "价格¥" + "\t\t" + "数量");
			for(int i = 1; i <= k;i++) {
				ShoppingGoods[i].printOneLine();
			}
			
//			goods[c2-1].printOneLine();
			balance1 = ShoppingGoods[k].amt * ShoppingGoods[k].price; //商品金额乘以数量
			endBalance += balance1; //累加商品金额
			System.out.println(" ");
			System.out.println("输入“0”查看购物车信息");
		    System.out.println("请输入商品序号:");
		    System.out.println(" ");
			}else {
				System.out.println(" ");
				System.out.println("您需要太多了,我们没有这么多货呢。");
				System.out.println("请重新选择商品!");
				System.out.println("请输入商品序号:");
				System.out.println("输入“0”查看购物车信息");
				System.out.println(" ");
			}
			}else System.out.println("输入非法,请重新输入!");
			
			
		}
		}else System.out.println("已退出商品选择...");
		
	}

	

	void ordersDisplay() { //订单信息展示
		System.out.println("----------------------------------");
		System.out.println(" ");
		System.out.println("商品总额:" + endBalance);
		
		System.out.println(" ");
		SCDisplay(); // 购物车展示
		System.out.println("----------------------------------");
		System.out.println(" ");
		System.out.println("输入“1”结账发货....");
		System.out.println("输入“2”继续选择商品");
		System.out.println("输入“3”删除购物车商品");
		
		int e = 2;
		while(e !=0 ) {
			e = scanner.nextInt();
			if(e == 2) {
				opt(); //调用商品选择功能
			}else if(e == 3) {
				deleteSC(); //调用购物车删除商品功能
			}
			else if(e == 1) {
				
			new LoginTest().Information(); //调用用户的信息
			System.out.println("----------------------------------");
			System.out.println(" ");
			System.out.println("商品总额:" + endBalance);
			System.out.println(" ");
			System.out.print("商品订单编号:");
			System.out.println(getRandom(11)); //生成随机订单编号
			SCDisplay(); //调用购物车展示功能
			System.out.println(" ");
			System.out.println("鉴于您是本店VIP客户,所有商品将打5折哟!");
			System.out.println("应付金额:" + endBalance * 0.5);
			System.out.println("请支付金额:(尽自己所能)");
			double money = 1000000000;
			do {
			money = scanner.nextDouble();
			if((endBalance * 0.5) <= money) {
			System.out.println("----------------------------------");
			System.out.println("找零:" + (money - (endBalance * 0.5))); //支付金额减去所需总额
			System.out.println("下单成功!");
			
			System.out.println("购物成功,欢迎下次光临哟!");
			break;
			}else {
				System.out.println("您支付的金额不太够哟,请重新支付!");
			}
			}while((endBalance * 0.5) > money); //当所需总额打折后依然大于支付金额则继续循环
			
			break;
		}else System.out.println("输入指令有误,请重新输入!");
		}

	}
	
	
	
	void findGoods() { // 查找商品
		System.out.println("请输入该商品名称:");
		int x =-1;
		
		
		while(x!=0) {
			String name = scanner.next();
		for(int i = 0;i<13;i++) {
			if(goods[i].getComName().equals(name))
			{
				goods[i].printOneLine();
				System.out.println("输入“1”加入购物车");
				int chioce = scanner.nextInt();
				if(chioce == 1) {
					ShoppingGoods[k] = goods[i];
					k++;
				}
				x=0;
			}else {
				System.out.println("找不到该商品");
				new LoginTest().enter();
				break;
				
			}
			
			
		}
		}
		
		
	}
	
	void adminMenu() {//商品管理菜单
		System.out.println("---------------------");
		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(" ");
		System.out.println("---------------------");
		int adminChoice = 5;
		//输入程序开始运行
		while(adminChoice != 0 || adminChoice != 1 
				|| adminChoice != 2 || adminChoice != 3 || adminChoice != 4) {
			
			adminChoice = scanner.nextInt();
		
		switch(adminChoice){
		case 0:
			System.out.println("成功退出管理系统,欢迎再次使用!");
			break;
		case 1: 
			addCommodity();
			adminChoice = 0;
			break;
		case 2:
			revise();
			adminChoice = 0;
		    break;
		case 3:
			deleteGoods();
			adminChoice = 0;
			break;
		case 4:
			goodsDisplay();
			adminChoice = 0;
		    break;
		    
		default: 
			System.out.println("输入非法,请重新输入!"); 
			
	}
		if(adminChoice == 0)
			break;
		}
	}
		
	
	
	
}


总控商店测试

ShoppingTest
import java.util.Scanner;
import java.io.IOException;
import java.lang.invoke.*;

public class ShoppingTest {
public static void main(String[] args) throws IOException {

	Commodity ShoppingGoods[] = new Commodity[50];
	ShoppingGoods[0] = new Shopping( 1,"Hua电脑",8999.0,100);
	ShoppingGoods[1] = new Shopping( 2,"IPHONE",5999.0,100);
	ShoppingGoods[2] = new Shopping( 3,"Le笔记本电脑",5999.0,100);
	Commodity goods[] = new Commodity[50];		
	Prototype person[] = new Prototype[20];
	person[0] = new LoginTest("VIP","417","123456","王子","1008611","学院ID",10000.0);
	person[1] = new LoginTest("VIP","417","123456","王子","1008611","学院ID",10000.0);
	person[2] = new LoginTest("VIP","417","123456","王子","1008611","学院ID",10000.0);
	//		String type,String No,String passWord,String Name,String phoneNo,String location,double balance
	System.out.println("---------------------");
	System.out.println("    学生宿舍小卖部     ");
	System.out.println("---------------------");
	System.out.println(" ");
	System.out.println("|   1...登录     	|");
	System.out.println("|   2...注册     	|");
	System.out.println("|   3...管理     	|");
	System.out.println("|   0...退出商店 	|");
	System.out.println(" ");
	System.out.println("---------------------");
	System.out.println(" ");
	System.out.print("请输入选项:");
	Scanner scan = new Scanner(System.in);
	int userChoice = 5;
	//输入程序开始运行
	while(userChoice != 0 || userChoice != 1 || userChoice != 2) {
		
	userChoice = scan.nextInt();
	
	switch(userChoice){
	case 0:
		System.out.println("成功退出系统,欢迎再次使用!");
		break;
	case 1: 
		new LoginTest().login();//已有用户登录
		userChoice = 0;
		break;
	case 2:
		new LoginTest().registration();//新用户进行注册
		userChoice = 0;
	    break;
	case 3:
		new Shopping().admin(); //进入商店管理
		userChoice = 0;
	    break;

		
}
	if(userChoice == 0) //退出选择循环
		break;
	}
scan.close();
	
}
}

自己做的系统,不喜忽喷!
还望各位大神指点一二拯救一下以至于系统可以使用IO流存储用户和商品信息~~~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值