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

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

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

1.请登录

2.请注册

3.进入文章页面

4.进入评论页面

5.进入日记页面

6.进入收藏页面

7.注销账号

8.退出整个程序

二.必须实现的功能:

1.注册功能要求:

a.用户名、密码要记录在文件中。

b.用户名要求:只能含有字母或者数字不能含有特殊字符并且确保用户名唯一。

c.密码要求:长度要在6~14个字符之间。

d.超过三次登录还未成功,则退出整个程序。

2.登录功能要求:

a.用户输入用户名、密码进行登录验证。

b.登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,跳转到登录。(修改全局变量)

3.进入文章页面要求:

提示欢迎xx进入文章页面。(xx是当前登录的用户名)

4.进入评论页面要求:

提示欢迎xx进入评论页面。

5.进入日记页面要求:

提示欢迎xx进入日记页面。

6.进入收藏页面要求:

提示欢迎xx进入收藏页面。

7.注销账号要求:

不是退出整个程序,而是将已经登录的状态变成未登录状态(访问3~7选项时需要重新登录)。

8.退出整个程序要求:

就是结束整个程序。

4.用代码实现三次用户登录及锁定(选做,时间充足建议做一做)

项目分析:

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

1.注册

2.登录

a.用户选择登录的时候,首先判断用户名在userinfo.txt表中存在不在,存在就不能进行注册

b.当注册的用户名不存在的时候将用户名和密码写入到userinfo.txt文件中

c.用户选择登录的时候,判断用户输入的账号和密码是否userinfo.txt存储的一致

d.用户名和密码一致就终止循环,并提示用户登录成功!

e.用户名和密码不一致,只有三次登录机会,三次过后提示用户名被锁定,请联系管理员!并终止循环

f.当用户名输出三次,再次运行程序.登录锁定的账号继续提示用户名被锁定,请联系管理员!

d.超过三次登录还未成功,则退出整个程序。

2.登录功能要求:

a.用户输入用户名、密码进行登录验证。

b.登录成功之后,才可以访问3 - 7选项,如果没有登录或者登录不成功时访问3 - 7选项,不允许访问,跳转到登录。(修改全局变量)

name, pwd, flag = [], [], []

def func():
with open("userinfo.txt.txt", "w") as f:
for i in range(len(name)):
f.write(name[i] + ":" + pwd[i] + ":" + flag[i] + "\n")
lst1 = """
1.请登录
2.请注册
8.退出整个程序
"""
lst2 = """
3.进入文章页面
4.进入评论页面
5.进入日记页面
6.进入收藏页面
7.注销账号
8.退出整个程序
"""

k = ""

Flag = False
with open("userinfo.txt.txt") as f:
for i in f.readlines():
if len(i)>0:
a, b, c = i.split(":")
name.append(a)
pwd.append(b)
flag.append(c.strip("\n"))
while 1:
while Flag:
print(lst2)
break
else:
print(lst1)
num = input("请输入序号")
if num == "1":
count = 3
name = input("请输入账号:")
while count > 0:
if name in name:
if flag[name.index(_name)] == "1":
pwd = input("请输入密码")
if pwd == pwd[name.index(_name)]:
print("登陆成功!")
Flag = True
k = name
break
else:
print("密码错误")
count -= 1
else:
print("用户名被锁定,请联系管理员")
break
else:
print("用户名不存在")
break
else:
flag[name.index(_name)] = "0"
print("用户名被锁定,请联系管理员")
elif num == "2":
while 1:
name
= input("请输入用户名:")
if name
.isalnum():
pwd
= input("请输入密码:")
if 16 > len(pwd
) > 5:
if name
not in name:
name.append(name_)
pwd.append(pwd_)
flag.append("1")
print("注册成功")
break
else:
print("已有用户名,请重新输入")
else:
print("长度要在6~14个字符之间")
else:
print("非法用户名")

elif num == "3" and Flag:    print(f"欢迎{k}进入文章页面")elif num == "4" and Flag:    print(f"欢迎{k}进入评论页面")elif num == "5" and Flag:    print(f"欢迎{k}进入日记页面")elif num == "6" and Flag:    print(f"欢迎{k}进入收藏页面")elif num=='7'and Flag:    func()    Flag = False    print("注销成功")elif num == "8":    func()    print("退出成功")    exit()else:    print("未登陆或字符错误")

转载于:https://www.cnblogs.com/sjf981012-/p/11223174.html

你可能感兴趣的文章
[vue]spa单页开发及vue-router基础
查看>>
netease-cloud-music : 依赖: libqt5x11extras5 (>= 5.1.0) 但是它将不会被安装
查看>>
剑指offer——二叉树的深度与平衡二叉树的判断
查看>>
【STL学习】智能指针之weak_ptr
查看>>
css兼容问题
查看>>
总结2
查看>>
webdriver技巧:使用YAML将元素层分离
查看>>
解决编译caffe2遇到的坑
查看>>
P1664 每日打卡心情好
查看>>
题目2:成绩排序
查看>>
Visual Studio配置(1):解决方案属性说明
查看>>
Unity 点击事件 拖拽事件
查看>>
Aes加密方法
查看>>
IOS SWIFT UITableView 实现简单微博列表
查看>>
Postman 官网教程,重点内容,翻译笔记,
查看>>
sqlserver 2008 使用维护计划,备份数据库
查看>>
sdut 2493 Constructing Roads (图论)
查看>>
PHP&MYSQL 常用的一些性能检测
查看>>
Windows8.1 与Ubuntu14.04双系统
查看>>
mobike
查看>>