


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、第2次綜合訓練報告題目:銀行ATM模擬程序姓名:張也白專業(yè):安全工程班級:通風15-1班指導教師:鄧立軍2016年5月9日目錄1摘要設計思路源程序代碼分析2參考資料3銀行ATM莫擬程序1摘要自動柜員機,即ATM是指銀行在不同地點設置一種小型機器,利用一張信用卡大小的膠卡上的磁帶記錄客戶的基本戶口資料(通常就是銀行卡),讓客戶可以透過機器進行提款、存款、轉(zhuǎn)賬等銀行柜臺服務,大多數(shù)客戶都把這種自助機器稱為自動提款機。本文正是通過設計一個ATM莫擬模擬程序來實現(xiàn)ATMB系統(tǒng)的基本功能,充分運用自己所學的Python知識進行設計編程。實現(xiàn)的主要功能有:賬戶信息查詢、存款操作、取款操作、修改密碼功能、退
2、出系統(tǒng)功能。用戶任意選擇1張銀行卡(輸入1位13的數(shù)字),輸入初始密碼123456即可進入ATM操作系統(tǒng)菜單(如圖1所示),若輸入密碼連續(xù)錯誤三次則鎖卡自動退出系統(tǒng)(如圖2所示),系統(tǒng)菜單各功能(如圖3所示)。編寫程序時的環(huán)境是,所以代碼中print及input函數(shù)可能與版本有一些差別。參考了教材中第八章面向?qū)ο蟪绦蛟O計,編寫了兩個類包括ATM機類和銀行卡Card類,編寫了若干個函數(shù)以實現(xiàn)整個程序模擬ATM幾的各種功能。變量和函數(shù)的命名主要使用了Camel命名法,類的命名主要使用了Pascal命名法,程序共189行(含空行),因為時間比較倉促,可能有些地方寫的比較亂,有些地方命名也不規(guī)范。另外
3、因為對文件的操作不熟練,在網(wǎng)上也沒找到太多相關(guān)的資料,請多包涵。圖1圖2圖32設計思路程序設計靈感來自銀行ATMB,在這里將ATMtt的各種功能抽象與簡化,設計了銀行ATM莫擬程序。根據(jù)我們?nèi)粘5纳罱?jīng)驗,我們要使用ATM機就需要一張銀行卡。運用面向?qū)ο蟮木幊谭椒?,把ATM機和銀行卡簡化并抽象為兩個類:1)銀行卡類,主要用來存儲賬戶信息,包括卡號、密碼、用戶名、余額四個屬性,另外寫了一個構(gòu)造方法。2)ATMW類,主要用來查詢和修改銀行卡的信息,寫了五個方法,以銀行卡類的對象作為參數(shù),實現(xiàn)銀行卡查詢(包括卡號、密碼、用戶名、余額)、存款(銀行卡余額增加)、取款(銀行卡余額減少)、修改銀行卡密碼、
4、退卡(退出程序)等功能。寫好了類后,我們開始模擬ATM機的操作過程。首先,使用ATM機我們需要插卡,從文件中讀取銀行卡信息(想法并沒有能很好的實現(xiàn)),我們預設三張銀行卡,用戶選擇(13號銀行卡),根據(jù)銀行卡信息創(chuàng)建一個對應的銀行卡對象,以及ATM機對象。插卡后,我們需要用戶輸入密碼。如果輸入密碼與銀行卡密碼匹配就進入ATM系統(tǒng),如果輸入密碼錯誤打到三次就鎖卡退出。進入ATM系統(tǒng),用戶可以選擇ATM勺五個功能:1)銀行卡查詢,實現(xiàn)的方法就是使用print函數(shù)輸出銀行卡的卡號、密碼、用戶名、余額。2)存款,實現(xiàn)的方法就是把銀行卡的余額+XX100,(X為正整數(shù)),約束條件為存款金額大于100小于1
5、000003)取款,實現(xiàn)的方法就是把銀行卡的余額-XX100,(X為正整數(shù)),約束條件為取款金額不大于存款金額且不大于500004)密碼修改,實現(xiàn)的方法就是把銀行卡的密碼修改。首先要輸入原密碼,如果原密碼輸入錯誤,則修改密碼失敗,成功后需要用戶輸入新密碼兩次,如果兩次密碼一致則修改成功,否則密碼修改失敗。1. 5)退卡,使用exit()函數(shù)退出程序3源程序#!/usr/bin/python#-*-coding:utf-8-*-#author:張也白PythonVersion:importos5.2. classDepositCard:3. cardID=0cardPWD=123456balan
6、ce=0userName=0000def_init_(self,cardID,cardPWD,userName,balance):=cardID=cardPWD=userName=balance16.4. classATM:defdeposite(self,card):#存款divide()info=存款nprint(50)cash=input(提示:存款金額為100的倍數(shù),金額要求在100-10000之間n)23.ifint(cash)%100=0andint(cash)0andint(cash)=int(choice)*100:42.26. =int(choice)*100info=取款成
7、功n46.print(50)elifint(choice)=3and=500:47.=50048.info=取款成功n49.print(50)50.elifint(choice)=4:51.cash=input(n提示:取款金額為100的倍數(shù),且總額不超過5000元n請52.輸入你要取的金額:)8.ifint(cash)=100andint(cash)=int(cash):=int(cash)info=取款成功nprint(50)else:print(輸入錯誤或卡內(nèi)余額不足)else:print(輸入錯
8、誤或卡內(nèi)余額不足)else:print(輸入錯誤或卡內(nèi)余額不足)print(nnThebalanceofthecard:%d%69. divide()defmodify(self,card):#修改密碼divide()71.info=修改首碼n72.print(50)73.inStr=input(請輸入原密碼:)74.ifinStr!=:75.info=密碼錯誤n76.print(50)77.else:78.newPWD1=input(請輸入新密碼:)79.newPWD2=input(請再次輸入新密碼:)80.ifnewPWD1=newPWD2:81.=newPWD182.info=n密碼修改
9、成功,請牢記你的新密碼n83.print(50)84.else:85.info-n密碼不致n”86.print(50)87.divide()88.89.defquery(self,card):#查詢90.divide()91.info-查詢成功n92.print(50)93.print(銀彳許信息.center(50)94.print(%-10s%-10s%-10s%-10s%(帝,密碼,姓名,額),余95.96. print(%-11s%-11s%-11s%-11s%(str,e,str)divide()defrefundCard(self,card):#退卡divide()print(假裝
10、把卡吐出來)print(謝謝使用,請收好您的卡片)divide()defdivide():104.97. print(nn)definit():108. f=open(D:,w)1001123456張大白10001002123456張二白20001003123456張三白3000(info)()s=open(D:,r)print(銀行卡信息.center(50)print(%-10s%-10s%-10s%-10s%(卡號,密碼,姓名,余額)forlinein():109. foriinrange(0,4):110. print(%-11s%()i,end=)ifi=3:print()121.1
11、11. divide()returndefcreateCard():112. choice=input(請選擇一張銀行卡(13):);ifint(choice)=1:113. newcard=DepositCard(1001,123456,張大白,1000)login(newcard)elifint(choice)=2:114. newcard=DepositCard(1002,123456,張二白,2000)login(newcard)elifint(choice)=3:115. newcard=DepositCard(1003,123456,張三白,3000)login(newcard)e
12、lse:116. print(輸入有誤,退出系統(tǒng))exit()deflogin(card):117. divide()print(n你插入了銀行卡sn%sum=0pwd=whilepwd!=:62.163.164.,5:165.166.pwd=input(n請輸入密碼:)sum+=1ifpwd=:breakelse:print(密碼錯誤次數(shù)d,請重新輸入密碼sum)ifsum2:print(n密碼錯誤次數(shù)過多,退出系統(tǒng))exit()print(n密碼
13、正確,進入系統(tǒng))divide()XiaoBaiATM=ATM()menu(XiaoBaiATM,card)defstart():divide()print(tt歡迎使用小白白ATM)divide()init()createCard()defmenu(XiaoBaiATM,card):options=1:查詢賬戶信息,2:存款,3:取款,4:修改密碼退卡forain():print(a0,a1)167. choice=input(n請選擇:)168. ifint(choice)=1:169. (card)170. menu(XiaoBaiATM,card)171. elifint(choice)
14、=2:172. (card)173. menu(XiaoBaiATM,card)174. elifint(choice)=3:175. (card)176. menu(XiaoBaiATM,card)177. elifint(choice)=4:178. (card)179. menu(XiaoBaiATM,card)180. elifint(choice)=5:181. (card)182. else:183. print(輸入有誤)184. menu(XiaoBaiATM,card)185. print()186. defmain():187. start()188. if_name_=_main_:189. main()4代碼分析首先執(zhí)行第X行,進行輸入。然后在執(zhí)行X行時跳轉(zhuǎn)到第X行,運行第一個函數(shù)然后運行第X行,到第X行時跳轉(zhuǎn)到第X行執(zhí)行第二個函數(shù)接下來執(zhí)行第X行參考資料xxxx(參考資料格式:文章題目+點號+空格+網(wǎng)址+英文冒號+空格+網(wǎng)址)xxxx遼寧工程技術(shù)大學安全科學與工程學院2015/2016學年第二學期綜合訓練報告評分表綜合訓練題目:所在班級:項目內(nèi)容滿分實評能力水能熟練應用所學知識,有一定查閱文獻及運用文獻資料能力10理論依據(jù)充分,數(shù)據(jù)準確,公式推導正確10能應用計算機軟件進行編程、資料搜集、排版
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年汽車檢測及維修師傅技能資格知識考試題與答案
- 南風藝術(shù)培訓學校簡介
- 質(zhì)量管理培訓體系構(gòu)建與實施
- 心康部部門培訓-構(gòu)建心理健康防護體系
- 《灰姑娘的故事》課件
- 《醫(yī)學倫理學案例》課件
- 《數(shù)理邏輯概覽》課件
- 《社會主義核心價值觀教育》課件
- 日軍投降協(xié)議書
- 車庫標線銷售合同協(xié)議
- 《廣播電視與通信》課件
- 新能源汽車運用與維修專業(yè)人才培養(yǎng)方案
- 2024北京初三(上)期末語文匯編:議論文閱讀
- 小學數(shù)學《分數(shù)除法》50道計算題包含答案
- 預付煤款合同模板
- 光影中國學習通超星期末考試答案章節(jié)答案2024年
- 工科中的設計思維學習通超星期末考試答案章節(jié)答案2024年
- 2020年全國II卷英語高考真題試題(答案+解析)
- 腦洞大開背后的創(chuàng)新思維學習通超星期末考試答案章節(jié)答案2024年
- 科傻平差軟件說明指導書
- ipo上市商業(yè)計劃書
評論
0/150
提交評論