Python作业(二)

张开发
2026/4/12 9:04:55 15 分钟阅读

分享文章

Python作业(二)
题目描述设计一个简单的图书借阅管理系统。系统初始包含若干本图书每本图书的信息包括书号字符串书名字符串作者字符串库存数量整数另外系统需记录借阅记录列表存储每笔借阅的字典。程序通过菜单实现以下功能查看所有图书以表格形式显示所有图书的书号、书名、作者、库存。借书输入书号和借阅数量如果库存足够则减少库存并添加一条借阅记录包含书号、书名、借阅数量、借阅日期可简化为当天日期字符串。如果库存不足提示失败。还书输入书号和归还数量增加对应图书的库存并从借阅记录中删除相应的借阅按先进先出原则或简单按书号匹配。若归还数量大于该书的借出总量则提示错误。查询某本书的借阅情况输入书号显示该书当前被借出的总数量和所有借阅记录的详情借阅数量、借阅日期。退出系统结束程序。要求数据初始化至少预置 3 本图书和若干条借阅记录可手动在代码中定义。菜单循环用户输入 1~5 选择功能。对用户输入做简单的有效性检查如书号不存在、数量非法等。参考代码python# 初始化图书库存books {B001: {name: Python编程, author: 张三, stock: 5},B002: {name: 数据结构, author: 李四, stock: 3},B003: {name: 算法导论, author: 王五, stock: 0}}# 初始化借阅记录borrow_records [{book_id: B001, book_name: Python编程, quantity: 1, date: 2026-03-25},{book_id: B002, book_name: 数据结构, quantity: 2, date: 2026-03-26}]from datetime import datetime books{ B001: {name: Python编程, author: 张三, stock: 5}, B002: {name: 数据结构, author: 李四, stock: 3}, B003: {name: 算法导论, author: 王五, stock: 0} } borrow_records[ {book_id: B001, book_name: Python编程, quantity: 1, date: 2026-03-25}, {book_id: B002, book_name: 数据结构, quantity: 2, date: 2026-03-26} ] str1 --- 图书借阅管理系统 --- 1. 查看所有图书 2. 借书 3. 还书 4. 查询某本书的借阅情况 5. 退出系统 请选择(1-5): ---------------------- while True: print(str1) chooseinput(请选择) if choose1: for book_id,info in books.items(): print(f书号{book_id},书名{info[name]},作者{info[author]},库存数量{info[stock]}本) elif choose2: book_idinput(请输入借阅书号) if book_id not in books: print(该图书不存在) continue while True: quantity_strinput(请输入借阅数量).strip() if quantity_str.isdigit(): quantityint(quantity_str) if quantity0: break print(请输入大于0的整数) book_infobooks[book_id] if book_info[stock]quantity: print(库存不足,借阅失败) continue book_info[stock]-quantity todaydatetime.now.strftime(%Y-%m-%d) new_record{ book_id:book_id, book_name:book_info[name], quantity:quantity, date:today } borrow_records.append(new_record) print(f借阅成功已借阅《{book_info[name]}》{quantity}本) elif choose3: book_idinput(请输入归还书号) if book_id not in books: print(该图书不存在) continue total_borrowedsum([r[quantity]for r in borrow_records if r[book_id]book_id]) if book_id0: print(该图书暂无借阅记录) continue while True: quantity_strinput(请输入归还数量).strip() if not quantity_str.isdigit(): print(请输入有效数字) continue quantityint(quantity_str) if quantity0: break print(请输入大于0的整数) if quantitytotal_borrowed: print(f归还数量不能超过借出数量{total_borrowed}本) continue books[book_id][stock]quantity quantity_1quantity new_record[] for record in borrow_records: if record[book_id]book_id and quantity_10: if record[quantity]quantity_1: quantity_1-record[quantity] else: record[quantity]-quantity_1 quantity_10 new_record.append(record) else: new_record.append(record) borrow_records[:]new_record print(f归还成功《{books[book_id][name]}》已归还{quantity}本) elif choose4: book_idinput(请输入要查询的书号) if book_id not in books: print(该图书不存在) continue book_records[r for r in borrow_records if r[book_id]] totalsum([r[quantity]for r in book_records]) print(f《{books[book_id][name]}》当前借阅总数{total}) if not book_records: print(暂无借阅记录) else: print(f{借阅数量}{借阅日期}) for r in book_records: print(f{r[quantity]}本{r[date]}) elif choose5: print(感谢使用图书借阅管理系统再见) else: print(请输入1-5间数字)

更多文章