跟着老师用java写了一个简单的“dvd管理系统”。好吧,实际就是 一个最low的考察逻辑关系的100多行代码(手动狗头)
下面是代码,适合刚开始学习java的小白阅览,其中每个功能的逻辑关系有好几种,读者可自由发挥想象力。注释很详细,就不一一解释了:
Dvdmanager.java
import java.util.Scanner;
public class Dvdmanager {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
// 准备工作
// 保存状态 0:已借出 1:可借
int[] states = new int[6];
// 保存dvd的名字
String[] names = new String[6];
// 借出日期
int[] dates = new int[6];
// 保存借出次数
int[] counts = new int[6];
//准备三本dvd
names[0]="阿丽塔";
states[0]=1; //可借
counts[0]=31;
//names: 整个数组
//names[i]: 数组中的第i个元素
names[1]="第一滴血";
states[1]=0; //已借出
dates[1]=12; //借出日期
counts[1]=20; //借出次数
names[2]="星球大战";
states[2]=1; //可借
counts[2]=22; //借出次数
int con=0;
do {
//循环体
//准备工作结束
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");
System.out.println("-------------------------------------");
System.out.println("请选择:");
//接收键盘输入的值
int choice=input.nextInt();
System.out.println("你输入的值是: "+choice);
switch (choice) {
case 1:
System.out.println("执行新增功能");
if (names[names.length-1]!=null) {
System.out.println("DVD货架已满,已无法增加DVD");
}
else {
System.out.println("请输入要新增的DVD名");
String name3 = input.next();
for (int i = 0; i < counts.length; i++) {
if (names[i]==null) {
names[i]=name3;
states[i]=1;
counts[i]=0;
System.out.println(name3+"添加成功!");
break;
}
if (names[i].equals(name3)) {
System.out.println("此DVD已存在,无需添加");
break;
}
}
}
break;
case 2:
System.out.println("执行查看功能");
//遍历输出数组中的内容
System.out.println("序号 状 态\t名称\t借出日期\t借出次数"); // \t 相当于8个空格
for (int i = 0; i < counts.length; i++) {
//判断dvd是否为空,如果是null,则不再循环
if(names[i] == null) {
break;//跳出循环
}
if(states[i]==1) {//可借
System.out.println((i+1)+"\t"+"可借"+"\t"+names[i]+"\t"+"\t"+counts[i]);
}else {
System.out.println((i+1)+"\t"+"已借出"+"\t"+names[i]+"\t"+dates[i]+"\t"+counts[i]);
}
}
break;
case 3:
System.out.println("执行删除功能");
System.out.println("输入要删除的DVD名");
int index2=-1;
String name2=input.next();
for (int i = 0; i < counts.length; i++) {
if(names[i]==null) {
break;
}
if (names[i].equals(name2)) {
index2=i;
break;
}
}
if(index2==-1) {
System.out.println("没有此书,删除失败");
}else {
if (states[index2]==0) {
System.out.println("此书已经被借出,无法删除");
}else {
for (int i = index2; i < counts.length; i++) {
if (names[i+1]==null||(i+1)==counts.length) {
names[i]=null;
System.out.println("删除成功!");
break;
}else {
names[i]=names[i+1];
states[i]=states[i+1];
counts[i]=counts[i+1];
dates[i]=dates[i+1];
}
}
}
}
break;
case 4:
System.out.println("执行借出功能");
System.out.println("请输出要借出的dvd的名字: ");
//接收键盘输入的信息
String name =input.next();
int index =-1;
//boolean f =false;
for (int i=0; i<counts.length; i++) {
//字符串比较不能用 ==
if (names[i] ==null) {
break;
}
//字符串比较不能用 ==
//null.equals()空指针异常
if (names[i].equals(name)) {
index =i;
//f= true;
break;
}
}
//根据index的值来判断是否有此DVD
if (index== -1) {//没有找到要借出的DVD
System.out.println("要借出的DVD:"+name+"不存在");
}else {//有要借出的DVD
//判断状态
if(states[index]==0) {
//dvd存在,但是已借出
System.out.println("此DVD已经借出,借出失败");
}else {//dvd存在,并且可借出
System.out.println("输入借出日期(1-31)");
dates[index]=input.nextInt();
counts[index]+=1;
states[index] =0;
System.out.println("借出成功");
}
}
break;
case 5:
System.out.println("执行归还功能");
System.out.println("请归还借出的dvd的名字: ");
//接收键盘输入的信息
String name1 =input.next();
int index1 = -1;
for (int i = 0; i < counts.length; i++) {
if (names[i]==null) {
break;
}
if (names[i].equals(name1)) {
if (states[i]==1) {
index1 = 1;
System.out.println("此dvd在本店内,你应该还错店了!");
break;
}else {
index1 = i;
states[i] = 1;
System.out.println("输入归还日期:");
int date = input.nextInt();
// 计算租金
int money=date-dates[index1];
// 借出日期归零
dates[index1]=0;
System.out.println(name1+"归还成功! 租金是:"+money);
break;
}
}
}
if (index1==-1) {
System.out.println("此店没有此DVD!你应该还错店了!");
}
break;
case 6:
System.out.println("执行退出功能");
System.exit(0);
break;
default:
System.out.println("输入不正确,请输入1---6");
break;
}
System.out.println("输入0返回");
con=input.nextInt();
} while (con==0);
}
}