DVD
用面向对象的思想做DVD租赁系统
1.设计一个DVD类 属性应该有 名字,状态,借出日期....
2.创建三本DVD 放到数组中(只需要一个数组)
3.6个功能要写成6个方法 在main方法中调用 DVD stu[ ]=new DVD[10] //创建一个DVD类型的数组
package com.tryy;
public class dvd {
String name;
String zt;
String date;
int counts;
public dvd(String name, String zt, String date, int counts) { //有参构造方法
this.name = name; //DVD名
this.zt = zt; //DVD状态
this.date = date; //DVD日期
this.counts = counts; //DVD借出次数
}
public dvd() {
}
}
package com.tryy;
import java.util.Scanner;
public class text {
public static void main(String[] args) {
// TODO Auto-generated method stub
work w=new work();
w.init();
w.menu();
}
}
package com.tryy;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class work {
static dvd stus[]=null; //新建一个null数组
Scanner input=new Scanner(System.in);
boolean a=false;
public void init(){ //初始化
stus=new dvd[10];
stus[0]=new dvd("罗马假日","可借","0",6);
stus[1]=new dvd("风声鹤唳","已借出","2018.05.18",5);
stus[2]=new dvd("浪漫满屋","可借","0",3);
/* dvd stu1=new dvd ();
* stu1.name="罗马假日";
stu1.zt="可借";
stu1.date=0;
stu1.counts=6;
dvd stu2=new dvd();
stu2.name="风声鹤唳";
stu2.zt="可借";
stu2.date=0;
stu2.counts=5;
dvd stu3=new dvd();
stu3.name="浪漫满屋";
stu3.zt="可借";
stu3.date=0;
stu3.counts=3;*/
// stus[0]=stu1;stus[1]=stu2;stus[2]=stu3; //stus[0]=stu1=new dvd();
}
public void menu() {
System.out.println("欢 迎 使 用 迷 你 DVD 管 理 器");
System.out.println("---------------------");
System.out.println("1. 新 增 DVD\n2. 查 看 DVD\n3. 删 除 DVD\n4. 借 出 DVD\n5. 归 还 DVD\n6. 退 出DVD");
System.out.println("-----------------------");
System.out.print("请选择:");
Scanner input=new Scanner(System.in);
int num = input.nextInt();
switch(num){
case 1:
add();
returnmenu();
break;
case 2:
look();
returnmenu();
break;
case 3:
deletdvd();
returnmenu();
break;
case 4:
lend();
returnmenu();
break;
case 5:
returnDVD();
returnmenu();
break;
case 6:
System.out.println("成功退出迷 你 DVD 管 理 器");
System.exit(0);
break;
default:returnmenu();
}
}
public void add(){ //新 增DVD
System.out.println("---> 新 增DVD");
System.out.println("请输入DVD名称:");
String num1 = input.next();
for(int i=0;i<stus.length;i++){
if(stus[i]==null){
stus[i]=new dvd();
stus[i].name=num1;
stus[i].zt="可借";
stus[i].date="0";
stus[i].counts=0;
System.out.println("新增<<" + stus[i].name + ">>成功!");
break;
}
}
System.out.println("**************************");
}
public void look(){ //查看DVD
System.out.println("---> 查看DVD");
System.out.println("序号 \t状 态 \t名称\t借出日期\t\t借出次数");
for(int i=0;i<stus.length;i++){
if(stus[i]!=null){
if(!stus[i].date.equals("0")){
System.out.println((i+1)+"\t"+stus[i].zt+"\t"+stus[i].name+"\t"+stus[i].date+"\t"+stus[i].counts);
}if (stus[i].date.equals("0")){
System.out.println((i+1)+"\t"+stus[i].zt+"\t"+stus[i].name+"\t"+stus[i].date+"\t\t"+stus[i].counts);
}
}
}
}
public void deletdvd() { //删除DVD
Boolean a=false;
System.out.println("---> 删除DVD");
System.out.println("请输入DVD名称:");
String sname = input.next();
for (int i = 0; i < stus.length; i++) {
//stus: 数组
//stus[i]: 数组的第i个值 (第i个对象)
//stus[i] != null 数组第i个位置是否有对象,如果不等于null 说明这个位置有对象
//
if (stus[i] != null) {
if (stus[i].name.equals(sname)&&stus[i].zt.equals("可借")) {
a=true;
System.out.println("删除" + sname + "成功!");
for ( ; i< stus.length - 1; i++) {
/*stus[i].name = null.name;
stus[i].zt=stus[i+1].zt;
stus[i].date=stus[i+1].date;
stus[i].counts=stus[i+1].counts;*/
stus[i]=stus[i+1];
}
stus[stus.length - 1] = null;
/*stus[stus.length - 1].zt = null;
stus[stus.length - 1].date =0;
stus[stus.length - 1].counts = 0;*/
}else if (stus[i].name.equals(sname)&& stus[i].zt.equals("已借出")) {
System.out.println("本书已借出,暂时无法删除!");
break;
}
}
}
System.out.println("**************************");
if (a == false) {
System.out.println("dvd找不到删除失败!");
}
}
public void lend() {
// TODO Auto-generated method stub
System.out.println("---> 借出DVD");
System.out.println("请输入DVD名称:");
String name1 = input.next();
Date time=new Date();
SimpleDateFormat ft=new SimpleDateFormat("yyyy.MM.dd"); //yyyy年 MM月 dd 日
SimpleDateFormat t=new SimpleDateFormat("yyyy.MM.dd hh:mm:ss a E"); //年月日 hh时 mm分 ss秒 a上午还是下午 E星期几
System.out.println("借出日期为:"+ft.format(time));
for (int i = 0; i < stus.length; i++) {
if(stus[i]!=null){
if (stus[i].name.equals(name1)) {
if(stus[i].zt.equals("可借")){
a = true;
stus[i].zt = "已借出";
stus[i].counts ++;
stus[i].date = ft.format(time);
System.out.println(name1 + "借出成功!"+"借出时间为:"+t.format(time));
}
}
}
}
if (a == false) {
System.out.println("已被借出,请选其他!");
}
System.out.println("**************************");
}
public void returnDVD() {
System.out.println("---> 归 还 DVD");
System.out.println("请输入DVD名称:");
String name5 = input.next();
for (int i = 0; i < stus.length; i++) {
if(stus[i]!=null){
if (stus[i].name.equals(name5)) {
a = true;
stus[i].zt = "可借";
System.out.println("请输入借出的天数:");
int day = input.nextInt();
System.out.println("归还<<" + stus[i].name + ">>成功!");
System.out.println("借出日期为:" + stus[i].date);
System.out.println("借出天数为:" + day+"天");
double n=day*0.8;
DecimalFormat format=new DecimalFormat("0.0"); //使用DecimalFormat格式化输出值 保留小数点后一位
double a=0.235655148;
format.format(a);//0.23
System.out.println("应付租金(元):"+format.format(n));
stus[i].date="0";
System.out.println("**************************");
}}
}if (a == false) {
System.out.println("DVD归还失败!请输入要归还的正确的dvd名字!");
}
}
public void returnmenu(){
System.out.println("输入0返回:");
Scanner input = new Scanner(System.in);
if (input.nextInt() == 0) {
// 在此进入菜单切换
menu();
} else {
System.out.println("输入异常,请重新输入:");
returnmenu(); // 递归调用。
}
}
}