Python实现超市商品销售管理系统:面向对象与文件IO实战

小满
小满
发布时间:2026-10-11| 4人浏览过
原创

本文通过Python实现超市商品销售管理系统,展示面向对象编程在业务逻辑中的应用。系统包含管理员与顾客两种角色,利用Goods类封装商品信息,ShopManager类处理增删改查及文件持久化。通过字典存储内存数据,实现商品信息的动态更新与保存,适合Python初学者理解类、字典及文件操作的综合应用。

系统架构与核心逻辑

该超市管理系统采用面向对象的设计思想,将数据与行为封装在类中。系统主要包含两个核心类:Goods用于定义商品实体,ShopManager负责管理业务逻辑与数据持久化。系统启动时,程序会读取本地文件中的数据加载至内存字典,用户交互结束后再将内存数据写回文件,确保数据的持久化存储。

数据模型设计

商品信息通过 Goods 类进行封装,包含编号、名称和价格三个属性。该类重写了 __str__ 方法,以便在控制台输出时格式化显示商品详情。

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 类是系统的核心,负责处理文件的读取、写入以及具体的业务操作。系统使用字典 shopdic 作为内存容器,以商品编号为键,Goods 对象为值,实现快速查找与更新。

数据持久化机制

系统启动时调用 readFileToDic 方法,读取指定路径下的 shop.txt 文件。文件内容按行分割,每行包含编号、名称和价格,通过 | 分隔符解析并构建 Goods 对象存入字典。系统退出时调用 writeContentFile 方法,遍历字典将数据格式化后写回文件,覆盖原有内容。

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()

商品增删改查功能

管理员可通过编号对商品进行添加、删除和展示操作。添加时检查编号是否已存在,避免重复;删除时根据编号从字典中移除对应对象。所有操作均基于内存中的 shopdic 进行,确保数据一致性。

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)

用户交互流程

系统根据登录身份区分管理员与普通顾客的功能权限。管理员拥有商品管理的完整权限,而顾客仅能进行购买操作。

管理员模式

管理员登录成功后,进入功能菜单,可选择显示、添加、删除商品或退出系统。退出系统时,自动调用 writeContentFile 保存最新数据。

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("输入编号有误,请重新输入!!")

顾客模式

顾客登录后,可浏览商品信息并输入编号和数量进行购买。系统实时计算总消费金额,顾客输入 n 时结束购买并显示总金额。

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("输入商品编号有误,请核对后重新输入!")

系统入口与登录验证

系统通过 login 方法处理身份验证。管理员用户名为 admin,密码为 123456,验证通过后调用管理员功能;其他用户视为普通顾客,调用购买功能。程序入口实例化 ShopManager 并启动登录流程。

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()
if __name__ == '__main__':
 shopManage = ShopManager("shop.txt")
 shopManage.login() 

以上就是Python实现超市商品销售管理系统的详细内容,更多关于Python面向对象编程与文件IO操作的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。