Versión completa del sistema de gestión de información de productos (Python)

Tabla de contenido

módulo funcional:

Ideas de implementación:

Ejecute la demostración funcional:

Proceso de implementación específico:

Definir categorías de productos:

Definir clase de gestión de productos

Definir una función para mostrar información del producto.

Ingrese a la función de ventas:

Agregar información del producto:

Eliminar información del producto

Modificar información del producto

Importar información del producto

Exportar información del producto

Encuentre el volumen de ventas promedio de un producto.

Encuentre el volumen máximo de ventas de un producto.

Encuentre el volumen mínimo de ventas de un producto.

Finalmente defina la función del menú y la función principal:

Código completo:


módulo funcional:

Gestión de información básica de productos y estadísticas de ventas de productos.

Las funciones principales del módulo de gestión de información básica incluyen agregar, eliminar, modificar, mostrar información básica del producto e importar y exportar datos.

Las funciones principales del módulo de gestión de estadísticas de ventas de productos son contar el volumen de ventas más alto, el volumen de ventas más bajo y el volumen de ventas promedio del producto.

Ideas de implementación:

  1. Diseñe una categoría de producto que incluya datos como número de producto, nombre, ventas del primer trimestre, ventas del segundo trimestre y ventas del tercer trimestre.
  2. Presentación del módulo del sistema operativo para importar y exportar información de archivos de ruta
  3. Diseñar una clase de gestión de productos para definir las funciones específicas de cada módulo.
  4. Diseñar un menú principal y dos submenús para gestionar la información básica del producto y la información de ventas respectivamente.

Ejecute la demostración funcional:

Una vez iniciado el sistema de gestión de información del producto, primero ingresa a la interfaz principal del sistema y espera a que el usuario ingrese comandos para seleccionar las funciones correspondientes.

Si el usuario ingresa el comando "info", se ingresa al módulo subfuncional de gestión de información básica del producto.

En la interfaz de gestión de información básica del producto, los usuarios pueden agregar, eliminar, modificar, mostrar y otras operaciones de información básica del producto ingresando los comandos correspondientes.

Agregar información del producto

Eliminar información del producto

Modificar información del producto

 Mostrar información del producto

Si el usuario ingresa el comando "venta", se ingresa al módulo subfuncional de gestión de ventas de productos.

En la interfaz de gestión de ventas de productos, los usuarios pueden seleccionar las funciones correspondientes para el procesamiento de ventas.

Volumen medio de ventas:

Mayor volumen de ventas:

Volumen mínimo de ventas:

Proceso de implementación específico:

Definir categorías de productos:

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)     

Definir clase de gestión de productos

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

Definir una función para mostrar información del producto.

Defina la función de visualización de información del producto debajo de la clase de gestión de productos:

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

Ingrese a la función de ventas:

  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

Agregar información del producto:

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

Eliminar información del producto

   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

Modificar información del producto

 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

Importar información del producto

   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('要导入的文件不存在')
        

Exportar información del producto

    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("导出完毕")

Encuentre el volumen de ventas promedio de un producto.

   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('尚没有商品销量...')

Encuentre el volumen máximo de ventas de un producto.

   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('尚没有商品销量...')

Encuentre el volumen mínimo de ventas de un producto.

    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('尚没有商品销量...')

Finalmente defina la función del menú y la función principal:

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

Código completo:

'''
导入导出文件的编码是utf-8
'''
import os

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

Supongo que te gusta

Origin blog.csdn.net/agelee/article/details/128289588
Recomendado
Clasificación