使用控制台输入输出来制作图书在线管理系统

1. 初始化ts

yarn init -y
tsc --init

2. 在tsconfig.json文件中配置

1. 配置include项
{
    "include":['./src/**/*']
}
2. 配置输出文件
outdir:'dist'

3. 在src目录下创建types目录,里面放接口约束

export default interface Ibook{
    isbn:string
    bookName:string
    price:number
    status:boolean
    auth:string
}

4. 在src目录下创建业务目录:business,里面放业务(CRUD)

类中使用private,public访问符来进行限定

1. 导入接口
import Ibook from "../types/ibook";
2. 创建OnLineBookLib类
export default class OnLineBookLib{
    private _books!:Array<Ibook>
    (1):构造函数完成初始化操作
    constructor(){
        this._books = [
           { isbn:'1001',
            bookName:'红楼梦',
            status:true,
            price:100,
            auth:'曹雪芹'
           }
        ]
    }
    (2):列表显示
    public bookList(){
        if(this._books.length == 0){
            return '暂无数据'
        }else{
          return  this._books.map(item=>`${item.isbn}\t${item.bookName}\t${item.status?'可借':'已借出'}\t${item.price}\t${item.auth}\n`).join('')
        }
    }
    (3):增加图书
    //增加书籍
    public addBook(book:Ibook):void{
        this._books.push(book)
    }
    (4):删除图书
    // 删除书籍
    public delBook(isbn:string){
        let idx = 0
        this._books.forEach((item,index)=>{
            if(item.isbn === isbn){
                idx=index
            }
        })
        this._books.splice(idx,1)
    }
}

5. 在src目录先配置index基础文件

  1. 安装readline模块
yarn add readline-sync
  1. 安装@types/node
npm i --save-dev @types/node
  1. 导入OnLineBookLib类,因为需要使用类中的定义的增加,删除,借阅图书的方法
import OnLineBookLib from './business/OnLineBookLib'
  1. 定义一个函数用来作为UI函数,展示业务

为保证业务的循环,则需要使用while来循环业务

function initUI(){
}
while(true){
    initUI()
}
  1. 在函数定义业务Ui展示
function initUI(){
    console.log('-------蜗牛图书管理系统------------');
    console.log('1、书籍列表');
    console.log('2、增加书籍');
    console.log('3、删除书籍');
    console.log('4、借阅书籍');
    console.log('请选择业务');
}
while(true){
    initUI()
}
  1. 调用redaline进行输出台的输出与输入

这里注意的是switch接收number类型:使用~~位运算符,就是取整

function initUI(){
     let op:number = ~~readline.question()
    switch(op){
        case 1:
            console.log('蜗牛在线图书系统>书籍列表');
            console.log(obl.bookList());
            break;
        case 2:
            console.log('蜗牛在线图书系统>增加书籍');
            console.log('请输入编号:');
            let isbn = readline.question()
            console.log('请输入名称:');
            let bookName = readline.question()
            console.log('请输入价格:');
            let price = readline.question()
            console.log('请输入作者:');
            let auth = readline.question()
            let book = {isbn,bookName,price,auth,status:true}
            try {
                obl.addBook(book)
                break;
            } catch (error) {
                console.log('增加失败',error);
                break;
            }
        case 3:
            console.log('蜗牛在线图书系统>删除书籍');
            console.log('请输入编号:');
            let isbn2 = readline.question()
            try {
                obl.delBook(isbn2)
                console.log('删除成功');
                break;
            } catch (error) {
                console.log('删除失败');
                break;
            }
        case 4:
            console.log('蜗牛在线图书系统>借阅书籍');
            console.log('请输入编号')
            let isbn3 = readline.question()
            try {
                obl.rentBook(isbn3)
                console.log('借阅成功');
                break;
            } catch (error) {
                console.log('借阅失败',error);
                break;
            }
        default:
            console.log('输入标号有误,请检查');
            break;
    }
}
while(true){
    initUI()
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值