簡介
本次專案登入註冊驗證是對之前學習知識點的加深學習,這次專案的練習的知識點有函式、判斷語句、迴圈語句、檔案操作等。
專案流程
執行**之後,輸出登入或者註冊選項。
當選擇登入之後,輸入使用者名稱密碼,如果該使用者資訊沒有註冊過,就輸出登入失敗,如果該使用者資訊已經註冊過,就顯示登入成功。
當選擇註冊之後,輸入使用者名稱密碼,如果該使用者資訊沒有註冊過,就輸出註冊成功,如果該使用者資訊已經註冊過,就顯示使用者名稱已經存在,註冊失敗。
**流程
執行代之後首先執行main()函式,mian()函式中接收使用者輸入的使用者名稱和密碼,使用者選擇登入,就呼叫loing()函式,將使用者輸入的資訊在和存放使用者資訊的檔案中的資訊進行比對,如果有該使用者的資訊就登入成功,否則失敗,使用者選擇註冊,在接收到使用者輸入的使用者名稱密碼之後,呼叫register()函式,在這裡將呼叫 user_exist()函式進行對使用者輸入的資訊進行判斷,如使用者輸入的資訊存在存放使用者資訊的檔案裡,輸出註冊失敗,否則註冊成功。
在login()和user_exist()函式中呼叫了錯誤處理函式。
錯誤處理函式介紹
try:
…except ioerror:
…try中的**執行沒有出現錯誤,就不再執行except中的**,如果try中的**出現錯誤,就執行except中的**。
**實現
如果你對python感興趣,我這有個學習python基地,裡面有很多學習資料,感興趣的+q群:688244617
deflogin
(username, password)
:"""
用於使用者名稱和密碼的驗證
:param username:使用者名稱
:param paaword:密碼
:return:true,使用者驗證成功;false,使用者驗證失敗
"""try:
f =open
("users"
,"r"
, encoding=
"utf-8"
)for line in f:
line = line.strip(
)# 清除換行符
# 無引數時移除兩側空格,換行符
# 有引數時移除兩側指定的字元
line_list = line.split(
"$")
if line_list[0]
== username and line_list[1]
== password:
# print("成功")
return
true
return
false
except ioerror:
return
false
defregister
(username, password)
:"""
註冊使用者
1、開啟檔案
2、使用者名稱$密碼
:param username:使用者名稱
:param password:密碼
:return:true:註冊成功;
"""with
open
("users"
,"a"
, encoding=
"utf-8"
)as f:
temp =
"\n"
+ username +
"$"+ password
f.write(temp)
return
true
defuser_exist
(username)
:"""
檢測使用者名稱是否存在
:param username:要檢測的使用者名稱
:return: true:使用者名稱存在;false:使用者名稱不存在
"""# 一行一行的去查詢,如果使用者名稱存在,return true:false
try:
with
open
("users"
,"r"
, encoding=
"utf-8"
)as f:
for line in f:
line = line.strip(
) line_new = line.split(
"$")
if line_new[0]
== username:
return
true
return
false
except ioerror:
return
false
defmain()
:while
true
:print
("歡迎登入***系統"
) arg =
input
("1:登入,2:註冊"
)if arg ==
"1":
uer =
input
("請輸入使用者名稱:"
) pwd =
input
("請輸入密碼:"
)if login(uer, pwd)
:print
("成功"
)break
else
:print
("失敗"
)elif arg ==
"2":
user =
input
("請輸入使用者名稱:"
) pwd =
input
("請輸入密碼:"
) is_exist = user_exist(user)
if is_exist:
print
("使用者名稱已經存在,註冊失敗"
)else
:if register(user, pwd)
:print
("註冊成功"
)continue
else
:print
("註冊失敗"
)else
:print
("輸入錯誤,請重新輸入"
)main(
)
VC小專案 13 0專案導引(1)
程式閱讀 多型性與抽象類 1 虛函式 includeusing namespace std class a virtual void print const 輸出 5ee5e 除錯過程 除錯心得 通過虛函式,可以通過基類的指標達到訪問子類成員函式的目的,去掉virtual關鍵字將得到不一樣的結果 參...
VC小專案 13 0專案導引(2)
1 請寫出程式的執行結果,並在除錯時對照理解 include using namespace std class vehicle 交通工具 請回答 當基類的指標指向派生類時,用指標呼叫同名成員函式,執行的是基類的成員函式,還是派生類的成員函式?為什麼會這樣?答 輸出結果 說明執行的是基類的成員函式。...
yii2小專案問題彙總
1.第乙個引數,路徑,絕對路徑和相對路徑都可以,常常用相對路徑,因為方便 遷移.2.第二個引數,由四位八進位制數組成,第一位通常是0,跟特殊許可權有關,可以不用太在意。需要注意的有兩點 第一,0777代表著最高許可權,但實際建立的目錄可能許可權是775,這個檔案許可權遮蔽值有關,意思就是你的許可權被...