Js迷你图书管理系统
都是用的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迷你图书管理系统相关推荐
- java小项目图书管理系统_Java小项目迷你图书管理系统
package迷你图书管理系统;importjava.util.Scanner;public classBookMgr {public static voidmain(String[] args) { ...
- 基于Node.js的图书管理系统
1.创建顶级目录,初始化包 npm init -y 2.下载项目所需的依赖 npm install 包名 --save 3.创建入口文件index.js(图书管理系统) // 引入所需的依赖包 con ...
- JAVA面向对象小项目之迷你图书管理系统
系统概述 为某图书馆开发一个迷你图书管理系统,实现图书的管理,包括如下功能: 1.新增图书 2.查看图书 删除图书 4.借出图书 5.归还图书 6.退出图书系统 整体开发思路 系统开发步骤 明确需求 ...
- JDBC+MYSQL图书馆,简单迷你图书管理系统练习小项目,实现查询,新增,修改,删除,退出功能。
JDBC+MYSQL图书馆,简单迷你图书管理系统练习小项目,实现查询,新增,修改,删除,退出功能. 代码有一丢丢小多,最后有图解,讲的不对的地方希望各位大佬指出,对您有帮助的话请点个小小的赞. 题目与 ...
- Java小项目迷你图书管理系统
package 迷你图书管理系统;import java.util.Scanner;public class BookMgr {public static void main(String[] arg ...
- 基于html+css+js的图书管理系统
资源下载地址:https://download.csdn.net/download/sheziqiong/86771863 资源下载地址:https://download.csdn.net/downl ...
- 迷你图书管理系统(基础知识)
使用数组实现图书管理:综合使用 Java变量,数组,选择结构,循环结构等知识实现图书管理. 一.功能分析: 1.新增图书: 用户能够向系统中添加新的图书,当图书库中没有位置储放图书时能够提示用户没有位 ...
- 迷你图书管理器1.2 - 面向对象+集合
迷你图书管理器 author:luckyboy! version:1.2 知识储备:变量.数据类型.选择结构.循环结构.数组 .面向对象.集合 系统概述:为某图书馆开发一个迷你图书管理系统,实现图书的 ...
- 迷你图书管理器1.0 - 变量+数组
迷你图书管理器 author:luckyboy! version:10 知识储备:变量.数据类型.选择结构.循环结构.数组 系统概述:为某图书馆开发一个迷你图书管理系统,实现图书的管理. 功能: 新增 ...
最新文章
- golang 得到 结构体 struct 标签 tag 内容 结构体中的``数据
- java getabsolutepath,详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别
- 又一批长事务,P0故障谁来背锅?
- 美国 otc 数字货币_美国数字公共图书馆的免费藏书量是第一年的三倍
- shell脚本发邮件内容html,Shell发送邮件以HTML展示
- Spring 系统学习:Spring的事务管理---事务回顾
- spss练习数据_动手练习SPSS因子分析啦,会不会做一动手就知道了
- 第29月第13天 程序员职业规划
- WinForm——MDI窗体
- excel如何把多张表合并成一个表_如何将多个 Excel 工作簿的工作表合并成一个工作表?...
- 欧姆龙PLC-小型PLC概述
- unit04-JavaScript
- arduino麦轮转弯程序_麦克纳姆轮全向轮战车程序精髓分享
- move是MySQL命令_MOVE命令_视频讲解_用法示例-redis编程词典-php中文网
- MQTT-mosquitto学习笔记
- 处理 /home/china/.vimrc 时发生错误: 第1行: E492: 不是编辑器的命令
- 博通Broadcom SDK源码学习与开发1——SDK源码探究与Cable Modem 系统编译
- 视频配音文字转语音怎么弄?介绍几种好用的方法给你
- 顶刊TPAMI 2021!南开大学提出深度霍夫变换:语义线检测新方法
- 将分开的微服务项目合到一个项目下面
热门文章
- E - Max Min(尺取(线性时间找包含两个数的区间有多少))
- 基于web的IT技术论坛
- 什么是 Merkle Pollard
- 管网gis系统 服务器,管网GIS系统可以实现什么功能
- 解决 iOS 上 transform rotate 兼容问题
- 接触NodeJs的一周
- PHP能获取word页数吗,PHP MS Word文件页数
- Win10+OpenCV无法正常读取USB摄像头数据解决方案
- “蔚来杯“2022牛客暑期多校训练营8 D题: Poker Game: Decision
- 支持向量机 4 模式识别的方法