1.思路:
先构思DVD的主菜单需要显示哪些内容,再针对每一个内容去构思需要定义的变量和数组,考虑每一个内容需要用到的方法和结构,最后单独编码每一个内容。注意:不要在编码完全部的方法后再测试,每编码一个方法后就进行一次测试,以确保每一个方法都是正确的,并在最后进行一个总测试。
2.初始化DVD:
代码:
int[] indexs=new int[50]; //定义数组
String[] names=new String[50];
String[] states=new String[50];
String[] dates=new String[50];
Scanner input=new Scanner(System.in);
public void init(){ //初始化
indexs[0]=1;//书的序号
indexs[1]=2;
indexs[2]=3;
names[0]="哈利波特";//书名
names[1]="全球通史";
names[2]="百年孤独";
states[0]="借出";//书的状态
states[1]="可借";
states[2]="可借";
dates[0]="2000-01-01";//书的借出日期
dates[1]="";//未借出则不填写
dates[2]="";
}
3.制作DVD管理目录:
代码:
public void mume(){ //菜单
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.退 出");
System.out.println("*******************");
System.out.println("请选择:");
int index=input.nextInt();
switch (index){ //选择方法
case 1:
methods01();
case 2:
methods02();
case 3:
methods03();
case 4:
methods04();
case 5:
try {
methods05();
} catch (ParseException e) {
throw new RuntimeException(e);
}
case 6:
System.out.println("结束此系统");
System.exit(1);
}
}
public static void main(String[] args) { //main方法
DVD dvd=new DVD();
dvd.init();
dvd.mume();
}
测试:
4.定义方法:
(1)定义新增DVD方法
代码:
private void methods01(){ //新增书籍方法
System.out.println("请输入要新增的DVD名称:");
String dvdname=input.next();
int i=0;
for (;i<names.length;i++){
if (names[i]==null){
indexs[i]=i+1;
names[i]=dvdname;
states[i]="可借";
dates[i]="";
System.out.println("添加《"+dvdname+"》成功");
break;
}
}
getreturn();
}
测试:
(2)定义查看DVD方法
代码:
private void methods02(){ //查看书籍方法
System.out.println("序号\t名字\t\t状态\t日期");
for (int i=0;i<indexs.length;i++){
if (names[i]==null){
break;
}
System.out.println(indexs[i]+"\t"+names[i]+"\t"+states[i]+"\t"+dates[i]);
}
System.out.println("================");
getreturn();
}
测试:
(3)定义删除DVD方法
代码:
private void methods03(){ //删除书籍方法
System.out.println("请输入要删除的DVD:");
String dvdname=input.next();
int i=0;
int index=0;
boolean flag=false;
for (;i<indexs.length;i++){
if (dvdname.equals(names[i])){
index=i;
flag=true;
break;
}
}
if (flag){
if (states[i]=="可借"){
System.out.println("删除DVD成功");
int j=index;
for (;j<indexs.length;j++){
names[j]=names[j+1];
if (names[j]==null){
break;
}
}
}else {
System.out.println("该书籍已借出,不可删除");
}
}else {
System.out.println("未找到该DVD");
}
getreturn();
}
测试:
(4)定义借出DVD方法
代码:
private void methods04(){ //借出书籍方法
System.out.println("请输入要借的书籍名称:");
String dvdname=input.next();
boolean flag=false;
int i=0;
for (;i<names.length;i++){
if (dvdname.equals(names[i])){
flag=true;
break;
}
}
if (flag){
if (states[i]=="可借"){
System.out.println("请输入借出日期");
String date=input.next();
dates[i]=date;
states[i]="借出";
System.out.println("成功借出DVD");
}else {
System.out.println("该DVD已借出,不可再次借出");
}
}else {
System.out.println("未找到该DVD");
}
getreturn();
}
测试:
(5)定义归还DVD方法
代码:
private void methods05() throws ParseException { //归还书籍方法
System.out.println("请输入要归还的DVD名称");
String dvdname=input.next();
boolean flag=false;
int i=0;
for (;i<names.length;i++){
if (dvdname.equals(names[i])){
flag=true;
break;
}
}
if (flag){
if (states[i]=="可借"){
System.out.println("不是该店DVD,无法归还");
}else if(states[i]=="借出"){
System.out.println("输入归还日期");
String date1=dates[i];
String date2=input.next();
states[i]="可借";
dates[i]="";
System.out.println("归还DVD成功");
SimpleDateFormat s=new SimpleDateFormat("yyyy-mm-dd");
Date m1=s.parse(date1);
Date m2=s.parse(date2);
long time1=m1.getTime();
long time2=m2.getTime();
long money=(time2-time1)/(24*60*60*1000);
System.out.println("借出日期为:"+date1);
System.out.println("归还日期为:"+date2);
System.out.println("需要支付的租金为"+money+"元");
}
}else {
System.out.println("未找到该DVD");
}
getreturn();
}
测试:
(6)定义返回菜单
代码:
public void getreturn(){ //返回主菜单的方法
System.out.println("请输入0返回菜单");
int i=input.nextInt();
if (i==0){
mume();
}else
getreturn();
}
测试:
5.总代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class DVD {
int[] indexs=new int[50]; //定义数组
String[] names=new String[50];
String[] states=new String[50];
String[] dates=new String[50];
Scanner input=new Scanner(System.in);
public void init(){ //初始化
indexs[0]=1;//书的序号
indexs[1]=2;
indexs[2]=3;
names[0]="哈利波特";//书名
names[1]="全球通史";
names[2]="百年孤独";
states[0]="借出";//书的状态
states[1]="可借";
states[2]="可借";
dates[0]="2000-01-01";//书的借出日期
dates[1]="";//未借出则不填写
dates[2]="";
}
public void mume(){ //菜单
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.退 出");
System.out.println("*******************");
System.out.println("请选择:");
int index=input.nextInt();
switch (index){ //选择方法
case 1:
methods01();
case 2:
methods02();
case 3:
methods03();
case 4:
methods04();
case 5:
try {
methods05();
} catch (ParseException e) {
throw new RuntimeException(e);
}
case 6:
System.out.println("结束此系统");
System.exit(1);
}
}
public static void main(String[] args) { //main方法
DVD dvd=new DVD();
dvd.init();
dvd.mume();
}
private void methods01(){ //新增书籍方法
System.out.println("请输入要新增的DVD名称:");
String dvdname=input.next();
int i=0;
for (;i<names.length;i++){
if (names[i]==null){
indexs[i]=i+1;
names[i]=dvdname;
states[i]="可借";
dates[i]="";
System.out.println("添加《"+dvdname+"》成功");
break;
}
}
getreturn();
}
private void methods02(){ //查看书籍方法
System.out.println("序号\t名字\t\t状态\t日期");
for (int i=0;i<indexs.length;i++){
if (names[i]==null){
break;
}
System.out.println(indexs[i]+"\t"+names[i]+"\t"+states[i]+"\t"+dates[i]);
}
System.out.println("================");
getreturn();
}
private void methods03(){ //删除书籍方法
System.out.println("请输入要删除的DVD:");
String dvdname=input.next();
int i=0;
int index=0;
boolean flag=false;
for (;i<indexs.length;i++){
if (dvdname.equals(names[i])){
index=i;
flag=true;
break;
}
}
if (flag){
if (states[i]=="可借"){
System.out.println("删除DVD成功");
int j=index;
for (;j<indexs.length;j++){
names[j]=names[j+1];
if (names[j]==null){
break;
}
}
}else {
System.out.println("该书籍已借出,不可删除");
}
}else {
System.out.println("未找到该DVD");
}
getreturn();
}
private void methods04(){ //借出书籍方法
System.out.println("请输入要借的书籍名称:");
String dvdname=input.next();
boolean flag=false;
int i=0;
for (;i<names.length;i++){
if (dvdname.equals(names[i])){
flag=true;
break;
}
}
if (flag){
if (states[i]=="可借"){
System.out.println("请输入借出日期");
String date=input.next();
dates[i]=date;
states[i]="借出";
System.out.println("成功借出DVD");
}else {
System.out.println("该DVD已借出,不可再次借出");
}
}else {
System.out.println("未找到该DVD");
}
getreturn();
}
private void methods05() throws ParseException { //归还书籍方法
System.out.println("请输入要归还的DVD名称");
String dvdname=input.next();
boolean flag=false;
int i=0;
for (;i<names.length;i++){
if (dvdname.equals(names[i])){
flag=true;
break;
}
}
if (flag){
if (states[i]=="可借"){
System.out.println("不是该店DVD,无法归还");
}else if(states[i]=="借出"){
System.out.println("输入归还日期");
String date1=dates[i];
String date2=input.next();
states[i]="可借";
dates[i]="";
System.out.println("归还DVD成功");
SimpleDateFormat s=new SimpleDateFormat("yyyy-mm-dd");
Date m1=s.parse(date1);
Date m2=s.parse(date2);
long time1=m1.getTime();
long time2=m2.getTime();
long money=(time2-time1)/(24*60*60*1000);
System.out.println("借出日期为:"+date1);
System.out.println("归还日期为:"+date2);
System.out.println("需要支付的租金为"+money+"元");
}
}else {
System.out.println("未找到该DVD");
}
getreturn();
}
public void getreturn(){ //返回主菜单的方法
System.out.println("请输入0返回菜单");
int i=input.nextInt();
if (i==0){
mume();
}else
getreturn();
}
}
6.总结:
编写DVD管理系统时一定要有耐心,整理好思路,一步一步来,在每一个方法中要想清楚要写的东西,以及是否要用到选择语句,判断语句,循环语句。在每一个方法中变量和数组里的数据是如何变化的,一定要理清思路,理解着编写。