题目: 设计一个购物程序,自定义程序功能和数据存储方式,并给出设计文档。 设计文档: 设计了加入商品,用户注册,登录,查看购物车,查看商品,查看购物车商品总价,删除购物车商品,购买商品,查看已购物商品等功能,数据储存在文本文件中(并未设计图形界面,主要是文件读取,基本可以实现重复使用,即无需退出程序就可以继续用)
创造用户和商品文档,并将其转换成字典
加入商品,选择0直接进入用户注册,选择1则加入商品,输入商品名,判断商品名是否合法,合法就将商品写入商品文件,并将新商品加入字典,加入商品完成后,可以选择是否继续加入商品
用户登录:输入用户名和密码,判断是否合法,利用字典的值是否存在判断,不合法就重新输入,登录之后根据用户名创造购物车文件和已购买商品文件,然后开始选择操作
新用户注册;输入需要进行注册的用户名和密码,限定用户名10位以内,密码16位以内,根据len()函数判断合法性,若合法就将新用户信息加入用户文件,并且进入用户登录功能
查看商品,遍历商品字典,输出结果
将商品加入购物车:从商品文件中选择一个商品加入,先判断合法性,如果不合法,就重新输入,合法就把这个商品写入该登录用户的购物车文件中
查看购物车:利用file.readlines()遍历文件,然后输出结果(为了避免多余的空行,将换行符去掉)
查看购物车商品价格:将购物车文件转换为字典,先去掉换行符,然后利用split()通过‘:’将每行分成两个部分存入字典中,通过循环,将第二个部分相加,即为购物车价格,删除字典
删除购物车商品:输入需要删除的商品名,进行合法性判断,若合法,将购物车文件转换为字典,通过字典删除该项商品,然后清除文件,重新将字典内容写入购物车文件,删除字典
购买商品:输入要购买的商品,进行合法性判断,如果合法,则重复删除购物车商品,然后通过字典将此商品写入已购买商品文件,删除字典
查看已购买商品:与查看购物车操作一致
import os
# 读入已有信息(将已有信息转化成字典)
file1 = open('commodity.txt')
file2 = open('user.txt')
d1 = {
} #商品字典
d2 = {
} #用户字典
key1 = [ ]
key2 = [ ]
for i in file1.readlines():
i = i.strip("\n")
value = i.split(':',1)
d1[value[0]] = value[1]
key1.append(value[0])
for i in file2.readlines():
i = i.strip("\n")
value = i.split(':',1)
d2[value[0]] = value[1]
key2.append(value[0])
print(d1)
file1.close()
file2.close()
def commdodity(k):
k = int(input("是否继续加入商品(是选1,否选0):"))
if(k == 1):
coname = input("输入商品名:")
price = input("请输入商品价格:")
file1 = open('commodity.txt','a+')
file1.write('\n')
file1.write(coname+':'+price)
file1.close()
key1.append(coname)
d1[coname] = price
k = commdodity(k)
if (k == 0):
print("加入商品结束")
return k
k = int(input("是否需要加入商品(是选1,否选0):"))
if(k == 0):
print("加入商品结束")
if(k == 1):
coname = input("输入商品名:")
price
|