700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 商品信息管理系统(Python)完整版

商品信息管理系统(Python)完整版

时间:2023-04-19 10:49:59

相关推荐

商品信息管理系统(Python)完整版

目录

功能模块:

实现思路:

运行功能演示:

具体实现过程:

定义商品类:

定义商品管理类

定义显示商品信息函数

输入销量函数:

添加商品信息:

删除商品信息

修改商品信息

导入商品信息

导出商品信息

求商品平均销量

求商品最高销量

求商品最低销量

最后定义菜单函数和主函数:

完整代码:

功能模块:

商品基本信息管理和商品销量统计。

基本信息管理模块的主要功能有商品基本信息的添加、删除、修改、显示和数据的导入导出

商品销量统计管理模块的主要功能有统计商品的最高销量、最低销量和平均销量。

实现思路:

设计一个商品类,包含商品编号、名称、一季度销量、二季度销量和三季度销量等数据成员。引入OS模块,用于导入导出路径文件信息设计一个商品管理类,用于定义各个模块的具体功能函数。设计一个主菜单,两个子菜单,分别管理商品基本信息和销量信息

运行功能演示:

商品信息管理系统启动后,首先进入系统主界面,等待用户输入命令选择相应的功能。

如果用户输入“info”命令,则进入商品基本信息管理子功能模块。

在商品基本信息管理界面,用户通过输入相应的命令进行商品基本信息的增、删、改、显示等操作。

添加商品信息

删除商品信息

修改商品信息

显示商品信息

如果用户输入“sale”命令,则进入商品销量管理子功能模块。

在商品销量管理界面用户可选择相应的功能进行销量处理。

平均销量:

最高销量:

最低销量:

具体实现过程:

定义商品类:

class Goods:def __init__(self,no,name,first=0,second=0,third=0):self.no = noself.name = nameself.first = int(first)self.second = int(second)self.third = int(third)

定义商品管理类

class GoodsList:def __init__(self):self.gdslist = []

定义显示商品信息函数

在商品管理类下面定义显示商品信息函数:

def show(self):#显示信息print('{}\t{}\t{}\t{}\t{}'.format('编号','名称','一季度','二季度','三季度'))for gd in self.gdslist: print('{}\t{}\t{}\t{}\t{}'.format(gd.no,gd.name,gd.first,gd.second,gd.third))

输入销量函数:

def __enterSale(self,message):#销量输入while True:try:sale = input(message)if 0 <= int(sale) <= 10000:breakelse:print("输入错误,应在0到10000之间")except:print("输入错误,应在0到10000之间")return sale def __exists(self,no):#判断编号是否存在for gd in self.gdslist:if gd.no == no:return Trueelse:return False

添加商品信息:

def insert(self):#添加信息while True:no = input('编号:')if self.__exists(no):print('该编号已存在')else:name = input('名称:')first = self.__enterSale('一季度:')second = self.__enterSale('二季度:')third = self.__enterSale('三季度:')gd = Goods(no,name,first,second,third)self.gdslist.append(gd)choice = input('继续添加(y/n)?').lower()if choice == 'n':break

删除商品信息

def delete(self):#删除学生信息while True:no = input('请输入要删除的学生学号:')for stu in self.stulist[::]:if stu.no == no:self.stulist.remove(stu)print('删除成功')breakelse:print('该学号不存在')choice = input('继续删除(y/n)?').lower()if choice == 'n':break

修改商品信息

def delete(self):#删除信息while True:no = input('请输入要删除的商品编号:')for gd in self.gdslist[::]:if gd.no == no:self.gdslist.remove(gd)print('删除成功')breakelse:print('该编号不存在')choice = input('继续删除(y/n)?').lower()if choice == 'n':break

导入商品信息

def load(self,fn):#导入信息if os.path.exists(fn):try:with open(fn,'r',encoding = 'utf-8') as fp:while True:fs = fp.readline().strip('\n')if not fs:breakelse:gd = Goods(*fs.split(','))if self.__exists(gd.no):print('该编号已存在')else:self.gdslist.append(gd)print('导入完毕')except:print('error...')else:print('要导入的文件不存在')

导出商品信息

def save(self,fn):#导出信息with open(fn,'w',encoding = 'utf-8') as fp:for gd in self.gdslist:fp.write(gd.no + ',')fp.write(gd.name + ',')fp.write(str(gd.first) + ',')fp.write(str(gd.second) + ',')fp.write(str(gd.third) + '\n')print("导出完毕")

求商品平均销量

def sale_avg(self):#求平均销量length = len(self.gdslist)if length > 0:first_avg = sum([gd.first for gd in self.gdslist])/lengthsecond_avg = sum([gd.second for gd in self.gdslist])/lengththird_avg = sum([gd.third for gd in self.gdslist])/lengthprint('一季度平均销量是:%.2f'%first_avg)print('二季度平均销量是:%.2f'%second_avg)print('三季度平均销量是:%.2f'%third_avg)else:print('尚没有商品销量...')

求商品最高销量

def sale_max(self):#求最高if len(self.gdslist) > 0:first_max = max([gd.first for gd in self.gdslist])second_max = max([gd.second for gd in self.gdslist])third_max = max([gd.third for gd in self.gdslist])print('一季度最高销量是:%d'%first_max)print('二季度最高销量是:%d'%second_max)print('三季度最高销量是:%d'%third_max)else:print('尚没有商品销量...')

求商品最低销量

def sale_min(self):#求最低if len(self.gdslist) > 0:first_min = min([gd.first for gd in self.gdslist])second_min = min([gd.second for gd in self.gdslist])third_min = min([gd.third for gd in self.gdslist])print('一季度最低销量是:%d'%first_min)print('二季度最低销量是:%d'%second_min)print('三季度最低销量是:%d'%third_min)else:print('尚没有商品销量...')

最后定义菜单函数和主函数:

def infoprocess(self):#基本信息管理print('商品基本信息管理'.center(20,'-'))print('load----------导入商品信息')print('insert--------添加商品信息')print('delete--------删除商品信息')print('update--------修改商品信息')print('show----------显示商品信息')print('save----------导出商品信息')print('return--------返回')print('-'*28)while True:s = input('info>').strip().lower()if s == 'load':fn = input('请输入要导入的文件名:')self.load(fn)elif s == 'show':self.show()elif s == 'insert':self.insert()elif s == 'delete':self.delete()elif s == 'update':self.update()elif s == 'save':fn = input('请输入要导出的文件名:')self.save(fn)elif s =='return':breakelse:print('输入错误')def saleprocess(self):#销量统计print('商品销量统计'.center(24,'='))print('avg --------平均销量')print('max --------最高销量')print('min --------最低销量') print('return --------返回')print(''.center(30,'='))while True:s = input('sale>').strip().lower()if s == 'avg':self.sale_avg()elif s == 'max':self.sale_max()elif s == 'min':self.sale_min()elif s == 'return':breakelse:print('输入错误')def main(self):#主控函数while True:print('商品信息管理系统V1.0'.center(24,'='))print('info --------商品基本信息管理')print('sale --------商品销量统计')print('exit --------退出系统')print(''.center(32,'='))s = input('main>').strip().lower()if s == 'info':self.infoprocess()elif s == 'sale':self.saleprocess()elif s == 'exit':breakelse:print('输入错误') if __name__ == '__main__':gds = GoodsList()gds.main()

完整代码:

'''导入导出文件的编码是utf-8'''import osclass Goods:def __init__(self,no,name,first=0,second=0,third=0):self.no = noself.name = nameself.first = int(first)self.second = int(second)self.third = int(third) class GoodsList:def __init__(self):self.gdslist = []def show(self):#显示信息print('{}\t{}\t{}\t{}\t{}'.format('编号','名称','一季度','二季度','三季度'))for gd in self.gdslist: print('{}\t{}\t{}\t{}\t{}'.format(gd.no,gd.name,gd.first,gd.second,gd.third))def __enterSale(self,message):#销量输入while True:try:sale = input(message)if 0 <= int(sale) <= 10000:breakelse:print("输入错误,应在0到10000之间")except:print("输入错误,应在0到10000之间")return sale def __exists(self,no):#判断编号是否存在for gd in self.gdslist:if gd.no == no:return Trueelse:return Falsedef insert(self):#添加信息while True:no = input('编号:')if self.__exists(no):print('该编号已存在')else:name = input('名称:')first = self.__enterSale('一季度:')second = self.__enterSale('二季度:')third = self.__enterSale('三季度:')gd = Goods(no,name,first,second,third)self.gdslist.append(gd)choice = input('继续添加(y/n)?').lower()if choice == 'n':breakdef delete(self):#删除信息while True:no = input('请输入要删除的商品编号:')for gd in self.gdslist[::]:if gd.no == no:self.gdslist.remove(gd)print('删除成功')breakelse:print('该编号不存在')choice = input('继续删除(y/n)?').lower()if choice == 'n':breakdef update(self):#修改信息while True:no = input('请输入要修改的商品编号:')if self.__exists(no):for gd in self.gdslist:if gd.no == no:gd.name = input('名称:')gd.salary = int(self.__enterSale('一季度:'))gd.bonus = int(self.__enterSale('二季度:'))gd.tax = int(self.__enterSale('三季度:'))print('修改成功')breakelse:print('该编号不存在')choice = input('继续修改(y/n)?').lower()if choice == 'n':breakdef load(self,fn):#导入信息if os.path.exists(fn):try:with open(fn,'r',encoding = 'utf-8') as fp:while True:fs = fp.readline().strip('\n')if not fs:breakelse:gd = Goods(*fs.split(','))if self.__exists(gd.no):print('该编号已存在')else:self.gdslist.append(gd)print('导入完毕')except:print('error...')else:print('要导入的文件不存在')def save(self,fn):#导出信息with open(fn,'w',encoding = 'utf-8') as fp:for gd in self.gdslist:fp.write(gd.no + ',')fp.write(gd.name + ',')fp.write(str(gd.first) + ',')fp.write(str(gd.second) + ',')fp.write(str(gd.third) + '\n')print("导出完毕")def sale_avg(self):#求平均销量length = len(self.gdslist)if length > 0:first_avg = sum([gd.first for gd in self.gdslist])/lengthsecond_avg = sum([gd.second for gd in self.gdslist])/lengththird_avg = sum([gd.third for gd in self.gdslist])/lengthprint('一季度平均销量是:%.2f'%first_avg)print('二季度平均销量是:%.2f'%second_avg)print('三季度平均销量是:%.2f'%third_avg)else:print('尚没有商品销量...')def sale_max(self):#求最高if len(self.gdslist) > 0:first_max = max([gd.first for gd in self.gdslist])second_max = max([gd.second for gd in self.gdslist])third_max = max([gd.third for gd in self.gdslist])print('一季度最高销量是:%d'%first_max)print('二季度最高销量是:%d'%second_max)print('三季度最高销量是:%d'%third_max)else:print('尚没有商品销量...')def sale_min(self):#求最低if len(self.gdslist) > 0:first_min = min([gd.first for gd in self.gdslist])second_min = min([gd.second for gd in self.gdslist])third_min = min([gd.third for gd in self.gdslist])print('一季度最低销量是:%d'%first_min)print('二季度最低销量是:%d'%second_min)print('三季度最低销量是:%d'%third_min)else:print('尚没有商品销量...')def infoprocess(self):#基本信息管理print('商品基本信息管理'.center(20,'-'))print('load----------导入商品信息')print('insert--------添加商品信息')print('delete--------删除商品信息')print('update--------修改商品信息')print('show----------显示商品信息')print('save----------导出商品信息')print('return--------返回')print('-'*28)while True:s = input('info>').strip().lower()if s == 'load':fn = input('请输入要导入的文件名:')self.load(fn)elif s == 'show':self.show()elif s == 'insert':self.insert()elif s == 'delete':self.delete()elif s == 'update':self.update()elif s == 'save':fn = input('请输入要导出的文件名:')self.save(fn)elif s =='return':breakelse:print('输入错误')def saleprocess(self):#销量统计print('商品销量统计'.center(24,'='))print('avg --------平均销量')print('max --------最高销量')print('min --------最低销量') print('return --------返回')print(''.center(30,'='))while True:s = input('sale>').strip().lower()if s == 'avg':self.sale_avg()elif s == 'max':self.sale_max()elif s == 'min':self.sale_min()elif s == 'return':breakelse:print('输入错误')def main(self):#主控函数while True:print('商品信息管理系统V1.0'.center(24,'='))print('info --------商品基本信息管理')print('sale --------商品销量统计')print('exit --------退出系统')print(''.center(32,'='))s = input('main>').strip().lower()if s == 'info':self.infoprocess()elif s == 'sale':self.saleprocess()elif s == 'exit':breakelse:print('输入错误') if __name__ == '__main__':gds = GoodsList()gds.main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。