基于python实现图书管理系统
作者:昇柱 发布时间:2022-11-28 05:46:42
标签:python,图书管理系统
本文实例为大家分享了python实现图书管理系统的具体代码,供大家参考,具体内容如下
添加新书
查询
借阅
二次添加新书(读取已有的.xls并修改)
代码:
import xlwt
import xlrd
def read_old_data(row0_len):
try:
filename=".\图书.xls"
old_data = []#读取表格已有内容
data = xlrd.open_workbook(filename)
sheet0 = data.sheet_by_index(0)
nrows = sheet0.nrows #获取该sheet中的有效行数
print("Info:读取到已有数据表格")
print("有效行数:",nrows)
for i in range(nrows):
for j in range(row0_len):
old_data.append(sheet0.cell(i,j).value)
print("共有旧的数据:",len(old_data))
except IOError:
print("Info: 没有找到文件或读取文件失败/n1 =>新建图书.xls文件")
nrows=0
return old_data,nrows
def new_book():
book = []
print_value=("书名","作者","编号","位置","数量")
row0_len=len(print_value)#列数
input_value=''
'''
try:
'''
(old_data,nrows)=read_old_data(row0_len)
#打开存储
book_excel = xlwt.Workbook()
sheet1 = book_excel.add_sheet("books",cell_overwrite_ok=0)
#写入旧数据:
for i in range(nrows):
for j in range(row0_len):
sheet1.write(i,j,old_data[(i*row0_len)+j])
while(1):
print("添加新书")
#输入
for i in range(row0_len):
print("请输入:"+print_value[i])
input_value = input()
#判断是否输出
if(input_value == 'q'):
book_excel.save("图书.xls")
return
book.append(input_value)
#保存到硬盘
for i in range(row0_len):
sheet1.write(nrows,i,book[i])
nrows=nrows+1
book=[]#清空book缓存
return
def search():
#打开excel
book_excel = xlrd.open_workbook("图书.xls")
sheet1 = book_excel.sheets()[0]
book_num =sheet1.nrows
#while(1):
#输入书名
bookname = input("请输入书名:")
find_flag=0
#查找
for i in range(book_num):
if(bookname == sheet1.cell_value(i,0)):
if(int(sheet1.cell_value(i,4))>0):
find_flag=1
print("书名:",sheet1.cell_value(i,0))
print("作者:",sheet1.cell_value(i,1))
print("位置:",sheet1.cell_value(i,3))
print("库存(本):",sheet1.cell_value(i,4))
return
if(find_flag==1):
print("查无此书。")
return
def borrow():
#打开excel
book_excel =xlrd.open_workbook("图书.xls")
sheet1 = book_excel.sheets()[0]
book_num = sheet1.nrows
row0_len=5#5列
while(1):
#输入书名
bookname = input("请输入书名:")
if(bookname == 'q'):
return
#查找
for i in range(0,book_num):
if(bookname == sheet1.cell(i,0).value):
kucun=int(sheet1.cell_value(i,4))
if(kucun>0):
(old_data,nrows)=read_old_data(row0_len)#5列
book_excel_w = xlwt.Workbook("图书.xls")
sheet2 = book_excel_w.add_sheet("books",cell_overwrite_ok=True)
#写入旧数据:
for n in range(nrows):
for j in range(row0_len):
sheet2.write(n,j,old_data[(n*row0_len)+j])
print("借到了!")
sheet2.write(i,4,str(kucun-1))
print("剩余库存:",kucun-1)
book_excel_w.save("图书.xls")
break
return
def main_window():
while(1):
print("\n====图书管理系统====")
print("1.新书加入")
print("2.书籍查询")
print("3.图书借阅")
print("========4退出=======")
x= (input("请输入你的操作"))
print('\n')
if(x == '1'):
new_book()
elif(x=='2'):
search()
elif(x=='3'):
borrow()
elif(x=='4'):
break
else:
print("输入无效")
return
main_window()
来源:https://blog.csdn.net/weixin_45568186/article/details/115712025


猜你喜欢
- 如下所示:import numpy as npimport pandas as pdfrom pandas import Sereis, D
- 1、安装setuptools命令如下:wget --no-check-certificate https://pypi.python.org
- 一、构造函数 __init__ 与__new____new__ 作用: 创建对象,并分配内存__init__ 作用: 初始化对
- 本文实例主要实现Python中的文件复制操作,有两种方法,具体实现代码如下所示:#coding:utf-8 # 方法1:使用read()和w
- 前言PyEMD是经验模态分解 (EMD)及其变体的Python实现,EMD最流行的扩展之一是集成经验模态分解 (EEMD),它利用了噪声辅助
- URL完全匹配(具体的url)/indexURL模糊匹配(你根本就不知道index后面是什么,它根本不会返回参数)/index/\dURL带
- 前言删除列表中的元素十分简单,有很多方法。使用最多的是remove方法,remove() 方法从集合中删除指定的元素。此方法与discard
- Django的数据库层从Python代码生成SQL schemas—但是对于遗留数据库,你已经拥有SQL schemas. 这种情况,你需要
- 看看下面:function zr4(y)' 准备数据dim z(10)z(1)="ONE&q
- 本文实例讲述了JavaScript使用setTimeout实现延迟弹出警告框的方法。分享给大家供大家参考。具体如下:先给大家展示一个延迟/定
- 本文为大家分享了python3.5.1安装教程的具体步骤,供大家参考,具体内容如下首先,找到python下载的地址,如下图所示在这里我选择了
- 分析摩斯密码是一种将文本信息作为一系列通断的音调、灯光或咔嗒声传输的方法,无需特殊设备,熟记的小伙伴即可直接翻译。它以电报发明者Samuel
- 前言许多 Go 初学者在方法 * 的选择上可能会感到困惑,不知道该选择值 * 还是指针 * 。本文将会对方法 * 进行介
- 本文介绍了python opencv之SIFT算法示例,分享给大家,具体如下:目标:学习SIFT算法的概念 学习在图像中查找SIFT关键的和
- 用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”\u***”的格式,如果想汉字不进行转码,这里提
- plotly 的 Python 软件包是一个开源的代码库,它基于 plot.js,而后者基于 d3.js。我们实际使用的则是一个对 plot
- 本文实例讲述了MySQL联合索引。分享给大家供大家参考,具体如下:员工表 userid部门表 deptid员工部门表条件:一个员工可以对应多
- 下面先给大家介绍下python获取酷狗音乐top500的下载地址 MP3格式,具体代码如下所示:# -*- coding: utf-8 -*
- Django配置文件settings简单说明,包含时区语言等打开创建好的django工程,查看settings.py文件BASE_DIR =
- max pooling是CNN当中的最大值池化操作,其实用法和卷积很类似有些地方可以从卷积去参考【TensorFlow】 tf.nn.con