python模擬購物車購物過程_python實現購物車+ATM機 第五天

模擬實現一個ATM + 購物商城程序

1.額度 15000或自定義

2.實現購物商城,買東西加入 購物車,調用信用卡接口結賬

3.可以提現,手續費5%

4.每月22號出賬單,每月10號為還款日,過期未還,按欠款總額 萬分之5 每日計息

5.支持多賬戶登錄

6.支持賬戶間轉賬

7.記錄每月日常消費流水

8.提供還款接口

9.ATM記錄操作日志

10.提供管理接口,包括添加賬戶、用戶額度,凍結賬戶等。。。

11.用戶認證用裝飾器

功能:4,8,10 沒有實現

參數解釋:

購物車賬戶:admin 密碼:123

信用卡轉賬賬戶:xinyongka 密碼:456

流程圖:

目錄結構圖:

代碼:

start.py 模塊def?start_shop():

login()

while?True:

print?('''

#################################################################

#???????????1.購物

#???????????2.余額查詢

#???????????3.轉賬

#???????????4.還款

#???????????5.操作記錄查詢

#???????????6.賬戶流水

#???????????7.登錄后臺系統

#################################################################

''')

number=input('請輸入您要執行的操作:').strip()

if?number?==?"1":

buy_shop()

elif?number?==?"2":

time.sleep(1)

money_query()

elif?number?==?"3":

time.sleep(1)

Transfer()

elif?number?==?"4":

time.sleep(1)

huankuan()

elif?number?==?"5":

time.sleep(1)

log_sys()

elif?number?==?"6":

time.sleep(1)

monye_logs()

elif?number?==?"7":

Backstage()

else:

print?('您輸入有誤,請重新輸入:')

time.sleep(3)

start_shop()

shop.py 模塊

import time

import datetime

import os,sys

buy_shop_list=[]

shop_list= [{"name": "上衣", "price": 300},

{"name": "下衣", "price": 350},

{"name": "鞋子", "price": 270},

{"name": "帽子", "price": 150},

]

def buy_shop():

print('您的默認信用卡額度為:15000元')

wages = 15000

wages = int(wages)

print('您的賬戶額度為%s ' % wages)

# while True:

for index, item in enumerate(shop_list): #給商品列表增加序號

print ('以下是您可購買的商品列表,請輸入商品號購買')

print (index,item) ? ? ? ? ? ?#打印可以購買的商品列表

while True: ? ? ? ? ? ? ? ? ? ? # 輸入商品ID進行購買

shop_number=input('請輸入商品號: ').strip() ? ? #商品購買

shop_number=int(shop_number)

buy_shop_list.append(shop_list[shop_number]) ? ? #將購買的商品添加到購物車

buy=input('輸入Y/y繼續購買,輸入N/n進行結算: ') ? #輸入y/n是否繼續購買

if buy == 'Y' or buy == 'y':

pass

else:

money=0

for i in buy_shop_list:

money_total=(i["price"])

money += money_total

# 當商品購買商品價格總額大于賬戶總額,進行賬戶充值或者直接退出

if money > wages:

print ('您的消費上商品清單%r \n您總共消費 %s 元 ,賬戶余額%s 元 ,余額不足請此卡轉賬或者充值' %(i,money,wages))

money_less=input('請輸入Y/y 登錄新賬戶對此購物車賬號進行轉賬,輸入N/n 不買了: ')

if money_less == Y or money_less == y:

log_other()

else:

if money_less == N or money_less == n:

sys.exit()

else: ? ? ? # 當商品大于價格總額小于賬戶總額購買結束

print ('您購買了%s 物品,\n消費了%s 元' %(buy_shop_list,money))

# 存儲賬戶的消費記錄文件record.txt

with open(r'D:\python_version\python_dir\ATM\log\record.txt','a',encoding='utf-8') as f: ? ? ? # 記錄當天的消費流水

time_t=(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

f.write(time_t)

f.write(' ? ?您消費人民幣 %s 元 \n' %money )

with open(r'D:\python_version\python_dir\ATM\log\balance1.txt', 'w', encoding='utf-8') as k:

# 存儲賬戶余額的文件balance.txt

xiaofei=(wages - money)

money=str(money)

k.write('{\'total_money\':%s,\'shengyu\':%s}'%(wages,xiaofei))

sys.exit()

轉賬模塊:zhuangzhan.py

from?ATM.core.shop?import?buy_shop

import?time,sys,os

def?Transfer():

while?True:

other_id=input('請輸入你其他銀行賬戶信息:')????#?其他銀行賬戶信息

other_pwd=input('請輸入你其他銀行賬戶密碼:')???#其他銀行賬戶密碼

if?other_id?==?'xinyongka'??and??other_pwd?==?'456':

print?('您已經成功登錄,請輸入你要像此admin?賬戶的轉賬金額:')

jine=input('轉賬額:').strip()???????????#登錄后輸入項admin賬戶的轉賬金額

jine=int(jine)???????????????#?轉化為×××(int)

print?('您需要轉賬的金額為?%s?元:?,正在轉賬中....'?%?jine)

time.sleep(3)

with?open(r'D:\python_version\python_dir\ATM\log\balance.txt',?'r+',?encoding='utf-8')?as?file:

file_name?=?eval(file.readline())

syje=(file_name['shengyu'])

syje=int(syje)

new_money=jine+syje?????????????#將轉賬金額與剩余金額相加

print?('您想admin賬戶轉賬?%s?元'?%?jine)

file.write('\n')

file.write('{\'total_money\':%s,\'shengyu\':%s}\n'%(file_name['total_money'],new_money)

sys.exit()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260047.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C#使用Cookie方法

代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> //寫入protected void Button1_Click(object sender, EventArgs e){HttpCookie cookienew HttpCookie("MyCook");//初使化并設置Cookie的名稱DateTime…

智能手機計步算法c語言實現,【轉載】智能手機計步器算法的實現

現在的智能手機嵌入了一些微小的傳感器,比如重力傳感器、光傳感器、聲音傳感器等。如何有效地利用這些傳感器來開發一些應用,是一個值得深入研究的課題。比如開發醫療健康的應用、運動量監視器等。本文采用htc Touch Pro智能手機的重力傳感器來開發一款監…

vue點擊按鈕怎么跳轉圖片_vue-router組件里面點擊一個按鈕跳轉到一個新的組件該怎么實現...

展開全部直接修改地址欄中的路由地址即可:{{msg}}var testLogin Vue.component("login",{template:這是我的登錄頁面})var testRegister Vue.component("register",{template:這是我的注冊頁面})//配置路由詞典//對象數組const myRoutes [//…

Arduino教程資料匯總(8月22日悄悄跟新了一下)

http://www.geek-workshop.com/thread-985-1-1.html 本帖最后由 迷你強 于 2013-8-31 12:36 編輯 F-101 arduino基礎套件使用資料 Arduino入門教程--課前準備--Arduino驅動安裝及1.0 IDE菜單介紹Arduino入門教程--第一課--板載Led閃爍實驗Arduino入門教程--第二課--第一次面包板…

HTML5/CSS3系列教程:HTML5 區域(Sectioning)的重要性

日期:2013-2-4 來源:GBin1.com 不管你以前在web頁面布局中如何稱呼它們 - “區域”還是“塊”,我們一直都在布局中將頁面分成可視的不同區域。但真正的問題在于我們并沒有使用任何正確的工具來實現。一般情況下我們使用典型的網格來劃分頁頭…

CoreAnimation —— CAReplicatorLayer(拷貝圖層)

2019獨角獸企業重金招聘Python工程師標準>>> CAReplicatorLayer是一個layer容器,會對其中的subLayer進行一些差異處理(它的子layer都可以拷貝) 屬性: //拷貝的次數 property NSInteger instanceCount; //是否開啟景深效…

c語言用數組寫密碼程序,想程序高手求助--用C語言來編輯一個輸入密碼的程序...

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓/*--------實現密碼的隱式輸入-----------------*/inputpw(char *password,int len) /*len為密碼長度*/{int i0; /*密碼數組索引值,同時也表示記錄已顯示*的數目*/char ch;fflush(stdin); /*清洗流,以防妨礙密碼正確輸入…

ps流 轉發_RTP協議全解析(H264碼流和PS流)(轉)

[LeetCode] Arranging Coins 排列硬幣You have a total of n coins that you want to form in a staircase shape, where every k-th row must ha ...使用Jenkins可持續集成maven項目首先下載最新的Jenkins的war包,放在tomcat的webapps的目錄下,然后運行,例…

android 接收短信代碼,短信接收功能實現的代碼

其中包含了widget必備的要素以及對應文件分別為:appwidgetprovider--------------------------SmsWidget.javawidget的config--------------------------SmsWidgetConfig.javawidget引發的app-------------------------SmsAider.javaappwidgetproviderinfo---------…

使用MeanJS Yeoman Generator

1、首先全局安裝該生成器 sudo npm install -g generator-meanjs 2、為項目創建一個路徑 mkdir xmen && cd xmen 3、創建app yo meanjs 根據提示,輸入應用名,描述,關鍵詞,是否創建crud例子。。 4、運行app sudo NODE_ENVd…

Entity Framework With Oracle

雖然EF6都快要出來了,但是對于Oracle數據庫,仍然只能用DB first和Model First來編程,不能用Code First真是一個很大的遺憾啊。 好了,廢話少說,我們來看看EF中是如何用DB first和Model First來對Oracle編程的。 首先我們…

(三)Maven倉庫介紹與本地倉庫配置

1.Maven本地倉庫/遠程倉庫的基本介紹 示意圖: 本地倉庫是指存在于我們本機的倉庫,在我們加入依賴時候,首先會跑到我們的本地倉庫去找,如果找不到則會跑到遠程倉庫中去找。對于依賴的包大家可以從這個地址進行搜索:http…

大數據時代下的遷移學習_繼深度學習后,下一個熱點技術是遷移學習

最早提出大數據時代到來的是知名咨詢公司麥肯錫,麥肯錫稱:“數據,已經滲透到當今每一個行業和業務職能領域,成為重要的生產因素。人們對于海量數據的挖掘和運用,預示著新一波生產率增長和消費者盈余浪潮的到來。”其實…

手機廣告投放(phone advertising)唯一標識

手機標示,為了識別用戶,方面advertising。 使用設備id,相當于暴露用戶隱私。慢慢已不允許使用。、 (長時間跟蹤用戶無異于暴露用戶隱私,雖然大量數據適合興趣建模,廣告個性化推薦。但復雜多樣會降低總體的準…

android分辨率比例成像,像素不是唯一 決定成像效果你必知的真相

像素并不是唯一如今不少人在選購一部手機時,非常重視手機攝像頭的像素大小,因為一部高像素的手機可以為不少喜愛拍照的人省去買單反的費用,而且攜帶起來也非常方便。不過,手機并不能與專業的單反相機相比,成像效果并不…

vim——打開多個文件、同時顯示多個文件、在文件之間切換

打開多個文件: 1.vim還沒有啟動的時候: 在終端里輸入 vim file1 file2 ... filen便可以打開所有想要打開的文件 2.vim已經啟動 輸入 :open file 可以再打開一個文件,并且此時vim里會顯示出file文件的內容。 同時顯示多個文件: :s…

Android底部導航欄實現(一)之BottomNavigationBar

BottomNavigationBar這個控件的使用之前已經寫過,這里不再贅述,詳情請參考BottomNavigationBar的使用。 下面直接上代碼: 初始化及相關設置: mBottomNavigationBar (BottomNavigationBar) view.findViewById(R.id.bottom_navigat…

jq 組裝數組_Jquery 數組操作

1、數組的創建var arrayObj new Array(); //創建一個數組var arrayObj new Array([size]); //創建一個數組并指定長度,注意不是上限,是長度var arrayObj new Array([element0[, element1[, ...[, elementN]]]]); 創建一個數組并賦值要說明的是&…

android 官方說明文檔,Android官方文檔翻譯-Accessibility

標簽元素向用戶提供解釋每個可互動元素的意義和目的有用且形象的標簽是非常重要的。這些標簽允許屏幕閱讀者(比如 TalkBack )正確向用戶解釋每個控制器的功能。你可以使用一下兩個方法提供元素的標簽:當展示在 Activity 的整個生命周期中都不會改變樣式的靜態元素時…

USACO 2.4.1 The Tamworth Two

牛和農夫按照固定的走法在10x10的地圖中走,每分鐘走一步,求經過幾分鐘相遇。永遠不能相遇輸出0. 純模擬的題。 判斷永遠不能相遇的方法是如果遇到了一個先前的狀態,那么肯定存在循環,必定不能相遇。 程序中把狀態表示為牛和農夫的…