




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-第2次綜合訓練報告題目:銀行ATM模擬程序姓 名:也白專 業:平安工程班 級:通風15-1班指導教師:鄧立軍2021 年5 月9日目錄1 摘要12.設計思路13.源程序24.代碼分析2參考資料3. z-銀行ATM模擬程序1 摘要自動柜員機,即ATM,是指銀行在不同地點設置一種小型機器,利用一信用卡大小的膠卡上的磁帶記錄客戶的根本戶口資料通常就是銀行卡,讓客戶可以透過機器進展提款、存款、轉賬等銀行柜臺效勞,大多數客戶都把這種自助機器稱為自動提款機。本文正是通過設計一個ATM模擬模擬程序來實現ATM機系統的根本功能,充分運用自己所學的Python知識進展設計編程。實現的主要功能有:賬戶信息查詢、
2、存款操作、取款操作、修改密碼功能、退出系統功能。用戶任意選擇1銀行卡輸入1位13的數字,輸入初始密碼123456即可進入ATM操作系統菜單如圖1所示,假設輸入密碼連續錯誤三次則鎖卡自動退出系統如圖2所示,系統菜單各功能如圖3所示。編寫程序時的環境是Python3.4,所以代碼中print及input函數可能與python2.*版本有一些差異。參考了教材中第八章面向對象程序設計,編寫了兩個類包括ATM機類和銀行卡Card類,編寫了假設干個函數以實現整個程序模擬ATM機的各種功能。變量和函數的命名主要使用了Camel命名法,類的命名主要使用了Pascal命名法,程序共189行含空行,因為時間比較倉
3、促,可能有些地方寫的比較亂,有些地方命名也不規。另外因為對文件的操作不熟練,在網上也沒找到太多相關的資料,請多包涵。圖1圖2圖32設計思路程序設計靈感來自銀行ATM機,在這里將ATM機的各種功能抽象與簡化,設計了銀行ATM模擬程序。根據我們日常的生活經歷,我們要使用ATM機就需要一銀行卡。運用面向對象的編程方法,把ATM機和銀行卡簡化并抽象為兩個類:1銀行卡類,主要用來存儲賬戶信息,包括卡號、密碼、用戶名、余額四個屬性,另外寫了一個構造方法。2ATM機類,主要用來查詢和修改銀行卡的信息,寫了五個方法,以銀行卡類的對象作為參數,實現銀行卡查詢包括卡號、密碼、用戶名、余額、存款銀行卡余額增加、取款
4、銀行卡余額減少、修改銀行卡密碼、退卡退出程序等功能。寫好了類后,我們開場模擬ATM機的操作過程。首先,使用ATM機我們需要插卡,從文件中讀取銀行卡信息想法并沒有能很好的實現,我們預設三銀行卡,用戶選擇13號銀行卡,根據銀行卡信息創立一個對應的銀行卡對象,以及ATM機對象。插卡后,我們需要用戶輸入密碼。如果輸入密碼與銀行卡密碼匹配就進入ATM系統,如果輸入密碼錯誤打到三次就鎖卡退出。進入ATM系統,用戶可以選擇ATM的五個功能:1銀行卡查詢,實現的方法就是使用print函數輸出銀行卡的卡號、密碼、用戶名、余額。2存款,實現的方法就是把銀行卡的余額+*×100,*為正整數,約束條件為存款
5、金額大于100小于10000。3取款,實現的方法就是把銀行卡的余額-*×100,*為正整數,約束條件為取款金額不大于存款金額且不大于5000。4密碼修改,實現的方法就是把銀行卡的密碼修改。首先要輸入原密碼,如果原密碼輸入錯誤,則修改密碼失敗,成功后需要用戶輸入新密碼兩次,如果兩次密碼一致則修改成功,否則密碼修改失敗。5退卡,使用e*it函數退出程序3源程序1. *!/usr/bin/python2. * -*- coding: utf-8 -*-3. *author:也白 PythonVersion:3.44. import os5. 6. class DepositCard:7.
6、cardID = 08. cardPWD = '123456'9. balance = 010. userName = '0000'11. def _init_(self,cardID,cardPWD,userName,balance):12. self.cardID = cardID13. self.cardPWD = cardPWD14. self.userName = userName15. self.balance = balance16. 17. class ATM:18. def deposite(self,card):*存款19. divide()
7、20. info = "存款n"21. print(info.center(50)22. cash=input("提示:存款金額為100的倍數,金額要求在100-10000之間n")23. if int(cash)%100=0 and int(cash)>0 and int(cash)<=10000:24. card.balance+=int(cash)25. info = "存款成功n"26. print(info.center(50)27. print("nThe balance of the card :%
8、d"%card.balance)28. else:29. info = "存款失敗n"30. print(info.center(50)31. divide()32. 33. def withdraw(self,card):*取款34. divide()35. info = "取款n"36. print(info.center(50)37. options=1:'100',2:'200',3:'500',4:'其他金額'38. for a in options.items():39
9、. print(a0,a1)40. choice=input('請選擇:')41. if (int(choice)=1 or int(choice)=2) and card.balance>=int(choice)*100:42. 43. card.balance-=int(choice)*10044. info = "取款成功n"45. print(info.center(50)46. elif int(choice)=3 and card.balance>=500:47. card.balance-=50048. info = "取
10、款成功n"49. print(info.center(50)50. elif int(choice)=4:51. cash=input("n提示:取款金額為100的倍數,且總額不超過5000元n請52.輸入你要取的金額:")53. if int(cash)>=100 and int(cash)<=5000:54. if int(cash)%100=0 and card.balance>=int(cash):55. card.balance-=int(cash)56. info = "取款成功n"57. print(info.c
11、enter(50)58. else:59. print('輸入錯誤或卡余額缺乏')60. else:61. print('輸入錯誤或卡余額缺乏')62. else:63. print('輸入錯誤或卡余額缺乏')64. 65. 66. print("nnThe balance of the card :%d"%card.balance)67. divide()68. 69. def modify(self,card):*修改密碼70. divide()71. info = "修改密碼n"72. print(i
12、nfo.center(50)73. inStr=input('請輸入原密碼:')74. if inStr!=card.cardPWD:75. info = "密碼錯誤n"76. print(info.center(50)77. else:78. newPWD1=input('請輸入新密碼:')79. newPWD2=input('請再次輸入新密碼:')80. if newPWD1 = newPWD2:81. card.cardPWD=newPWD182. info = "n密碼修改成功,請牢記你的新密碼n"
13、83. print(info.center(50)84. else:85. info = "n密碼不一致n"86. print(info.center(50) 87. divide()88. 89. def query(self,card):*查詢90. divide()91. info = "查詢成功n"92. print(info.center(50)93. print('銀行卡信息'.center(50)94. print('%-10s%-10s%-10s%-10s'%('卡號','密碼
14、9;,'','余額')95. print('%-11s%-11s%-11s%-11s'%(str(card.cardID),card.cardPWD,card.userNam96. e,str(card.balance)97. divide()98. def refundCard(self,card):*退卡99. divide()100. print('(假裝把卡吐出來)')101. print('使用,請收好您的卡片')102. divide()103. def divide():104. print(&quo
15、t;n-n")105. def init():106. f=open('D:a.t*t','w')107. info='''108. 1001 123456 大白 1000109. 1002 123456 二白 2000110. 1003 123456 三白 3000'''111. f.write(info)112. f.close()113. s=open('D:a.t*t','r')114. print('銀行卡信息'.center(50)115. pr
16、int('%-10s%-10s%-10s%-10s'%('卡號','密碼','','余額')116. for line in s.readlines():117. for i in range(0,4):118. print('%-11s'%line.split()i,end ='')119. if i=3:120. print()121. s.close122. divide()123. return124. def createCard():125. choice=input(&
17、#39;請選擇一銀行卡13:');126. if int(choice) = 1:127. newcard = DepositCard(1001,'123456','大白',1000)128. login(newcard)129. elif int(choice) = 2:130. newcard = DepositCard(1002,'123456','二白',2000)131. login(newcard)132. elif int(choice) = 3:133. newcard = DepositCard(1003
18、,'123456','三白',3000)134. login(newcard)135. else:136. print('輸入有誤,退出系統')137. e*it()138. def login(card):139. divide()140. print('n 你插入了銀行卡%sn'%card.cardID)141. sum = 0142. pwd = ''143. while pwd!=card.cardPWD:144. pwd=input('n請輸入密碼:')145. sum+=1146. if
19、 pwd = card.cardPWD:147. break148. else:149. print('密碼錯誤次數%d,請重新輸入密碼'%sum)150. if sum > 2:151. print('n密碼錯誤次數過多,退出系統')152. e*it()153. print('n密碼正確,進入系統')154. divide()155. *iaoBaiATM = ATM()156. menu(*iaoBaiATM,card)157. def start():158. divide()159. print("tt歡迎使用小白白AT
20、M")160. divide()161. init()162. createCard()163. def menu(*iaoBaiATM,card):164. options=1:'查詢賬戶信息',2:'存款',3:'取款',4:'修改密碼',5:'退卡'165. for a in options.items():166. print(a0,a1)167. choice = input('n請選擇:')168. if int(choice) = 1:169. *iaoBaiATM.query(card)170. menu(*iaoBaiATM,card)171. elif int(choice) = 2:172. *iaoBaiATM.deposite(card)173. menu(*iaoBaiATM,card)174. elif int(choice) = 3:175. *iaoBaiATM.withdraw(card)176. menu(*iaoBaiATM,card)177. elif int(choice) = 4:178. *iaoBaiATM.modify(card)179. menu(*iaoBaiATM,card)180.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光學軟件測試題及答案
- 美術培訓講座
- 2025年 阜陽臨泉城關街道桃花源幼兒園教師招聘考試筆試試卷附答案
- 2025年 北京公務員考試筆試考試試卷附答案
- 2025年主題團日活動策劃與實施
- 小學交通教育課件
- 左膝關節置換術后護理
- 2025年中國墨西哥胡椒鹽行業市場全景分析及前景機遇研判報告
- 子宮畸形超聲分類及診斷
- 支氣管肺炎相關疾病知識
- 《大學英語》課件-UNIT 3 In the workplace
- 路燈安全生產培訓
- 疑難病例討論制度流程
- 痛經課件完整版本
- 2025高考數學考點鞏固卷01集合與常用邏輯用語(7大考點)【含答案】
- 廣西南寧市(2024年-2025年小學六年級語文)統編版小升初真題((上下)學期)試卷及答案
- 旅游景區管理制度完整匯編
- 人教小學英語一起點新起點sl版6上 單元知識點歸納總結
- 《毛澤東思想和中國特色社會主義理論體系概論》微課之課件-1.2.2毛澤東思想活的靈魂
- 鈣化性岡上肌腱炎病因介紹
- UL1561標準中文版-2019變壓器UL中文版標準
評論
0/150
提交評論