博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟博客园系统
阅读量:6316 次
发布时间:2019-06-22

本文共 6268 字,大约阅读时间需要 20 分钟。

1. 启动程序, 显⽰菜单列表      菜单:      1. 登录      2. 注册      3. ⽂章      4. ⽇记      5. 退出 2. ⽤户输入选项, ⽂章和⽇记必须在登录后才可以进⾏操作.(装饰器) 3. ⽤户注册, 将⽤户名和密码写入到register⽂件中. 同时⽣成"article_⽤户名"⽂件⽤于 存储⽤户⽂章. 同时⽣成"diary_⽤户名" 来存储⽤户的⽇记内容. 4. ⽤户登录成功后, ⽤户名和密码从register⽂件中读取内容. 并记录好当前登录的⽤户 名和登录状态. 5. 在⽤户进入⽂章菜单后. 提⽰⽤户选择: 写⽂章, 读⽂章, 如果⽤户选择读⽂章. 把⽤户 所有的⽂章标题显⽰出来. 让⽤户选择要显⽰的⽂章标题. 显⽰出⽂章内容. 如果选择 写⽂章. 则让⽤户输入要写的⽂章标题和⽂章内容. 并存入该⽤户的⽂章⽂件中.  例如,  alex登录成功后.  他可以选择读⽂章和写⽂章.  读⽂章:  您的⽂章有:  1. 中东之⾏  2. wusir是怎样炼成的  请选择您要读的⽂章序号: 2  标题: wusir是怎样炼成的  内容: wusir这个⼤烧饼, 我们曾经在xxx地⽅的时候xxxxxxxx....  写⽂章:  请输入您要编写的⽂章标题: 太⽩在哪⾥  请输入您这篇⽂章的内容: 太⽩⾦星昨⽇⼜去找王⺟娘娘做头发了.  ⽂章保存成功  此时系统读写的⽂件为article_alex⽂件. 如果是peiqi登录. 则操作的是 article_peiqi⽂件. 每个⽤户都会单独分配⼀个 "article_⽤户名" ⽂件. 5. 进入⽇记菜单后. 操作和⽂章类似. 差别是. ⽇记的标题就是当天的⽇期. 不需要⽤户 输入. 直接⽣成系统时间. 当然. 对于⽇记每个⽤户也会有⾃⼰的单独的⽂件产⽣. 统 ⼀命名为"diary_⽤户名" ''' import time login_name = "" flag = False def login_verify(fn):     def inner(*args, **kwargs):         while 1:             if flag == True:                 ret = fn(*args, **kwargs)                 return ret             else:                 print("您还没有登录. 请登录!")                 login()     return inner def login():     print("=============欢迎进入登录环节================")     while 1:         uname = input('请输入你的用户名:')         upwd = input('请输入你的密码:')         f = open('register', mode="r", encoding="utf-8")         for line in f:             d = eval(line.strip())             if uname == d['username'] and upwd == d["password"]:                 global login_name                 global flag                 login_name = uname # 保存登录的用户名                 flag = True                 print("=============登录成功!!!!!================")                 f.close()                 return         else:             f.close() # 关文件             y = input("=============用户名或密码错误,是否重新登录(Y/N)!!!!!================")             if y.upper() != "Y":                 return def regist():     print('===========进入注册环节==============')     ff = True     while ff:         uname = input("请输入你的用户名:")         # 判断用户名是否重复         f = open("register", mode="r", encoding="utf-8")         for line in f:             # 字符串转化回字典             dd = eval(line.strip())             if uname == dd['username']:                 print('用户名重复!!!!')                 f.flush()                 f.close()                 break         else: # 用户名不存在. 可用             print("用户名可用. ")             ff = False             f.flush()             f.close()     upwd = input("请输入你的密码:")     d = {"username":uname, "password":upwd}     f = open("register", mode="a", encoding="utf-8")     f.write(str(d)+"\n")     f.flush()     f.close()     # 创建存放文件和文章的文件     f1 = open("article_"+uname, mode="w", encoding="utf-8")     f2 = open("diary_"+uname, mode="w", encoding="utf-8")     f1.close()     f2.close()     print('===========注册成功!!!==============') def read_article():     print("========读文章环节==============")     with open("article_"+login_name, mode="r", encoding="utf-8") as f:         count = 1         for line in f:             print(count, eval(line.strip())['title'])             count += 1     while 1:         cc = input("请输入你要读的文章, 输入Q返回上一单元:") # 3         if cc.upper()=='Q':             return         id = int(cc)         if id < 1 or id > count:             print('该文章不存在')             continue         else:             with open("article_" + login_name, mode="r", encoding="utf-8") as f:                 for i in range(id):                     line = f.readline()             # 此时读取的line就是第id行的数据             dd = eval(line.strip())             print('您选择的文章标题是: %s' % dd['title'])             print("您选择的文章内容是:")             print(dd['content']) def write_article():     print("========写文章环节==============")     title = input('请输入你要写入的文章标题:')     content = input("请输入你要写入的文章的内容:")     d = {"title":title, "content": content}     with open("article_"+login_name, mode="a", encoding="utf-8") as f:         f.write(str(d)+"\n")     print("========文章写入成功!!!!!==========") def read_diary():     print("========读日记环节==============")     with open("diary_"+login_name, mode="r", encoding="utf-8") as f:         count = 1         for line in f:             print(count, eval(line.strip())['title'])             count += 1     while 1:         cc = input("请输入你要读的日记, 输入Q返回上一单元:") # 3         if cc.upper()=='Q':             return         id = int(cc)         if id < 1 or id > count:             print('该日记不存在')             continue         else:             with open("diary_" + login_name, mode="r", encoding="utf-8") as f:                 for i in range(id):                     line = f.readline()             # 此时读取的line就是第id行的数据             dd = eval(line.strip())             print('您选择的日记标题是: %s' % dd['title'])             print("您选择的日记内容是:")             print(dd['content']) def write_diary():     print("========写日记环节==============")     title = time.strftime("%Y-%m-%d")     content = input("请输入你要写入的日记的内容:")     d = {"title":title, "content": content}     with open("diary_"+login_name, mode="a", encoding="utf-8") as f:         f.write(str(d)+"\n")     print("========日记写入成功!!!!!==========") @login_verify def article():     while 1:         print("========欢迎来到文章环节=============")         print("1. 读文章")         print("2. 写文章")         print("3. 返回")         num = input("请输入你要执行的菜单:")         if num == "1":             read_article()         elif num == "2":             write_article()         elif num == "3":             print("========结束文章环节=========")             return @login_verify def diary():     while 1:         print("========欢迎来到日记环节=============")         print("1. 读日记")         print("2. 写日记")         print("3. 返回")         num = input("请输入你要执行的菜单:")         if num == "1":             read_diary()         elif num == "2":             write_diary()         elif num == "3":             print("========结束日记环节=========")             return print("欢迎来到博客园系统") menu = ("登录", "注册", "文章", "日记", "退出") while 1:     for i in range(len(menu)):         print(i+1, menu[i])     m = input('请输入你要执行的菜单:')     if m == "1":         login()     elif m == "2":         regist()     elif m == "3":         article()     elif m == "4":         diary()     elif m == "5":         exit()     else:         print("您输入的菜单不存在. 请重新输入")

转载于:https://www.cnblogs.com/bpbl/p/10208796.html

你可能感兴趣的文章
android 通过子线程跳转activity并传递内容
查看>>
ux.form.field.GridDate 支持快速选择日期的日期控件
查看>>
bootstrap入门基础
查看>>
合抱之木,生于毫末
查看>>
P1888 三角函数
查看>>
poj 3105 Expectation 按位统计
查看>>
微服务的一种开源实现方式——dubbo+zookeeper
查看>>
Java类载入器(二)——自己定义类载入器
查看>>
c++引用返回值
查看>>
IWDG—独立看门狗
查看>>
【其他】比较优雅地编码
查看>>
ES6中的Symbol类型
查看>>
【博客目录】SqlServer篇
查看>>
springboot启动mybatis
查看>>
SQL Server索引视图以(物化视图)及索引视图与查询重写
查看>>
iOS多线程与网络开发之NSURLCache
查看>>
表单中的日期 字符串和Javabean中的日期类型的属性自动转换
查看>>
全站 HTTPS 没你想象的那么简单
查看>>
比树莓派配置好接地气的香蕉派上手初体验
查看>>
Linux学习笔记--which命令(搜索命令的命令)
查看>>