出行訂單專案

2020-08-14 21:08:14
package test4;
/**
 * 成人訂單
 * @author Administrator
 *
 */
public class AdultOrders {
	private String name;//姓名
	private int age;//年齡
	private int money;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getMoney() {
		return money;
	}
	public void setMoney() {
		this.money = 2000;
	}
	public void setMoney(int money) {
		this.money = money;
	}
	public void show(AdultOrders a) {
		System.out.println("姓名"+a.getName()+",年齡:"+a.getAge()+"本次出行金額:"+a.getMoney());
	}
}
package test4;
/**
 * 兒童訂單
 * @author Administrator
 *
 */
public class ChildOrders extends AdultOrders{
	private String state;//是否佔牀
	public String getState() {
		return state;
	}	
	public void setState(int state) {
		if (state==1) {
			this.state="佔牀";
		} else if(state==2){
			this.state="不佔牀";
		}
	}
	public void setMoney(String state) {
		if (state.equals("佔牀")) {
			super.setMoney(30);
		} else if(state.equals("不佔牀")){
			super.setMoney(0);
		}
	}
	public void show(ChildOrders a) {
		System.out.println("姓名"+a.getName()+",年齡:"+a.getAge()+","+a.getState()+",1.2m以下兒童免費(佔牀費除外),本次出行金額:"+a.getMoney());
	}
}
package test4;
/**
 * 老人訂單
 * @author Administrator
 *
 */
public class OldmanOrders extends AdultOrders{
	public void setAge(int age) {
		if (age<65) {
			System.out.println("對不起,老人訂單年齡需爲65歲以上!");
		}else {
			super.setAge(age);
		}
	}
	public void setMoney() {
		super.setMoney(1000);
	}
	public void show(OldmanOrders a) {
		System.out.println("姓名"+a.getName()+",年齡:"+a.getAge()+"65歲以上老人半價,本次出行金額:"+a.getMoney());
	}
}
package test4;

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

/**
 * 功能類
 * @author Administrator
 *
 */
public class Function {
	private int date;//出行日期
	private String MobileNo;//手機號碼
	public int getDate() {
		return date;
	}
	public void setDate(int date) {
		this.date = date;
	}
	public String getMobileNo() {
		return MobileNo;
	}
	public void setMobileNo(String mobileNo) throws Exception {
		if (mobileNo.length()>10&&mobileNo.length()<12) {
			this.MobileNo=mobileNo;
		}else {
			throw new Exception("手機號碼必須爲11位");
		}
	}
		
	public void method1(ArrayList<AdultOrders> list,Function f){//新增出行訂單
		Scanner in=new Scanner(System.in);
		String yn;
		System.out.print("請輸入出行日期:");
		f.setDate(in.nextInt());
		System.out.print("請輸入聯繫人手機號碼:");
		try {
			f.setMobileNo(in.next());
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("******新增出行人資訊******");		
		do {
			System.out.print("1.成人  2.兒童(1.2米以下) 3.老人(65歲以上) 請選擇類別:");
			int num1=in.nextInt();
			switch(num1) {
			case 1:
				AdultOrders a=new AdultOrders();
				System.out.println("請輸入姓名:");
				a.setName(in.next());
				System.out.println("請輸入年齡:");
				a.setAge(in.nextInt());
				a.setMoney();
				a.show(a);
				list.add(a);
				break;
			case 2:
				ChildOrders b=new ChildOrders();
				System.out.println("請輸入姓名:");
				b.setName(in.next());
				System.out.println("請輸入年齡:");
				b.setAge(in.nextInt());
				System.out.println("是否佔牀:1.佔牀 2.不佔牀");
				b.setState(in.nextInt());
				b.setMoney(b.getState());
				b.show(b);
				list.add(b);
				break;
			case 3:
				OldmanOrders c=new OldmanOrders();
				System.out.println("請輸入姓名:");
				c.setName(in.next());
				System.out.println("請輸入年齡:");
				c.setAge(in.nextInt());
				c.setMoney();
				c.show(c);
				list.add(c);
				break;
			}			
			System.out.println("是否繼續新增(Y/N)?:");
			yn=in.next();
		} while (yn.equals("Y"));
		System.out.println("******訂單資訊******");
		System.out.print("出行日期:");
		System.out.println(f.getDate());
		System.out.print("聯繫人手機號碼:");
		System.out.println(f.getMobileNo());
		System.out.print("訂單總金額:");
		int sum=0;
		for (AdultOrders a : list) {
			sum+=a.getMoney();
		}
		System.out.println(sum);
	}
	
	public void method2(ArrayList<AdultOrders> list,Function f){//檢視我的出行訂單資訊
		System.out.print("出行日期:");
		System.out.println(f.getDate());
		System.out.print("聯繫人手機號碼:");
		System.out.println(f.getMobileNo());
		System.out.println("詳細資訊:");
		System.out.println("姓名  年齡    金額");
		for (AdultOrders a : list) {		
			System.out.println(a.getName()+" "+a.getAge()+" "+a.getMoney());
		}
	}
	
	public void method3(Function f){//修改行程資訊
		Scanner in=new Scanner(System.in);
		System.out.print("請輸入新的出行日期:");
		f.setDate(in.nextInt());
		System.out.print("請輸入新的聯繫人手機號碼:");
		try {
			f.setMobileNo(in.next());
		} catch (Exception e) {			
			e.printStackTrace();
		}
		System.out.println("出行日期:"+f.getDate()+",聯繫人手機號碼:"+f.getMobileNo()+",修改成功!");
	}
	
	public void method4(ArrayList<AdultOrders> list){//刪除出行人
		System.out.println("請輸入要刪除的出行人姓名:");
		Scanner in=new Scanner(System.in);
		String n=in.next();
		int num1=-1;
		for (AdultOrders a : list) {
			if (a.getName().equals(n)) {
				num1=list.indexOf(a);
				break;
			}
		}
		if(num1==-1) {
			System.out.println("對不起,訂單中不包含此遊客資訊。");
		}else {
			list.remove(num1);
			System.out.println("刪除成功!");
		}
	}
	
	public void method() {
		ArrayList<AdultOrders> list=new ArrayList<AdultOrders>();
		Function f=new Function();
		do {
			System.out.println("*********歡迎光臨陽光旅遊網*********");
			System.out.println("1.新增出行訂單");
			System.out.println("2.檢視我的出行訂單");
			System.out.println("3.修改訂單資訊");
			System.out.println("4.刪除出行人");
			System.out.println("5.檢視行程");
			System.out.println("6.退出系統");
			System.out.println("請選擇(1-6):");
			Scanner in=new Scanner(System.in);
			int num=in.nextInt();			
			switch(num) {
			case 1:
				method1(list,f);
				break;
			case 2:
				method2(list,f);
				break;
			case 3:
				method3(f);
				break;
			case 4:
				method4(list);
				break;
			case 5:
				break;
			case 6:
				System.out.println("歡迎下次再來!");
				System.exit(1);
				break;
			}
		} while (true);
	}
}
package test4;
/**
 * 測試類
 * @author Administrator
 *
 */
public class Test {
	public static void main(String[] args) {
		Function o=new Function();
		o.method();
	}
}