用软件开发规范编写模拟博客园系统
项目分析: 一.首先程序启动,显示下面内容供用户选择:
1.请登录 2.请注册 3.进入文章页面 4.进入评论页面 5.进入日记页面 6.进入收藏页面 7.注销账号 8.退出整个程序
二.实现的功能: 1.注册功能要求: a.用户名、密码要记录在文件中。 b.用户名要求:只能含有字母中文或者数字不能含有特殊字符并且确保用户名唯一。 c.密码要求:长度要在6~14个字符之间。
2.登录功能要求: a.用户输入用户名、密码进行登录验证。 b.登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,跳转到登录。(装饰器) c.超过三次登录还未成功,锁定用户且提示联系管理员并退出整个程序。
3.进入文章页面要求: 提示欢迎xx进入文章页面。(xx是当前登录的用户名)
4.进入评论页面要求: a.展示所有用户的评论 (xx是当前登录的用户名)
1楼 - xx:这周作业真难啊 2楼 - xx:这是要死的节奏啊 3楼 - xx:真是一个大烧饼,留这么多作业 b.让用户选择是否要评论 c.如果评论写入到评论的文件中(使用json模块)
5.进入日记页面要求:(提示每个用户创建一个文件) a.展示当前用户的日记内容 b.让用户选择是否要记录日记 c.如果要记录日记,将日记写入到文件中,日记内容如下:(使用json模块和time模块)
{"time":"xxxx-xx-xx xx:xx:xx","content":"xxxxxx"} 6.进入收藏页面要求: 提示欢迎xx进入收藏页面。
7.注销账号要求: 不是退出整个程序,而是将已经登录的状态变成未登录状态(访问3~7选项时需要重新登录)。
8.退出整个程序要求: 就是结束整个程序。
import sys
sys.path.append(r'C:\Users\zhoujinghua\PycharmProjects\project-nlp')
from qiche.boke.core.src import start start()
SUODING=r'C:\Users\zhoujinghua\PycharmProjects\project-nlp\qiche\boke\db\suoding.txt'
REGISTER=r'C:\Users\zhoujinghua\PycharmProjects\project-nlp\qiche\boke\db\register.txt' PINGLUN=r'C:\Users\zhoujinghua\PycharmProjects\project-nlp\qiche\boke\db\pinglun.txt'
NAME=r"C:\Users\zhoujinghua\PycharmProjects\project-nlp\qiche\boke\db"
import json import time import os from qiche.boke.lib.common import warpper from qiche.boke.conf import setting def login(): while 1: with open(setting.REGISTER, 'r', encoding='utf-8') as f,open(setting.SUODING, 'a+', encoding='utf-8') as f2: user1=input('请输入用户名:').strip(' ') pwd= input('请输入密码:').strip(' ') for i in f: a,b=i.strip().split(':') if a==user1 and b==pwd: dic1['sta']=True dic1['user']=user1 print('登录成功') return else: f2.write(f'{user1}\n')
f2.seek(0) if f2.read().count(user1)>2: print('用户被锁定请联系管理员') break else: print('用户名或密码错误,请重新输入')def resginter(): with open(setting.REGISTER, 'a+', encoding='utf-8') as f: user=input('请输入注册用户名:').strip(' ') if user.isalnum(): if user in f.read(): print('用户已存在') else: paw=input('请输入注册密码:').strip(' ') if 14>len(paw)>6: f.write(f'{user}:{paw}\n') print('注册成功') else: print('密码长度不符,请输入6-14个字符')
else: print('输入有误,请重新输入') print('注意!用户名要求:只能含有字母中文或者数字不能含有特殊字符')@warpper def wen(): print(f"欢迎{dic1['user']}访问文章页面") @warpper def ping():
with open(setting.PINGLUN, 'a', encoding='utf-8') as f3,open(setting.PINGLUN, 'r', encoding='utf-8') as f4: dic2={} print(f"欢迎{dic1['user']}访问评论页面") f3.write(f"""1楼 - {dic1['user']}:这周作业真难啊\n2楼 - {dic1['user']}:这是要死的节奏啊\n3楼 - {dic1['user']}:真是一个大烧饼,留这么多作业\n""") f4.seek(0) print(f4.read()) while 1: f4.seek(0) wr = input('是否要评论(是 或 否):') if wr == '是': wt = input('请输入要评论的内容:') dic2[dic1['user']] = wt new_wt=json.dumps(dic2, ensure_ascii=False).replace('{', '').replace('}', '').replace('"','') f3.write(f"{len(f4.readlines())+1}楼 - {new_wt}\n") print('评论成功!') elif wr == '否': break else: print('请输入是或否')@warpper def riji(): print(f"欢迎{dic1['user']}访问日记页面") with open(os.path.join(setting.NAME,f"{dic1['user']}.txt"), 'a', encoding='utf-8') as f5,open(os.path.join(setting.NAME,f"{dic1['user']}.txt"), 'r', encoding='utf-8') as f6: f6.seek(0) print(f6.read()) di={} msg= input('是否要记录日记(是/否):') if msg == '是': maa=input('日记的内容:') di['time']=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) di['content']=maa nwe_di =json.dumps(di,ensure_ascii=False).replace('{','').replace('}','').replace('"','') f5.write(nwe_di) print('记录日记成功!') elif msg == '否': return else: print('输入有误,请重新输入')
@warpper def shou(): print(f"欢迎{dic1['user']}访问收藏页面") @warpper def out(): dic1['sta']=False
def start(): while 1:
msg = """ 1.请登录 2.请注册 3.进入文章页面 4.进入评论页面 5.进入日记页面 6.进入收藏页面 7.注销账号 8.退出整个程序 """ print(msg) write = input('请选择序号:') if write in dic: dic[write]() else: print('输入有误')dic1 = {'user': 'none', 'sta': False}
dic = {'1': login, '2': resginter, '3': wen, '4': ping, '5': riji, '6': shou, '7': out, '8': exit}
from qiche.boke.core import src def warpper(f): def inner(): if src.dic1['sta']==False: print('请先登录') src.login() else: f() return inner
转载于:https://www.cnblogs.com/shiguanggege/p/11438077.html
相关资源:博客园客户端