都是用的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 οnclick='showBooks()'>查看</li>")

document.write("<li οnclick='newBooks()'>新增</li>")

document.write("<li οnclick='batch()'>批量增加</li>")

document.write("<li οnclick='lendBook()'>借出</li>")

document.write("<li οnclick='returnBook()'>归还</li>")

document.write("<li οnclick='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 οnclick="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()

Js迷你图书管理系统相关推荐

  1. java小项目图书管理系统_Java小项目迷你图书管理系统

    package迷你图书管理系统;importjava.util.Scanner;public classBookMgr {public static voidmain(String[] args) { ...

  2. 基于Node.js的图书管理系统

    1.创建顶级目录,初始化包 npm init -y 2.下载项目所需的依赖 npm install 包名 --save 3.创建入口文件index.js(图书管理系统) // 引入所需的依赖包 con ...

  3. JAVA面向对象小项目之迷你图书管理系统

    系统概述 为某图书馆开发一个迷你图书管理系统,实现图书的管理,包括如下功能: 1.新增图书 2.查看图书 删除图书 4.借出图书 5.归还图书 6.退出图书系统 整体开发思路 系统开发步骤 明确需求 ...

  4. JDBC+MYSQL图书馆,简单迷你图书管理系统练习小项目,实现查询,新增,修改,删除,退出功能。

    JDBC+MYSQL图书馆,简单迷你图书管理系统练习小项目,实现查询,新增,修改,删除,退出功能. 代码有一丢丢小多,最后有图解,讲的不对的地方希望各位大佬指出,对您有帮助的话请点个小小的赞. 题目与 ...

  5. Java小项目迷你图书管理系统

    package 迷你图书管理系统;import java.util.Scanner;public class BookMgr {public static void main(String[] arg ...

  6. 基于html+css+js的图书管理系统

    资源下载地址:https://download.csdn.net/download/sheziqiong/86771863 资源下载地址:https://download.csdn.net/downl ...

  7. 迷你图书管理系统(基础知识)

    使用数组实现图书管理:综合使用 Java变量,数组,选择结构,循环结构等知识实现图书管理. 一.功能分析: 1.新增图书: 用户能够向系统中添加新的图书,当图书库中没有位置储放图书时能够提示用户没有位 ...

  8. 迷你图书管理器1.2 - 面向对象+集合

    迷你图书管理器 author:luckyboy! version:1.2 知识储备:变量.数据类型.选择结构.循环结构.数组 .面向对象.集合 系统概述:为某图书馆开发一个迷你图书管理系统,实现图书的 ...

  9. 迷你图书管理器1.0 - 变量+数组

    迷你图书管理器 author:luckyboy! version:10 知识储备:变量.数据类型.选择结构.循环结构.数组 系统概述:为某图书馆开发一个迷你图书管理系统,实现图书的管理. 功能: 新增 ...

最新文章

  1. golang 得到 结构体 struct 标签 tag 内容 结构体中的``数据
  2. java getabsolutepath,详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别
  3. 又一批长事务,P0故障谁来背锅?
  4. 美国 otc 数字货币_美国数字公共图书馆的免费藏书量是第一年的三倍
  5. shell脚本发邮件内容html,Shell发送邮件以HTML展示
  6. Spring 系统学习:Spring的事务管理---事务回顾
  7. spss练习数据_动手练习SPSS因子分析啦,会不会做一动手就知道了
  8. 第29月第13天 程序员职业规划
  9. WinForm——MDI窗体
  10. excel如何把多张表合并成一个表_如何将多个 Excel 工作簿的工作表合并成一个工作表?...
  11. 欧姆龙PLC-小型PLC概述
  12. unit04-JavaScript
  13. arduino麦轮转弯程序_麦克纳姆轮全向轮战车程序精髓分享
  14. move是MySQL命令_MOVE命令_视频讲解_用法示例-redis编程词典-php中文网
  15. MQTT-mosquitto学习笔记
  16. 处理 /home/china/.vimrc 时发生错误: 第1行: E492: 不是编辑器的命令
  17. 博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
  18. 视频配音文字转语音怎么弄?介绍几种好用的方法给你
  19. 顶刊TPAMI 2021!南开大学提出深度霍夫变换:语义线检测新方法
  20. 将分开的微服务项目合到一个项目下面

热门文章

  1. E - Max Min(尺取(线性时间找包含两个数的区间有多少))
  2. 基于web的IT技术论坛
  3. 什么是 Merkle Pollard
  4. 管网gis系统 服务器,管网GIS系统可以实现什么功能
  5. 解决 iOS 上 transform rotate 兼容问题
  6. 接触NodeJs的一周
  7. PHP能获取word页数吗,PHP MS Word文件页数
  8. Win10+OpenCV无法正常读取USB摄像头数据解决方案
  9. “蔚来杯“2022牛客暑期多校训练营8 D题: Poker Game: Decision
  10. 支持向量机 4 模式识别的方法