python购物记录程序_python ATM购物程序
)),即調用dbapi模塊中的load_data_from_db方法來展示用戶信息
4、定義login函數,輸入用戶名和密碼
(1)、調用user_exists,判斷用戶是否存在,不存在則使用common.show_message進行異常顏色輸出。
(2)、如存在則調用 用戶登錄模塊_user_login ,首先對輸入的密碼參數進行md5計算_password = common.encrypt(password),調用common模塊中的encrypt函數,并進行用戶信息的判斷的賦值
(3)、判斷是否用戶被鎖定
(4)、判斷用戶是否登錄成功,成功則break退出,失敗則輸出異常信息
(5)、連續三次登錄失敗,則設置用戶鎖定標識為1,并update_user更新到user.db
(6)、重置trycount 重置次數
5、update_user即為將dict_user用戶列表信息進行回寫文件
6、定義用戶存在函數user_exists、創建函數create_user、刪除函數del_user、鎖定函數unlock_user
7、創建并init_user_info初始化用戶信息,輸入各種信息后,調用 create_user來生成用戶
8、定義靜態方法user_auth,用于用戶登錄驗證裝飾器
9、定義bind_card函數判斷卡綁定
10、注銷用戶函數logout,將系統屬性置空
11、個人中心 - 修改密碼函數modify_password
12、修改用戶信息modify_user_info
(1)、首先輸出當前的用戶信息
(2)、輸入新的用戶信息
(3)、輸入新的信用卡信息,并創建一個新的卡對象,調用CreditCard模塊:cardobj = CreditCard
(4)、判斷信用卡是否存在
(5)、輸入其他信息,并update_user回寫文件
13、根據用戶名獲取用戶信息load_user_info
2、shopping.py之類Shopping:
1、定義私有變量:__welcome_title 菜單標題、__database 數據庫文件、__shop_report_file購物報表
2、定義__init__: 特別定義方法
(1)、獲取數據表數據self._get_shop_market()
(2)、購物商城歡迎菜單self._construct_title_menu()
3、_get_shop_market方法:加載購物商品信息dbapi.load_data_from_db(shoppingmarket.db)
4、_construct_title_menu方法:輸出購物商城菜單
self.welcome_menu = self.__welcome_title.format(menu="".join(_menu))
5、get_goods_list_by_typeid方法:根據用戶選擇的商品分類編號,獲取該分類下所有商品
6、定義靜態方法print_goods_list:列表中的商品信息輸出到屏幕,商品列表或購物車商品列表
(1)、輸出商品信息標題
(2)、循環輸出商品具體信息
7、定義方法add_shopping_card(self, goodsid):根據商品編號加入購物車
(1)、定義變量_goods_tuple ,即具體的商品列表
(2)、開始查找輸入的商品編號,并加入購物車列表中,并計算金額
(3)、成功后break
(4)、返回return 成功與否
8、定義payfor_shopcart結算方法,并調用@Users.user_auth認證模塊作裝飾器
購物車結算模塊,功能包括:購物車付款、購物記錄寫入文件
(1)、判斷用戶是否綁定信用卡,如無,則返回錯誤,有,則繼續、
(2)、實例化信用卡類cardobj = CreditCard(userobj.bindcard)
(3)、判斷信用卡余額是否大于購買金額,如果不夠,輸出額度不夠,否則繼續
(4)、調用common.create_serialno(),生成一個流水號
(5)、調用卡的支付模塊進行支付cardobj.card_pay(self.shopping_cost, 1, serno)
支付扣款
記錄消費流水對賬單,將發生了費用還沒有還款的賬單信息寫入文件 report_bill 中
更新信用卡可透支余額信息到數據庫 creditcard.db
(6)、記錄購物流水shopping_record,并寫入報表記錄文件shopping_history
(7)、購物結算完成后將對象的購物車清空shopping_cart.clear(), 購物車商品總價清0 ,待下次購物
(8)、返回錯誤代碼
3、creditcard.py之類CreditCard:
1、指定數據表__database的表creditcard
2、定義信用卡額度,信用卡透支余額,信用卡日息,提現手續費率,信用卡狀態等變量
3、定義_load_card_info函數,用戶輸入的卡號獲取信用卡信息
4、定義card_is_exists函數,判斷輸入的信用卡是否存在
5、定義card_pay(self, cost, paytype, sereialno)函數,信用卡支付,從信用卡可透支余額中扣費
(1)、根據傳入的paytype的值,定義payfor的名稱,例:1:消費、2:轉賬、3:提現、4:手續費
(2)、支付扣款self.credit_balance -= cost
(3)、定義_tmp_bill_record,記錄消費流水對賬單
(4)、將消費流水對賬單寫回到文件report_bill
(5)、更新信用卡可透支余額信息到數據庫 creditcard.db
6、定義新發行信用卡create_card函數,根據輸入的卡號密碼等信息并更新到creditcard.db
7、定義信用卡更新update_card函數,根據輸入的卡號密碼等信息并更新到creditcard.db
8、定義轉賬、提現時驗證操作_pay_check函數,轉賬、提現時驗證操作,判斷卡的余額與支付密碼是否正確。并 返回錯誤類型碼
9、定義提現函數fetch_money(self, count, passwd)
(1)、根據傳入的取現金額,計算取現+手續費總額
(2)、調用_pay_check函數,根據返回值進行操作。
(3)、如果返回值是errorcode.NO_ERROR,則調用card_pay函數將取現金額和手續費計帳,并回寫文件
(4)、并返回errorcode.NO_ERROR
10、定義信用卡轉賬函數translate_money(self, trans_count, passwd, trans_cardobj)
(1)、根據傳入的轉帳金額,計算轉帳+手續費總額
(2)、調用_pay_check函數,根據返回值進行操作。
(3)、如果返回值是errorcode.NO_ERROR,則調用card_pay函數將轉帳金額和手續費計帳,并回寫文件
(4)、并給對方卡充值,trans_cardobj.credit_balance += trans_count,并調用trans_cardobj.update_card()寫入數據庫文件
(4)、并返回errorcode.NO_ERROR
11、定義對賬單列表數據函數load_statement_list,調用dbapi.load_statement_list(self.cardno)
12、定義recreate_statement函數,實現今天的日期將當前卡的對賬單重新生成,主要對過了還款日的賬單重新生 成利息信息
(1)、獲取當前日期today
(2)、獲取卡的對賬單信息card_statement = dbapi.load_statement_list(self.cardno)
(3)、如果有記錄,進行循環讀取,并判斷isfinished字段是否是1,是則加記錄加到臨時列表tmp_list
(4)、未還款,則獲取pdate還款時期,并判斷是否過期
(5)、如果過期則計算利息:record[k]["interest"] = v["total"] * settings.EXPIRE_DAY_RATE * day_delta
(6)、將過期或非過期的記錄都加到臨時列表tmp_list
(7)、將更新過的列表寫入文件,替換原有信息dbapi.write_statement_list(self.cardno, tmp_list)
4、common.py介紹:
1、函數verification_code(),用來生成一個4位的驗證碼,并返回驗證碼
2、函數encrypt(string),用來字符串加密
3、函數write_log(content),用來寫錯誤日志
4、函數get_chinese_num(uchar),用來計算漢字的個數
5、函數show_message(msg, msgtype)根據msgtype類型,對print函數進行封裝,根據不同類型顯示不同顏色
6、函數create_serialno(),用來生成一個消費、轉賬、提款時的流水號,不重復
7、函數numtochr(num_of_weekday),將數字星期轉換為中文數字
8、函數input_msg(message, limit_value=tuple()),判斷input輸入的信息是否為空的公共檢測函數,為空繼續輸入,不為空返回輸入的信息
9、函數input_date(msg, default_date),對輸入的日期進行判斷是否正確 yyyy-mm-dd or yyyy-m-d
5、report.py介紹: 賬單生成模塊
1、導入calendar,timedelta等模塊
2、函數get_date(),用來用戶輸入一個時間段,如果顯示報表是要提供開始、結束日期,返回開始,結束時間
2.1 調用common.input_date來生成一個開始日期startdate
2.2 調用common.input_date來生成一個結束日期enddate
2.3 返回一個時間的字典
3、函數print_shopping_history(userobj),個人中心 - 購物歷史記錄打印模塊
4、函數print_bill_history(userobj) ,個人中心-賬單明細 打印模塊
5、函數create_card_statement(cardno),生成信用卡對賬單
6、函數create_statement_main(),卡對賬單初始化模塊,從卡數據庫文件中加載所有卡號,對所有卡調用生成對賬單模塊
7、函數print_statement_list(cardno, list_info),將卡號對應的未還款記錄顯示出來
8、函數print_statement_detail(cardno, serino, details),還款模塊 - 用戶選擇還款的單號后,顯示詳細的還款對賬單及流水信息
程序說明
總結
以上是生活随笔為你收集整理的python购物记录程序_python ATM购物程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一年定期存款一万元利息是多少
- 下一篇: php 数值相加_php递归遍历多维数组