/*
项目答辩已经过去几天了
今天才来写博客
老师让做Mi NiDVD 系统
实现功能:排行榜,查看,新增,删除,借出,归还,退出!
*/
DVD类:
public class DVD {
String name; //定义DVD名称
int state; //定义DVD借出状态:1为借出:0为没接<默认没借>
String time; //定义借出日期
int count; //定义DVD借出次数
String user="人在深海"; //管理员帐号
String password="5202145"; //管理员密码
}
DVD管理类:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DVDM {
Scanner in=new Scanner(System.in);
DVD [] dvd=new DVD[1000];
DVD AS=new DVD();
// 登陆验证
public void landed(){
System.out.println("* * * * * * * * * * * * Mi Ni DVD * * * * * * * * * * *");
boolean is;
do{
is=false;
System.out.println("请输入管理员帐号");
String name=in.next();
System.out.println("请输入管理员密码");
String password=in.next();
if(name.equalsIgnoreCase(AS.user)&&password.equalsIgnoreCase(AS.password)){
System.out.println("登陆成功");
System.out.println("尊敬的"+ name +"欢迎您进入Mn Ni 管理系统\n");
init();
show();
}else{
System.out.println("帐号与密码不匹配");
is=true;
}
}while(is);
}
// 显示DVD主菜单界面
public void show(){
String[] Arrs={"借出排行版","新增DVD","查看DVD","删除DVD","借出DVD","归还DVD","退出"}; //菜单数组
for(int i=0;i<1;i++){
System.out.println("迷你DVD管理器");
System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * *");
for(int j=0;j<Arrs.length;j++){
System.out.println((j+1)+"."+Arrs[j]);
}
System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * *");
System.out.println("请选择:");
boolean is;
do{
is=false;
String user=in.next();
switch (user) {
case "1":
Top(); //排行版
break;
case "2":
add(); //新增
break;
case "3":
see(); //查看
break;
case "4":
deletedvd(); //删除
break;
case "5":
lend(); //借出
break;
case "6":
returnDvd(); //归还
break;
case "7":
System.out.println("谢谢使用!再见");
break;
default:
System.out.println("你的输入有误,请重新输入");
is=true;
break;
}
}while(is);
}
}
// 初始化几张光盘
public void init(){
DVD one=new DVD();
one.name="一战天下";
one.state=1;
one.time="2016-4-13";
one.count=77;
dvd[0]=one;
DVD one1=new DVD();
one1.name="我的天空";
one1.state=1;
one1.time="2016-4-13";
one1.count=88;
dvd[1]=one1;
DVD one2=new DVD();
one2.name="无尽黑夜";
dvd[2]=one2;
}
// 借出排行榜
public void Top(){
System.out.println("迷你DVD管理器>借出排行榜\n");
System.out.println("* * * * * * * * * * * * * * * * * * * * * * *");
for(int i=0;i<dvd.length-1;i++){
for(int j=0;j<dvd.length-1-i;j++){
if(dvd[j]!=null&&dvd[j+1]!=null&&dvd[j].count>dvd[j+1].count){
DVD AS=new DVD();
AS=dvd[j];
dvd[j]=dvd[j+1];
dvd[j+1]=AS;
}
}
}
System.out.println("借出次数\t\t名称");
for(int i=dvd.length-1;i>=0;i--){
if(dvd[i]!=null){
System.out.println(dvd[i].count+"次\t\t\t"+dvd[i].name);
}
}
System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
returnMain();
}
// 查看DVD
public void see(){
System.out.println("迷你DVD管理器>查看DVD");
System.out.println("序号\t 状态\t\t借出日期\t借出次数\t 名称");
for(int i=0;i<dvd.length;i++){
if(dvd[i]==null){
break;
}else if(dvd[i].state==1){
System.out.println(" "+(i+1)+"\t 已借出\t\t"+dvd[i].time+"\t "+dvd[i].count+"\t\t< "+dvd[i].name+" >");
}else if(dvd[i].state==0){
System.out.println(" "+(i+1)+"\t 可 借\t\t\t\t "+dvd[i].count+"\t\t< "+dvd[i].name+" >");
}
}
System.out.println("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
returnMain();
}
// 新增DVD
public void add(){
System.out.println("\n迷你DVD管理器>新增DVD");
System.out.print("请输入新增DVD的名称:");
boolean is;
do{
String name=in.next();
is=false;
for(int i=0;i<dvd.length;i++){
if(dvd[i]==null){
DVD AS=new DVD();
dvd[i]=AS;
dvd[i].name=name;
System.out.println("新增< "+name+" >成功");
break;
}else if(dvd[i].name.equals(name)){
System.out.println("新增失败!DVD名称与数据库名称相冲突,请重新输入!");
is=true;
break;
}
}
}while(is);
System.out.println("* * * * * * * * * * * * * * * * * * * * * * *");
returnMain();
}
// 删除DVD
public void deletedvd(){
System.out.println("\n迷你DVD管理器>删除DVD");
System.out.print("请输入DVD的名称:");
String name=in.next();
for(int i=0;i<dvd.length;i++){
if(dvd[i]!=null&&dvd[i].name.equalsIgnoreCase(name)&& dvd[i].state==0){
int j=i;
while(dvd[j+1]!=null){
dvd[j]=dvd[j+1]; // 删除元素,元素前移
j++;
}
dvd[j]=null; // 最后一个不为空的元素置空
System.out.println("删除< "+name+" >成功!");
break;
}else if(dvd[i]!=null&&dvd[i].name.equalsIgnoreCase(name)&&dvd[i].state==1){
System.out.println("< "+ name +" >为借出状态,不能删除!请重新输入");
break;
}else if(dvd[i]!=null&&!dvd[i].name.equalsIgnoreCase(name)&&dvd[i].state!=1){
System.out.println("没有找到匹配信息!");
break;
}
}
System.out.println("* * * * * * * * * * * * * * * * * * * * * * *");
returnMain();
}
//借出DVD
public void lend(){
System.out.println("迷你DVD管理器>借出DVD\n");
System.out.print("请输入DVD的名称:");
String name=in.next();
for(int i=0;i<dvd.length;i++){
if(dvd[i]==null){
System.out.println("没有找到信息");
break;
}else if(dvd[i].name.equals(name)&&dvd[i].state==0){
Date df=new Date();
DateFormat time=new SimpleDateFormat("YYYY年MM月dd日hh时mm分ss秒");
System.out.println("当前时间为:"+time.format(df));
System.out.println("请输入借出的日期(年-月-日)不按格式是傻逼");
dvd[i].time=in.next();
System.out.println("< "+ name +" >借出成功");
dvd[i].state=1;
dvd[i].count++;
break;
}else if(dvd[i].name.equals(name)&&dvd[i].state==1){
System.out.println("不好意思!< "+name+" >已被借出");
break;
}
}
System.out.println("* * * * * * * * * * * * * * * * * * * * * * *");
returnMain();
}
// 归还DVD
public void returnDvd(){
System.out.println("迷你DVD管理器>归还DVD\n");
System.out.print("请输入DVD名称:");
String name=in.next();
long loan=0; // 租金
for (int i=0;i<dvd.length;i++){
if(dvd[i]==null){
System.out.println("没有找到匹配信息!");
break;
}else if(dvd[i].name.equals(name)&&dvd[i].state==1){
Date df=new Date();
DateFormat time=new SimpleDateFormat("YYYY年MM月dd日hh时mm分ss秒");
System.out.println("当前时间为:"+time.format(df));
System.out.println("请输入归还日期(年-月-日)不按格式是傻逼:");
String redate=in.next();
loan=charge(dvd[i].time, redate);
if(loan>=0){
System.out.println("< "+name+" >归还成功");
dvd[i].state=0;
System.out.println("借出日期为:"+dvd[i].time);
System.out.println("归还日期为:"+redate);
System.out.println("应付租金(元):"+loan);
break;
}else{
System.out.println("归还日期不符合逻辑");
break;
}
}else if(dvd[i].name.equals(name)&&dvd[i].state==0){
System.out.println("< "+name+" >没有被借出,无法进行归还!");
break;
}
}
System.out.println("* * * * * * * * * * * * * * * * * * * * * * *");
returnMain();
}
// 计算时间差
public long charge(String one,String two){
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd"); // 格式化日期
long charge=0;
try{
Date A=sd.parse(one);
Date B=sd.parse(two);
charge=(B.getTime()-A.getTime())/(24*60*60*1000);
}catch(ParseException e){
System.out.println("日期格式输入错误");
}
return charge;
}
// 输入任意键返回
public void returnMain(){
System.out.print("输入任意键返回:");
String A=in.next();
show();
}
}
DVD测试类:
public class test {
public static void main(String[] args){
DVDM one=new DVDM();
one.landed();
}
}