class Book():
def __init__(self,ISBN,Ftile,Author,Publisher):
self.ISBN = ISBN
self.Ftile = Ftile
self.Author = Author
self.Publisher = Publisher def show(self):
print(self.ISBN,self.Ftile,self.Author,self.Publisher) class BookList():
def __init__(self):
self.books = [] def show(self):
print(self.ISBN, self.Ftile, self.Author, self.Publisher)
for i in self.books:
self.show() def __insert(self,s):
i = 0
while(i<len(self.books) and s.ISBN > self.books[i]):
i=i+1
self.books.insert(i,s)#指定位置添加一个元素
print("ok") def __update(self,s):
i = 0
while(i<len(self.books) and s.ISBN != self.books[i]):
i=i+1
if(s.ISBN==self.books[i]):
del self.books[i]
self.books.insert(i,s)
print("-- update @ ok --")
else:
print("--error--") def __delete(self):
while(i<len(self.books) and s.ISBN != self.books[1]):
i=i+1
if(s.ISBN ==self.books[i]):
del self.books[i]
print("-- delete @ ok --")
else:
print("--error--") def insert(self):
ISBN = input('ISBN:')
Ftile = input('Ftile:')
Author = input('Author:')
Publisher = input('Publisher:')
if (ISBN!='' and Ftile!=''):
self.__insert(Book(ISBN,Ftile,Author,Publisher))
else:
print("--ISBN/Ftile^error--") def update(self):
ISBN = input('ISBN:')
Ftile = input('Ftile:')
Author = input('Author:')
Publisher = input('Publisher:')
if (ISBN != '' or Ftile != '' or Author!='' or Publisher!=''):
self.__update(Book(ISBN, Ftile, Author, Publisher))
else:
print("---error---") def delete(self):
ISBN = input('ISBN:')
Ftile = input('Ftile:')
Author = input('Author:')
Publisher = input('Publisher:')
if (ISBN != '' or Ftile != '' or Author != '' or Publisher != ''):
self.__delete(Book(ISBN, Ftile, Author, Publisher))
else:
print("---error---") def scan(self):
while True:
s = input(">>>")
if s=='show':
self.show()
elif s=='insert':
self.insert()
elif s=='update':
self.update()
elif s=='delete':
self.delete()
elif s=='exit':
break
else:
print(" ---- Error ---- ")
return 0
self.File()
#print(self.books) 》》》》[<__main__.Book object at 0x0000020B3A08CFD0>] def File(self):
f = open('jiaocai.txt','wt+',encoding = 'utf-8')
for i in self.books:
f.write(i.ISBN+'\n')
f.write(i.Ftile+'\n')
f.write(i.Author+'\n')
f.write(i.Publisher+'\n')
#books = self.books
#f.write(str(books))#不可用
f.close() Bl=BookList()
Bl.scan()
#print(BookList.books)

python_案例综合:教材记录管理的更多相关文章

  1. Python_案例_斐波那契数

    方法一: 1 #!/usr/bin/python3 2 3 # Fibonacci series: 斐波纳契数列 4 # 两个元素的总和确定了下一个数 5 a, b = 0, 1 6 while b ...

  2. Mybatis(综合案例)

    MyBatis本是apache的一个开源项目iBatis,2010年这个项目有Apache software foundation 迁移到了Google code,并改名MyBatis.2013年11 ...

  3. python_文件操作代码实例

    """提示:代码中的内容均被注释,请参考,切勿照搬""" 1 #文件的打开和关闭 ''' 文件对象 = open('文件名','使用方式') ...

  4. python_文件的打开和关闭

    文件对象 = open('文件名','使用方式')rt:读取一个txt文件wt: 只写打开一个txt文件,(如果没有该文件则新建该文件)会覆盖原有内容at:打开一个txt文件,并从文件指针位置追加写内 ...

  5. 企业Shell面试题及企业运维实战案例(三)

    1.企业Shell面试题1:批量生成随机字符文件名案例 使用for循环在/oldboy目录下批量创建10个html文件,其中每个文件需要包含10个随机小写字母加固定字符串oldboy,名称示例如下: ...

  6. Mybatis

    Mybatis MyBatis本是apache的一个开源项目iBatis,2010年这个项目有Apache software foundation 迁移到了Google code,并改名MyBatis ...

  7. 03-Vue入门系列之Vue列表渲染及条件渲染实战

    3.1. 条件渲染 有时候我们要根据数据的情况,决定标签是否进行显示或者有其他动作.最常见的就是,表格渲染的时候,如果表格没有数据,就显示无数据.如果有数据就显示表格数据. Vue帮我们提供了一个v- ...

  8. 王家林 大数据Spark超经典视频链接全集[转]

    压缩过的大数据Spark蘑菇云行动前置课程视频百度云分享链接 链接:http://pan.baidu.com/s/1cFqjQu SCALA专辑 Scala深入浅出经典视频 链接:http://pan ...

  9. Web服务器(Apache)虚拟主机的配置

    一.定义    所谓虚拟主机是指在一台服务器里运行几个网站,提供WEB.FTP.Mail等服务.    二.虚拟主机的实现方法有三种:    基于IP的方法,基于主机名的方法和基于端口的法官法.    ...

随机推荐

  1. p3163 [CQOI2014]危桥

    传送门 分析 代码 #include<iostream> #include<cstdio> #include<cstring> #include<string ...

  2. python列表--查找集合中重复元素的个数

    方法一: >>> mylist = [1,2,2,2,2,3,3,3,4,4,4,4] >>> myset = set(mylist) >>> f ...

  3. 36-OLED显示实验

    1.OLED原理 有四种工作模式 先把片选拉低,如果是写的话,把RD拉高,在WR的上升沿写数据到数据线上,DC决定是数据还是命令.读类似了. 2.程序显示原理 3.代码 4.自己写代码 http:// ...

  4. 安装postman工具模拟请求

    扩展工具->: 注意,在创建快捷方式后,第一次打开这个工具,会让你注册信息,忽略它.关闭,重新打开postman工具,然后如下所示:

  5. POJ 2836 Rectangular Covering (状压DP)

    题意:平面上有 n (2 ≤ n ≤ 15) 个点,现用平行于坐标轴的矩形去覆盖所有点,每个矩形至少盖两个点,矩形面积不可为0,求这些矩形的最小面积. 析:先预处理所有的矩形,然后dp[s] 表示 状 ...

  6. HUB和Switch

    http://baike.baidu.com/view/600161.htm 当然交换机的功能还不止如此,它可以把网络拆解成网络分支.分割网络数据流,隔离分支中发生的故障,这样就可以减少每个网络分支的 ...

  7. Java分层概念(转)

    Java分层概念(转) 对于分层的概念,似乎之间简单的三层,多了,就有点难以区分了,所以收藏了这个. ervice是业务层 action层即作为控制器 DAO (Data Access Object) ...

  8. windows10系统连接蓝牙鼠标自动断开解决方案

    环境: Windows 10 企业版 2016 长期服务版 罗技M590 问题: 鼠标长时间未使用,会自动断开 解决步骤: 参考链接: https://zhidao.baidu.com/questio ...

  9. 完全离线安装VSCode插件--Eslint

    最近折腾了一番,总算把Eslint插件在离线的情况下安装好了.之前查了挺多,但是很多方法还是在没有完全离线的情况下进行的.之所以想完全离线安装,主要是因为我们工作的地方是禁止访问外网的,所以像直接执行 ...

  10. Unity苹果(iOS)内购接入(Unity内置IAP)

    https://www.jianshu.com/p/4045ebf81a1c Unity苹果(iOS)内购接入(Unity内置IAP) Kakarottog                       ...