java求源代码

Python011

java求源代码,第1张

你是青鸟的吧 这我写过 有源码 这里怎么上传压缩包啊

package ghhh

import 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()

}

}