1、源**問題討論
2、對於類的分析
3、實現檔案的讀取
4、完成身份的認證
5、身份驗證後載入主介面
6、輸錯三次是禁用賬號。
gui 放置在類中
1、將介面和功能分開!
好處:模組化----》後期可以復用
低耦合2、**分層:
gui功能
資料庫當前使用者名稱,當前使用者密碼,當前使用者狀態
靜態特徵:當前使用者名稱;當前密碼;當前使用者的狀態,「所有的登陸賬號」。
動態特徵:1、載入讀取檔案的內容到list。
2、身份驗證
3、若輸入密碼三次禁用賬號---->寫入檔案
類變數的特徵:好處:儲存乙份;節約空間;加快了例項化效率。
沒有例項化的時候需要判斷;—users =[]是不是有資料。
一般情況下,類變數放一些固定不變的東西。
class user: #使用者,表示使用者的使用者名稱、密碼、使用者狀態def
__init__(self
,name,password,status):
self.name=name
self.password = password
self.status = status
class userservieces: #使用者登陸服務:讀取所有使用者資訊、驗證、寫入到檔案
def
__init__(self
,current_user): #current_user包含(name,password,status)
self.current_user=current_user #儲存了當前登陸的使用者名稱、密碼、使用者狀態
self.__users = # 受保護的例項變數---list.儲存了檔案中所有的賬號.實現後面的驗證。用於身份驗證。
self.__filepath="./data/user.txt"
# 受保護的例項變數,記錄了賬號路徑。
#設定載入使用者到list自動執行
self.read_users()
def
read_users(self):
try:
with
open(file=self.__filepath,
mode="r"
,encoding="utf-8") as fd:
#逐行讀取
current_line=fd.readline()
while current_line:
user_info=current_line.split(",")
#current_line = fd.readline()
#把分開的屬性例項化乙個user物件。
obj_user=user(user_info[0],user_info[1],user_info[2])
#user物件新增到list。
# 逐行讀取,讀取下一行。
current_line = fd.readline()
except:
raise
exception("讀取檔案異常!")
@property
#可以用於例項物件訪問私有變數
def
users(self):
return
self.__users
if __name__=="__main__":
alice=userservieces("gwj")
print(len(alice.users))
學生資訊管理系統
學生資訊管理系統,顧名思義就是為了管理學生的相關資訊做的一款軟體。雖然這次有原始碼供我們參考,但是從中我學習到了如何從開始到完工去做一款軟體,下邊我從做一項軟體專案的前後順序來總結我的學生資訊管理系統。一,分析需求 首先在做這款軟體是,我們先想象乙個成品,他的功能有哪些,每個功能完成哪項任務,這就是...
學生資訊管理系統
1.背景描述 學校招生辦在錄取當年新生時為新生建立了乙個新生基礎資訊類studentbase,其中包含每位新生的基本資料 學號 long mnum 姓名 char mname 20 性別 int m 其中0表示男,1表示女 年齡 int mage 住址 char maddr 30 新生主修專業所在系...
學生資訊管理系統
學生資訊管理系統由13個窗體1乙個mdi窗體乙個模組組成,窗體主要實現了登陸 新增 修改 檢視等功能,模組主要是存放全域性變數和各種函式。在敲這個系統之前,我覺得有個問題需要考慮一下,要是想一邊敲一邊除錯的話,那前面就得把資料庫等配置好了,如果想敲完再除錯的話,那就什麼時候配置好資料庫都可以。我當時...