一.首先程序啓動,顯示下面內容供用戶選擇:
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