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