控制台输出<迷你DVD管理>
使用顺序、选择、循环、跳转语句 数组
功能实现菜单显示和切换 输入的数字不符合要求直接退出程序 用户可以选择新增、查看、 删除、借出、归还、退出
思路分析
使用switch语句实现菜单选择 使用do-while循环来实现返回和退出
代码如下
package com.fnd.twodayfour;
import java.util.scanner;
/**
*
* @author fang
*
*/
public class work1 {
public static void main(string[] args) {
// todo 迷你dvd
scanner sc = new scanner(system.in);
string[] name = new string[7];//存储名称
int[] state = new int[7];//存储dvd状态
int[] date = new int[7];//存储dvd借出日期
int[] count = new int[7];//存储借出次数
name[0] = "罗马假日";//初始化数据
name[1] = "风声鹤唳";
name[2] = "浪漫满屋";
state[0] = 1;
state[1] = 0;
date[0] = 1;
count[0] = 12;
count[1] = 16;
count[2] = 30;
//功能选项存储在数组中
string[] inits= {"1. 新增dvd","2. 查看dvd","3. 删除dvd","4. 借出dvd","5. 归还dvd","6. 退出dvd"};
int choice;
do {
int index = 0;
string dvdname;
//循环输出功能选项数组
system.out.println("欢迎使用迷你dvd管理器");
system.out.println("----------------------------");
for (string string : inits) {
system.out.println("\t\t"+string);
}
system.out.println("----------------------------");
system.out.print("请选择:");
choice=sc.nextint();//输入0或是1
//switch-case根据输入的choice实现菜单切换
switch (choice) {
case 1:
boolean flag=false;
system.out.println("----->新增dvd");
system.out.println("请输入dvd名字:");
dvdname = sc.next();
for (int i = 0; i < name.length; i++) {
if (dvdname.equals(name[i])) {
system.out.print("您要添加的dvd已经存在");
flag=true;
break;
}
if (name[i]==null) {
//找到第一个能添加的位置
index=i;//当前下巴赋值给index
break;
}
}
if(index != -1){
//添加
name[index] = dvdname;
state[index]=1;//可借
system.out.println("新增dvd<<"+dvdname+">>成功");
}else {
if (flag==false) {
system.out.println("货架已满,不能添加!");
} else {
system.out.println("您要添加的dvd已经存在!");
}
}
break;
case 2:
system.out.println("----->查看dvd");
system.out.println("序号\t" + "状态\t" + "名称\t" + "借出日期\t" + "借出次数");
for (int i = 0; i < name.length; i++) {
if (name[i]!= null) {
string statestr = state[i]==0 ? "已借出":"可借";
string datestr = date[i] ==0? "" : date[i]+"日";
system.out.println((i+1)+"\t"+statestr+"\t"+name[i]+"\t"+datestr+"\t"+count[i]+"次");
}
}
break;
case 3:
system.out.println("----->删除dvd");
system.out.println("请输入dvd名称:");
dvdname = sc.next();
for (int i = 0; i < inits.length; i++) {
if (dvdname.equals(name[i])) {
index=i;
break;
}
}
if(index==-1){
system.out.println("要删除的dvd不存在");
}else {
//存在但是否删除需要判断
if (state[index]==0) {
system.out.println("已经解除,不能删除");
} else {
//可以删除,移动元素位置,最后一位为null
for (int i = index; i < name.length-1; i++) {
name[i] =name[i+1];
state[i]=state[i+1];
date[i]=date[i+1];
count[i]=count[i+1];
}
//给最后一位赋值
name[name.length-1]=null;
state[name.length-1]=0;
date[name.length-1]=0;
count[name.length -1]=0;
}
}
break;
case 4:
system.out.println("----->借出dvd");
system.out.println("请输入要借出dvd名称:");
dvdname=sc.next();
for (int i = 0; i < name.length; i++) {
if(dvdname.equals(name[i])){
index=i;
break;
}
}
if(index==-1){
system.out.println("要借出的dvd不存在");
}else {
//存在,是否可借出要判断处理
if(state[index]==0){
system.out.println("请输入借出日期:(1--31)");
do {//可以借出
int day = sc.nextint();
if (day < 1 || day > 31) {
system.out.println("您输入的日期有误重新输入!");
} else {
//正常借出的情况
count[index]+=1;//次数加1
state[index]=0;//已借出
date[index]=day;//借出日期
system.out.println("借出<<"+dvdname+">>成功");
break;
}
} while (true);
}
}
break;
case 5:
system.out.println("----->归还dvd");
system.out.println("请输入要归还dvd名称:");
dvdname=sc.next();
break;
case 6:
system.out.println("谢谢使用");
break;
default:
//输入1-6之外的选项
system.out.println("输入不合法");
break;
}
system.out.print("输入0返回");
choice=sc.nextint();
} while (choice==0);//输入0循环退出
}
}
运行结果: