图书借阅系统

package c.a.one;
import java.util.Scanner;//引入Scanner类

/**
 * 图书借阅系统
 * 具体业务请封装到方法里面
 * 
 * 1.使用数组保存信息
 * 名称,作家,是否可借状态,借出次数
 * 
 * 2.实现查看图书信息
 * 显示每个图书信息
 * 
 * 3.实现新增图书信息
 * 向各数组中存储相应的图书信息
 * 如果已经存储了6个图书则提示用户货架已满
 * 
 * 难点分析
 * 定位新增位置
 * 插入图书信息,状态为“可借”
 * 
 * 4.实现删除图书信息
 * 按照输入的名称,删除指定图书信息
 * 删除借出状态的图书,给出相应指示
 * 删除不存在的图书,给出相应提示
 * 
 * 思路分析
 * 查找要删除的元素
 * 通过把后面的元素依次前移,实现删除
 * 最后一个不为空元素置空
 * 
 * 5.实现借出图书业务处理
 * 按照输入出名称,借出指定图书,改变图书状态
 * 若该图书已借出,给出相应提示
 * 若没有该图书,给出相应提示
 * 
 * 思路分析
 * 查找要借出图书
 * 判断是否存在
 * 判断是否借出
 * 如果可借,则修改state值并且借出次数加1
 * 
 * 6.实现归还图书业务处理
 * 实现归还图书,并计算租金(1天2元)
 * 如果用户输入的天数大于31或者小于借出日期将提示用户重新输入
 * 如果归还未借出的图书,不存在的图书或者归还图书的时间不合理
 * 则分别给出相应提示
 * 
 * 思路分析
 * 判断是否存在
 * 判断是否未借出
 * 判断用户输入的归还日期
 * 如果已借出,修改state值,并计算和输出租金
 * */
	public class a59 {
		static Scanner $$=new Scanner(System.in);
		//获取静态Scanner对象,用来支持用户接收信息功能
		static String[] min={"过去","现在","明天","昨天","后天"};
		//静态类书名
		static String[] xinm={"李四","王五","赵六","孙一","狗八"};
		//静态类作者名
		static int[] kejie={1,1,2,2,1,2};
		//借书状态:1.可借 2.不可借
		static int[] cisu={10,10,10,20,30,20};
		//累计借出次数
	
		//主方法
			public static void main(String[] args){
				while(true){
						String a=dengl();
						//调用登录方法
					if("失败".equals(a)){
						//验证登录方法返回的值
						System.out.println("登录失败");
						continue;
						//跳出本次循环,执行下一次
					}else if("成功".equals(a)){
						//验证登录方法返回的值
						System.out.println("登录成功");
							while(true){
								zhucai();
								//调用主菜单方法
								int  b=$$.nextInt();
								//输入菜单编号
								if(b==1){
									chakan(min,xinm,kejie,cisu);
									//调用查看方法
								}else if(b==2){
									xinzeng();
									//调用新增方法
								}else if(b==3){
									shanchu();
									//调用删除方法
								}else if(b==4){
									jiechu();
									//调用借书方法
								}else if(b==5){
									guihuan();
									//调用归还方法
								}
							}
					}
				}
			}
			
			//登录界面
			public static String dengl(){
				String a="dpf";//用户名
				String b="123456";//密码
				String c="失败";
				System.out.println("请输入用户名");
				String e=$$.next();
				//输入用户名
				System.out.println("请输入密码");
				String f=$$.next();
				//输入密码
				if(a.equals(e)&&b.equals(f)){
					//验证用户名和密码是否相同
					c="成功";
				}
				return c;
				//返回字符串c
			}
			
			//主菜单
			public static void zhucai(){
				System.out.println("欢迎来到图书馆管理系统");
				System.out.println("1.查看图书信息");
				System.out.println("2.增加图书");
				System.out.println("3.删除图书");
				System.out.println("4.借出图书");
				System.out.println("5.归还图书");
				System.out.println("6.退出");
				System.out.println("请选择菜单编号");
			}
			

			//实现查看图书信息
			public static void chakan(String[] a,String[] b,int[]c,int[]d){
				System.out.println("书名-------作者-------状态-------次数");		
				//打印图书信息
				for(int i=0;i<a.length;i++){
					String e="不可借";
					//声明并赋值字符串e
					if(c[i]==1){
						//比较c[i]是否等于1
						e="可借";
						//如果是,把“可借”赋值给e
					}	
					System.out.println(a[i]+"--------"+b[i]+"--------"+e+"--------"+d[i]);
					//打印图书信息
				}
			}
			
			//实现新增图书信息
			public static void xinzeng(){
				if(min.length>=6){
					//比较图书数组是否长度是6
					System.out.println("书架已满");
				}else{
					System.out.println("请输入书名");
					String a=$$.next();
					//请输入书名
					System.out.println("请输入作者");
					String b=$$.next();
					//请输入作者
					int c=1;
					for(String x:min){
						//遍历循环输出图书名
						if(x.equals(a)){
							//比较x和a是否相同
							c=2;
						}	
						}
					if(c==1){
						String[] min1=new String[min.length+1];
						//声明新图书名数组长度
						 String[] xinm1=new String[xinm.length+1];
						//声明新作者名数组长度
						 int[] kejie1=new int[kejie.length+1];
						//声明新图书可借状态数组长度
						 int[] cisu1=new int [cisu.length+1];
						//声明新图书次数数组长度
						for(int i=0;i<min.length;i++){
							//给新数组赋原来的值
							min1[i]=min[i];
							//给新增图书名赋值
							xinm1[i]=xinm[i];
							kejie1[i]=kejie[i];
							cisu1[i]=cisu[i];
						}
						min1[min1.length-1]=a;
						//给新增图书作者赋值
						xinm1[xinm1.length-1]=b;
						//给新增图书作者赋值
						kejie1[kejie1.length-1]=1;
						//给新增图书可借状态赋值
						cisu1[cisu1.length-1]=0;
						//给新增图书次数赋值
						System.out.println("增加成功!增加的书名是"+a);
						chakan(min1,xinm1,kejie1,cisu1);
						//把新数组调回到查看图书信息的方法中
					}else{
						System.out.println("书名已存在");
					}
					}
				}
			
			//实现删除图书信息
			public static void shanchu(){
				System.out.println("请输入要删除的书名");
				String a=$$.next();
				//输入要删除的书名
				 int f=0;
				 //记录要删除书名的位置
				 int g=1;
				 //证明是否相同
				 for(int i=0;i<min.length;i++){
						if(min[i].equals(a)){
							//如果a和min[i]相同
								f=i;
								//确认删除的位置是i
								g=2;
							}
						}
				 if(g==2){
							String[] min1=new String[min.length-1];
							//声明新图书名数组长度
							String[] xinm1=new String[xinm.length-1];
							//声明图书作者名数组长度
							int[] kejie1=new int[kejie.length-1];
							//声明可借状态数组长度
							int[] cisu1=new int [cisu.length-1];
							//声明图书次数数组长度
						 for(int i=0;i<min1.length;i++){
							 if(i<f){
								 //如果删除的元素位置小于新数组位置
								 min1[i]=min[i];
								 //原数组的图书名赋值给新数组
								xinm1[i]=xinm[i];
								//原数组的作者名赋值给新数组
								kejie1[i]=kejie[i];
								//原数组的可借状态赋值给新数组
								cisu1[i]=cisu[i];
								//原数组的次数赋值给新数组
							 }else if(i>=f){
								// 如果删除元书素位置大于或等于新数组位置
								 min1[i]=min[i+1];
								 //原图书信息数组位置加一赋值给新数组
									xinm1[i]=xinm[i+1];
									 //原作者名数组位置加一赋值给新数组
									kejie1[i]=kejie[i+1];
									 //原可借状态数组位置加一赋值给新数组
									cisu1[i]=cisu[i+1];
									 //原次数数组位置加一赋值给新数组
							 }
						 }
						 System.out.println("删除成功");
							chakan(min1,xinm1,kejie1,cisu1);
							//把新数组信息的值返回到查看图书信息的方法中
				 }else if(g==1){
					 System.out.println("此书不存在");
					}

			}
			
			//实现借出图书业务处理
			public static void jiechu(){
				System.out.println("请输入借书的名字");
				String a=$$.next();
				//输入借书信息
				String b="ok";
				//用来作比较
				for(int i=0;i<min.length;i++){
					if(min[i].equals(a)){
						//如果min[i]和a相同
						if(kejie[i]==1){
							//如果可借状态是1
							b="图书可借";
							//b的值为图书可借
							kejie[i]=2;
							//可借状态为2
							cisu[i]+=1;
							//可借次数加1
						}else {
							b="抱歉图书已经被借出";
						}
					}
				}
				if("图书可借".equals(b)){
					//如果b是图书可借
					System.out.println(a+"借出成功");
				}else{
					System.out.println(b);
				}
				chakan(min,xinm,kejie,cisu);
				//把新数组信息的值返回到查看图书信息的方法中
			}
			
			//实现归还图书业务处理
			public static void guihuan(){
				System.out.println("请输入还书的名字");
				String a=$$.next();
				//输入还书的名字
				for(int i=0;i<min.length;i++){
					if(min[i].equals(a)){
						//如果min[i]和a相同
						if(kejie[i]==2){
							//如果可借状态是2
							System.out.println("请输入租借天数");
							int e=$$.nextInt();
							//请输入租借天数
							if(e<31||e<1){
								//比较一个月最多的天数或最小天数
								kejie[i]=1;
								//可借状态是1
									System.out.println(a+"已还,"+"租金是:"+(e*2.0)+"元");
								}else{
									System.out.println("没有此书或者已还");
								}
					}else{
						System.out.println("没有此书或者已还");
					}
				}
				chakan(min,xinm,kejie,cisu);
				//把新数组信息的值返回到查看图书信息的方法中
			}
	
			}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值