一.首先程序启动,显示下面内容供用户选择:
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.退出整个程序 """html
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("非法用户名")app
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.htmlspa