{"id":1839,"date":"2022-01-21T11:16:34","date_gmt":"2022-01-21T05:46:34","guid":{"rendered":"https:\/\/cbsepython.in\/?p=1839"},"modified":"2023-12-28T10:05:11","modified_gmt":"2023-12-28T04:35:11","slug":"atm-management-python-project-for-class-12","status":"publish","type":"post","link":"https:\/\/cbsepython.in\/atm-management-python-project-for-class-12\/","title":{"rendered":"ATM Management Python Project for Class 12"},"content":{"rendered":"<h2><span style=\"color: #000000;\">ATM Management Python Project for Class 12<\/span><\/h2>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#!\/usr\/bin\/python\r\n#cbsepython.in\r\nimport getpass\r\nimport string\r\nimport os\r\n\r\n# creating a lists of users, their PINs and bank statements\r\nusers = ['jitendra', 'sunny', 'vivek']\r\npins = ['1111', '2222', '3333']\r\namounts = [1000, 2000, 3000]\r\ncount = 0\r\n# while loop checks existance of the enterd username\r\nwhile True:\r\n    user = input('\\nENTER USER NAME: ')\r\n    print(user)\r\n    user = user.lower()\r\n    if user in users:\r\n        if user == users[0]:\r\n            n = 0\r\n        elif user == users[1]:\r\n            n = 1\r\n        else:\r\n            n = 2\r\n        break\r\n    else:\r\n        print('----------------')\r\n        print('****************')\r\n        print('INVALID USERNAME')\r\n        print('****************')\r\n        print('----------------')\r\n\r\n# comparing pin\r\nwhile count &lt; 3:\r\n    print('------------------')\r\n    print('******************')\r\n    pin = str(input('PLEASE ENTER PIN: '))\r\n    print('******************')\r\n    print('------------------')\r\n    if pin.isdigit():\r\n        if user == users[0]:\r\n            if pin == pins[0]:\r\n                break\r\n            else:\r\n                count += 1\r\n                print('-----------')\r\n                print('***********')\r\n                print('INVALID PIN')\r\n                print('***********')\r\n                print('-----------')\r\n                print()\r\n\r\n        if user == users[1]:\r\n            if pin == pins[1]:\r\n                break\r\n            else:\r\n                count += 1\r\n                print('-----------')\r\n                print('***********')\r\n                print('INVALID PIN')\r\n                print('***********')\r\n                print('-----------')\r\n                print()\r\n                \r\n        if user == users[2]:\r\n            if pin == pins[2]:\r\n                break\r\n            else:\r\n                count += 1\r\n                print('-----------')\r\n                print('***********')\r\n                print('INVALID PIN')\r\n                print('***********')\r\n                print('-----------')\r\n                print()\r\n    else:\r\n        print('------------------------')\r\n        print('************************')\r\n        print('PIN CONSISTS OF 4 DIGITS')\r\n        print('************************')\r\n        print('------------------------')\r\n        count += 1\r\n    \r\n# in case of a valid pin- continuing, or exiting\r\nif count == 3:\r\n    print('-----------------------------------')\r\n    print('***********************************')\r\n    print('3 UNSUCCESFUL PIN ATTEMPTS, EXITING')\r\n    print('!!!!!YOUR CARD HAS BEEN LOCKED!!!!!')\r\n    print('***********************************')\r\n    print('-----------------------------------')\r\n    exit()\r\n\r\nprint('-------------------------')\r\nprint('*************************')\r\nprint('LOGIN SUCCESFUL, CONTINUE')\r\nprint('*************************')\r\nprint('-------------------------')\r\nprint()\r\nprint('--------------------------')\r\nprint('**************************')\t\r\nprint(str.capitalize(users[n]), 'welcome to ATM')\r\nprint('**************************')\r\nprint('----------ATM SYSTEM-----------')\r\n# Main menu\r\nwhile True:\r\n    #os.system('clear')\r\n    print('-------------------------------')\r\n    print('*******************************')\r\n    response = input('SELECT FROM FOLLOWING OPTIONS: \\nStatement__(S) \\nWithdraw___(W) \\nLodgement__(L)  \\nChange PIN_(P)  \\nQuit_______(Q) \\n: ').lower()\r\n    print('*******************************')\r\n    print('-------------------------------')\r\n    valid_responses = ['s', 'w', 'l', 'p', 'q']\r\n    response = response.lower()\r\n    if response == 's':\r\n        print('---------------------------------------------')\r\n        print('*********************************************')\r\n        print(str.capitalize(users[n]), 'YOU HAVE ', amounts[n],'RUPEES ON YOUR ACCOUNT.')\r\n        print('*********************************************')\r\n        print('---------------------------------------------')\r\n        \r\n    elif response == 'w':\r\n        print('---------------------------------------------')\r\n        print('*********************************************')\r\n        cash_out = int(input('ENTER AMOUNT YOU WOULD LIKE TO WITHDRAW: '))\r\n        print('*********************************************')\r\n        print('---------------------------------------------')\r\n        if cash_out%10 != 0:\r\n            print('------------------------------------------------------')\r\n            print('******************************************************')\r\n            print('AMOUNT YOU WANT TO WITHDRAW MUST TO MATCH 10 RUPEES NOTES')\r\n            print('******************************************************')\r\n            print('------------------------------------------------------')\r\n        elif cash_out &gt; amounts[n]:\r\n            print('-----------------------------')\r\n            print('*****************************')\r\n            print('YOU HAVE INSUFFICIENT BALANCE')\r\n            print('*****************************')\r\n            print('-----------------------------')\r\n        else:\r\n            amounts[n] = amounts[n] - cash_out\r\n            print('-----------------------------------')\r\n            print('***********************************')\r\n            print('YOUR NEW BALANCE IS: ', amounts[n], 'RUPEES')\r\n            print('***********************************')\r\n            print('-----------------------------------')\r\n            \r\n    elif response == 'l':\r\n        print()\r\n        print('---------------------------------------------')\r\n        print('*********************************************')\r\n        cash_in = int(input('ENTER AMOUNT YOU WANT TO LODGE: '))\r\n        print('*********************************************')\r\n        print('---------------------------------------------')\r\n        print()\r\n        if cash_in%10 != 0:\r\n            print('----------------------------------------------------')\r\n            print('****************************************************')\r\n            print('AMOUNT YOU WANT TO LODGE MUST TO MATCH 10 RUPEES NOTES')\r\n            print('****************************************************')\r\n            print('----------------------------------------------------')\r\n        else:\r\n            amounts[n] = amounts[n] + cash_in\r\n            print('----------------------------------------')\r\n            print('****************************************')\r\n            print('YOUR NEW BALANCE IS: ', amounts[n], 'RUPEES')\r\n            print('****************************************')\r\n            print('----------------------------------------')\r\n    elif response == 'p':\r\n        print('-----------------------------')\r\n        print('*****************************')\r\n        new_pin = str(input('ENTER A NEW PIN: '))\r\n        print('*****************************')\r\n        print('-----------------------------')\r\n        if new_pin.isdigit() and new_pin != pins[n] and len(new_pin) == 4:\r\n            print('------------------')\r\n            print('******************')\r\n            new_ppin = str(input('CONFIRM NEW PIN: '))\r\n            print('*******************')\r\n            print('-------------------')\r\n            if new_ppin != new_pin:\r\n                print('------------')\r\n                print('************')\r\n                print('PIN MISMATCH')\r\n                print('************')\r\n                print('------------')\r\n            else:\r\n                pins[n] = new_pin\r\n                print('NEW PIN SAVED')\r\n        else:\r\n            print('-------------------------------------')\r\n            print('*************************************')\r\n            print('   NEW PIN MUST CONSIST OF 4 DIGITS \\nAND MUST BE DIFFERENT TO PREVIOUS PIN')\r\n            print('*************************************')\r\n            print('-------------------------------------')\r\n    elif response == 'q':\r\n        exit()\r\n    else:\r\n        print('------------------')\r\n        print('******************')\r\n        print('RESPONSE NOT VALID')\r\n        print('******************')\r\n        print('------------------')\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"color: #000000;\">Output:<\/span><\/p>\n<pre><span style=\"color: #000000;\">ENTER USER NAME: \"jitendra\"<\/span>\r\n<span style=\"color: #000000;\">jitendra<\/span>\r\n<span style=\"color: #000000;\">------------------<\/span>\r\n<span style=\"color: #000000;\">******************<\/span>\r\n<span style=\"color: #000000;\">PLEASE ENTER PIN: 1111<\/span>\r\n<span style=\"color: #000000;\">******************<\/span>\r\n<span style=\"color: #000000;\">------------------<\/span>\r\n<span style=\"color: #000000;\">-------------------------<\/span>\r\n<span style=\"color: #000000;\">*************************<\/span>\r\n<span style=\"color: #000000;\">LOGIN SUCCESFUL, CONTINUE<\/span>\r\n<span style=\"color: #000000;\">*************************<\/span>\r\n<span style=\"color: #000000;\">-------------------------<\/span>\r\n<span style=\"color: #000000;\">()<\/span>\r\n<span style=\"color: #000000;\">--------------------------<\/span>\r\n<span style=\"color: #000000;\">**************************<\/span>\r\n<span style=\"color: #000000;\">('Jitendra', 'welcome to ATM')<\/span>\r\n<span style=\"color: #000000;\">**************************<\/span>\r\n<span style=\"color: #000000;\">----------ATM SYSTEM-----------<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">SELECT FROM FOLLOWING OPTIONS: <\/span>\r\n<span style=\"color: #000000;\">Statement__(S) <\/span>\r\n<span style=\"color: #000000;\">Withdraw___(W) <\/span>\r\n<span style=\"color: #000000;\">Lodgement__(L) <\/span>\r\n<span style=\"color: #000000;\">Change PIN_(P) <\/span>\r\n<span style=\"color: #000000;\">Quit_______(Q) <\/span>\r\n<span style=\"color: #000000;\">:<\/span><\/pre>\n<p>&nbsp;<\/p>\n<pre><span style=\"color: #000000;\">: \"S\"<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">---------------------------------------------<\/span>\r\n<span style=\"color: #000000;\">*********************************************<\/span>\r\n<span style=\"color: #000000;\">('Jitendra', 'YOU HAVE ', 1000, 'RUPEES ON YOUR ACCOUNT.')<\/span>\r\n<span style=\"color: #000000;\">*********************************************<\/span>\r\n<span style=\"color: #000000;\">---------------------------------------------<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">SELECT FROM FOLLOWING OPTIONS: <\/span>\r\n<span style=\"color: #000000;\">Statement__(S) <\/span>\r\n<span style=\"color: #000000;\">Withdraw___(W) <\/span>\r\n<span style=\"color: #000000;\">Lodgement__(L) <\/span>\r\n<span style=\"color: #000000;\">Change PIN_(P) <\/span>\r\n<span style=\"color: #000000;\">Quit_______(Q) <\/span>\r\n<span style=\"color: #000000;\">:<\/span><\/pre>\n<p>&nbsp;<\/p>\n<pre><span style=\"color: #000000;\">: \"W\"<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">---------------------------------------------<\/span>\r\n<span style=\"color: #000000;\">*********************************************<\/span>\r\n<span style=\"color: #000000;\">ENTER AMOUNT YOU WOULD LIKE TO WITHDRAW: 400<\/span>\r\n<span style=\"color: #000000;\">*********************************************<\/span>\r\n<span style=\"color: #000000;\">---------------------------------------------<\/span>\r\n<span style=\"color: #000000;\">-----------------------------------<\/span>\r\n<span style=\"color: #000000;\">***********************************<\/span>\r\n<span style=\"color: #000000;\">('YOUR NEW BALANCE IS: ', 600, 'RUPEES')<\/span>\r\n<span style=\"color: #000000;\">***********************************<\/span>\r\n<span style=\"color: #000000;\">-----------------------------------<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">SELECT FROM FOLLOWING OPTIONS: <\/span>\r\n<span style=\"color: #000000;\">Statement__(S) <\/span>\r\n<span style=\"color: #000000;\">Withdraw___(W) <\/span>\r\n<span style=\"color: #000000;\">Lodgement__(L) <\/span>\r\n<span style=\"color: #000000;\">Change PIN_(P) <\/span>\r\n<span style=\"color: #000000;\">Quit_______(Q) <\/span>\r\n<span style=\"color: #000000;\">: <\/span><\/pre>\n<p>&nbsp;<\/p>\n<pre><span style=\"color: #000000;\">: \"L\"<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">()<\/span>\r\n<span style=\"color: #000000;\">---------------------------------------------<\/span>\r\n<span style=\"color: #000000;\">*********************************************<\/span>\r\n<span style=\"color: #000000;\">ENTER AMOUNT YOU WANT TO LODGE: 150<\/span>\r\n<span style=\"color: #000000;\">*********************************************<\/span>\r\n<span style=\"color: #000000;\">---------------------------------------------<\/span>\r\n<span style=\"color: #000000;\">()<\/span>\r\n<span style=\"color: #000000;\">----------------------------------------<\/span>\r\n<span style=\"color: #000000;\">****************************************<\/span>\r\n<span style=\"color: #000000;\">('YOUR NEW BALANCE IS: ', 750, 'RUPEES')<\/span>\r\n<span style=\"color: #000000;\">****************************************<\/span>\r\n<span style=\"color: #000000;\">----------------------------------------<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">SELECT FROM FOLLOWING OPTIONS: <\/span>\r\n<span style=\"color: #000000;\">Statement__(S) <\/span>\r\n<span style=\"color: #000000;\">Withdraw___(W) <\/span>\r\n<span style=\"color: #000000;\">Lodgement__(L) <\/span>\r\n<span style=\"color: #000000;\">Change PIN_(P) <\/span>\r\n<span style=\"color: #000000;\">Quit_______(Q) <\/span>\r\n<span style=\"color: #000000;\">: <\/span><\/pre>\n<p>&nbsp;<\/p>\n<pre><span style=\"color: #000000;\">: \"P\"<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">-----------------------------<\/span>\r\n<span style=\"color: #000000;\">*****************************<\/span>\r\n<span style=\"color: #000000;\">ENTER A NEW PIN: 1234<\/span>\r\n<span style=\"color: #000000;\">*****************************<\/span>\r\n<span style=\"color: #000000;\">-----------------------------<\/span>\r\n<span style=\"color: #000000;\">------------------<\/span>\r\n<span style=\"color: #000000;\">******************<\/span>\r\n<span style=\"color: #000000;\">CONFIRM NEW PIN: 1234<\/span>\r\n<span style=\"color: #000000;\">*******************<\/span>\r\n<span style=\"color: #000000;\">-------------------<\/span>\r\n<span style=\"color: #000000;\">NEW PIN SAVED<\/span>\r\n<span style=\"color: #000000;\">-------------------------------<\/span>\r\n<span style=\"color: #000000;\">*******************************<\/span>\r\n<span style=\"color: #000000;\">SELECT FROM FOLLOWING OPTIONS: <\/span>\r\n<span style=\"color: #000000;\">Statement__(S) <\/span>\r\n<span style=\"color: #000000;\">Withdraw___(W) <\/span>\r\n<span style=\"color: #000000;\">Lodgement__(L) <\/span>\r\n<span style=\"color: #000000;\">Change PIN_(P) <\/span>\r\n<span style=\"color: #000000;\">Quit_______(Q) <\/span>\r\n<span style=\"color: #000000;\">: <\/span><\/pre>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #000000;\">Explanation:<\/span><\/h2>\n<p><span style=\"color: #000000;\">This is a Python script that simulates an ATM machine, allowing users to check their account balance, withdraw money, lodge money, change their PIN, and quit the system.<\/span><\/p>\n<p><span style=\"color: #000000;\">The script begins by defining three lists: <code>users<\/code>, <code>pins<\/code>, and <code>amounts<\/code>, which hold the names of account holders, their corresponding PINs, and the amount of money they have in their accounts.<\/span><\/p>\n<p><span style=\"color: #000000;\">The script prompts the user to enter their username, which is then converted to lowercase for consistency. The script then checks whether the entered username exists in the <code>users<\/code> list, and assigns the corresponding index value to <code>n<\/code>.<\/span><\/p>\n<p><span style=\"color: #000000;\">If the username is found, the script then prompts the user to enter their PIN. If the entered PIN is correct, the script will proceed to the main menu, which offers the user a choice of actions to perform. If the user enters the wrong PIN more than three times, the script will exit.<\/span><\/p>\n<p><span style=\"color: #000000;\">In the main menu, the user can select from the following options:<\/span><\/p>\n<ul>\n<li><span style=\"color: #000000;\">S (Statement): display the user&#8217;s account balance<\/span><\/li>\n<li><span style=\"color: #000000;\">W (Withdraw): allow the user to withdraw money from their account<\/span><\/li>\n<li><span style=\"color: #000000;\">L (Lodgement): allow the user to lodge money to their account<\/span><\/li>\n<li><span style=\"color: #000000;\">P (Change PIN): allow the user to change their PIN<\/span><\/li>\n<li><span style=\"color: #000000;\">Q (Quit): exit the system<\/span><\/li>\n<\/ul>\n<p><span style=\"color: #000000;\">If the user chooses to withdraw or lodge money, the script will prompt the user to enter an amount. If the amount is not a multiple of 10, the script will prompt the user to enter a different amount. If the amount is valid, the script will update the user&#8217;s account balance and display the new balance.<\/span><\/p>\n<p><span style=\"color: #000000;\">If the user chooses to change their PIN, the script will prompt the user to enter a new PIN. If the new PIN is not exactly four digits long, the script will prompt the user to enter a different PIN.<\/span><\/p>\n<p><span style=\"color: #000000;\">If the user chooses to quit the system, the script will exit.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ATM Management Python Project for Class 12 &nbsp; &nbsp; #!\/usr\/bin\/python #cbsepython.in import getpass import string import os # creating a lists of users, their PINs and bank statements users = [&#8216;jitendra&#8217;, &#8216;sunny&#8217;, &#8216;vivek&#8217;] pins = [&#8216;1111&#8217;, &#8216;2222&#8217;, &#8216;3333&#8217;] amounts = [1000, 2000, 3000] count = 0 # while loop checks existance of the enterd username [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-1839","post","type-post","status-publish","format-standard","hentry","category-python-projects"],"_links":{"self":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/posts\/1839","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/comments?post=1839"}],"version-history":[{"count":0,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/posts\/1839\/revisions"}],"wp:attachment":[{"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/media?parent=1839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/categories?post=1839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cbsepython.in\/wp-json\/wp\/v2\/tags?post=1839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}