'''
手机销售系统
手机品牌 手机价格 库存数量
vivoX9 2798 25
iphone7(32G) 4888 31
iphone7(128G) 5668 22
iphone7P(128G) 6616 29
iphone6(16G) 3858 14
....
....
....
功能要求:
四个选项:
1.查看所有手机品牌
1.vivoX9
2.iphone7(32G)
......
分支选项:
1.选择产品序号查看详情(根据序号输出产品名称,价格,库存)
1.购买(库存数量-1,库存为0时,删除该产品)
2.返回
2.返回
2.更改产品库存信息
1.添加新产品(添加新产品,包括产品名称、价格、库存)
2.修改原有产品
输出所有产品信息(将产品的名称 价格 库存)
1.根据选择序号进行修改
2.返回
3.移除产品库存信息
1.查看所有产品,根据序号移除
2.移除所有产品
3.返回
4.退出程序
'''
#查看产品信息的函数
def query():
print('1.查看所有手机品牌')
print('2.选择产品序号查看详情')
num=int(input('请输入您的选择:'))
while num not in range(1,3):
num = int(input('该选项不存在,请您重选选择:'))
if num==1:
if len(product_list) == 0:
print('没有产品信息!')
# 强制结束函数的执行 return 下面的代码 都不会再执行了
return
for x in range(0,len(product_list)):
kind=product_list[x]
#print('手机品牌:%s'% kind[0])
print('序号:%s手机品牌:%s手机价格:%s手机库存:%s' % (x, kind[0], kind[1], kind[2]))
else:
if len(product_list) == 0:
print('没有产品信息,无法进行查看!')
# 强制结束函数的执行 return 下面的代码 都不会再执行了
return
index=get_index('查询')
kind=product_list[index]
print('序号:%s手机品牌:%s手机价格:%s手机库存:%s' % (index, kind[0], kind[1], kind[2]))
print('~~~~~~~~~~~~~~1.购买~~~~~~~~~~~~')
print('~~~~~~~~~~~~~~2.返回~~~~~~~~~~~~')
num = int(input('请输入您的选择:'))
while num not in range(1, 3):
num = int(input('没有改选项,请重选:'))
if num==1:
print('购买成功')
total_number=int(kind[2])
total_number-=1
kind[2]=total_number
if total_number==0:
del product_list[index]
print('该产品已无库存!')
else:
print('返回')
#封装判断选择学员序号是否在范围的函数
#带返回值的函数 函数执行完之后,会返回一个结果,可以声明变量接收这个结果
def get_index(type):
'''
函数的功能描述:获取用户选择的学员序号
:param type: 选择序号类型
:return: 选择的序号
'''
index = input('请选择要%s的产品序号:'%type)
# 转换为整数类型
index = int(index)
while index not in range(0, len(product_list)):
index = input('选择的产品序号不存在,请重选:')
index = int(index)
#返回选择的序号
return index
def update():
print('1.添加新产品')
print('2.修改原有产品')
num = int(input('请输入您的选择:'))
while num not in range(1, 3):
num = int(input('改选项不存在,请重选:'))
if num==1:
# 添加产品信息
name = input('请输入手机品牌:')
price = input('请输入手机价格:')
number = input('请输入库存数量:')
# 把name、age、phone放在小列表中
kind = [name, price, number]
product_list.append(kind)
print('****添加产品成功****')
else:
#判断是否有产品信息,如果没有,直接结束函数的执行
if len(product_list) == 0:
print('没有产品信息,无法进行修改操作!')
# 强制结束函数的执行 return 下面的代码 都不会再执行了
return
for x in range(0,len(product_list)):
kind=product_list[x]
print('序号:%s手机品牌:%s手机价格:%s手机库存:%s' % (x, kind[0], kind[1], kind[2]))
#选择要修改的产品序号
index=get_index('修改')
kind=product_list[index]
new_name=input('请输入修改后的手机品牌(%s):'%kind[0])
new_price=input('请输入修改后的手机价格(%s):'%kind[1])
new_number=input('请输入修改后的库存数量(%s):'%kind[2])
#修改小列表中的数据
kind[0]=new_name
kind[1]=new_price
kind[2]=new_number
print('------------------修改数据完成------------')
#移除产品函数
def delete():
print('1.根据序号移除')
print('2.移除所有产品')
num = int(input('请输入您的选择:'))
while num not in range(1, 3):
num = int(input('没有改选项,请重选:'))
if num==1:
for x in range(0, len(product_list)):
kind = product_list[x]
print('序号:%s手机品牌:%s手机价格:%s手机库存:%s' % (x, kind[0], kind[1], kind[2]))
index=get_index('删除')
rs = input('确定要删除序号为(%s)的手机信息?y(是的)/n(不是):' % index)
if rs == 'y':
# 根据索引删除列表中的数据
del product_list[index]
print('************删除数据成功*******')
else:
rs = input('确定要删除所有信息?y(是的)/n(不是):')
if rs == 'y':
# 根据索引删除列表中的数据
product_list.clear()
else:
print('取消删除数据操作!!!')
#保存数据
def save_data():
file_handle=open('product.txt',mode='w')
for kind in product_list:
s=' '.join(kind)
file_handle.write(s)
file_handle.write('\n')
file_handle.close()
#读取数据
import os
def read_data():
#判断文件是否存在
rs=os.path.exists('product.txt')
if rs==True:
file_handle=open('product.txt',mode='r')
#读取所有行
contents=file_handle.readlines()
for msg in contents:
#去除\n
msg=msg.strip('\n')
kind=msg.split(' ')
product_list.append(kind)
file_handle.close()
product_list=[]
read_data()
while True:
print('-------------------手机销售系统----------------')
print('1.查看所有手机品牌')
print('2.更改产品库存信息')
print('3.移除产品库存信息')
print('4.退出程序')
num=int(input('请输入您的选择:'))
while num not in range(1,5):
num = int(input('改选项不存在,请重选:'))
if num==1:
query()
save_data()
elif num==2:
update()
save_data()
elif num==3:
delete()
save_data()
else:
print('-----------程序运行结束-------------')
break