DVD租赁

来源:互联网 发布:多伦多大学 知乎 编辑:程序博客网 时间:2024/04/28 00:04
public class Info {
// 定义一个DVD的编号,名字,借阅的日期(后面赋值给个默认值就行了),借阅的状态(0为未借阅 1为已借出),被借过的次数(给个默认值)
private int no;
private String name;
private int days;
private int status;
private int count;


public Info() {
super();
}


public Info(int no, String name, int days, int status, int count) {
super();
this.no = no;
this.name = name;
this.days = days;
this.status = status;
this.count = count;
}


public int getNo() {
return no;
}


public void setNo(int no) {
this.no = no;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public int getDays() {
return days;
}


public void setDays(int days) {
this.days = days;
}


public int getStatus() {
return status;
}


public void setStatus(int status) {
this.status = status;
}


public int getCount() {
return count;
}


public void setCount(int count) {
this.count = count;
}


}





//Test类

import java.util.Scanner;


public class Test {
static Info[] in = new Info[5];


static Scanner input = new Scanner(System.in);


public static void main(String[] args) {
// 初始化数据
boolean isNext = false;
in[0] = new Info(1, "蜘蛛侠", 0, 0, 0);
in[1] = new Info(2, "鹰眼侠", 0, 0, 0);
in[2] = new Info(3, "钢铁侠", 0, 0, 0);
do {
// 循环打印DVD的列表
System.out.println("序号\t状态\t名称\t借出日期(号)\t借出次数(次)\t");
for (int i = 0; i < in.length; i++) {
if (in[i] != null) {
System.out.println(in[i].getNo() + "\t" + in[i].getStatus()
+ "\t" + in[i].getName() + "\t" + in[i].getDays()
+ "\t" + in[i].getCount() + "\t");
}
}
System.out.println("欢迎光临DVD店");
System.out.println("**********");
System.out.println("1.新增DVD");
System.out.println("2.查看DVD");
System.out.println("3.删除DVD");
System.out.println("4.借阅DVD");
System.out.println("5.归还DVD");
System.out.println("6.退出");
System.out.println("请输入你的选择");
int choice = input.nextInt();
switch (choice) {
case 1:
System.out.println(">--新增DVD");
addDVD();
break;
case 2:
System.out.println(">--查看DVD");
showDVD();
break;
case 3:
System.out.println(">--删除DVD");
delete();
break;
case 4:
System.out.println(">--借阅DVD");
borrowDVD();
break;
case 5:
System.out.println(">--归还DVD");
backDVD();
break;
case 6:
System.out.println(">--退出");
break;
default:
System.out.println("没有改功能,请重新输入");
choice = input.nextInt();
break;
}


System.out.println("是否要继续操作?");
String choose = input.next();
if (choose.equals("y")) {
System.out.println("请输入的选择:");
choice = input.nextInt();
isNext = true;
} else if (choose.equals("n")) {
System.out.println("谢谢使用");
isNext = false;
break;
}
} while (isNext);
}
//当归还的日期小于数组中对象的默认借阅日期时,则提示重新输入,当大于提示日期是,则计算租金
//租金为(归还日期-数组中对象的默认借阅日期)*每天的单价
private static void backDVD() {
System.out.println("请输入你要归还的DVD的序号:");
int num = input.nextInt();
for (int i = 0; i < in.length; i++) {
if (in[i] != null && in[i].getNo() == num) {
System.out.println("请输入你要归还的天数:");
int newDay = input.nextInt();
if (newDay <= in[i].getDays()) {
System.out.println("归还日期应该大于借阅日期,请重新输入");
newDay = input.nextInt();
} else {
System.out.println("归还成功!");
System.out
.println("您应该交钱" + (newDay - in[i].getDays()) * 2);
in[i] = new Info(i, in[i].getName(), 0, 0,
in[i].getCount() + 1);
}
}
}
}


//当输入的天数不合法的时候重新输入,当输入的天数合法时,提示借阅成功
private static void borrowDVD() {
System.out.println("请输入你要借阅的DVD的序号:");
int num = input.nextInt();
System.out.println("请输入你要借阅的天数:");
for (int i = 0; i < in.length; i++) {
if (in[i] != null && (in[i].getNo() == num)) {
int days = input.nextInt();
if (days > 31 || days < 0) {
System.out.println("请输入正确的天数:");
days = input.nextInt();
} else {
System.out.println("您借阅成功");
int newDays = in[i].getDays() + days;
in[i] = new Info(in[i].getNo(), in[i].getName(), newDays,
in[i].getStatus(), in[i].getCount());
break;
}
}
}
System.out.println("序号\t状态\t名称\t借出日期(号)\t借出次数(次)");
for (int j = 0; j < in.length; j++) {
if (in[j] != null) {
System.out.println(in[j].getNo() + "\t" + in[j].getStatus()
+ "\t" + in[j].getName() + "\t" + in[j].getDays()
+ "\t" + in[j].getCount() + "\t");
}
}
}


// 当要删除的序号和数组中的某个对象的编号相同时,则提示删除成功(省略了对象前移一个位置的代码)
private static void delete() {
System.out.println("请输入你要删除的序号:");
int num = input.nextInt();
for (int i = 0; i < in.length; i++) {
if (in[i] != null && in[i].getNo() == num && in[i].getStatus() == 0) {
System.out.println("删除成功!");
}
}
}


private static void showDVD() {
System.out.println("当前库存为:");
System.out.println("序号\t状态\t名称\t借出日期(号)\t借出次数(次)");
for (int j = 0; j < in.length; j++) {
if (in[j] != null) {
String status = (in[j].getStatus() == 1) ? "已借阅" : "未借阅";
String count = (in[j].getCount() == 1) ? " " : in[j].getCount()
+ "次 ";
String days = (in[j].getDays() == 1) ? " " : "被借出"
+ in[j].getDays() + "天 ";
System.out.println(in[j].getNo() + "\t" + status + "\t"
+ in[j].getName() + "\t" + days + "\t" + count);
}
}


}


/*
* 新增DVD String a = (某某某 ==某某某) ? xx : yy; 的意思是 吧XX或者YY的其中一个值赋值给a
* 判断的依据是当()里面的等式成立,则a==xx,不是则a==yy,相当于if-else判断
*/
private static void addDVD() {
System.out.println("请输入你要新增的DVD的名字:");
String newName = input.next();
for (int i = 0; i < in.length; i++) {
// 找到数组中空的对象,将名字等变量赋给有参构造方法(相当于给数组中的对象的各个值重新赋值)
if (in[i] == null) {
in[i] = new Info(i + 1, newName, 0, 0, 0);
String status = (in[i].getStatus() == 1) ? "已借阅" : "未借阅";
String count = (in[i].getCount() == 1) ? " " : in[i].getCount()
+ "次 ";
String days = (in[i].getDays() == 1) ? " " : "被借出"
+ in[i].getDays() + "天 ";
System.out.println("新增的数据为");
System.out.println("序号\t状态\t名称\t借出日期(号)\t借出次数(次)");
System.out.println(in[i].getNo() + "\t" + status + "\t"
+ in[i].getName() + "\t" + days + "\t" + count);
break;
} else if (in[in.length - 1] != null) {
System.out.println("菜单已满,不能添加");
break;
}
}


}
}



0 0
原创粉丝点击