随着现在时代得发展,信息得保护与安全都极为重要,很多企业,公司,学校都采用了信息化的管理,这样能够使得管理工作方便快捷、高效。特别是图书馆的管理工作繁多,使用图书管理系统不仅可以实现信息的高效管理和共享,更能使图书管理工作更加规范化、标准化、科学化和现代化,构建该系统主要是为了方便用户使用,要求界面良好、针对性强、对系统信息的"查插删改“;能够提供良好的信息安全保护机制。
包括图书的查看,添加,删除,借阅等功能,还有用户注册,用户登录,限制了每个用户只有三次输入密码的机会,三次错误后会自动离开系统
系统功能包括增删改查,为了让代码更简洁将每一部分功能都用函数封装了起来,这样不仅方便修改,还能明确直到错误出现的地方。还能将代码隐藏起来在以后用户交付时暴露更少的代码。为了方便用户的使用,将常用的函数包装成主函数更方便。
查询图书主要代码:
def checkBook(self, name): # name是返回值
for book in self.books:
if book.name == name: # 如果借阅书的名称在已有的图书中,返回书的名称,否则为空
return book
else:
return None
5,删除图书功能测试
删除图书主要代码:
def deleteBook(self):
a = input("请输入要删除图书的名字")
b = self.checkBook(a)
if b != None:
self.books.remove(b)
print("删除成功")
else:
print("查无此书,请输入正确的书籍名称")
添加图书主要代码:
def addBook(self):
name = input('图书名称:')
self.books.append(Book(name, input('作者:'), 1, input('存储位置:')))
print('图书《%s》添加成功' % name)
借阅图书主要代码:
def borrowBook(self):
name = input('借阅图书名称: ')
ret = self.checkBook(name)
print(ret)
if ret != None:
if ret.status == 0: # 如果书籍的状态为0,说明此书已借出
print('书籍《%s》已经借出' % name)
else:
ret.status = 0 ##借出后显示书籍的状态为0
print('书籍《%s》借阅成功' % name)
else:
print('书籍《%s》不存在' % name)
归还图书主要代码:
def returnBook(self):
name = input('归还图书名称:')
ret = self.checkBook(name)
if ret != None:
if ret.status == 0:
ret.status = 1
print('书籍《%s》归还成功' % name)
print(ret)
else:
print('书籍《%s》未借出' % name)
else:
print('书籍《%s》不存在' % name)
其中遇到最多的问题就是语法问题,很多地方都是语法用错导致的错误,就例如删除列表中的元素,虽然有几种方法但是最适合的还是remove方法,看了别人使用的方法后,才明白把函数封装成主函数就不用一直使用循环占用资源了,不仅有更快的速度,而且代码看起来更简洁,使用起来也更方便。有很多不会的语法,以及进程运行中爆出的错误,都是直接在网络上寻找答案,很多我的问题都早就有人遇见过了,通过借鉴别人的经验,就能够解决这样的问题。
最后附上全部代码:
class User:
def __init__(self):
self.usr_info = {"me": "123456", "my": "123456"}
def register(self): # 定义注册方法
print("<注册模式>".center(50, "*"))
usr = input("请输入用户名:")
pwd = input("请输入密码:")
if usr in self.usr_info.keys():
print("该用户已被注册,请重新输入新用户名!")
self.register()
else:
self.usr_info[usr] = pwd
print("注册成功,您的登录用户名是:%s 密码是:%s," % (usr, pwd))
x = input("是否使用新用户名密码登录?登录请输入1,退出请输入2:")
if x == "1":
self.login()
else:
print("退出系统,欢迎下次使用。")
return
def login(self): # 定义登录方法
print("登录系统 ".center(50, "*"))
for i in range(3):
usr = input("请输入用户名:")
pwd = input("请输入密码:")
if usr in self.usr_info.keys():
if pwd == self.usr_info[usr]:
class Book(object):
def __init__(self, name, author, status, bookindex):
self.name = name
self.author = author
self.status = status
self.bookindex = bookindex
def __str__(self):
if self.status == 1:
stats = '未借出'
elif self.status == 0:
stats = '已借出'
else:
stats = '状态异常'
return '书名: 《%s》 作者: %s 状态: <%s> 位置: %s' \
% (self.name, self.author, stats, self.bookindex)
class BookManage(object):
books = []
def start(self):
self.books.append(Book('python', 'guido', 1, 'ISO9001'))
self.books.append(Book('c', '张三', 1, 'NFS8102'))
self.books.append(Book('java', 'westos', 1, 'PKA7844'))
# 0:借出 1:存在
# python 1
# c 1
# java 1
def Menu(self):
self.start()
while True:
print("""
图书管理系统
1.查询图书
2.增加图书
3.借阅图书
4.归还图书
5.退出系统
6.删除书籍
""")
choice = input('请选择:')
if choice == '1':
self.showAllBook()
elif choice == '2':
self.addBook()
elif choice == '3':
self.borrowBook()
elif choice == '4':
self.returnBook()
elif choice == '5':
print('欢迎下次使用...')
exit()
elif choice == '6':
self.deleteBook()
else:
print('请输入正确选择')
continue
def showAllBook(self):
for book in self.books:
print(book)
def addBook(self):
name = input('图书名称:')
self.books.append(Book(name, input('作者:'), 1, input('存储位置:')))
print('图书《%s》添加成功' % name)
def checkBook(self, name): # name是返回值
for book in self.books:
if book.name == name: # 如果借阅书的名称在已有的图书中,返回书的名称,否则为空
return book
else:
return None
def borrowBook(self):
name = input('借阅图书名称: ')
ret = self.checkBook(name)
print(ret)
if ret != None:
if ret.status == 0: # 如果书籍的状态为0,说明此书已借出
print('书籍《%s》已经借出' % name)
else:
ret.status = 0 ##借出后显示书籍的状态为0
print('书籍《%s》借阅成功' % name)
else:
print('书籍《%s》不存在' % name)
def returnBook(self):
name = input('归还图书名称:')
ret = self.checkBook(name)
if ret != None:
if ret.status == 0:
ret.status = 1
print('书籍《%s》归还成功' % name)
print(ret)
else:
print('书籍《%s》未借出' % name)
else:
print('书籍《%s》不存在' % name)
def deleteBook(self):
a = input("请输入要删除图书的名字")
b = self.checkBook(a)
if b != None:
self.books.remove(b)
print("删除成功")
else:
print("查无此书,请输入正确的书籍名称")
manager = BookManage()
manager.Menu()
print("登录成功!")
break
else:
print("密码输入错误,请重新输入!")
else:
print("用户名错误,请重新输入!")
print("这是第%s次输入错误,还剩%s次机会。" % (i + 1, 2 - i))
else:
print("超过最大验证次数,登录失败!")
def main(): # 定义主函数
user = User() # 创建user对象
print("欢迎使用图书管理系统".center(100, "-"))
print("注册请输入0,登录请输入1,退出请输入2".center(95, "-"))
select = input("请选择你要进行的操作:")
if select == "0":
user.register() # 调用注册成员方法
elif select == "1":
user.login()
elif select == "2":
print("退出系统!欢迎再次使用。")
return
else:
print("输入有误,请重新输入!")
main()
以上这些就是为了应付老师写的python结课报告,质量不太行,主要是为了以后能给自己留一个回忆的地方,如果有能用的上的但取无妨。