python结课报告

一、题目分析

随着现在时代得发展,信息得保护与安全都极为重要,很多企业,公司,学校都采用了信息化的管理,这样能够使得管理工作方便快捷、高效。特别是图书馆的管理工作繁多,使用图书管理系统不仅可以实现信息的高效管理和共享,更能使图书管理工作更加规范化、标准化、科学化和现代化,构建该系统主要是为了方便用户使用,要求界面良好、针对性强、对系统信息的"查插删改“;能够提供良好的信息安全保护机制。

二、系统功能

包括图书的查看,添加,删除,借阅等功能,还有用户注册,用户登录,限制了每个用户只有三次输入密码的机会,三次错误后会自动离开系统

三、详细设计

系统功能包括增删改查,为了让代码更简洁将每一部分功能都用函数封装了起来,这样不仅方便修改,还能明确直到错误出现的地方。还能将代码隐藏起来在以后用户交付时暴露更少的代码。为了方便用户的使用,将常用的函数包装成主函数更方便。

四、测试

1,注册功能测试

python结课报告_第1张图片

2,登录功能测试

python结课报告_第2张图片
python结课报告_第3张图片

3,密码错误三次自动退出测试

python结课报告_第4张图片

4,查询图书功能测试

查询图书主要代码:

def checkBook(self, name):  # name是返回值
    for book in self.books:
        if book.name == name:  # 如果借阅书的名称在已有的图书中,返回书的名称,否则为空
            return book
    else:
        return None

python结课报告_第5张图片

5,删除图书功能测试
删除图书主要代码:

def deleteBook(self):
    a = input("请输入要删除图书的名字")
    b = self.checkBook(a)
    if b != None:
        self.books.remove(b)
        print("删除成功")
    else:
        print("查无此书,请输入正确的书籍名称")

python结课报告_第6张图片
python结课报告_第7张图片

6,添加图书功能测试

添加图书主要代码:

def addBook(self):
    name = input('图书名称:')
    self.books.append(Book(name, input('作者:'), 1, input('存储位置:')))
    print('图书《%s》添加成功' % name)

python结课报告_第8张图片
python结课报告_第9张图片

7,借阅图书测试

借阅图书主要代码:

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)

python结课报告_第10张图片
python结课报告_第11张图片

8,归还图书测试

归还图书主要代码:

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)

python结课报告_第12张图片

9,退出系统

python结课报告_第13张图片

五、遇到的问题及解决办法

其中遇到最多的问题就是语法问题,很多地方都是语法用错导致的错误,就例如删除列表中的元素,虽然有几种方法但是最适合的还是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结课报告,质量不太行,主要是为了以后能给自己留一个回忆的地方,如果有能用的上的但取无妨。

你可能感兴趣的:(日常学习内容,python,开发语言)