分享一个阳光旅游系统 S2内测

/**
 * 成人订单,实体类,儿童订单、老人订单的父类
 */
public class Adult {
private String traDate; //出行日期
private String phoneNum; //手机号码
private String name; //姓名
private int age; //年龄
private double sum; //订单总价格
/**
* 无参构造方法
*/
public Adult(){}
/**
* 有参构造方法
* @param traDate 出行日期
* @param phoneNum 手机号码
* @param name 姓名
* @param age 年龄
* @param sum 价格总和
*/
public Adult(String traDate, String phoneNum, String name, int age,double sum){
this.traDate = traDate;
this.phoneNum = phoneNum;
this.name = name;
this.age = age;
this.sum = sum;
}
/**
* 出行日期
* @return 出行日期
*/
public String getTraDate() {
return traDate;
}
/**
* 获得出行日期
* @param traDate 出行日期
*/
public void setTraDate(String traDate) {
this.traDate = traDate;
}

/**
* 手机号码
* @return 手机号码
*/
public String getPhoneNum() {
return phoneNum;
}

/**
* 获得手机号码
* @param phoneNum 手机号码
*/
public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
}

/**
* 姓名
* @return 姓名
*/
public String getName() {
return name;
}

/**
* 获得姓名
* @param name 姓名
*/
public void setName(String name) {
this.name = name;
}

/**
* 年龄
* @return 年龄
*/
public int getAge() {
return age;
}

/**
* 获得年龄
* @param age 年龄
*/
public void setAge(int age) {
this.age = age;
}

/**
* 订单总价格
* @return 订单总价格
*/
public double getSum() {
return sum;
}


/**
* 获得订单总价格
* @param sum 订单总价格
*/
public void setSum(double sum) {
this.sum = sum;
}



/**
* 计算订单价格
* @return 订单价格
*/
public double calOrdPrice() {
return 2000;
}


/**
* 显示订单信息
* @return 订单信息
*/
public void disOrdInfo() {
System.out.print("******订单信息******\n出行日期:" + this.traDate
+ "\n联系人手机号码:" + this.phoneNum + "\n订单总金额:"+this.sum+"元\n");
}


}


/**
 * 儿童订单,实体类,成人订单的子类
 */
public class ChildrenOrd extends Adult {
private String bed; // 是否占床
private String yesOrNo = "否";//儿童占床的是或者否,默认为否
/**
* 儿童占床的是或者否
* @return
*/
public String getYesOrNo() {
return yesOrNo;
}
/**
* 是否占床
* @return 是否占床
*/
public String getBed() {
return bed;
}
/**
* 无参构造方法
*/
public ChildrenOrd(){}
/**
* 有参构造方法
* @param traDate 出行日期
* @param phoneNum 手机号码
* @param name 姓名
* @param age 年龄
* @param sum 价格总和
*/
public ChildrenOrd(String traDate,String phoneNum,String name,int age,double sum,String bed){
super(traDate,phoneNum,name,age,sum);
this.bed = bed;
}
/**
* 计算订单价格
* @return 订单价格
*/
@Override
public double calOrdPrice() {
if (this.bed.equals("1")) {
this.yesOrNo = "是";
return 30;
} else {
return 0;
}
}
/**
* 显示订单信息
* @return 订单信息
*/
@Override
public void disOrdInfo() {
System.out.print("******订单信息******\n出行日期:" + super.getTraDate()
+ "\n联系人手机号码:" + super.getPhoneNum() + "\n订单总金额:"+super.getSum()+"元\n");
}

}

/**
 * 老人订单,实体类,成人订单的子类
 */
public class OrdOldMan extends Adult {
/**
* 无参构造方法
*/
public OrdOldMan(){}
/**
* 有参构造方法
* @param traDate 出行日期
* @param phoneNum 手机号码
* @param name 姓名
* @param age 年龄
* @param sum 价格总和
*/
public OrdOldMan(String traDate, String phoneNum, String name, int age,
double sum) {
super(traDate, phoneNum, name, age, sum);
}
/**
* 计算订单价格
* @return  订单价格
*/
@Override
public double calOrdPrice() {
return 1000;
}
/**
* 显示订单信息
* @return 订单信息
*/ 
@Override
public void disOrdInfo() {
System.out.print("******订单信息******\n出行日期:" + super.getTraDate()
+ "\n联系人手机号码:" + super.getPhoneNum() + "\n订单总金额:"+super.getSum()+"元\n");
}

}


import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
/**
 * 测试类
 */
public class Test {
public static void main(String[] args) {
System.out.println("********欢迎光临阳光旅游网********");
Scanner input = new Scanner(System.in);
Tool tool = new Tool();
while(true){
System.out.println("1.添加出行订单  2.查看我的出行订单  3.修改订单信息  4.删除出行人  5.查看行程  6.退出系统");
System.out.print("请选择(1-6):");
int choice = input.nextInt(); //顾客的选择
switch(choice){
case 1:
tool.AddTraOrd(); //1.添加出行订单
break;
case 2:
tool.LookMyTripOrd(); //2.查看我的出行订单
break;
case 3:
tool.ModOrdInfo(); // 3.修改订单信息
break;
case 4:
tool.DelTrip(); //4.删除出行人
break;
case 5:
try {
tool.CheckIti(); //5.查看行程
break;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
case 6:
tool.ExitSys(); //6.退出系统
return;
default:
System.out.println("输入错误,请重新输入!");
break;
}
}
}

}

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
/**
 * 工具类
 */
public class Tool {
ArrayList list = new ArrayList(); // 创建集合
Scanner input = new Scanner(System.in);
/**
* 1.添加出行订单
*/
public void AddTraOrd() {
System.out.print("请输入出行日期(如:20170501)");
String traDate = input.next(); // 出行日期
// 判断出行如期是否为8位
if (traDate.length() == 8) {
System.out.print("请输入联系人的手机号码:");
String phoneNum = input.next(); // 手机号码
if (phoneNum.length() == 11) {
System.out.println("******添加出行人信息******");
boolean flag = true; // 布尔类型的变量
double sum = 0; // 总价格
double aduPri = 0; // 成人的价格
double chilOrdPri = 0; // 儿童的价格
double oldPri = 0; // 老人的价格
while (flag) {
System.out.print("1.成人   2.儿童(1.2米以下) 3.老人(65岁以上)请选择类别:");
String cate = input.next(); // 类别
System.out.print("请输入姓名:");
String name = input.next(); // 姓名
System.out.print("请输入年龄:");
int age = input.nextInt(); // 年龄
switch (cate) {
// 成人
case "1":
if (age >= 18 && age < 65) {
// 创建对象
Adult adu = new Adult();
// 计算价格
aduPri = adu.calOrdPrice();
sum = aduPri;
// 往集合中添加数据
adu.setTraDate(traDate);// 出行日期
adu.setPhoneNum(phoneNum); // 手机号码
adu.setName(name); // 姓名
adu.setAge(age); // 年龄
list.add(adu); // 将对象加入集合
break;
} else {
System.err.println("输入年龄错误,成人年龄必须大于等于18岁并且小余65岁!");
break;
}
// 儿童
case "2":
if (age >= 1 && age < 18) {
System.out.print("是否占床:(1.占床  2.不占床)");
String bed = input.next(); // 是否占床
// 创建对象
ChildrenOrd chilOrd = new ChildrenOrd(traDate,
phoneNum, name, age, sum, bed);
// 计算价格
chilOrdPri = chilOrd.calOrdPrice();
sum = chilOrdPri;
// 往集合中添加数据
chilOrd.setTraDate(traDate);// 出行日期
chilOrd.setPhoneNum(phoneNum); // 手机号码
chilOrd.setName(name); // 姓名
chilOrd.setAge(age); // 年龄
list.add(chilOrd); // 将对象加入集合
break;
} else {
System.err.println("输入年龄错误,儿童年龄必须在1到18岁之间!");
break;
}
// 老人
case "3":
if (age >= 65) {
// 创建对象
OrdOldMan old = new OrdOldMan();
// 计算价格
oldPri = old.calOrdPrice();
sum = oldPri;
// 往集合中添加数据
old.setTraDate(traDate);// 出行日期
old.setPhoneNum(phoneNum); // 手机号码
old.setName(name); // 姓名
old.setAge(age); // 年龄
list.add(old); // 将对象加入集合
break;
} else {
System.err.println("输入年龄错误,老人年龄必须大于等于65岁!");
break;
}
default:
System.out.print("输入错误,请输入1-3之内的数字!");
break;
}
// 每添加一个人,输出该人的信息
System.out.println("姓名:" + name + ",年龄:" + age + ",本次出行金额:"
+ sum + "元");
sum = aduPri + chilOrdPri + oldPri; // 计算总价格
// 判断是否继续添加
System.out.print("是否继续添加(Y/N)?");
String conAdd = input.next(); // 是否继续添加(Y/N)
if (conAdd.equalsIgnoreCase("y")) {
flag = true;
} else if (conAdd.equalsIgnoreCase("n")) {
// 输出信息
Adult adu = new Adult(traDate, phoneNum, name, age, sum);
adu.disOrdInfo();
flag = false;
} else {
System.err.println("输入错误,默认终止!");
// 输出信息
Adult adu = new Adult(traDate, phoneNum, name, age, sum);
adu.disOrdInfo();
flag = false;
}
}
} else {
System.err.println("联系人的手机号码必须是11位");
}
} else {
System.err.println("出行日期错误,出行日期的格式为:20170501");
}
}


/**
 * 2.查看我的出行订单
 */
public void LookMyTripOrd() {
System.out.print("出发日期:");
String traDate = input.next(); // 出行日期
System.out.print("联系人的手机号码:");
String phoneNum = input.next(); // 手机号码
if (list.size() != 0) {
System.out.println("详细信息:");
System.out.println("姓名\t年龄\t儿童是否占床\t金额");
// 遍历集合
for (int i = 0; i < list.size(); i++) {
// 判断集合对象是否为ChildrenOrd类
if (list.get(i) instanceof ChildrenOrd) {
// 转换成ChildrenOrd类对象
ChildrenOrd a_list = (ChildrenOrd) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getTraDate().equals(traDate)
&& a_list.getPhoneNum().equals(phoneNum)) {
System.out.println(a_list.getName() + "\t"
+ a_list.getAge() + "\t" + a_list.getYesOrNo()
+ "\t\t" + a_list.calOrdPrice());
} else {
System.err.println("出行日期或手机号码输入错误!");
}
} else if (list.get(i) instanceof Adult) {
// 转换成Adult类对象
Adult a_list = (Adult) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getTraDate().equals(traDate)
&& a_list.getPhoneNum().equals(phoneNum)) {
System.out.println(a_list.getName() + "\t"
+ a_list.getAge() + "\t" + "否" + "\t\t"
+ a_list.calOrdPrice());
} else {
System.err.println("出行日期或手机号码输入错误!");
}
} else if (list.get(i) instanceof OrdOldMan) {
// 转换成OrdOldMan类对象
OrdOldMan a_list = (OrdOldMan) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getTraDate().equals(traDate)
&& a_list.getPhoneNum().equals(phoneNum)) {
System.out.println(a_list.getName() + "\t"
+ a_list.getAge() + "\t" + "否" + "\t\t"
+ a_list.calOrdPrice());
} else {
System.err.println("出行日期或手机号码输入错误!");
}
}
}
} else {
System.err.println("查看失败,我的出行订单中不存在该出行日期或者手机号码!");
}
}


/**
 * 3.修改订单信息
 */
public void ModOrdInfo() {
System.out.print("请输入你要修改的日期:");
String traDate = input.next(); // 要修改的出行日期
System.out.print("请输入你要修改的手机号码:");
String phoneNum = input.next(); // 要修改的手机号码
System.out.print("请输入新的出行日期:");
String traDate2 = input.next(); // 新的出行日期
System.out.print("请输入新的联系人的手机号码:");
String phoneNum2 = input.next(); // 新的手机号码
if (phoneNum.length() != 11) {
try {
throw new Exception("手机号码必须是11位");
} catch (Exception e) {
e.printStackTrace();
}
} else {
if (list.size() != 0) {
// 遍历集合
for (int i = 0; i < list.size(); i++) {
// 判断集合对象是否为ChildrenOrd类
if (list.get(i) instanceof ChildrenOrd) {
// 转换成ChildrenOrd类对象
ChildrenOrd a_list = (ChildrenOrd) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getTraDate().equals(traDate)
&& a_list.getPhoneNum().equals(phoneNum)) {
// 为日期和手机号码赋予新的值
((Adult) list.get(i)).setTraDate(traDate2);
((Adult) list.get(i)).setPhoneNum(phoneNum2);
} else {
System.err.println("出行日期或手机号码输入错误!");
}
} else if (list.get(i) instanceof Adult) {
// 转换成Adult类对象
Adult a_list = (Adult) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getTraDate().equals(traDate)
&& a_list.getPhoneNum().equals(phoneNum)) {
// 为日期和手机号码赋予新的值
((Adult) list.get(i)).setTraDate(traDate2);
((Adult) list.get(i)).setPhoneNum(phoneNum2);
} else {
System.err.println("出行日期或手机号码输入错误!");
}
} else if (list.get(i) instanceof OrdOldMan) {
// 转换成OrdOldMan类对象
OrdOldMan a_list = (OrdOldMan) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getTraDate().equals(traDate)
&& a_list.getPhoneNum().equals(phoneNum)) {
// 为日期和手机号码赋予新的值
((Adult) list.get(i)).setTraDate(traDate2);
((Adult) list.get(i)).setPhoneNum(phoneNum2);
} else {
System.err.println("出行日期或手机号码输入错误!");
}
}
}
} else {
System.err.println("修改失败,我的出行订单中不存在该出行日期或者手机号码,无法修改!");
}
}
System.out.println("出行日期:" + traDate2 + ",联系人手机号码:" + phoneNum2
+ ",修改成功!");
}


/**
* 4.删除出行人
*/
public void DelTrip() {
System.out.print("请输入要删除的出行人姓名:");
String del_name = input.next(); // 要删除的出行人姓名
if (list.size() != 0) {
// 遍历集合
for (int i = 0; i < list.size(); i++) {
// 判断集合对象是否为ChildrenOrd类
if (list.get(i) instanceof ChildrenOrd) {
// 转换成ChildrenOrd类对象
ChildrenOrd a_list = (ChildrenOrd) list.get(i);
// 判断出行人姓名是否相等
if (a_list.getName().equals(del_name)) {
// 删除集合中对应出行人的对象
list.remove(a_list);
System.out.println("删除成功!");
}
} else if (list.get(i) instanceof Adult) {
// 转换成Adult类对象
Adult a_list = (Adult) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getName().equals(del_name)) {
// 删除集合中对应出行人的对象
list.remove(a_list);
System.out.println("删除成功!");
}
} else if (list.get(i) instanceof OrdOldMan) {
// 转换成OrdOldMan类对象
OrdOldMan a_list = (OrdOldMan) list.get(i);
// 判断日期和手机号码是否相等
if (a_list.getName().equals(del_name)) {
// 删除集合中对应出行人的对象
list.remove(a_list);
System.out.println("删除成功!");
}
}
}
} else {
System.err.println("删除失败,我的出行订单中不存在该出行人姓名,无法删除!");
}
}


/**
* 5.查看行程
* IO流必须要进行异常处理
*/
public void CheckIti() throws IOException {
// 创建文件流对象
File ctoFile = new File(
"F:/java_5/行程信息.txt");
InputStreamReader rdCto = new InputStreamReader(new FileInputStream(
ctoFile));
BufferedReader bfReader = new BufferedReader(rdCto);
String txtline = null;
while ((txtline = bfReader.readLine()) != null) {
System.out.println(txtline);
}
/**
*关闭流 
*/
bfReader.close();
System.out.println("");
}


/**
* 6.退出系统
*/
public void ExitSys() {
System.out.println("欢迎下次再来!");
}
}



猜你喜欢

转载自blog.csdn.net/qq_41713567/article/details/80482433