当前位置:首页 » 《随便一记》 » 正文

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

20 人参与  2022年12月15日 11:29  分类 : 《随便一记》  评论

点击全文阅读


目录

功能模块:

实现思路:

运行功能演示:

具体实现过程:

定义商品类:

定义商品管理类

定义显示商品信息函数

输入销量函数:

添加商品信息:

删除商品信息

修改商品信息

导入商品信息

导出商品信息

求商品平均销量

求商品最高销量

求商品最低销量

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

完整代码:


功能模块:

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

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

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

实现思路:

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

运行功能演示:

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

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

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

添加商品信息

删除商品信息

修改商品信息

 显示商品信息

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

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

平均销量:

最高销量:

最低销量:

具体实现过程:

定义商品类:

class Goods:    def __init__(self,no,name,first=0,second=0,third=0):        self.no = no        self.name = name        self.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:                    break                else:                    print("输入错误,应在0到10000之间")            except:                print("输入错误,应在0到10000之间")        return sale     def __exists(self,no):        #判断编号是否存在        for gd in self.gdslist:            if gd.no == no:                return True        else:            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('删除成功')                    break            else:                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('删除成功')                    break            else:                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:                            break                        else:                            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])/length            second_avg = sum([gd.second for gd in self.gdslist])/length            third_avg = sum([gd.third for gd in self.gdslist])/length            print('一季度平均销量是:%.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':                break            else:                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':                break            else:                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':                break            else:                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 = no        self.name = name        self.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:                    break                else:                    print("输入错误,应在0到10000之间")            except:                print("输入错误,应在0到10000之间")        return sale     def __exists(self,no):        #判断编号是否存在        for gd in self.gdslist:            if gd.no == no:                return True        else:            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 gd in self.gdslist[::]:                if gd.no == no:                    self.gdslist.remove(gd)                    print('删除成功')                    break            else:                print('该编号不存在')            choice = input('继续删除(y/n)?').lower()            if choice == 'n':                break    def 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('修改成功')                        break            else:                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:                            break                        else:                            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])/length            second_avg = sum([gd.second for gd in self.gdslist])/length            third_avg = sum([gd.third for gd in self.gdslist])/length            print('一季度平均销量是:%.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':                break            else:                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':                break            else:                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':                break            else:                print('输入错误')           if __name__ == '__main__':    gds = GoodsList()    gds.main()


点击全文阅读


本文链接:http://zhangshiyu.com/post/49773.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1