本文实例为大家分享了python超市商品销售管理系统的具体代码,供大家参考,具体内容如下
需求分析:超市销售管理系统功能
1.欢迎用户使用超市销售管理系统,提示用户登录,如果是用户名为admin,密码为123456,则管理员身份。 如果是其他用户(可以自己设置也可随意接收),则是顾客身份。
2.如果用户是管理员身份,提示用户输入编号,选择对应功能
输入编号"1":显示商品的信息 (编号 商品名称 价格)
输入编号"2":添加商品信息 (输入编号,商品名称,价格)
输入编号"3":删除商品信息 (输入编号,删除对应的名称和价格)
输入编号"4":退出系统功能
3.如果用户是顾客身份,只有一个功能:购买商品,
展示所有商品信息,用户循环输入商品编号和购买数量,输入n时,退出系统,并提示用户总价格。
涉及到的知识点
编程语言变量,语句,函数
面向对象思想结合编程语言进行类的封装与方法的调用
常见数据容器列表与字典的使用
程序中对于文件的操作
因为涉及对于文件的读取和写入,建议大家在程序开始前,先确定文件内容的格式,有效合理的表达商品内容,我采取以下格式,在项目工程目录下创建shop.txt文件夹
逻辑分析:
增删查买都是对于商品的操作,商品信息包括编号名称和价格,可以将信息封装到对象当中,可创建对象所属的类Goods。然后对于增删等操作应该属于管理系统的功能,所以将相关功能封装到ShopManager类当中。在进入系统时,应该首先查看之前是否有存储信息,所以要读取文件写入到内存中,增删操作都是通过编号作为索引,所以可以选择字典dict数据结构作为内存存储容器,然后增删都是对于字典的操作,当系统退出时,在将数据更新写入到文件中,避免恶意修改文件,恶意提交。
功能实现代码:
首先创建表达商品对象的Goods类
class Goods(object): def __init__(self,id,name,price): self.id = id self.name = name self.price = price def __str__(self): info = "编号:%s\t商品名称:%s\t\t价格:%d"%(self.id,self.name,self.price) return info
将对于商品操作的函数放到ShopManager类当中,功能包括管理员以及普通用户的,在登录后进行分流选择。
class ShopManager(object): def __init__(self,path): # path:表示读取文件的路径 shopdic:表示存放内存的容器 self.path = path self.shopdic = self.readFileToDic() def readFileToDic(self): # 读取文件,写入到字典中 f = open(self.path, 'r', encoding='utf-8') clist = f.readlines() f.close() index = 0 shopdic = {} while index < len(clist): # 将每一行的字符串进行分割,存放到新的列表中 ctlist = clist[index].replace('\n', "").split("|") # 将每行的内容存放到一个对象中 good = Goods(ctlist[0],ctlist[1],int(ctlist[2])) # 将对向存放到集合中 shopdic[good.id] = good index = index + 1 return shopdic def writeContentFile(self): # 将内存当中的信息写入到文件当中 str1 = '' for key in self.shopdic.keys(): good = self.shopdic[key] ele = good.id+"|"+good.name+"|"+str(good.price)+"\n" str1 = str1 + ele f = open(self.path, 'w', encoding='utf-8') f.write(str1) f.close() def addGoods(self): # 添加商品的方法 id = input("请输入添加商品编号:>") if self.shopdic.get(id): print("商品编号已存在,请重新选择!") return name = input("请输入添加商品名称:>") price = int(input("请输入添加商品价格:>")) good = Goods(id,name,price) self.shopdic[id] = good print("添加成功!") def deleteGoods(self): # 删除商品的方法 id = input("请输入删除商品编号:>") if self.shopdic.get(id): del self.shopdic[id] print("删除成功!") else: print("商品编号不存在!") def showGoods(self): # 展示所有商品信息 print("="*40) for key in self.shopdic.keys(): good = self.shopdic[key] print(good) print("="*40) def adminWork(self): info = """ ==========欢迎进入好海哦购物商场========== 输入功能编号,您可以选择以下功能: 输入“1”:显示商品的信息 输入“2”:添加商品的信息 输入“3”:删除商品的信息 输入“4”:退出系统功能 ========================================== """ print(info) while True: code = input("请输入功能编号:>") if code == "1": self.showGoods() elif code == "2": self.addGoods() elif code == "3": self.deleteGoods() elif code == "4": print("感谢您的使用,正在退出系统!!") self.writeContentFile() break else: print("输入编号有误,请重新输入!!") def userWork(self): print(" ==============欢迎进入好海哦购物商场==============") print("您可输入编号和购买数量选购商品,输入编号为n则结账") self.showGoods() total = 0 while True: id = input("请输入购买商品编号:>") if id == "n": print("本次购买商品共消费%d元,感谢您的光临!"%(total)) break if self.shopdic.get(id): good = self.shopdic[id] num = int(input("请输入购买数量:>")) total = total+good.price*num else: print("输入商品编号有误,请核对后重新输入!") def login(self): # 登录功能 print("==========欢迎登录好海哦购物商场==========") uname = input("请输入用户名:>") password = input("请输入密码:>") if uname == "admin": if password == "123456": print("欢迎您,admin管理员") self.adminWork() else: print("管理员密码错误,登录失败!") else: print("欢迎你,%s用户"%(uname)) #执行用户的购买功能 self.userWork()
最后我们可在main语句中,调用登录方法,会自动选择相关功能。
if __name__ == '__main__': shopManage = ShopManager("shop.txt") shopManage.login()
上述代码运行后,会实现的效果为:
以上项目案例将学习内容进行了统一整理和综合,相信同学们顺利理解和敲出这部分代码。
更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】
- 邓丽欣.2006-FANTASY【金牌大风】【WAV+CUE】
- 饭制《黑神话》蜘蛛四妹手办
- 《燕云十六声》回应跑路:年内公测版本完成95%
- 网友发现国内版《双城之战》第二季有删减:亲亲环节没了!
- 邓丽君2024-《漫步人生路》头版限量编号MQA-UHQCD[WAV+CUE]
- SergeProkofievplaysProkofiev[Dutton][FLAC+CUE]
- 永恒英文金曲精选4《TheBestOfEverlastingFavouritesVol.4》[WAV+CUE]
- 群星《国风超有戏 第9期》[320K/MP3][13.63MB]
- 群星《国风超有戏 第9期》[FLAC/分轨][72.56MB]