精华内容
下载资源
问答
  • 本系统带文档lw万字以上+答辩PPT+查重 如果这个题目不合适,可以去我上传的...图书信息管理系统 的结构图4-1所示: 图4-1 系统结构 登录系统结构图,如图4-2所示: 图4-2 登录结构图 管理员结构图,如图4-3所示。

    本系统带文档lw万字以上+答辩PPT+查重 如果这个题目不合适,可以去我上传的资源里面找题目,找不到的话,评论留下题目,或者站内私信我,
    有时间看到机会给您发在这里插入图片描述
    在这里插入图片描述

    系统设计
    4.1 系统体系结构
    图书信息管理系统 的结构图4-1所示:在这里插入图片描述

                                           图4-1 系统结构
    

    登录系统结构图,如图4-2所示:在这里插入图片描述

                                        图4-2 登录结构图
    

    管理员结构图,如图4-3所示。在这里插入图片描述

                                        图4-3 管理员结构图
    

    4.2开发流程设计
    系统流程的分析是通过调查系统所涉及问题的识别、可行性、可操作性、系统分析处理能力等具体环节来调节、整理系统的设计方案以确保系统能达到理想的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试保证数据库的完整,从而把控系统所涉及信息管理的安全、保证信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。
    图书信息管理系统 的开发对管理模块和系统使用的数据库进行分析,编写代码,系统测试,如图4-4所示。在这里插入图片描述

                                         图4-4开发系统流程图
    

    4.3 数据库设计原则
    学习编程,我们都知道数据库设计是基于需要设计的系统功能,我们需要建立一个数据库关系模型,用于存储数据信息,这样当我们在程序中时,就没有必要为程序页面添加数据,从而提高系统的效率。数据库存储了很多信息,可以说是信息管理系统的核心和基础,数据库还为系统提供了添加、删除、修改和检查等操作模块,使系统能够快速找到自己想要的信息,而不是在程序代码中找到。数据库中信息表的每个部分根据一定的关系精确地组合,排列和组合成数据表。
    通过图书信息管理系统 的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:
    管理员信息属性图如图4-5所示。在这里插入图片描述

                                 图4-5 管理员信息实体属性图
    

    普通用户管理实体属性图如图4-6所示。在这里插入图片描述

                                     图4-6普通用户管理实体属性图
    

    管理员系统菜单实体属性图如图4-7所示。在这里插入图片描述

    展开全文
  • 基于python图书信息管理系统 实验任务和要求 设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能: (1) 根据指定图书个数,逐个...

    基于python的图书信息管理系统

    实验任务和要求

    设计并实现一个图书信息管理系统。根据实验要求设计该系统的菜单和交互逻辑,并编码实现增删改查的各项功能。 该系统至少包含以下功能:

    (1) 根据指定图书个数,逐个输入图书信息;

    (2) 逐个显示图书表中所有图书的相关信息;

    (3) 能根据指定的待入库的新图书的位置和信息,将新图书插入到图书表中指定的位置;

    (4) 根据指定的待出库的旧图书的位置,将该图书从图书表中删除;

    (5) 能统计表中图书个数;

    (6) 实现图书信息表的图书去重;

    (7) 实现最爱书籍查询,根据书名进行折半查找,要求使用非递归算法实现,成功返回此书籍的书号和价格;

    (8) 图书信息表按指定条件进行批量修改;

    (9) 利用快速排序按照图书价格降序排序;

    (10)实现最贵图书的查找;

    相关算法实现方案

    1、主界面代码部分

    此函数主要就是使用print打印出主界面

    def show_choose():
        print("==========================图书信息管理系统==========================")
        print()
        print("-----------------------------功能菜单------------------------------")
        print()
        print("                         1.录入图书信息")
        print("                         2.查找图书信息")
        print("                         3.删除图书信息")
        print("                         4.修改图书信息")
        print("                         5.排序图书信息")
        print("                         6.统计图书总数")
        print("                         7.显示图书信息")
        print("                         8.查找最贵图书")
        print("                         0.退出信息管理系统")
        print()
        print("------------------------------------------------------------------")
    

    2、录入图书信息函数代码部分

    在这个函数中实现的功能是录入图书书号,图书名称,图书价格并将其写入文件中,每一行为一个图书的信息存储

    # 录入图书信息
    def input_info():
        infile_info = open('infile.txt', 'a')  # 以追加的方式向文件中写入数据,如果文件不存在就创建一个文件
        findfile_info = open('infile.txt', 'r')  # 以可读方式打开文件
        line_info = findfile_info.readlines()
        flag = 'y'
        # 向文件中录入图书信息,每一个图书的信息单独占一行
        while flag == 'y' or flag == 'Y':
            book_id = input("请输入图书书号(如9787302257646):")
            f = 0  # 0表示书号未重复
            for line in line_info:
                if line.split()[0]==book_id:
                    f=1
                    print("该图书已经存在!!")
                    break
            if f==1:    # 若书号重复则继续进行输入书号操作
                continue
            book_name = input("请输入图书书名:")
            book_price = input("请输入图书价格:")
            book_info = book_id + '\t' + book_name + '\t' + book_price + '\n'
            infile_info.write(book_info)
            flag = input("是否继续添加图书信息?y/n")
        print("信息录入完毕!!!")
        infile_info.close()
    

    3、查找图书信息函数代码部分

    此函数主要是按图书的书号进行折半查询,若查无此书则输出提示信息

    # 查询图书信息
    def find_info():
        flag = 'y'
        while flag == 'y' or flag == 'Y':
            n = 0
            m = 0  # 定义m,n是为了用作判断文件中是否有此人信息的标记
            findfile_info = open('infile.txt', 'r')  # 以可读方式打开文件
            line_info = findfile_info.readlines()
            find_id = input('请输入图书书号:')
            length=len(line_info)
            first=0
            last=length-1
            while first<=last:  # 根据书号进行折半查找
                mid=(first+last)//2
                print(line_info[mid].split()[0])
                if find_id in line_info[mid]:
                    print(line_info[mid])
                    n = n + 1
                    break
                elif find_id<line_info[mid].split()[0]:
                    last=mid-1
                else:
                    first=mid+1
            if n == 0:
                print("没有查询到图书信息,无数据显示!!!")
            findfile_info.close()
            flag = input("是否继续查询图书信息?y/n")
    

    折半查找算法(非递归)

    折半查找( Binary Search)技术,又称为二分查找。它的前提是线性表中的记录必须是关键码有序( 通常从小到大有序),线性表必须采用顺序存储。折半查找的基本思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述过程,直到查找成功,或所有查找区域无记录,查找失败为止。

    def binary_search(alist,item):
        n= len(alist)
        first = 0
        last = n - 1
        while first < last:
            mid = (first + last)//2
            if alist[mid] == item:
                return True
            elif item < alist[mid]:
                last = mid - 1
            else:
                first = mid + 1
        return False
    

    4、删除图书信息函数代码部分

    此函数的主要功能是执行删除操作,输入书号进行查找,查找到图书信息之后,对图书信息进行删除

    # 删除图书信息
    def del_info():
        flag = 'y'
        while flag == 'y' or flag == 'Y':
            n = 0  # 用以查无图书时的标记
            defile_info1 = open('infile.txt', 'r')  # 以可读方式打开文件
            line_info = defile_info1.readlines()  # 将文件的信息按行全部读取出来,此时line_info是一个列表,每一行是一个元素
            defile_info2 = open('infile.txt', 'w')  # 以可写方式打开文件,用来将删除后的信息写入文件
            del_id = input("请输入要删除的图书书号:")
            for line in line_info:  # 如果要删除的图书书号在文件存储的信息中,就将后面的信息向前移动覆盖这条信息
                if del_id in line:
                    continue
                defile_info2.write(line)
                n = n + 1
            if n == len(line_info):
                print("无此图书信息,请核对后再操作!!!")
            else:
                print("书号为{0}的图书信息已被删除!!!".format(del_id))
            defile_info1.close()
            defile_info2.close()
            flag = input("是否继续删除图书信息?y/n")
    

    5、修改图书信息代码部分

    此函数的功能是对图书信息进行修改,当输入书号后,查询到学生信息之后,对学生信息进行修改

    # 修改图书信息
    def mod_info():
        flag = 'y'
        while flag == 'y' or flag == 'Y':
            n = 0  # 用以查无此书时的标记
            mod_id = input("请输入要修改的图书书号:")
            modfile_file1 = open('infile.txt', 'r')  # 以可读方式打开文件,读取到line_info中,每一行就是一个列表的元素
            line_info = modfile_file1.readlines()
            modfile_file2 = open('infile.txt', 'w')  # 用以写入修改后的数据
            for line in line_info:  # 遍历列表
                if mod_id in line:  # 如果修改的图书信息存在,就重新写入图书信息
                    print("已找到图书,请修改信息!")
                    mod_name = input("请输入书名:")
                    mod_price = input("请输入价格:")
                    mod_stu_info = mod_id + '\t' + mod_name + '\t' + mod_price +  '\n'
                    modfile_file2.write(mod_stu_info)
                    print("修改成功!!!")
                    continue
                modfile_file2.write(line)  # 由于w方式打开的文件重新后会覆盖原有数据,所以需要将原有数据写入
                n = n + 1
            if n == len(line_info):
                print("无此图书信息,请核对后再操作!!!")
            else:
                print("书号为{0}的图书信息已修改!!!".format(mod_id))
            modfile_file1.close()
            modfile_file2.close()
            flag = input("是否继续修改图书信息?y/n")
    

    6、按照图书价格排序代码部分

    此函数利用了快速排序按照图书价格进行排序

    # 排序图书信息
    def sort_info():
        flag = 'y'
        def quick_sort(line_info,first,last):     # 利用快速排序按照图书价格降序排序
            if first>=last:
                return
            mid=line_info[first]
            mid_value=line_info[first].split()[2]
            low=first
            high=last
            while low<high:
                # high 左移
                while low<high and line_info[high].split()[2]<=mid_value:
                    high-=1
                line_info[low]=line_info[high]
                while low < high and line_info[low].split()[2] > mid_value:
                    low+=1
                line_info[high] = line_info[low]
            # 从循环退出时,low==high
            line_info[low]=mid
            # 对左边的列表执行快速排序
            quick_sort(line_info, first, low-1)
            # 对右边的列表执行快速排序
            quick_sort(line_info, low+1, last)
        while flag == 'y' or flag == 'Y':
            sortfile_info = open('infile.txt', 'r')  # 可读方式打开文件,并读取信息line_info中
            line_info = sortfile_info.readlines()
            length=len(line_info)
            quick_sort(line_info,0,length-1)
            for line in line_info:
                print(line)
            flag = input("是否继续排序信息?y/n")
    

    快速排序算法

    快速排序的基本思想是:通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,已达到整个序列有序的目的

    def quick_sort(alist,first,last):
        if first >= last:
            return
        mid_value = alist[first]
        low=first
        high=last
        while low < high:
            # high左移
            while low < high and alist[high] >= mid_value:
                high -= 1
            alist[low] = alist[high]
            while low < high and alist[high] < mid_value:
                low += 1
            alist[high] = alist[low]
        # 从循环退出时,low==high
        alist[low]=mid_value
        # 对low左边的列表执行快速排序
        quick_sort(alist,first,low-1)
        # 对low右边的列表执行快速排序
        quick_sort(alist,low+1,last)
    

    7、统计学生总数函数代码部分

    此函数主要是输出信息系统中有几本图书

    # 统计图书总数
    def sum_info():
        sumfile_info = open('infile.txt', 'r')
        line_info = sumfile_info.readlines()
        sum_stu = len(line_info)  # 写出列表中的元素个数
        print("一共有{0}个图书。".format(sum_stu))
        sumfile_info.close()
    

    8、显示图书信息函数代码部分

    此函数是将文件存储的图书信息全部显示出来

    # 显示图书信息
    def show_info():
        print("书号", end='\t\t\t\t')
        print("书名", end='\t\t\t\t\t')
        print("价格", end='\t\t\t\t')
        print('\n')
        showfile_info = open('infile.txt', 'r')
        line_info = showfile_info.readlines()
        for line in line_info:  # 遍历列表,输出各个元素
            print(line)
        showfile_info.close()
    

    9、实现最贵图书的查找代码部分

    此函数可以实现最贵图书的查找

    # 查找最贵图书
    def get_info():
        def take_price(elem):
            return int(elem[2])
        sortfile_info = open('infile.txt', 'r')  # 可读方式打开文件,并读取信息line_info中
        line_info = sortfile_info.readlines()
        # 定义列表,用来将读取出来的字符串信息,转化为列表
        lst = []
        for i in range(0, len(line_info)):
            lst.append('lst' + str(i))
        i = 0
        for line in line_info:  # 遍历列表,将信息转化为单独的列表,并去掉\t和\n,方便接下来的排序比较
            line = line.replace('\n', '')
            lst[i] = line.split('\t')
            i = i + 1
        lst.sort(key=take_price, reverse=True)
        print("最贵的图书是:")
        print(lst[0])
    

    最后,需要在程序末尾执行main(),完成后运行函数,就可以正常运行了。

    运行结果部分截图

    在这里插入图片描述以上为菜单界面

    展开全文
  • python图书管理系统

    万次阅读 多人点赞 2019-05-12 12:09:59
    '''图书管理系统 1. 创建一个列表存储书籍信息,包括书名,作者名,价格 2. 创建一个列表存储用户信息,包括用户名,密码 3. 制作一个注册登录系统,登录后可以使用添加书籍,删除书籍, 修改书籍信息,查询单本书籍...
    #!/usr/bin/python3
    #  -*- coding: utf-8 -*-
    '''图书管理系统
    1. 创建一个列表存储书籍信息,包括书名,作者名,价格
    2. 创建一个列表存储用户信息,包括用户名,密码
    3. 制作一个注册登录系统,登录后可以使用添加书籍,删除书籍,
    修改书籍信息,查询单本书籍信息,查询所有书籍信息等功能
    4. 制作其它合理功能。
    '''
    
    '''图书管理系统操作说明
    一、普通用户
        1.先注册
        2.登录到系统
        3.进行功能操作    (增、删、改、查书籍)
        4.退出系统
    二、管理者
        1.使用管理者账户登陆(xls:123456)
        2.管理普通用户    (删、改、查用户)
        3.退出系统
    '''
    
    books = [{'name': '图书管理', 'author': 'xlsfxm', 'price': '99999'},
             {'name': '西游记', 'author': '吴承恩', 'price': '19.9'},
             {'name': '三国演义', 'author': '罗贯中', 'price': '99.9'},
             {'name': '完美世界', 'author': '辰东', 'price': '199.9'},
             {'name': '斗破苍穹', 'author': '土豆', 'price': '99'}
             ]
    users = [{'name': 'xls', 'passwd': '123456'}]
    
    
    # 主菜单
    def menu():
        print('*' * 40)
        print('*' * 10, '欢迎来到图书管理系统 1.0 ')
        print('*' * 40)
        print('请选择:')
        print("1: 注册新用户:")
        print("2. 已有账户,登陆:")
        print("3. 退出本系统")
    
    
    # 用户小屋(功能页面)
    def user_menu(self):
        print('*' * 40)
        print('欢迎%s!   来到图书小屋' % self)
        print('请选择您所需的功能:')
        print('1. 添加书籍')
        print('2. 删除书籍')
        print('3. 修改书籍信息')
        print('4. 查询单本书籍信息')
        print('5. 查询所有书籍信息')
        print('6. 退出您的图书小屋')
    
    
    # 管理者页面
    def manger():
        print('*' * 40)
        print('欢迎本系统管理者!!!')
        print('*' * 40)
        print('请选择您所需的功能:')
        print('1. 删除一个用户')
        print('2. 修改用户密码')
        print('3. 查看一个用户信息')
        print('4. 查看全部用户信息')
        print('5. 退出管理者页面')
    
    
    # 删除用户
    def del_user():
        user_name = input('请输入要删除的用户名:')
        count = 0
        index = 0
        for i in users:
            if user_name == i['name']:
                count = 1
                del users[index]
                print('删除成功!!!')
            index += 1
        if count == 0:
            print('查无此人!!!')
    
    
    # 修改用户
    def edit_user():
        user_name = input('请输入要修改密码的用户名:')
        count = 0
        index = 0
        for i in users:
            if user_name == i['name']:
                count = 1
                del users[index]
                new_user_name = user_name
                new_user_passwd = input('请输入修改后的密码:')
                new_user = {'name': new_user_name, 'passwd': new_user_passwd}
                users.append(new_user)
                print('修改成功!!!')
            index += 1
        if count == 0:
            print('查无此人!!!')
    
    
    # 查看一个用户
    def look_user():
        user_name = input('请输入要查看的用户名:')
        count = 0
        print('用户名\t密码\t')
        for i in users:
            if user_name == i['name']:
                count = 1
                print('%s\t\t%s\t' % (i['name'], i['passwd']))
        if count == 0:
            print('查无此人!!!')
    
    
    # 查看全部用户
    def look_users():
        print('用户名\t密码\t')
        for i in users:
            print('%s\t\t%s\t' % (i['name'], i['passwd']))
    
    
    # 注册页面
    def sign_up():
        user_name = input("请输入您的用户名:")
        user_passwd = input("请输入您的密码:")
        user = {'name': user_name, 'passwd': user_passwd}
        users.append(user)
        print("注册成功!!!")
    
    
    # 登陆页面
    def login():
        user_name = input("请输入您的用户名:")
        user_passwd = input("请输入您的密码:")
        count = 0
        for i in users:
            if user_name == i['name']:
                count = 1
                if user_passwd == i['passwd']:
                    print("登陆成功!!!")
                    return user_name
                else:
                    print("密码错误!!!")
                    print("请重试。")
                    login()
        if count == 0:
            print("用户名不存在!!!")
            print("请重试。")
            login()
    
    
    # 添加书籍
    def add_book():
        book_name = input('请输入要添加书籍的名字:')
        book_author = input('请输入要添加书籍的作者:')
        book_price = input('请输入要添加书籍的价格:')
        book = {'name': book_name, 'author': book_author, 'price': book_price}
        books.append(book)
        print('添加成功!!!')
    
    
    # 删除书籍
    def del_book():
        book_name = input('请输入要删除书籍的名字:')
        count = 0
        index = 0
        for i in books:
            if book_name == i['name']:
                count = 1
                del books[index]
                print('删除成功!!!')
            index += 1
        if count == 0:
            print('查无此书!!!')
    
    
    # 修改书籍
    def edit_book():
        book_name = input('请输入要修改书籍的名字:')
        count = 0
        index = 0
        for i in books:
            if book_name == i['name']:
                count = 1
                del books[index]
                new_book_name = input('请输入修改后书籍的名字:')
                new_book_author = input('请输入修改后书籍的作者:')
                new_book_price = input('请输入修改后书籍的价格:')
                new_book = {'name': new_book_name, 'author': new_book_author, 'price': new_book_price}
                books.append(new_book)
                print('修改成功!!!')
            index += 1
        if count == 0:
            print('查无此书!!!')
    
    
    # 查看一本书籍
    def look_book():
        book_name = input('请输入要查看书籍的名字:')
        count = 0
        print('书名\t\t作者\t价格\t')
        for i in books:
            if book_name == i['name']:
                count = 1
                print('%s\t%s\t%s\t' % (i['name'], i['author'], i['price']))
        if count == 0:
            print('查无此书!!!')
    
    
    # 查看全部书籍
    def look_books():
        print('书名\t\t作者\t价格\t')
        for i in books:
            print('[%s]\t%s\t%s\t' % (i['name'], i['author'], i['price']))
    
    
    # 用户与管理者
    def while_user(name):
        while name:  # 根据是否登陆成功,进入用户菜单
    
            if name == 'xls':  # 判断是否为管理者
                manger()  # 管理者页面
                manger_n = input()
                if manger_n == '1':
                    del_user()  # 删除一个用户
                elif manger_n == '2':
                    edit_user()  # 修改用户密码
                elif manger_n == '3':
                    look_user()  # 查看一个用户信息
                elif manger_n == '4':
                    look_users()  # 查看全部用户信息
                elif manger_n == '5':
                    break  # 退出管理者页面
                else:
                    print("非法输入!!!")
                    print("请再次选择:")
    
            else:
                user_menu(name)  # 普通用户页面
                user_n = input()
                if user_n == '1':
                    add_book()  # 添加书籍
                elif user_n == '2':
                    del_book()  # 删除书籍
                elif user_n == '3':
                    edit_book()  # 修改书籍信息
                elif user_n == '4':
                    look_book()  # 查询单本书籍信息
                elif user_n == '5':
                    look_books()  # 查询所有书籍信息
                elif user_n == '6':
                    break  # 退出普通用户页面
                else:
                    print("非法输入!!!")
                    print("请再次选择:")
    
    
    # 主函数
    def main():
        # 循环菜单主页面
        while True:
            menu()  # 主菜单页面
            menu_n = input()
            if menu_n == '1':
                sign_up()
            elif menu_n == '2':
                # 循环用户菜单页面
                name = login()  # 用户登陆后返回值name
    
                while_user(name)  # 用户与管理者
    
            elif menu_n == '3':
                break
            else:
                print("非法输入!!!")
                print("请再次选择:")
    
    
    # 调用主函数
    main()
    
    展开全文
  • 这是一个基于Python图书信息管理系统,使用MySQL数据库管理数据,用tkinter做GUI界面。功能齐全,分管理员和读者两个部分,可注册、修改密码、切换登录。对读者系统,内含个人信息展示,可修改个人信息,查询、...
  • 使用Python语言开发一个图书管理程序,实现如下图所示的图书的管理功能。功能具体包括:新增、查看、删除、借出、归还和退出。程序可参照以下步骤进行开发: (1) 数据初始化 使用文件保存图书信息;每本图书的信息...
  • python实现图书管理系统

    万次阅读 多人点赞 2019-03-01 22:11:12
    # 图书借阅管理 import datetime import wx # 学生信息 class Stu_Info(object): def __init__(self, sno, sname, key): self.sno = sno self.key = key self.sname = sname #@staticmetho...
    # 图书借阅管理
    import datetime
    
    # 学生信息
    class Stu_Info(object):
    
        def __init__(self, sno, sname, key):
            self.sno = sno
            self.key = key
            self.sname = sname
        #@staticmethod
        def Lgtime(self):
            self.ltime = datetime.datetime.now()  # 借出时间
            self.ltimes = self.ltime.strftime('%Y-%m-%d %H:%M:%S')
            self.dtime = (self.ltime +
                          datetime.timedelta(days=30)).strftime('%Y-%m-%d %H:%M:%S')  # 应归还时间
    
        def state(self, m):
            if m == 0:
                return '未借书'
            elif m == 1:
                return '未归还'
            elif m == 2:
                return '已归还'
    
        def show(self):
            print("姓名:{} 学号:{} ".format(self.sname, self.sno))
    
        def Show_Iden_Info(self):
            global Lend_Name
            for p in Lend_Name:
                print("学生:{} \n学号:{}\n借阅书名:{}\n借阅时间:{} \n应归还时间:{} \n归还状态:{}".format(
                    self.sname, self.sno, p.Book_name, self.ltimes, self.dtime, self.state(st)))
    
    # 图书信息
    
    
    class Book_Info(object):
    
        def Reader(self, student):  # 建立一个借阅此书的人的列表
            self.reader_list = []
            self.reader_list.append(student)
            self.number = len(self.reader_list)
    
        def __init__(self, name, author, publish, count, place):
            self.Book_name = name           # 书名
            self.author    = author   		# 作者
            self.publish   = publish  		# 出版社
            self.count     = count    		# 书的数量
            self.place     = place    		# 书的位置
    
        def Show_Seek_Book(self):
            print("《{}》 作者:{} 出版社:{} 数量:{} 位置:{}".format(self.Book_name,
                                                         self.author, self.publish, self.count, self.place))
    
        def Show_readers(self):
            for q in self.reader_list:
                print("借阅人:{} 借阅时间:{} 是否归还:{}".format(
                    q.sname, q.ltimes, q.state(st)))
    
        def Show_Management_See(self):
            print("书名:{} 数量:{} 已借出:{}".format(
                self.Book_name, self.count, self.number))
            self.Show_readers()
    
    
    class Operate():
        # 查看所有图书
    
        @staticmethod
        def StudentSee():
            print('图书馆所有书籍:')
            for book in Book_List:  # Book_List是一个存储书籍的列表,列表中每一个元素都是Book_Info的对象
                book.Show_Seek_Book()
    
        # 借阅图书
        @staticmethod
        def StudentBorrow():
            global n
    
            Lname = input("请输入借阅图书的书名:")
            for book in Book_List:
                if Lname == book.Book_name and book.count == 0:
                    print("***该书已经被借出,请稍后再来!***")
                elif Lname == book.Book_name and book.count > 0:
                    global i
                    book.Reader(Student_List[i])  # 在借此书的人的列表中加入这个学生
                    book.count -= 1  # 书库中这本书-1
                    global Lend_Name  # 一个人借的所有书的列表
                    Lend_Name.append(book)
                    n += 1
                    global st  # 借阅状态
                    st = 1
                    Student_List[i].Lgtime()
                    print("您已成功借到{}\n".format(book.Book_name))
    
        # 归还图书
        @staticmethod
        def StudentGive():
            bname = input("请输入所归还的书名:")
            for book in Book_List:
                if bname == book.Book_name:
                    book.count += 1
                    global st
                    st = 2
                    print("还书成功")
    
        # 查看个人信息
        @staticmethod
        def StudentInfo():
            global i
            Student_List[i].Show_Iden_Info()
    
        # 管理员查看图书
        @staticmethod
        def Managerment_See():
            Operate.StudentSee()
            name = input("\n请输入需要查看详细借阅信息的书名:")
            for book in Book_List:
                if name == book.Book_name:
                    book.Show_Management_See()
                # else:
                 #   print("未查到此图书借阅信息!")
    
        # 管理员增加图书
        @staticmethod
        def ManagerAdd():
            name = input('请输入书籍的名称:')
            author = input('请输入书的作者:')
            count = input('请输入书的数量:')
            publish = input('请输入图书出版社:')
            place = input('请输入书所在的楼层:')
            Book_List.append(Book_Info(name, author, publish, count, place))
            print('{}添加成功!'.format(name))
            Operate.StudentSee()
    
    # 身份验证
    
    
    class identity(object):
    
        @staticmethod
        def Start():
            print('-' * 50)
            answer = input('选择用户:\n 1.管理员 \n 2.学生 \n')
            if answer == '1':
                identity.ManagerIdentity()
            elif answer == '3':
                name = input('请输入您的姓名:')
                sno = input('请输入您的学号:')
                key = input('请输入您的密码:')
                ew = Stu_Info(sno, key, name)
                Student_List.append(new)
                print('***注册成功,请登陆:***')
                dentity.StudentIdentity()
            elif answer == '2':
                identity.StudentIdentity()
            else:
                print('***操作非法***')
    
        def ManagerIdentity():
            passwd1 = input('请输入您的密码:')
            print('-' * 50)
            if passwd1 == '123456':
                print('欢迎使用图书管理系统')
                Menu.ManagerMenu()
            else:
                print('您的密码错误!请重新输入:')
                self.ManagerIdentity()
    
        @classmethod
        def StudentIdentity(self):  # 学生信息的验证函数
            num = eval(input('请输入您的学号:'))
            passwd2 = eval(input('请输入您的密码:'))
            print('-' * 50)
            for s in Student_List:
                if s.sno == num and s.key == passwd2:
                    global i
                    i += 1
                    print('欢迎使用图书管理系统')
                    Menu.StudentMenu()
                    return
            print('您的用户名或身份不正确!请重新输入:')
            self.StudentIdentity()
    
    
    class Menu(object):
        # 定义菜单类,学生和管理员有不同的选择
    
        @staticmethod
        def StudentMenu():
            print('')
            while True:
                print("\n1.查看书籍 2.借阅图书 3.归还图书 4.查看个人信息 5.切换登陆 0.退出系统\n")
                Schoice = input('请选择您要进行的操作:')
                if Schoice == '1':
                    Operate.StudentSee()
                elif Schoice == '2':
                    Operate.StudentBorrow()
                elif Schoice == '3':
                    Operate.StudentGive()
                elif Schoice == '4':
                    Operate.StudentInfo()
                elif Schoice == '5':
                    print('')
                    print('***欢迎再次使用图书管理系统***')
                    identity.Start()
                elif Schoice == '0':
                    print('')
                    print('***欢迎再次使用图书管理系统***')
                    return 0
                else:
                    print('您的输入不正确,请重新输入数字\n')
    
        @staticmethod
        def ManagerMenu():
            # 定义管理员选择菜单函数
            print('')
            print('1.查看书籍\n')
            print('2.增加图书\n')
            print('3.切换登陆\n')
            print('0.退出系统\n')
            while True:
                Mchoice = input('请选择您要进行的操作:')
                if Mchoice == '1':
                    # 管理员查看图书部分
                    Operate.Managerment_See()
                elif Mchoice == '2':
                    # 管理员增加图书部分
                    Operate.ManagerAdd()
                elif Mchoice == '3':
                    # 退出菜单部分
                    print('')
                    print('***欢迎再次使用图书管理系统***')
                    identity.Start()
                elif Mchoice == '0':
                    print('')
                    print('***欢迎再次使用图书管理系统***')
                    return 0
                else:
                    print('您的输入不正确,请重新输入\n')
    
    
    def main():  # 测试数据
        global Book_List  # 图书馆的所有书
        global n
        n = -1
        global i  # Student_List中标识人的下标
        i = -1
        Book_List = []
        book1 = Book_List.append(
            Book_Info('Python程序设计', '董富国', '清华大学出版社', 5, '1F'))
        book2 = Book_List.append(Book_Info('数据结构', '严蔚敏', '清华大学出版社', 5, '1F'))
        book3 = Book_List.append(Book_Info('西游记', '吴承恩', '人民出版社', 4, '2F'))
        book4 = Book_List.append(
            Book_Info('爱丽丝梦游仙境', 'Lewis Carroll', '人民出版社', 5, '3F'))
        global Student_List  # 图书馆的所有注册学生信息
        Student_List = []
        s1 = Student_List.append(Stu_Info(112, 'Ammy', 123))
        s2 = Student_List.append(Stu_Info(113, 'Tom', 345))
        global Lend_Name
        Lend_Name = []
    
        # 设置存放一个学生借的所有书的列表
    
        identity.Start()
    
    main()
    
    
    
    展开全文
  • Python:图书管理系统

    千次阅读 2020-11-08 16:32:49
    源代码: import sys def print_muen(): print("----菜单提示----") ... print("[4]:修改图书信息") print("[5]:退出") def add_book(): try: book_id=input("请输入图书编号") book_name=input("请输
  • 基于python+mysql的图书管理系统,有数据库文件,有图书的增删改查 需wxpython,有简单界面,适合刚入门的同学
  • 设计一个GUI界面的系统,模拟图书管理,一个面向学生和学校管理员的系统图书信息以txt文件存在本地。 管理员:查询图书 增加图书 删除图书 学生:借阅图书 归还图书 任何一个操作都会将所更新的图书...
  • 在拿到这个项目的时候,首先是查阅了基于Python图书管理系统可以怎么做,可以通过什么方式搭建,可以以什么样式展现。 据我目前了解到的信息,可以做成这样: 1、命令行形式运作,如输出“Hello World!"般,这个...
  • 本文实例为大家分享了python图书管理系统的具体代码,供大家参考,具体内容如下 图书管理系统 import random # books={书名:剩余数量, 书名:剩余数量} import time books = {防脱发指南: 5, 颈椎康复指南: 3, 从...
  • 【原创】python编写图书管理系统

    千次阅读 2019-11-08 19:23:45
    【原创】python编写图书管理系统 实现功能:1)打印系统列表(书号,作者姓名,标题,出版社,定价);2)增加一本新书;3)查找一本书;4)删除一本书;5)离开系统;6)保存系统数据到文件中;7)从文件中加载旧...
  • 自己的Python课设,水平有限但是是原创。可以拿来学习或者应付作业。
  • python 3 +wxpython 图书馆管理系统,实现了图书的增删改查,借还书显示图书信息等内容,python 3 +wxpython 图书馆管理系统,实现了图书的增删改查,借还书显示图书信息等内容,python 3 +wxpython 图书馆管理系统,实现了...
  • 系统带文档lw1万字+答辩PPT+查重 如果这个题目不...图书信息管理、图书借阅管理等功能。管理员用例如图7所示。 图1 管理员用例图 2用户用例图 用户进入系统可以进行首页、图书信息、留言板、个人中心、后台管理等
  • '''图书管理系统''' class books(object): def __init__(self): self.books = [] def menu(self): print("1.添加图书信息") print("2.显示图书信息") print("3.修改图书信息") print("4.删除图书信息") ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 135
精华内容 54
关键字:

python图书信息管理系统

python 订阅