java基础(7.16上午代码-锻炼最基本逻辑关系,编程思维)

跟着老师用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);
		
		



	}

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值