python---面向对象程序设计之图书管理系统

class Student:
    StudentDataBase=dict() #学生数据库
    def __init__(self,student_name='',student_id=0):
        """初始化"""
        self.setstudent_name(student_name)
        self.setstudent_id(student_id)

    def setstudent_name(self,student_name):
        """设置学生姓名"""
        if not isinstance(student_name,str):
            print("student_name must be str.")
            return
        self.student_name=student_name

    def setstudent_id(self,student_id):
        """设置学生学号"""
        if not isinstance(student_id,int):
            print("student_id must be int.")
            return
        self.student_id=student_id

    def AddStudent(self,student_id=0,student_name=''):
        """添加学生,该生刚入校,把他注册进数据库"""
        student_id=int(input("请输入学号:"))
        student_name=input("请输入姓名:")
        self.StudentDataBase.update({student_id:student_name})

    def DeleteStudent(self,studet_id=0,student_name=''):
        """删除学生,就是该生毕业啦,把他从数据库中剔除"""
        student_id=int(input("请输入学号:"))
        student_name=input("请输入姓名:")
        self.StudentDataBase.pop(student_id)

    def Search(self):
        """展示学生数据库中的学生"""
        print("(学号,姓名)")
        for item in self.StudentDataBase.items():
            print(item,end=' ') 
        print("")

class Book:
    BookDataBase=dict() #书本数据库
    def __init__(self,book_id=0,book_name=''):
        """初始化"""
        self.setbook_id(book_id)
        self.setbook_name(book_name)

    def setbook_id(self,book_id):
        """设置书本编号"""
        if not isinstance(book_id,int):
            print("book_id must be integer.")
            return 
        self.book_id=book_id

    def setbook_name(self,book_name):
        """设置书本名称"""
        if not isinstance(book_name,str):
            print("book_name must be string.")
            return 
        self.book_name=book_name
    def Addbook(self,book_id=0,book_name=' '):
        book_id=int(input("请输入书本编号:"))
        book_name=input("请输入书本名字:")
        self.BookDataBase.update({book_id:book_name})

    def Deletebook(self,book_id=0,book_name=''):
        book_id=int(input("请输入书本编号:"))
        book_name=input("请输入书本名字:")
        self.BookDataBase.pop(book_id)
    
    def Search(self):
        """展示学生数据库中的学生"""
        print("(书本编号,书名)")
        for item in self.BookDataBase.items():
            print(item,end=' ')
        print("")
        
class StudentBorrowBook(Book,Student):
    BorrowDataBase={}#借阅关系数据库

    def __init__(self):
        pass
    def Borrow(self,student_id,student_name,book_id,book_name,time=1):
        self.BorrowDataBase.update({student_id:(student_name,book_id,book_name,time)})

    def Return(self,student_id,student_name,book_id,book_name):
        '''还书'''
        self.BorrowDataBase.pop(student_id)

    def Search(self):
        print("(借阅者学号,(借阅者姓名,借阅图书编号,借阅图书,借阅天数))")
        for item in self.BorrowDataBase.items():
            print(item,' ')
        print('')
def StudentManger():#已经实现
    print("------欢迎来到学生信息管理系统")
    print("1.------------------添加学生")
    print("2.------------------删除学生")
    print("3.---------展示学生数据库信息")
    print("4.------------------返回主页")
    choice=input("请选择对应的功能:")
    choice=int(choice)
    student=Student()#创建一个学生类实例化对象
    '''choice=1 ====>添加学生
       choice=2 ====>删除学生
       choice=3 ====>展示学生信息库
       chocie=4=====>主页
    '''
    if choice==1:
        student.AddStudent()
        print("成功添加!")
        StudentManger()

    elif choice==2:
        student.DeleteStudent()
        print("成功删除!")
        StudentManger()
        
    elif choice==3:
        student.Search()
        StudentManger()

    elif choice==4:
        Meau()
        
    else:
        print("你选择的功能有误!")
    
def BookManger():#已经实现
    print("------欢迎来到图书信息管理系统")
    print("1.------------------添加图书")
    print("2.------------------删除图书")
    print("3.---------展示图书数据库信息")
    print("4.------------------返回主页")
    choice=input("请选择对应的功能:")
    choice=int(choice)
    book=Book()#创建一个图书类实例化对象
    '''choice=1 ====>添加图书
       choice=2 ====>删除图书
       choice=3 ====>展示图书信息库
       chocie=4=====>主页
    '''
    if choice==1:
        book.Addbook()
        print("成功添加!")
        BookManger()
        
    elif choice==2:
        book.Deletebook()
        print("成功删除!")
        BookManger()
        
    elif choice==3:
        book.Search()
        print('')
        BookManger()
        
    elif choice==4:
        Meau()

    else:
        print("你选择的功能有误!")
    

def BorrowManger():#已经实现
    print("------欢迎来到借阅信息管理系统")
    print("1.------------------借阅图书")
    print("2.------------------归还图书")
    print("3.------展示借阅关系数据库信息")
    print("4.------------------返回主页")
    choice=int(input("请选择对应的功能:"))
    student_borrow=StudentBorrowBook()#创建一个借阅关系类实例化对象
    '''choice=1 ====>借阅图书
       choice=2 ====>归还图书
       choice=3 ====>展示借阅关系信息库
       chocie=4=====>主页
    '''
    if choice==1:
        ''' def Borrow(self,student_id,student_name,book_id,book_name,time=1):'''
        student_id=int(input("请输入学号:"))
        student_name=input("请输入姓名:")
        book_id=int(input("请输入书本编号:"))
        book_name=input("请输入书本名字:")
        time=int(input("请输入借阅天数:"))
        student_borrow.Borrow(student_id,student_name,book_id,book_name,time)
        print("成功借书!")
        BorrowManger()

    elif choice==2:
        '''def Return(self,student_id,student_name,book_id,book_name):'''
        student_id=int(input("请输入学号:"))
        student_name=input("请输入姓名:")
        book_id=int(input("请输入书本编号:"))
        book_name=input("请输入书本名字:")
        student_borrow.Return(student_id,student_name,book_id,book_name)
        print("成功还书!")
        BorrowManger()

    elif choice==3:
        student_borrow.Search()       
        print('')
        BorrowManger()

    elif choice==4:
        Meau()

    else:
        print("你选择的功能有误!")
    

def Meau():
    '''菜单'''
    print("--------欢迎来到图书馆借阅系统--------")
    print("1.-----------------------学生信息管理")
    print("2.-----------------------图书信息管理")
    print("3.-----------------------借阅信息管理")
    print("0.---------------------------退出系统")
    while True:
        option=input("请输入对应的功能按钮:")
        option=int(option)
        if option==0:
            print("正在退出********")
            exit(0)
        elif option==1:      #已经实现
            StudentManger()
        elif option==2:      #已经实现
            BookManger()
        elif option==3:      #已经实现
            BorrowManger()
        else:
            print("你的选择不正确!")
                   
if __name__ == '__main__':
    Meau()

 

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
# 图书管理系统说明V2.0 ### 项目介绍及再版说明(2016-01-24) 其实一开始做这个小项目在2014年的9到11月,当时是作为加入Pureweber开发组的大作业完成的。虽然用了两个月的时间,但是做出的东西还是有很多的缺陷。前些日子在整理GitHub时又想起来了这个项目,记得曾经还在Django中国社区里安利初学者来读代码什么的。但是想想里面还有很多不规范的代码和一些很糟糕的写法就感觉很蛋疼。本来想直接删除了好了,但是后来想想,何不花点时间把这个小项目重构一下,就可以给以后学习Django的同学一个完整的项目参考,就可以代替了一般培训课程或者老师上课PPT里那种陈旧或者不完整的例子。 于是一共花费了大约两天时间对项目进行了重构,主要做了以下方面的工作: * 将Django的版本更新到了最新的1.9.1。 * 修改了原先项目中不规范的格式、变量名等。 * 更改了项目的目录结构,换成了Django官方推荐的目录结构模式。 * 将原来缺失的文件上传保存部分补充完整了。 * 更改了用户部分的代码,将原来手动设置session的方式去掉了,替换为Django用户模块默认的登录态保存方式. * 修复了注册用户时用户提交空密码可能造成的安全漏洞。 * 做了对python3的支持。改动不多。 ### 项目所涉及的和Django相关的功能 项目的目的是为了给Django的初学者一个完整项目的参考案例,所以尽可能多的选择了初学者常用的方法处理一些问题,比如在视图的处理上选择了视图处理函数,而不是更好用的视图处理类。在参数传递上只使用了标准的POST和GET的方式传参,而没有使用url地址中提取参数的办法。该项目中主要涉及到的Django框架相关的内容有: * Models模型字段用法,外键关系用法。 [文档](https://docs.djangoproject.com/en/1.9/topics/db/models/) * 使用ORM进行数据库查询。 [文档](https://docs.djangoproject.com/en/1.9/topics/db/queries/) * Urls配置文件的写法,Urls命名与反向查询。 [文档](https://docs.djangoproject.com/en/1.9/topics/http/urls/) * Views视图处理函数。 [文档](https://docs.djangoproject.com/en/1.9/topics/http/views/) * Templates模板。 [文档](https://docs.djangoproject.com/en/1.9/ref/templates/language/) * 在admin站点中注册模型。 [文档](https://docs.djangoproject.com/en/1.9/ref/contrib/admin/) * Django自带用户模块的注册和登录。 [文档](https://docs.djangoproject.com/en/1.9/topics/auth/default/) * 对Django自带的用户模块进行拓展。 [文档](https://docs.djangoproject.com/en/1.9/topics/auth/customizing/) * 静态文件处理。 [文档](https://docs.djangoproject.com/en/1.9/ref/contrib/staticfiles/) * 还有一大堆其他的…… ### 系统说明 * 本系统使用Python的Django框架搭建。 * 前端部分使用bootstrap。 ### 运行说明 * 请参考Django官方文档[下载](https://www.djangoproject.com/download/)Django1.711.9.1版。 * 请按照Django官方文档[安装](https://docs.djangoproject.com/en/1.9/intro/install/)Django。 * 如果是水果电脑。。。请额外安装[PIL](http://www.pythonware.com/products/pil/)库。 * 通过终端进入项目文件夹。 * 在终端中执行`python manage.py runserver`命令即可运行本地开发服务器。 * 在浏览器里访问`http://127.0.0.1:8000`即可查看该网站。 ### 功能实现 * 实现了用户权限相关的基本操作(注册、登陆、修改密码、注销) * 实现了用户分级(普通用户与管理员用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值