都是用的js,直接复制就可以看到效果
//定义一个图书类,通过类快速创建对象
class book{
constructor(id,name){
this.id=id
this.name=name
this.status=true
this.date=''
this.count=0
}
}
//创建图书信息数组
let books=[new book(1,'红楼梦'),new book(2,'西游记'),new book(3,'水浒传 '),new book(4,'三国演义'),]
//封装菜单
function showMenu(){
document.close() //让新输出的内容,覆盖之前的内容
document.write('<h3>欢迎使用图书管理系统</h3>')
document.write('<ol>')
document.write("<li onclick='showBooks()'>查看</li>")
document.write("<li onclick='newBooks()'>新增</li>")
document.write("<li onclick='batch()'>批量增加</li>")
document.write("<li onclick='lendBook()'>借出</li>")
document.write("<li onclick='returnBook()'>归还</li>")
document.write("<li onclick='removeBook()'>删除</li>")
document.write('</ol>')
document.write('<h3>点击上方文字,实现对应功能</h3>')
}
//图书信息
function showBooks(){
document.close()
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(let n=0;n<books.length;n++){
document.write('<tr>')
document.write(`<td>${books[n].id}</td>`)
document.write(`<td>${books[n].name}</td>`)
document.write(`<td>${books[n].status}</td>`)
document.write(`<td>${books[n].date}</td>`)
document.write(`<td>${books[n].count}</td>`)
document.write('</tr>')
}
document.write('</table>')
document.write('<button onclick="showMenu()">返回菜单</button>')
}
//封装增加图书方法
function addBook(bookName){
if(bookName==""){
alert('书名不可以为空')
}else if(bookName==null){
return
}else{
//数组的.some() 但凡有一个符合要求就返回true,都不符合返回false
let result=books.some(function(item){
return item.name==bookName
})
if(result){
alert(`${bookName}已经存在`)
}else{
books.push(new book(books.length+1,bookName))
alert(`${bookName}添加成功`)
}
}
}
//新增图书
function newBooks(){
//prompt(),弹出输入框,让用户输入,返回用户的输入
let bookName=prompt('请输入图书名称')
addBook(bookName)
}
//批量增加图书
function batch(){
let bookNames=prompt('请输入图书名称,多本书籍使用中文,隔开')
let arr=bookNames.split(',')
for(let n=0;n<arr.length;n++){
addBook(arr[n])
}
}
//借出图书
function lendBook(){
let bookName=prompt('请输入图书名称')
if(bookName==""){
alert('书名不可以为空')
}else if(bookName==null){
return
}else{
let bookIndex //存放每一个元素的索引值
let result=books.some(function(item,index){
if(item.name==bookName){
bookIndex=index
}
return item.name==bookName
})
if(result){
//可以借出
if(books[bookIndex].status){
books[bookIndex].status=false
let d=new Date()
let y=d.getFullYear()
let m=d.getMonth()+1
let day=d.getDate()
let h=d.getHours()
let min=d.getMinutes()
let s=d.getSeconds()
let str=`${y}年${m}月${day}日${h}时${m}分${s}秒`
books[bookIndex].date=str
books[bookIndex].count++
alert('借出成功')
}else{
alert('此书已被借出')
}
}else{
alert('没有这本书')
}
}
}
//归还图书
function returnBook(){
let bookName=prompt('请输入图书名称')
if(bookName==""){
alert('书名不可以为空')
}else if(bookName==null){
return
}else{
let bookIndex //存放元素的索引值
let result=books.some(function(item,index){
if(item.name==bookName){
bookIndex=index
}
return item.name==bookName
})
if(result){
//可以归还
if(books[bookIndex].status){
alert('此书没有被借出')
}else{
books[bookIndex].status='ture'
books[bookIndex].date=''
alert('归还成功')
}
}else{
alert('没有这本书')
}
}
}
//删除图书
function removeBook(){
let bookName=prompt('请输入图书名称')
if(bookName==""){
alert('书名不可以为空')
}else if(bookName==null){
return
}else{
let bookIndex //存放元素的索引值
let result=books.some(function(item,index){
if(item.name==bookName){
bookIndex=index
}
return item.name==bookName
})
if(result){
//可以删除
if(books[bookIndex].status){
books.splice(bookIndex,1)
alert('删除成功')
}else{
alert('此书已被借出,无法删除')
}
}else{
alert('没有这本书')
}
}
}
//显示菜单
showMenu()