找一些现成的代码参考下,比如
https://download.csdn.net/download/weixin_44893902/34867237
https://download.csdn.net/download/qq_37764320/23817331
https://download.csdn.net/download/CDWLX/13944575
https://download.csdn.net/download/weixin_42129797/19091125
https://download.csdn.net/download/m0_64795180/85177537
var books = [] //存储图书的数组
while (true) {
//令判断条件为true,构造一个死循环,让程序一直运行,
//因为咱们有alert()和prompt(),所以不用担心会出现无法控制的后果
var type = +prompt('1-添加,2-借书,3-还书,4-查看图书列表,5-退出')
if (type === 5) {
//5为退出,直接利用break跳出这个死循环
break
} else if (type === 1) {
var bookname = prompt('请输入图书名字')
if (bookname) {
//将图书名字和状态以狭义的对象的形式存入数组中,注意是以对象是以狭义的对象
books.push({
name: bookname,
isOut: false //如果为false则没有借出图书,在此程序中将用isOut表示图书状态
})
}
} else if (type === 4) {
//alert()只能输出字符串,所以需要将books数组中的所有元素转为字符串
var str = ''
books.forEach(function (item) {
//var str = ''
//放在这里是局部变量,在forEach()方法外面输出的话是undefined
str += '书名:' + item.name + ',' +' ' + '存在为true,不存在为false:' +item.isOut + '\n'
})
alert(str)
} else if (type === 2) {
var name = prompt('请输入图书名')
if (books.some(function (item) {
//先判断是否有这个图书
if (name === item.name) {
//再判断图书状态
if (!item.isOut) {
//把这本图书的状态改为true,
item.isOut = true
alert('图书存在,借书成功')
} else {
alert('图书已借出')
}
}
return item.name === name
})) {
// 在此什么都不用做,因为已经在条件的some()函数中,把该做的全做了
//如果不在some()函数中做,那么还要在此处多使用一个forEach()
//下面的还书部分就是没有在some()中做其他操作,而在条件成立后用了forEach()
//供大家比较参考
} else {
alert('此书不存在')
}
} else if (type === 3) {
var name = prompt('请输入图书名')
if (books.some(function (item) { return item.name === name})) {
books.forEach(function (item) {
if (name === item.name) {
if (item.isOut) {
//把这本图书状态改为false
item.isOut = false
alert('还书成功')
} else {
alert('图书未借出')
}
}
})
} else {
alert('此书不存在')
}
}
}
网上有很多关于图书管理系统的源码,建议直接搜索下载,然后基础这个源码,结合您自己的需求,稍作修改即可。
比如:SpringMVC图书管理系统.zip https://download.csdn.net/download/qq_37764320/23817331
基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】.zip https://download.csdn.net/download/weixin_44893902/34867237
这种XX管理系统挺常见的,去百度几个。然后根据项目里面的readme部署运行。