JavaScript 之 迷你图书管理系统

1,090 阅读6分钟

项目分析实现功能列表


实现查看图书信息

使用for循环,遍历每个数组元素信息,并进行显示。

(1)使用循环遍历名称数组,状态数组,借出日期数组和借出次数数组

(2)使用”数组名[i]”标示第i+1个图书信息,并行输出.

(3)点击返回主菜单,回到功能选择页面


实现新增图书信息

新增图书只需要将信息加入每个数组即可。

(1)需要用户输入新增图书名称,并把状态至于可借,借出次数为0

(2)向每个数组新增一条图书信息,实现新增图书信息,并在图书列表中可显示

(3)在新增数据前,先判断name在数组中是否存在,若存在给予用户提示重新输入图书名称。

实现批量添加图书信息

新增图书只需要将信息加入每个数组即可。

(1)需要用户输入新增图书名称,并把状态至于可借,借出次数为0

(2)向每个数组新增一条图书信息,实现新增图书信息,并在图书列表中可显示

(3)在新增数据前,先判断name在数组中是否存在,若存在给予用户提示重新输入图书名称。

实现批量添加图书信息

新增图书只需要将信息加入每个数组即可。

(1)需要用户输入新增图书名称,多个图书之间用;分隔。

(2)使用;将字符串分割为数组,循环添加图书;并把没本书的状态至于可借,借出次数为0

(2)添加完成之后,显示所有的图书信息。

(3)在新增数据前,先判断name在数组中是否存在,若存在不予添加

实现删除图书信息

(1)用户输入要删除图书的名称

(2) if判断当前图书的状态是否为“可借”如果是借出,则不能被删除

(3) If判断输入的图书名称如果找不到,提示相应信息

实现借出图书业务处理

用户可输入图书名称,根据图书名称找到该图书对应的数组位置。在状态数组去看状态是否为’true’,为true说明可借,反之则已借出,不能在借,并提示信息

(1)if判断输入图书名称是否存在在数组中,如果不存在,需提示用户

(2)如果为可借状态,那么完成借出操作后,更新状态为false(已借出),及借出次数+1,和填充借出日期

实现归还图书业务处理

找到该图书对应的数组位置,在状态数组将值置为true;
清空借出时间

(1)if判断输入图书名称是否存在在数组中,如果不存在,需提示用户

(2)如果归还成功,则把该图书的状态置为true(可借状态)

(3)清空借出时间

上代码:

<script>
	var arr=[{id:1,name:"红楼梦",state:"可借",time:"",sum:0},
                {id:2,name:"三国演义",state:"可借",time:"",sum:0},
                {id:3,name:"水浒传",state:"可借",time:"",sum:0}];
	function showMenu(){
		document.close();//执行之前将所有的内容先清屏;
		document.write("<h1>*******欢迎使用图书管理系统*******</h1>");
		document.write("<ol>");
		document.write("<li onclick='showBook()'>查看</li>");
		document.write("<li onclick='addBook()'>新增</li>");
		document.write("<li onclick='batchaddBook()'>批量添加书籍</li>");
		document.write("<li onclick='lendBook()''>借出</li>");
		document.write("<li onclick='backBook()'>归还</li>");
		document.write("<li onclick='deleteBook()'>删除</li>");
		document.write("</ol>");
		document.write("<h2>点击以上选项选择功能</h2>");
		document.write("<h1>**********************************</h1>");
	}
	showMenu();
//1.实现查看图书功能  定义一个可以显示所有图书的办法;   需要遍历数组
	function showBook(){
		document.write("<table border='1' cellspacing=0>");
		document.write("<tr>");
		document.write("<td>序号</td>");
		document.write("<td>名称</td>");
		document.write("<td>状态</td>");
		document.write("<td>借出日期</td>");
		document.write("<td>借出次数</td>");
		document.write("</tr>");
		for(var n=0;n<arr.length;n++){//写一个for循环,显示所有的图书
			document.write("<tr>");
			document.write("<td>"+arr[n].id+"</td>");
			document.write("<td>"+arr[n].name+"</td>");
			document.write("<td>"+arr[n].state+"</td>");
			document.write("<td>"+arr[n].time+"</td>");
			document.write("<td>"+arr[n].sum+"</td>");
			document.write("</tr>");
		}
		document.write("</table>");
		document.write("<button onclick='showMenu()'>返回主菜单</button>")
	}
//2.实现新增图书功能
	function addBook(){
		var bookName=prompt("请输入你要添加的书名");//新增书的名字
		for(var n=0;n<arr.length;n++){
			if (arr[n].name==bookName) {//先判断这本书是否存在
				alert("这本书已经存在了");
				return;//如果这本书已经存在了,函数直接停止;
			}
		}
		if (index==false) {
                        //如果书名不存在,新建一个对象,保存书的所有属性,然后放入数组中,
			var obj=new Object();
			obj.id=arr.length+1;
			obj.name=bookName;
			obj.state="可借";
			obj.time="";
			obj.sum=0;
			arr.push(obj);
		}
	}
//3.实现批量添加图书功能
	function batchaddBook(){
		var bookName=prompt("请输入书名,书名之间用分号;隔开");
		var bookarr=bookName.split(";");//先通过;将其分割成数组
		for(var n=0;n<bookarr.length;n++){//拿到数组中不同的书名
                //需要判断该书名是否存在于数组中,如果存在,则不放入,如果不存在,则放入数组中。
			var index=false;//利用变量假定这个书名不存在于数组中
			for(var j=0;j<arr.length;j++){
				if (arr[j].name==bookarr[n]) {//如果相等,证明该书存在于数组中
					alert("该书已经存在");
					index=true;
				}
			}
			if (index==false) {//如果index==false,证明书没存在,则放入对应的数组中
				var obj=new Object();
				obj.id=arr.length+1;
				obj.name=bookarr[n];
				obj.state="可借";
				obj.time="";
				obj.sum=0;
				arr.push(obj);
			}
		}
	}
//4.实现借出功能
	function lendBook(){
		var index=false;
		var bookName=prompt("请输入要借的书名");
		for(var n=0;n<arr.length;n++){
			if (arr[n].name==bookName) {
				index=true;//如果这本书是存在的,需要判定这本书是否已经被借出;
				if (arr[n].state=="可借") {//如果没有被借出,则更改属性;
					arr[n].state="已借出";
					var D=new Date();
					arr[n].time=D.getFullYear()+"-"+(D.getMonth()+1)+
                                                        "-"+D.getDate();
					arr[n].sum++;
				}else{
					alert("该书已经被借出");
				}
			}
		}
		if (index==false) {
				alert("对不起,没有这本书");
			}
	}
//5.实现归还图书功能
	function backBook(){
		var bookName=prompt("请输入你要归还的书的名字");
		var index=false;
		for(var n=0;n<arr.length;n++){
			if (arr[n].name==bookName) {
				index=true;
				arr[n].state="可借";
				arr[n].time="";
			}
		}
		if (!index) {
			alert("不是该馆的书");
		}
	}
//6.实现删除图书功能
	function deleteBook(){
		var bookName=prompt("请输入你要删除的书名");
		var index=false;
		for(var n=0;n<arr.length;n++){
			if (arr[n].name==bookName) {
				index=true;
				if (arr[n].state=="可借") {
					arr.splice(n,1);
                                               return;//不需要执行下边的代码,直接结束函数。
				}else{
					alert("该书已经被借出,不能被删除");
				}
			}
		}
		if (!index) {
			alert("对不起,找不到这本书");
		}
	}
</script>