博客园

1754347-20190831100737148-818826216.png
用软件开发规范编写模拟博客园系统

项目分析:
一.首先程序启动,显示下面内容供用户选择:

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.退出整个程序要求:
就是结束整个程序。

starts:

import sys

sys.path.append(r'C:\Users\zhoujinghua\PycharmProjects\project-nlp')

from qiche.boke.core.src import start
start()

setting:

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"

src:

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}

common:

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值