购物系统程序练习_PYTHON版

单机版购物程序(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()                                                                                                  #跳转主界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值