单机版购物程序(python版)
#程序名称:单机版购物系统Python版(本程序的C语言版参见本空间2013年12月17日日志《本周成果物》)
#程序描述:实现单机版购物系统的登录,注册,添加商品,添加订单,页面跳转等功能。
#编写日期:2014.3.22-2014.4.2,2014.7.8-2014.7.9
#编写人:刘琳泽
#编写解释环境:Windows 7 家庭高级版 Python3.3.5rc1 IDLE
#因在python中,不存在函数声明,故函数调用时被调函数必须在主调函数前,故本程序看似倒序,最外层的欢迎语句在最下方
#声明引用文件
import time
import sys
import os
#import users
#会员信息存储模块
database=[ #用列表存储会员信息,因为是单机版系统,会员信息仅在当前开启的程序中有效
['admin','admin'], #系统管理员账号密码
['luke','123'] #提供测试用普通用户账号
]
#商品信息存储模块
goodlist=[ #实现方法、功用、效果等同上
['ID','name','quantity','price','state','discount'],
['001','苹果','1000','3.5','0','10'],
['002','香蕉','200','5','1','9']
]
#订单信息存储模块
orderlist=['ID','username','name','quantity'] #实现方法、功用、效果等同上
#对比类模块,可进行注册和登录的用户名、密码校验和商品是否存在的校验
class cpr():
def regcpr(self,username,password): #对比方法,用于注册时校验用户名和密码是否存在的对比
if [username,password] in database:
return 0 #存在返回0
else:
return 1 #不存在返回1
def logincpr(self,username,password): #对比方法,用于登录时校验用户名和密码是否存在且是否配套
if [username,password] in database: #存在性校验
if [username,password]==['admin','admin']: #校验要登录的用户名是否是管理员账号admin且密码是否为admin
return 0 #是admin且密码与之配套返回0
else:
return 1 #不是admin或者密码与之不配套返回1
else:
return 2 #用户名不存在返回2
def goodscpr1(self,ID): #对比方法,用于添加商品时校验商品ID是否已存在和在添加订单时校验ID
print(ID)
for x in range(0,1001):
if ID==goodlist[x][0]:
return 0 #存在则返回0
else:
return 1 #不存在则返回1
def goodscpr2(self,name): #对比方法,用于添加商品时校验商品名称是否已存在
print(name)
for x in range(0,1001):
if name==goodlist[x][1]:
return 0
else:
return 1
#添加订单模块
def order(username):
cls=os.system('cls') #系统清屏命令
print(username,",欢迎您添加订单!")
ID=input("请输入您要订购的商品ID编号:") #要求输入订购的商品ID编号
goodIDcpr2=cpr()
cprresult3=goodIDcpr2.goodscpr1(ID) #调用对比类中的方法
if cprresult3==1:
quantity2=input("请输入您想要的数量:")
for x in range(len(goodlist)): #以goodlist的索引位置的序号为范围进行循环查找要订购的商品ID所代表的商品的价格
if goodlist[x][0]!='ID':
key3=goodlist[x]
if key3[0]==ID:
key4=goodlist.index(key3)
price=float(quantity2)*float(goodlist[key4][3])*float(goodlist[key4][5])*0.1 #计算订单价格
name=goodlist[key4][1]
print("您的订单信息如下:")
print(username,ID,name,price) #输出订单信息
y=0
key='y'
while(key=='Y' or key=='y'):
y=y+1
key=input("确认订单请输入y后按回车:") #确认订单
if key=='Y' or key=='y':
print("您的订单已生成!系统将返回用户界面。")
orderlist.insert(0,[[ID,username,name,price]]) #将订单插入订单列表
time.sleep(3)
puserGUI(username)
else:
print("您输入的字母有误!")
key2=input("是想取消订单吗?是选择1,系统将返回用户界面,否选择2重新输入:") #不确认将询问用户意图
if key2==1:
puserGUI(username)
if key2==2:
key='y'
else:
print("您输入的商品不存在,系统将返回用户界面。") #输入ID号有误时显示的提示信息
time.sleep(3)
puserGUI()
#添加商品模块
def goodin():
cls=os.system('cls')
print("管理员,欢迎您添加商品!请按照提示进行操作!") #管理员添加商品
key='y'
x=0
while(key=='y' or key=='Y'):
x=x+1
ID=input("请输入商品ID号码:") #索要新的ID号
goodIDcpr=cpr()
cprresult1=goodIDcpr.goodscpr1(ID) #校验ID是否存在
if cprresult1==1:
name=input("请输入商品名称:") #索要商品名称
goodnamecpr=cpr()
cprresult2=goodnamecpr.goodscpr2(name) #校验商品名称是否存在
if cprresult2==1:
quantity=input("请输入商品数量:")
price=input("请输入商品价格:")
state=input("请输入商品的折扣状态(0代表不打折,1代表打折中):")
discount=input("请输入商品的折扣额度(1-10代表折扣的额度,10代表不打折):")
goodlist.insert(0,[ID,name,quantity,price,state,discount])
if x==5:
print("您最多一次添加5种商品,系统将回到管理首页") #最多允许一次添加5中商品
time.sleep(3)
auserGUI()
else:
key=input("商品添加成功!还要继续添加吗?需要请输入y后按回车:")
if key!='y':
print("您输入的字母有误!系统将返回管理首页。")
auserGUI()
else:
print("您输入的商品名称已存在,请重新输入:")
key='y'
else:
print("您输入的ID号码已存在,请重新输入:")
key='y'
#注册模块
def regGUI():
cls=os.system('cls')
print("欢迎注册本购物系统!")
key1=input("开始注册吗?开始请输入y后按回车,否则按任意键返回主页面。\n") #为避免用户误操作点入注册界面
if key1=='y' or key1=='Y':
key2='y'
while(key2=='y' or key2=='Y'):
username=input("请输入您要注册的用户名:")
password=input("请输入您的密码")
cpr1=cpr()
result=cpr1.regcpr(username,password) #调用对比类方法校验用户名和密码是否已存在
if result==0:
print("您要注册的用户名已存在!请重新注册其他用户名!重新注册输入y后按回车,否则输入任意键退出注册:")
key5=input()
key2=key5
elif result==1:
x=1
while(x<6): #防止非人为原因引起的注册失败,系统自动重复5次
database.insert(0,[username,password])
key4=1
while(key4==1):
result2=cpr1.regcpr(username,password)
if result2==0:
print("您注册的用户已成功!系统将进入登录界面。")
time.sleep(3)
loginGUI()
else:
key4=key4+1
if key4==6:
print("注册失败,系统将返回主页面,请重新尝试注册")
time.sleep(3)
mainGUI()
else:
print("注册未成功,系统正在重试")
time.sleep(3)
x=x+1
else:
mainGUI()
#普通用户界面
def puserGUI(username):
cls=os.system('cls')
print(username,",欢迎您进入本购物系统!") #普通用户操作界面的欢迎语句
key3='y'
while(key3=='y' or key3=='Y'):
print("1.查看商品列表")
print("2.购买商品")
print("3.退出系统")
key=input("请选择您要进行的操作的序号后点击回车键:") #选择相应功能
if key=='1':
cls=os.system('cls')
for x in range(len(goodlist)):
print(goodlist[x])
print("1.购买商品")
print("2.退出系统")
key2=input("请选择您要进行的操作的序号后点击回车键:")
x=1
while(x==1):
if key2=='1':
order(username)
elif key2=='2':
mainGUI()
else:
print("您输入的序号有误,请重新输入。")
x='1'
elif key=='2':
order(username)
elif key=='3':
mainGUI()
else:
print("您输入的序号有误,请重新输入:")
key3='y'
#管理用户界面
def auserGUI():
cls=os.system('cls')
print("管理员,欢迎您!")
print("1.查看商品列表")
print("2.添加商品")
print("3.退出管理系统")
key=input("请选择您要进行的操作的序号后点击回车键:")
if key=='1':
cls=os.system('cls')
for x in range(len(goodlist)):
print(goodlist[x])
print("1.添加商品")
print("2.退出管理系统")
key2=input("请选择您要进行的操作的序号后点击回车键:")
x=1
while(x==1):
if key2=='1':
goodin()
elif key2=='2':
mainGUI()
else:
print("您输入的序号有误,请重新输入。")
time.sleep(2)
elif key=='2':
goodin()
elif key=='3':
mainGUI()
#登录模块
def loginGUI():
cls=os.system('cls')
print("1.登录系统")
print("2.返回主页面")
print("3.退出本程序")
key=input("请输入序号确认您的操作:")
if key=='1':
print("欢迎登录本系统!")
key2='y'
while(key2=='y' or key2=='Y'):
username=input("请输入您的用户名:")
password=input("请输入您的密码:")
cpr2=cpr()
result=cpr2.logincpr(username,password) #校验登录名和密码是否存在和配套
if result==0:
auserGUI()
elif result==1:
puserGUI(username)
elif result==2:
print("您输入的用户名未注册或输入的用户名密码不匹配,系统将返回主页面,请先注册后再登录。")
time.sleep(3)
mainGUI()
if key=='2':
mainGUI()
if key=='3':
print("系统将退出!")
time.sleep(3)
sys.exit()
#主界面模块
def mainGUI():
cls=os.system('cls')
key='y'
while key=='y' or key=='Y':
print('1.注册账户')
print('2.登录系统')
print('3.退出程序')
ordnum=input("请选择您想要进行的操作序号:\n")
if ordnum=='1':
regGUI()
elif ordnum=='2':
loginGUI()
elif ordnum=='3':
sys.exit()
else:
key=input("您输入的序号有误,是否重新选择?重新选择请输入y,否则输入任意值。")
#欢迎界面
print("欢迎使用本购物系统!") #欢迎语句
time.sleep(2) #系统在当前页面静止2秒
mainGUI() #跳转主界面
购物系统程序练习_PYTHON版
最新推荐文章于 2024-08-18 15:39:13 发布