GG資源網

python的實戰-銀行系統

python的實戰-銀行系統

如果您是本站會員;我們將為您提供技術支持!!

 

本篇文章給大家帶來的內容是介紹Python的實戰小項目之銀行系統的實現。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所幫助。

眾所周知,在編程過程中理論知識再充實也需要通過項目的煉金石。下面給大家看一下我徒弟做的一個小項目實戰要求,是做一個銀行系統,就是我們去銀行辦業務時候會有個自助的ATM機,現在大部分業務都是由他來解決的。首先自己想一想,用面向對象的思想該怎樣實現這個系統呢?都有哪些對象?他們各自的功能都有什麼?想到的越多越好,在實現的時候,碰到一個問題解決一個問題,過程當中問題很多,也不是很容易解決,不過也就是這樣的過程才能學到新的東西。

一、準備工作

首先走進銀行的大門,會有工作人員來詢問需要辦理什麼業務,當然得實話實說了,不過這個和系統沒什麼關係(* ̄︶ ̄)。接下來,如果要辦理的業務是比較大眾化的,可以在機器上完成,那麼她就會帶著我們到一個龐大的小機器旁邊。前面他還需要操作幾下,來讓機器可以為我們工作,有時可以見到招呼一個更高級的員工來輸下指紋。這些我們可以理解為管理員來啟動系統(有些人是不是覺得哪有這麼麻煩,主要我這裡說的是銀行裡面那幾台功能比較全的,不單單是簡單的自動取款機)。

接下來該辦理我們的業務了,都有哪些業務呢?先列舉一些:查餘額,存款,取款,轉賬,改個密碼,還可以掛失鎖卡,對應還能解鎖,把最基本的忘記了,沒有辦卡哪有這些操作呢,開戶也得算上,補卡,銷戶等等。

到這裡了,我們和實際情況相比沒有實體的卡,所以會有一些差異。剩下的過程中想到了再說。

二、轉換思想

前面大概確定了需要實現的功能,最終我們還是要寫成代碼,所以得從編程的思想來考慮那些需求。

首先要考慮這個系統中有哪些對象,從人到銀行的ATM機都有哪些事物。人,銀行卡,ATM機,這三個是必須有的了,還需要什麼,開始辦理業務時候那個幫我們操作的人有很多和我們用戶不一樣的操作,把他也當做一個對象。

人。人這個對象有哪些屬性呢?人有自己的一些信息,還有銀行卡,剩下要辦理的業務我們人為的給定。

卡。卡也有本身的一些信息。

ATM。atm機的功能就要多一些了,首先就是上面整理出來的那些存取款等等的功能,他都得實現。除此之外還有個工作人員對他的操作,他也得處理一下。

工作人員。他們有啟用和關閉這個系統的權利。

大體方向有了,剩下的就一點點的完善。

三、功能實現

先從簡單的開始,前面說到,客戶和卡的屬性還是比較單純的,那就先把他們解決了。

以上兩個類是對銀行卡的客戶的一個初始化,裡面都是列寫了一下必要的屬性,比如補卡得用身份證,這裡通過身份證號代替,等等。其中人的屬性里的卡就是上面定義的卡,人的這一個卡屬性就包括卡的內部幾個屬性。

接下來寫一下管理員的功能:

上面的代碼中有個time.sleep(),這個是為了讓系統更生動一些,設置的延遲,來模擬系統在大量數據時操作的時延。

前面幾個是比較好理解的,現在開始實現我們的系統的功能。這些就放在ATM機的模塊里了,有需求就再修改添加策略。

按照上面的那個目錄的順序來,第一個要實現的功能就是開戶。開戶就得創建出那一系列的屬性。並且這些信息我們還需要存儲起來,要不然下次再來的時候就發現自己辦的卡已經無效了。這些信息可以使用一個鍵值對來存儲,那麼key用哪個屬性呢。考慮一下,姓名:可能有重名的,身份證號:這個人也許會辦不止一張卡,最保險的就是卡號了,不會有卡號相同的吧。那麼卡號作為key,其他的個人信息,銀行卡信息都存到value中去。現在就在ATM下初始化一個字典(這裡還有點問題,稍後再說)。

上面有個生成銀行卡沒有說,這個其實不難,只要隨機生成一組數就可以了,不過這個隨機生成的得保證不能和前面已經有的卡號重複了,否則索引就有問題了。

上面已經可以開通一個賬戶並存儲了,不過我們在真正開戶時候都需要輸入兩次密碼來確保密碼不會不小心輸錯,其實後面有些功能也需要驗證密碼。可以再寫一個函數來驗證密碼,以後使用的時候也可以直接調用。

其實後面的一些功能和這個是類似的,這裡就不贅述了,先動手試一試,盡量的想的全面些。我會把完整的代碼放在最後,可以參考一下。

最終要實現這些功能還是再寫一個主程序比較好,更直觀,也方便把理清他們之間的關係。首先主程序里需要調用管理員的登錄,之後是客戶的使用。管理員的登錄上面寫了,再調用一下就可以。客戶的需求需要把每項功能和操作對應起來。先顯示出都有哪些功能可以選擇,再操作。比如像這樣:

上面這所有的操作,都需要最終長期存儲到鍵值對中,我們這裡先用文件來儲存,也可以存儲到資料庫中。既然要長期存儲起來,就得把他序列化到磁碟上,使用pickle庫。

到這裡就出現了個問題,pickle.load(),當我們第一次使用時裡面並沒有存儲東西,他自然也就不知道我們想要存儲什麼樣格式的內容。所以第一次我們得手動的創建一個空字典,然後將一組信息存進去。下回使用的時候就可以直接load來使用。

在一開始測試的時候記不得裡面存儲的內容,我就先寫了個查看信息的隱藏功能。後來感覺也許銀行後台應該也有這樣的功能,就沒有刪掉,雖然是很簡單的顯示,至少可以體現出他的思想。有興趣的同學可以做的更好點。

上面我只是把系統的其中一部分拿出來解釋了一下,需要把裡面的功能完善一下。比如把密碼驗證等等得放到功能裡面,還有一些面向對象的操作,需要創建對象,還需要考慮到每個對象之間的關係,比如銀行卡的對象作為客戶對象的屬性,需要通過參數傳進去。仔細琢磨一下,把這個系統完成。在下面放上完整的程序,上面東西不是很清晰的話,那就一點一點的看下面的代碼,找找感覺。

上面就是整個系統了,其實主要還是思想,模塊較多,沒有全部解釋,如果程序當中有哪裡不理解,可以留言討論。注意上述完整代碼主要是供大家了解整個系統,想要實現還需在自己電腦上重新配置,注意那些文件的路徑,還有一個存放信息的txt文件,把他搞懂後,相信讓他運行起來不難。

由於網站搬家,部分鏈接失效,如無法下載,請聯繫站長!謝謝支持!
1. 帶 [親測] 說明源碼已經被站長親測過!
2. 下載後的源碼請在24小時內刪除,僅供學慣用途!
3. 分享目的僅供大家學習和交流,請不要用於商業用途!
4. 本站資源售價只是贊助,收取費用僅維持本站的日常運營所需!
5. 本站所有資源來源於站長上傳和網路,如有侵權請郵件聯繫站長!
6. 沒帶 [親測] 代表站長時間緊促,站長會保持每天更新 [親測] 源碼 !
7. 盜版ripro用戶購買ripro美化無擔保,若設置不成功/不生效我們不支持退款!
8. 本站提供的源碼、模板、插件等等其他資源,都不包含技術服務請大家諒解!
9. 如果你也有好源碼或者教程,可以到審核區發布,分享有金幣獎勵和額外收入!
10.如果您購買了某個產品,而我們還沒來得及更新,請聯繫站長或留言催更,謝謝理解 !
GG資源網 » python的實戰-銀行系統

發表回復

CAPTCHAis initialing...