#!/usr/bin/python3
'''
日记本管理系统项目
notebook(日记本)
|
+--1页(时间:年,月,日,天气,内容)
|
+--2页
|
+--
事件:
1.添加页
2.修改当天日记
3.列出所有日记信息(不包括内容)
4.查看日记内容
对象:
1.日记本(一个)
2.页(多个)
'''
# 此类用于封装日记本的页类
class Page :
def __init__( self , year , month , day , weather ) :
self.__year = year
self.__month = month
self.__day = day
self.__weather = weather
self.__content = '' # 此时不填写任何内容
def get_title( self ) :
s = str( self.__year ) + '年' + str( self.__month ) + '月' + str( self.__day ) + '日 天气:' + self.__weather
return s
def get_content( self ) : # 获取一页的内容
s = self.get_title( ) + "\n%s" % self.__content
return s
def set_content( self , s ) : # 设置一页内容
self.__content = s
def getdate( self ) :
return [ self.__year , self.__month , self.__day ]
# 此类用于封装日记本类
class NoteBook :
def __init__( self ) :
self.__pages = [ ] # 此列表用于存储数据页
# 1.添加页
def __add_page( self ) :
year = int( input( '请输入年:' ) )
month = int( input( '请输入月:' ) )
day = int( input( '请输入日:' ) )
weather = input( '请输入天气:' )
# 创建一个页
p = Page( year , month , day , weather )
# 把页面放到此pages列表的最后
self.__pages.append( p )
# 2.修改当天日记
def __modify_last( self ) :
if len( self.__pages ) <= 0 :
return # 此时日记里没有内容
lastpage = self.__pages[ -1 ]
s = lastpage.get_content( ) # 获取此页的内容
print( '内容是:\n%s' % s )
s = input( '请输入新内容:' )
lastpage.set_content( s ) # 设置修改后的新内容
# 3.列出所有日记信息( 不包括内容 )
def __list_pages( self ) :
print( '----------日记列表----------' )
i = 0
while i < len( self.__pages ) :
s = self.__pages[ i ].get_title( )
print( ' %d)%s' % ((i + 1) , s) )
i += 1
# 4.查看日记内容
def __lookup( self ) :
year = int( input( '请输入年:' ) )
month = int( input( '请输入月:' ) )
day = int( input( '请输入日:' ) )
i = 0
while i < len( self.__pages ) :
cur_page = self.__pages[ i ]
if [ year , month , day ] == cur_page.getdate( ) :
print( '内容是:\n%s' % cur_page.get_content( ) )
break
i += 1
else :
print( '未找到!' )
def __menu( self ) :
print( '1.添加页\n'
'2.修改当天日记\n'
'3.列出所有日记信息(不包括内容)\n'
'4.查看日记内容\n5.退出' )
def mainloop( self ) :
# 循环等待用户输入相应的事件操作,调用notebook相应的方法
while True :
# 打印选择菜单
self.__menu( )
s = input( '请选择:' )
if s == '1' :
self.__add_page( )
elif s == '2' :
self.__modify_last( )
elif s == '3' :
self.__list_pages( )
elif s == '4' :
self.__lookup( )
elif s == '5' :
break
notebook = NoteBook( )
notebook.mainloop( )
学习笔记☞面向对象编程示例(日记本管理系统项目)
最新推荐文章于 2023-03-29 16:41:49 发布