銀行資金管理系統
使用Python語言完成【銀行資金管理系統】,在新建工程中創建bank_main.py和bank_tools.py兩個檔案,其中bank_main.py檔案為主檔案,用于提供系統入口及主函式存放,bank_tools.py為工具檔案,詳細要求如下:
(1) 注冊與登錄模塊;
在bank_tools.py中創建三個函式 show_menu()函式需要列印出各個功能模塊對應的數字,user_login(userInfo)函式需要通過userInfo引數傳入用戶注冊資訊進行登錄,user_register()函式用于用戶第一次使用系統時提供注冊功能,
(2) 資金存取模塊;
在用戶已成功登錄的情況下,通過funds_trade(user_name)函式進行資金的存/取,同時將存取記錄寫入user_funds.csv檔案,通過funds_print()函式列印出交易詳情,


這是我們的期末專案,下面我會給出一個解答方法,
這是第一個bank_tools.py檔案
import csv
import os
import sys
import datetime
# 運行時生成csv檔案,寫入title
def make_csv():
files = os.listdir()
if "funds_trade.csv" not in files:
f = open("funds_trade.csv","w",encoding="utf-8",newline="")
fw = csv.writer(f)
fw.writerow(["用戶名", "時間", "存入/支出", "金額"])
f.close()
if "user.csv" not in files:
f = open("user.csv", "w", encoding="utf-8", newline="")
fw = csv.writer(f)
fw.writerow(["name", "pwd"])
f.close()
# 顯示登錄選單
def show_menu():
print("歡迎來到【銀行資金管理系統】,請選擇!")
choose = eval(input("直接登錄請按【1】,注冊請按【2】:"))
if choose == 2:
user_register()
elif choose == 1:
name_L = input("請輸入賬戶名:")
passwd_L = input("請輸入密碼:")
user ={"name":name_L,"passwd":passwd_L}
user_login(user)
else:
print("選擇錯誤,請重新輸入!")
show_menu()
# 判斷是否登錄成功,以及下一步操作
def user_login(userInfo):
name = userInfo.get("name")
passwd = userInfo.get("passwd")
f = open("user.csv","r",encoding="utf-8")
fr = csv.reader(f)
flag = 0
for i in fr:
if i[0] == name and i[1] == passwd:
flag = 1
print("登陸成功!")
show_mainMenu(name)
break
if flag == 0:
print("登陸失敗,請重新登錄!")
show_menu()
# 注冊
def user_register():
name_R = input("請輸入賬戶名:")
passwd_R = input("請輸入密碼:")
f = open("user.csv","a",encoding="utf-8",newline="")
fw = csv.writer(f)
if name_R != None and passwd_R != None:
fw.writerow([name_R,passwd_R])
f.close()
print("您已注冊成功!")
print("即將跳轉至登錄...")
show_menu()
# 登陸成功主選單
def show_mainMenu(name=""):
print("-----------【銀行資金管理系統】-----------")
print("1:資金存入/取出")
print("2:建議賬單列印")
print("3:退出系統")
print("-----------------------------------------")
choose2 = eval(input("請輸入數字進行相關操作:"))
if choose2 == 1:
operation(name)
elif choose2 == 2:
funds_print(name)
choose4 = eval(input("請按【0】退出賬單查看:"))
if choose4 == 0:
show_mainMenu(name)
else:
show_mainMenu(name)
elif choose2 == 3:
sys.exit(0)
else:
print("輸入錯誤,請重新輸入!")
show_mainMenu()
def operation(name=""):
num = eval(input("請輸入你存(+)取(-)的金額:"))
if num != 0:
funds_trade(name,num)
print("資料更新成功!")
print("資料保存成功!")
balance = get_banlance(name)
if num > 0:
print("您已成功存入{}元!當前余額{}元!".format(num, balance))
else:
print("您已成功取出{}元!當前余額{}元!".format(num, balance))
choose3 = eval(input("繼續存取請按【1】,回傳主選單請按【2】:"))
if choose3 == 1:
operation(name)
elif choose3 == 2:
show_mainMenu(name)
else:
print("輸入錯誤,回到主選單!")
show_mainMenu(name)
else:
print("輸入錯誤,請重新輸入!")
operation(name)
def funds_trade(name, money):
f = open("funds_trade.csv","a",encoding="utf-8",newline="")
fw = csv.writer(f)
balance = int(get_banlance(name))
fw.writerow([name,datetime.datetime.now(),str(money),str(balance+money)])
f.close()
def funds_print(name):
f = open("funds_trade.csv", "r", encoding="utf-8")
fr = csv.reader(f)
if fr:
print("用戶名 時間 存入/支出 余額")
for i in fr:
if i[0] == name:
print("{} {} {} {}".format(i[0],i[1],i[2],i[3]))
def get_banlance(name):
f = open("funds_trade.csv","r",encoding="utf-8")
fr = csv.reader(f)
banlance = 0
for i in fr:
if i[0] == name:
banlance = int(i[-1])
f.close()
return banlance
這是第二個bank_main.py檔案
import bank_tool
if __name__ == "__main__":
bank_tool.make_csv()
bank_tool.show_menu()
大家可以參照練習,也請大佬們指正!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/238560.html
標籤:python
上一篇:Python資料型別基礎
