#__author: hasee#date: 2018/1/17
# 明確在程式執行期間,有哪些物件參與-取款機
# 分析物件的行為、資料屬性
# 資料屬性-所有使用者的資訊
# 行為屬性-登陸校驗、顯示餘額、取款服務、轉賬服務
# 定義類
class atm:
user_info = 0
def __init__(self):
f = open('user_info.txt')
atm.user_info = f.readlines()
f.close()
def login_check(self, n, p):
result = 0
for w, u in enumerate(atm.user_info):
# print(u)
u1 = u.split()
# print(u1)
if u1[0] == n and u1[1] == p:
result = 1
break
elif u1[0] == n and u1[1] != p:
result = 2
break
else:
result = 3
return result, u1, w
def show_money(self, u):
print('當前賬戶餘額:%s' % u[2])
def get_money(self, u, w):
print('請輸入取款金額:')
money = int(input())
if money % 50 != 0:
print('金額不合法')
elif money > 1000:
print('不能超過單筆限額')
elif money > int(u[2]):
print('餘額不足')
else:
u[2] = str(int(u[2]) - money)
atm.user_info[w] = ' '.join(u) + '\n'
f = open('user_info.txt', 'w')
f.writelines(atm.user_info)
f.close()
def move_money(self, u, w):
print("請輸入收款賬號:")
name1 = input()
result2 = 0
for w2, u2 in enumerate(atm.user_info):
u21 = u2.split()
if u21[0] == name1:
result2 = 1
break
if result2 == 0:
print('收款賬號不存在')
else:
print('收款賬號有效,開始進行轉賬交易')
print('請輸入轉賬金額')
money2 = int(input())
if money2 > 2000:
print('不能超過單筆限額')
elif money2 > int(u21[2]):
print('餘額不足')
else:
print('金額有效,開始轉賬')
u[2] = str(int(u[2]) - money2) #對列表的索引重新賦值
atm.user_info[w] = ' '.join(u) + '\n'
#將新的列表u通過join轉換為字串,通過前面的atm.user_info[w]確定位置
u21[2] = str(int(u21[2]) + money2)
atm.user_info[w2] = ' '.join(u21) + '\n'
f = open('user_info.txt', 'w')
f.writelines(atm.user_info) #writeline後面接的是列表
f.close()
atm = atm()
# print(atm.user_info)
result1 = 0
while result1 != 1:
print('請輸入賬號:')
name = input()
print('請輸入密碼:')
password = input()
result1, user1, w1 = atm.login_check(name, password)
print(user1)
if result1 == 1:
print('登陸成功')
elif result1 == 2:
print('密碼不正確')
else:
print('賬號不存在')
choice = none
while choice != '0':
print('請選擇服務 1-查詢餘額 2-取款 3-轉賬 0-退出')
choice = input()
if choice == '1':
atm.show_money(user1)
if choice == '2':
atm.get_money(user1, w1)
atm.show_money(user1)
if choice == '3':
atm.move_money(user1, w1)
atm.show_money(user1)
if choice =='0':
break
陣列RECORD使用
record 型別的變數只能儲存從資料庫中查詢出的一行記錄,如果查詢出了多行記錄,就會出現錯誤。record型別變數直接賦值 declare type type record user is record user id number 10 user name varchar2 20 record ...
學習record相關知識
概念 當使用元組進行程式設計的時候,如果過於龐大的元素數量,將會很難記住。record提出來,是用於提供c語言裡面的一種類似structure的乙個有著固定數目字段的資料結構。記錄定義 record person,構造乙個record p1 person.例項 author erlang.hell ...
oracle學習總結 record
記錄變數學習 基本語法 type 記錄型變數的名稱 is record 變數名 變數型別,變數名 變數型別。例項 建立乙個過程,用於引數出入員工編號,運用記錄型變數列印員工姓名和薪資 create or replace procedure pro2 v in empno in emp.empno t...