資源簡介
Python3實現的銀行ATM系統,使用了SQLite數據庫(Python自帶無需安裝)持久化儲存數據.異常已捕獲,剩了一個小bug不想去解決了.留給未來.

代碼片段和文件信息
import?sqlite3
‘‘‘沒有數據庫時必須先?取消注釋這段代碼?執行一遍后即可正常使用程序了?再次注釋?用戶數據就可以保存到數據庫了.‘‘‘
#?def?create_database():
#?????‘‘‘創建了一個數據庫結構‘‘‘
#?????conn?=?sqlite3.connect(database=‘atm_data.db‘)??#?創建一個數據庫名稱為atm_data.db
#?????conn.execute(“DROP?TABLE?USERS;?“)??#?刪除USERS這個表
#?????#?創建一個USERS表?里面創建一些字段?ID?PASSWORD?NAME?MONEY
#?????conn.execute(‘‘‘CREATE?TABLE?IF?NOT?EXISTS?USERS
#?????????????????(ID?INT?PRIMARY?KEY?????NOT?NULL?
#??????????????????PASSWORD????CHAR(16)???NOT?NULL?
#??????????????????NAME????????TEXT(10)???NOT?NULL?
#??????????????????MONEY???????REAL);‘‘‘)
#?????conn.commit()??#?提交
#?????conn.close()??#?關閉連接
#?create_database()
def?insert_db(ID_user?PASSWORD_user?NAME_user?MONEY_user=0):
????‘‘‘將用戶輸入的用戶信息寫入到數據庫‘‘‘
????conn?=?sqlite3.connect(‘atm_data.db‘)??#?創建一個數據庫鏈接
????cmd?=?“INSERT?INTO?USERS?(IDPASSWORDNAMEMONEY)?VALUES?({}\“{}\“\“{}\“{})“.format(ID_user?PASSWORD_user
???????????????????????????????????????????????????????????????????????????????????????????NAME_user
???????????????????????????????????????????????????????????????????????????????????????????MONEY_user)??#?將用戶輸入的信息寫入數據庫
????print(cmd)
????conn.execute(cmd)??#?寫入數據到數據庫
????conn.commit()??#?提交
????conn.close()??#?關閉數據庫鏈接
def?del_db(user_ID):
????‘‘‘注銷賬戶用將賬戶的用戶信息刪除‘‘‘
????conn?=?sqlite3.connect(‘atm_data.db‘)??#?創建一個數據庫鏈接
????cmd?=?“DELETE?FROM?USERS?WHERE?ID?=?{}“.format(user_ID)??#?命令
????conn.execute(cmd)??#?刪除該賬號
????#?驗證一下用戶名?和?密碼?確認刪除?否則?return?請重新輸入賬號
????conn.commit()
????conn.close()
def?register_user():
????‘‘‘注冊?/?注銷?用戶輸入信息入口‘‘‘
????while?True:
????????try:
????????????user_ID?=?int(input(‘請輸入您的賬號:\n‘))
????????????user_password?=?str(input(‘請輸入您的密碼:\n‘))
????????????user_password2?=?str(input(‘請再次輸入您的密碼:\n‘))
????????????user_name?=?str(input(‘請輸入開戶人的姓名:\n‘))
????????except:
????????????print(‘輸入信息不符合規范請重試...‘)
????????????continue
????????listA?=?[user_ID?user_password?user_password2?user_name]??#?將用戶輸入的信息以列表的方式返回.
????????return?listA
def?login_user():
????‘‘‘登錄信息錄入‘‘‘
????while?True:
????????try:
????????????user_ID?=?int(input(‘請輸入您需要登錄的賬號:\n‘))
????????????user_password?=?str(input(‘請輸入您的密碼:\n‘))
????????except:
????????????print(‘登錄信息有誤請重試.‘)
????????????continue
????????listA?=?[user_ID?user_password]??#?將用戶輸入的信息以列表的方式返回.
????????return?listA
class?Database():
????‘‘‘定義了一個數據庫操作類.‘‘‘
????def?__init__(self?id):
????????self.id?=?id??#?當用戶登錄成功后?記錄登錄id
????def?select_db(self):
????????‘‘‘查詢該賬戶的所有信息‘‘‘
????????conn?=?sqlite3.connect(‘atm_data.db‘)??#?創建一個數據庫鏈接
????????message?=?conn.execute(“SELECT?MONEY?FROM?USERS?WHERE?ID?=?{}“.format(self.id))??#?查詢該用戶信息的SQL語句
????????for?i?in?message:
????????????print(‘你余額為:{}‘.format(i))
????????????conn.commit()
????????????conn.close()
????????????return?i
????????else:
????????????return?‘沒有此用戶的信息...‘
????def?select_other_db(self?other_ID):
????????‘‘‘查詢該賬戶的所有信息‘‘‘
????????conn?=?sqlite3.connect(‘atm_d
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12288??2018-09-07?09:35??atm_data.db
?????文件??????16703??2018-09-07?10:15??atmDateba
-----------?---------??----------?-----??----
????????????????28991????????????????????2
評論
共有 條評論