好多人说我的思维有问题,学了一个多月时间,0基础学起。感觉逻辑思维有点乱,该怎么办。我这代码一共三个类,第二个是主程序,第三个是方法类,但是到最后计算租金我不会计算,数据类型转不过来。
package dvd;
/*
 * DVD管理系统
 */
public class DvdArticle {
private int order;//定义序列
private String condition = "可借";//定义状态
private String name;//定义名称
private String borrowdate;//定义借出时间
private String repayment;//归还日期
private int number = 0;//定义借出次数
public String getRepayment() {
return this.repayment;
}
public void setRepayment(String repayment) {
this.repayment = repayment;
}

public int getOrder() {
return this.order;
}
public void setOrder(int order) {
this.order = order;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getBorrowdate() {
return this.borrowdate;
}
public void setBorrowdate(String borrowdate) {
this.borrowdate = borrowdate;
}
public int getNumber() {
return this.number;
}
public void setNumber(int number) {
this.number = number;
}
public String toString(){
String str = "\t"+this.order+"\t"+this.condition+"\t"+this.name+
"\t"+this.borrowdate+"\t"+this.repayment+
"\t"+this.number;
return str;
}
}
package dvd;
/*
 * DVD主程序
 */
import java.util.*;
public class DvdRoutine {
public static void main(String[] args){
Scanner in = new Scanner(System.in); DvdArticle[] rray = new DvdArticle[999];
DvdProgram dgm = new DvdProgram();
while(true){
System.out.println("欢迎使用迷你DVD管理系统");
System.out.println("------------------------");
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");
String count = in.next();
if(count.equals("1")){//使用新增方法
System.out.println("------->新增DVD");
System.out.println("请输入要添加的影片名称:");
String name = in.next();
dgm.newly(name, rray);
dgm.back();
}else if(count.equals("2")){//使用查看方法
System.out.println("------->查看DVD");
System.out.println("请输入要查看DVD名称的序号:");
if(in.hasNextInt()){
int order = in.nextInt();
dgm.query(order, rray);
dgm.back();
}else{
System.err.println("输入错误,只能输入数字");
continue;
}

}else if(count.equals("3")){//使用删除方法
System.out.println("------->删除DVD");
System.out.println("请输入要删除DVD的名称序号:");
if(in.hasNextInt()){
int order = in.nextInt();
dgm.delete(order, rray);
dgm.back();
}else{
System.err.println("输入错误,只能输入数字");
continue;
}
}else if(count.equals("4")){//使用借出方法
System.out.println("------->借出DVD");
System.out.println("请输入要借出DVD名称序号:");
if(in.hasNextInt()){
int order = in.nextInt();
dgm.loan(order, rray);
dgm.back();
}else{
System.err.println("输入错误,只能输入数字");
continue;
}
}else if(count.equals("5")){//使用归还方法
System.out.println("------->归还DVD");
System.out.println("请输入归还DVD名称序号:");
if(in.hasNextInt()){
int order = in.nextInt();
dgm.give(order, rray);
System.out.println();
dgm.back();
}else{
System.err.println("输入错误,只能输入数字");
continue;
}
}else if(count.equals("6")){
System.err.println("程序结束,如需使用请重新启动!");
System.exit(0);
}
//in.close();
}
}
}package dvd;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/*
 * 用来管理DVD的类
 */
import java.util.*;
public class DvdProgram {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Scanner in = new Scanner(System.in);
String msg = "\t序号\t状态\t名称\t借出日期\t\t归还日期\t借出次数";
public void print(DvdArticle[] arr){//更新信息方法
System.out.println(msg);
for(int i = 0; i<arr.length; i++){
if(arr[i] != null){
arr[i].getCondition();
arr[i].getNumber();
System.out.println(arr[i]);
}
}
}
public void back(){//返回方法
while(true){
System.out.println("***********************************************************");
System.out.println("输入0返回");
int scor = in.nextInt();
if(scor == 0){
break;
}else{
System.err.println("输入错误,请重新输入");
continue;
} }
}
public boolean judge(int order, DvdArticle dat){//判断影片是否存在
if(dat != null){
if(dat.getOrder() == order){
return true;
}else{
return false;
}
}
return false;
}
public void newly(String name, DvdArticle[] arr){//新增方法
DvdArticle dar = new DvdArticle();
dar.setName(name);
int i = this.backtrack(arr);
dar.setOrder(i);
if(i == 9999){
System.err.println("内存达到最大上限,无法添加");
}else{
arr[i] = dar;
}
this.print(arr);
}
public int backtrack(DvdArticle[] arr){//返回数组为空下标方法
for(int i = 0; i<arr.length; i++){
if(arr[i] == null){
return i;
}
}
return 9999;
} public void query(int order, DvdArticle[] arr){//查看方法
//System.out.println(msg);
for(int i = 0; i<arr.length; i++){
if(this.judge(order,arr[i]) == true){
System.out.println(msg);
System.out.println(arr[i]);
return;
/*}else{

return;
}*/ }
}
System.err.println("影片不存在,无法查看");
} public void delete(int order, DvdArticle[] arr){//删除方法
for(int i = 0; i<arr.length; i++){
if(this.judge(order, arr[i])){
if(arr[i].getCondition().equals("已借出")){
System.err.println(arr[i].getName()+"已借出,无法删除");
return;
}else{
arr[i] = null;
this.print(arr);
return;
}
}
}
System.err.println("您所指定的序号不存在,无法删除");
}
public void loan(int order, DvdArticle[] arr){//借出方法
for(int i = 0; i<arr.length; i++){
if(this.judge(order, arr[i])){
/*if(arr[i] == null){
break;
}else{*/
if(arr[i].getCondition().equals("可借")){
arr[i].setCondition("已借出"); String dateStr = sdf.format(new Date());
arr[i].setBorrowdate(dateStr);
int count=arr[i].getNumber();
count++;
arr[i].setNumber(count);
this.print(arr);
return;
}else if(arr[i].getCondition().equals("已借出")){
System.err.println("影片已借出,无法提供");
return;
}
//}
}else{
System.err.println("您所需要借出的影片不存在,无法借出");
return;
}
}
}
public void give(int order, DvdArticle[] arr){
for(int i = 0; i<arr.length; i++){
if(this.judge(order, arr[i])){
if(arr[i].getCondition().equals("已借出")){
arr[i].setCondition("可借"); String dateTime= sdf.format(new Date());
arr[i].setRepayment(dateTime);
this.print(arr); }else if(arr[i].getCondition().equals("可借")){
System.err.println("影片处于可借状态,你可以选择借阅");
return;
} String dateString =arr[i].getBorrowdate();
Calendar calendar = Calendar.getInstance();
long nowDate = calendar.getTime().getTime(); //Date.getTime() 获得毫秒型日期
try {
long specialDate = sdf.parse(dateString).getTime();
long betweenDate = (specialDate - nowDate) 
/ (1000 * 60 * 60 * 24); //计算间隔多少天,则除以毫秒到天的转换公式
System.out.print("您一共租借了:"+(betweenDate+1)+"天");
} catch (ParseException e) {
e.printStackTrace();
} arr[i].setBorrowdate(null);
arr[i].setRepayment(null);
return; }else{
System.err.println("您所归还影片不存在,无法归还");
return;
}
}
//in.close();
}
}