python模拟购物车购物过程_python实现购物车+ATM机 第五天

该博客介绍了一个使用Python编写的ATM和购物车模拟程序,具备购物、查询余额、转账、还款等功能。用户可以选择购物并支付,如果金额不足可以通过转账功能从其他账户获取资金。此外,系统还会记录消费流水和账户余额。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模拟实现一个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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值