2015-11-10 3 views
-2

Напишите банковское приложение под названием «Банк Of».Банкомат Назначение пианиста банкомату для школы

Банк Запрос приглашений для имени клиента и связанного с ним имени пользователя. Bank петель, запрашивая: создание

  1. счета (либо чековый или сберегательный)

  2. Депозиты

  3. Снятия

  4. Переводы с чековый счет на сберегательный счет (или наоборот)

  5. Показать историю транзакций.

Вот что я получил до сих пор. Мне нужна помощь в переводе с чекинга на сберегательный счет. Любая помощь будет оценена.

print("Hello, Welcome to Shawn's Bank ATM") 
print("") 
print("Please begin with creating an account") 
name=input("Enter your name: ") 
phone=input("Enter your phone number: ") 
address=input("Enter your address: ") 
code=input("Please enter a 4 digit pin to use as your passcode: ") 

print() 
print("Your account summary is:") 
print("Name:" + name) 
print("Phone Number:" + phone)  
print("Address:" + address) 
print("Pin Code:" + code)  
print() 
balance=float(input("Enter an amount to deposit into the account: ")) 
print() 
print(name,", Thank you for creating an account.") 
def printMenu(): 
    print() 
    print("Please choose an option below:") 
    print(""" 
    Enter b to Check your Balance 
    Enter d to Deposit money into your Account 
    Enter w to Withdraw money from your Account 
    Enter q to Quit the Program """) 
    print("") 

def getTransaction(): 
    transaction=str(input("What would you like to do? ")) 
    return transaction 

def withdraw(bal,amt): 
    global balance 
    balance=bal-amt 
    if balance<0: 
     balance=balance-10 

def formatCurrency(amt): 
    return "$%.2f" %amt 

###MAIN PROGRAM### 

printMenu() 
command=str(getTransaction()) 

while command!="q": 
    if (command=="b"): 
     print(name,"Your current balance is",formatCurrency(balance)) 
     printMenu() 
     command=str(getTransaction()) 
    elif (command=="d"): 
     amount=float(input("Amount to deposit? ")) 
     balance=balance+amount 
     printMenu() 
     command=str(getTransaction()) 
    elif (command=="w"): 
     amount=float(input("Amount to withdraw? ")) 
     withdraw(balance,amount) 
     printMenu() 
     command=str(getTransaction()) 
    else: 
     print("Incorrect command. Please try again.") 
     printMenu() 
     command=str(getTransaction()) 

print(name,"Goodbye! See you again soon") 
+0

Все это выглядит хорошо, но если вы хотите перевести деньги с одной учетной записи на другую учетную запись, вам понадобятся две учетные записи. Прямо сейчас у вас есть только один «баланс». Кроме того, я бы выполнил функцию 'deposit()', так что 'transfer()' можно просто вызвать 'снять()' на одну учетную запись и 'deposit()' с другой. Вам придется изменить существующие функции, чтобы взять баланс в качестве параметра, поэтому ясно, какой баланс изменить. – Will

+0

спасибо, я просто задавался вопросом, как именно заставить пользователя сделать две учетные записи. – Shawnayboy7

+0

У вас есть классы? – Will

ответ

0

Я хотел бы использовать класс Account, чтобы отслеживать более одного счета:

class Account: 
    def __init__(self, accNum): 
     self.balance = 0.0 
     self.accNum = accNum 

    def withdrawl(self, amount): 
     self.balance -= amount 

    # ETC 

Затем используйте основной цикл для печати вариантов, принимать вход и так далее. Обратите внимание, что поскольку сейчас существует несколько учетных записей, пользователю необходимо будет указать, на какую учетную запись работать, возможно, по номеру учетной записи. Храните ваши объекты учетных записей в списке, так что вы можете их найти:

if UserRequestsNewAccount: 
    new = Account(1234) 
    ACCOUNTS.append(new) 

Затем к ним доступ:

for acc in ACCOUNTS: 
    if acc.accNum == RequestedAccountNumber: 
     acc.withdraw(amount) 

В противном случае, вы можете просто получить список двойников и обращаться к ним по индексу. Меньше удовольствия. :)

EDIT: Основной макет вашего файла питона должно быть что-то вроде:

class Account: 
    def __init__(self): 
     # fill in code here 
    def deposit(self, amount): 
     # fill in code here 
    def withdraw(self, amount): 
     # fill in code here 
    def display_history(self): 
     # fill in code here 

ACCOUNTS = [] 
def main(): 
    while 1: 
     print "choose an action: 1) new Account \n2) Withdraw .... etc" 
     action = raw_input() 
     if action == '1': 
      print 'enter desired account number: ' 
      accNum = raw_input() 
      new = Account(accNum) 
      ACCOUNTS.append(new) 
     elif action == '2': 
      # fill in code here 
     elif action == '3': 
      # fill in code here 
     elif action == '4': 
      # fill in code here 

main() 

Так идея объявить свой класс, а затем использовать еще один цикл, чтобы контролировать обработку этих объектов. Для каждого выбора потребуется определенный пользовательский ввод, чтобы указать, что делать, затем вызовет метод Account. Account.history может просто быть строкой, которую вы добавляете после операции.

+0

Большое вам спасибо, но я просто задавался вопросом, где именно я бы поместил эти куски кода в мой ... (im действительно новый для python :( – Shawnayboy7

+0

@ Shawnayboy7 отредактирован. Я думаю, что если это кажется намного выше того, что покрыто вашим классом, вы можете просто использовать два двойных имени с проверкой и сбережениями и работать с ними. – Will

+0

это отличная воля .. так сильно за вашу помощь – Shawnayboy7

Смежные вопросы