迷你型DVD管理系统

今天,老师让我们做了关于DVD管理的小项目,虽然说是个小项目,但是对于我这种小白来说,还是挺不容易的,查了很多资料,看了很多案例,终于自主完成了。下面就是我写的代码。如有不满意的地方,理解万岁~

import java.util.*;
import java.text.*;
public class DVD {
String[] name = new String[50];//定义DVD片名
boolean[] state = new boolean[50]; //
String[] date = new String[50];
int[] count = new int[50];
String[] name1 = new String[50];
}


class DVDMgr {
boolean islend = false;
DVD dvd = new DVD();  //new一个对象
public void initial() {
dvd.name[0] = "罗马假日";
dvd.state[0] = true;
dvd.date[0] = "2011-9-17";
dvd.count[0] = 0;
dvd.name[1] = "风声鹤唳";
dvd.state[1] = false;
dvd.date[1] = "2011-9-17";
dvd.count[1] = 0;
dvd.name[2] = "浪漫满屋";
dvd.state[2] = false;
dvd.date[2] = "2011-9-17";
dvd.count[2] = 0;
}


public void startMenu() {    //定义一个菜单输出方法
System.out.println("----欢迎使用迷你DVD管理器----");

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.退出.\n");

Scanner input = new Scanner(System.in);
System.out.print("请选择操作,按对应的数字:");
int i = input.nextInt();
switch(i){
case 1:
System.out.println("新增DVD");
addDVD();
break;
case 2:
System.out.println("查看DVD");
show();
break;
case 3:
System.out.println("删除DVD");
deleteDVD();
break;
case 4:
System.out.println("借出DVD");
lendDVD();
break;
case 5:
System.out.println("归还DVD");
returnDVD();
break;
case 6:
System.out.println("系统已退出,欢迎再次使用!");
break;

}
}
public void show(){
System.out.println("查看DVD\n");
System.out.println("序号\t状态\t名称\t\t借出日期");
int dizhi = 0;
for (int i = 0; i <= dvd.name.length; i++) {
if (dvd.name[i] != null) {
continue;
} else {
dizhi = i - 1;
break;
}
}
for (int i = 0; i <= dizhi; i++) {
if (dvd.state[i] == false) {
System.out.println(i + "\t" + "已借出" + "\t" + dvd.name[i]+ "\t\t" + dvd.date[i]);
} else if (dvd.state[i] == true) {
System.out.println(i + "\t" + "可借" + "\t" + dvd.name[i]+ "\t\t");
}
}
returnMain();
}
public void returnMain() {    //定义一个返回菜单的方法
for (; ; )
{
Scanner input = new Scanner(System.in);
System.out.print("输入0,返回主菜单:");
if (input.nextInt() == 0) {
startMenu();

}
}
public void addDVD() {   //定义一个增加DVD的方法
Scanner input = new Scanner(System.in);

System.out.print("请输入DVD名称:");
String name = input.next();
for (int i = 0; i < dvd.name.length; i++) {

if (dvd.name[i] == null) {
dvd.name[i] = name;
dvd.state[i] = false;
System.out.println(name + "新增成功!");
break;


}
returnMain();


}
// 删除
public void deleteDVD(){
Scanner input = new Scanner(System.in);
System.out.println("--->删除DVD\n");
        System.out.print("请输入DVD的名称:");
String name = input.next();
boolean flag = false;
for (int i = 0 ;i < dvd.name.length ; i++ )
{
if (dvd.name[i] != null && dvd.name[i].equalsIgnoreCase(name)
                && dvd.state[i] == false)
{
int j = i ;
while (dvd.name[j] != null)
{
dvd.name[j] = dvd.name[j + 1]; // 删除元素,元素前移
dvd.state[j] = dvd.state[j + 1];
dvd.date[j] = dvd.date[j + 1];
j++;
}
//最后一个不为空的元素置空
dvd.name[j] = null;
dvd.date[j] = null;
System.out.println("删除《" + name + " 》成功!");
flag = true; //标识位
break;
}else if (dvd.name[i] != null
                      && dvd.name[i].equalsIgnoreCase(name)
                      && dvd.state[i] == true)
{
System.out.println("《" + name + "》为借出状态,不能删除!");
flag = true;
break;
}
if (flag)
{
System.out.println("没有找到匹配信息");
}
}
System.out.println("----------------------------");
returnMain();
}


public void lendDVD() { //定义一个借DVD的方法
Scanner input = new Scanner(System.in);

System.out.print("请输入要借的DVD名称:");
String lend = input.next();
for (int i = 0; i < dvd.name.length; i++) {
if (dvd.name[i] == null) {
System.out.println("没有找到匹配信息!!!");
returnMain();
break;
} else if (dvd.name[i].equals(lend) && dvd.state[i] == true) {
System.out.print("请输入借出日期(年-月-日):");
dvd.date[i] = input.next();
dvd.state[i] = false;
System.out.println(lend + "\t借出成功!");
dvd.count[i]++;
dvd.name1[i] = dvd.name[i];
returnMain();
break;
} else if (dvd.name[i].equals(lend) && dvd.state[i] == false) {
System.out.println(lend + "\t已借出!");
returnMain();
break;
}
}


}
public void returnDVD() { //定义一个还DVD的方法
Scanner input = new Scanner(System.in);

System.out.print("请输入归还的DVD名称:");
String returndvd = input.next();
for (int i = 0; i <= dvd.name.length; i++) {
if (returndvd.equals(dvd.name[i]) && dvd.state[i] == false) {
System.out.print("请输入归还的日期:");
String date = input.next();
System.out.println(returndvd + "归还成功!");
System.out.println("借出日期为:" + dvd.date[i]);
System.out.println("归还日期为:" + date);
String d1 = dvd.date[i];
String d2 = date;
long day = charge(d2, d1);
System.out.println("应付租金:" + day + "元");
dvd.date[i] = date;
dvd.state[i] = true;
break;
}else if(i==49){
System.out.println("无该DVD,输入错误。");
break;
}
}
returnMain();
}
//param dstr1 第一个日期     param dstr2 第二个日期
public long charge(String dstr1,String dstr2){ //借出日期利用“年-月-日”的字符串形式
long charge=0;
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");


try {
Date d1=sd.parse(dstr1);
Date d2=sd.parse(dstr2);
charge=(d2.getTime()-d1.getTime())/(24*60*60*1000);
} catch (ParseException e) {
e.printStackTrace();
}return charge;
}


public void list() { //定义一个列表
String[] newName = new String[50];
int[] newcount = new int[50];
for (int i = 0; i < dvd.name.length; i++) {
newName[i] = dvd.name[i];
newcount[i] = dvd.count[i];
}for (int i = 0; i < newName.length; i++) {
for (int j = i + 1; j < newName.length; j++) {
if (newcount[i] > newcount[j]) {
int zhongjianbianliang = newcount[i];
newcount[i] = newcount[j];
newcount[j] = zhongjianbianliang;
String zhongjianliang = newName[i];
newName[i] = newName[j];
newName[j] = zhongjianliang;
}
}
}


System.out.println("次数\t名称");
for (int i = dvd.name.length - 1; i >= 0; i--) {
if (newName[i] != null) {
System.out.println(newcount[i] + "次" + "\t" + newName[i]);
}
}
returnMain();
}


}
 class TestDVD {
public static void main(String[] args) {
DVDMgr dm = new DVDMgr();
dm.initial();
dm.startMenu();
}
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值