你是青鸟的吧 这我写过 有源码 这里怎么上传压缩包啊
package ghhhimport java.util.Scanner
public class DvD {
public static void main(String[] args) {
int state[]=new int[6]
String name[]=new String[6]
int date[]=new int[6]
int count[]=new int [6]
name[0]="权利的游戏"
name[1]="命运之夜"
name[2]="傲慢与偏见"
state[0]=1
state[1]=0
state[2]=1
date[0]=13
date[1]=0
date[2]=9
count[0]=23
count[1]=23
count[2]=23
int n
// boolean n=false
do{
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.退出DVD")
Scanner input =new Scanner(System.in)
System.out.println("请选择:")
n=input.nextInt()
switch(n){
case 1:
System.out.println("请输入要增加DVD的名称:")
String name1=input.next()
boolean flag=false
for(int i=0i<name.lengthi++){
if(name[i]==null){
name[i]=name1
flag=true
break
}
}
if(flag){
System.out.println("新增DVD"+name1+"成功")
}else{
System.out.println("货架已满!增加失败!")
}
System.out.println("请输入0返回!")
n=input.nextInt()
break
case 2:
System.out.println("序号\t"+"状态\t"+"名称\t\t"+"借出日期\t"+"借出次数")
for(int i=0i<name.lengthi++){
if(name[i]!=null){
String state1 =((state[i]==0)?"可借":"已借")
String date1=((date[i]==0)?"":date[i]+"日")
String count1=count[i]+"次"
System.out.println((i+1)+"\t"+state1+"\t"+name[i]+"\t"+date1+"\t\t"+count1)
}
}
System.out.println("请输入0返回!")
n=input.nextInt()
break
case 3:
System.out.println("请输入要删除的DVD名称:")
String name2=input.next()
int index=-1
boolean a=false
boolean flag1=false
for(int i=0i<name.lengthi++){
if(name2.equals(name[i])&&state[i]==1){
System.out.println("此DVD已经借出,无法删除")
a=true
break
}else if(name2.equals(name[i])&&state[i]==0){
a=true
index=i
flag1=true
System.out.println("删除成功!")
break
}
}
if(a==false){
System.out.println("没有找到相同名称的DVD!")
}
if(flag1){
for (int i=indexi<name.lengthi++){
if(i!=name.length-1){
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
}
}
System.out.println("请输入0返回!")
n=input.nextInt()
break
case 4:
System.out.println("请输入要借出的DVD:")
String name3=input.next()
boolean a3=false
boolean b3=false
for(int i=0i<name.lengthi++){
if(name3.equals(name[i]) && state[i]==1){
System.out.println("该DVD已经借出")
a3=true
}else if(name3.equals(name[i]) && state[i]==0){
do{
System.out.println("请输入借出的日期:")
int m=input.nextInt()
if(m>31||m<1){
System.out.println("请重新输入日期:")
b3=true
}else{
date[i]=m
state[i]=1
count[i]+=1
}
}while(b3==true)
System.out.println("借出成功!")
a3=true
}
}
if(a3==false){
System.out.println("没有该DVD")
}
System.out.println("请输入0返回!")
n=input.nextInt()
break
case 5:
System.out.println("请输入要归还的DVD:")
String name5=input.next()
boolean b5=false
boolean m5=false
for(int i=0i<name.lengthi++){
if(name5.equals(name[i]) && state[i]==1){
b5=true
do{
System.out.println("请输入要归还DVD的日期:(归还日期请输入当月日期 1~31)")
int a5=input.nextInt()
if(a5>31){
System.out.println("请重新输入日期:")
m5=true
}else if(a5<date[i]){
System.out.println("借出日期是"+date[i]+"日\t输入的日期不能小于借出的日期,请重新输入日期:")
m5=true
}else{
state[i]=0
System.out.println("归还成功")
System.out.println("借出日期是:"+date[i]+"归还日期是:"+a5+"日\t租金一天一元:共"+(a5-date[i])+"元")
date[i]=0
m5=false
}
}while(m5==true)
}else if (name5.equals(name[i]) && state[i]==0){
System.out.println("该DVD未借出,不可归还!")
b5=true
}
}
if(b5==false){
System.out.println("没有该名称的DVDV")
}
System.out.println("请输入0返回!")
n=input.nextInt()
break
case 6:
n=1
System.out.println("程序退出!")
break
default:
if(n==0){
}else{
System.out.println("输入错误!请重新输入!")
n=0
}
break
}
}while(n==0)
System.out.println("谢谢使用!")
}
}
看看有没有问题 好久之前的了
Java小白:可以曲线救国:在外面新建一个静态类,把main方法里要用的,也就是就你要跳回到main方法要用的,那段代码,塞到新建的静态类的静态方法里面,然后main方法,和你后面的方法就都可以用类调用它啦。关键时刻可以救急。
另外,虽然方法里不能套方法,但是方法里貌似可以套类,类又可以套方法。。后面这个看博客看到的,没试过。
不懂就不要乱说,误人子弟,自己验证过了吗?主要错误在这里,dvd.name.length这个是15,而你却只有实例化了6个,这肯定会抛空指针异常的
当然还是有几个小错了,我就不一一说明了,你看看我给你改的程序
只对这个类DVDMgr
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
import java.util.Scanner
public class DVDMgr {
DVDSet dvd=new DVDSet()
//调用DVDSet类
Scanner input=new Scanner(System.in)
public void setData(){
dvd.initial()
}
public void startMenu(){
System.out.println("欢迎使用MiniDVD Mgr 1.0")
System.out.println("1.查看")
System.out.println("2.借DVD")
System.out.println("3.退出")
dvd.initial()
int num=input.nextInt()//接受选择的数字
switch(num){
case 1:
showDVD()
break
case 2:
lend()
break
case 3:
System.out.println("欢迎您的使用!")
break
default:
System.out.println("输入错误,异常终止!")
}
}
public void returnMain(){ //返回方法
System.out.println("输入数字0,返回上一级菜单")
int num=input.nextInt()
if(num==0){
startMenu()
}else
System.out.println("输入错误,异常终止")
}
public void showDVD(){ //显示DVD的方法
for(int i=0i<dvd.name.lengthi++){
if(dvd.name[i]==null){ //如果数组为空 则挑出循环
break
}
System.out.print("《"+dvd.name[i]+"》")
if(dvd.state[i]==0){
System.out.println("\t\t\t\t已借出")
}else
System.out.println("\t\t\t\t末借出")
}
returnMain()//返回上级菜单
}
public void lend(){ //借DVD的方法
System.out.print("请输入要借的DVD:")
String num=null
int flag=3
try {
num = new BufferedReader(new InputStreamReader(System.in)).readLine()
} catch (IOException e) {
e.printStackTrace()
}
System.out.println(dvd.name.length)
for(int i=0i<6i++){
if((dvd.name[i].equals(num))&&dvd.state[i]==1){
System.out.println("可借")
System.out.println("操作成功!!")
dvd.state[i]=0//让存储末借的数字变为可借
flag=1
break
}
else if((dvd.name[i].equals(num))&&dvd.state[i]==0){
System.out.println("已借出")
flag=2
break
}
}
if(flag==3)
System.out.println("抱歉!您要借的DVD不存在!")
returnMain()
}
}