用户借书要求从书库里面删除,单独存储,不能还其他用户借的书,以及还没有借过的书,代码怎么实现
时间: 2024-03-22 09:37:46 浏览: 26
以下是一个简单的Python代码示例,用于实现用户借书要求从书库里面删除,单独存储,不能还其他用户借的书,以及还没有借过的书的功能。该示例使用了SQLite数据库,用于存储图书馆库存和借阅记录信息。
```python
import sqlite3
from datetime import datetime
# 连接数据库
conn = sqlite3.connect('library.db')
cursor = conn.cursor()
# 创建库存表格
cursor.execute('''CREATE TABLE IF NOT EXISTS stock
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
author TEXT NOT NULL,
borrowed INTEGER NOT NULL DEFAULT 0)''')
# 创建借阅记录表格
cursor.execute('''CREATE TABLE IF NOT EXISTS borrow
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
borrower TEXT NOT NULL,
borrow_time TEXT NOT NULL,
return_time TEXT,
FOREIGN KEY (name) REFERENCES stock (name))''')
# 借书功能
def borrow_book(name, borrower):
# 判断该书籍是否已经被借阅
cursor.execute('''SELECT borrowed FROM stock WHERE name = ?''', (name,))
borrowed = cursor.fetchone()
if borrowed[0]:
print('该书籍已经被借出')
return
# 增加借阅记录
borrow_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
cursor.execute('''INSERT INTO borrow (name, borrower, borrow_time) VALUES (?, ?, ?)''', (name, borrower, borrow_time))
conn.commit()
# 更新库存信息
cursor.execute('''UPDATE stock SET borrowed = 1 WHERE name = ?''', (name,))
conn.commit()
print('借书成功')
# 还书功能
def return_book(name):
# 判断该书籍是否已经被借阅
cursor.execute('''SELECT borrowed FROM stock WHERE name = ?''', (name,))
borrowed = cursor.fetchone()
if not borrowed[0]:
print('该书籍未被借出')
return
# 更新借阅记录
return_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
cursor.execute('''UPDATE borrow SET return_time = ? WHERE name = ? AND return_time IS NULL''', (return_time, name))
conn.commit()
# 更新库存信息
cursor.execute('''UPDATE stock SET borrowed = 0 WHERE name = ?''', (name,))
conn.commit()
print('还书成功')
# 添加图书
cursor.execute('''INSERT INTO stock (name, author) VALUES (?, ?)''', ('Python编程从入门到实践', 'Eric Matthes'))
cursor.execute('''INSERT INTO stock (name, author) VALUES (?, ?)''', ('流畅的Python', 'Luciano Ramalho'))
conn.commit()
# 借书
borrow_book('Python编程从入门到实践', '张三')
# 再次借同一本书
borrow_book('Python编程从入门到实践', '李四')
# 借其他书籍
borrow_book('流畅的Python', '王五')
# 还书
return_book('Python编程从入门到实践')
```
在该示例代码中,借书功能和还书功能分别由`borrow_book`和`return_book`函数实现。在借书功能中,首先判断该书籍是否已经被借阅,如果已经被借阅,则返回错误信息;否则,增加借阅记录,更新库存信息,并返回借书成功的信息。在还书功能中,首先判断该书籍是否已经被借阅,如果未被借阅,则返回错误信息;否则,更新借阅记录,更新库存信息,并返回还书成功的信息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)