人工智能实习 -Python小项目-水果商店管理系统

名称:水果超市

第一个类:水果    
属性:名称,价格,数量

第二个类:商店
可以用列表或者字典

*******xx超市欢迎您*******
1.查看所有水果信息
2.增加水果信息
3.删除水果信息
4.更改水果价格或数量
5.查找水果信息
6.排序(价格、数量)
7.退出系统
*************************

第一种方法(商店用列表存水果):

class Fruit:
    def __init__(self, name, price, count):
        self.name = name
        self.price = float(price)
        self.count = int(count)

    def __str__(self):
        return f"名称: {self.name:}, 价格: {self.price}, 数量: {self.count}"


class Shop:
    def __init__(self, initial_data=None):
        self.fruits = []
        if initial_data:
            for fruit_data in initial_data:
                self.add_fruit(*fruit_data)

    def display_fruits(self):
        if not self.fruits:
            print("没有水果")
            return
        for fruit in self.fruits:
            print(fruit)

    def add_fruit(self, name, price, count):
        new_fruit = Fruit(name, price, count)
        self.fruits.append(new_fruit)
        print(f"{name} 添加成功")

    def remove_fruit(self, name):
        for fruit in self.fruits:
            if fruit.name == name:
                self.fruits.remove(fruit)
                print(f"{name} 移除成功")
                return
        print(f"{name} 没有找到")

    def update_fruit(self, name, price=None, count=None):
        for fruit in self.fruits:
            if fruit.name == name:
                if price is not None:
                    fruit.price = float(price)
                if count is not None:
                    fruit.count = int(count)
                print('已更新')
                return
        print(f"{name} 没有找到")

    def find_fruit(self, name):
        for fruit in self.fruits:
            if fruit.name == name:
                print(fruit)
                return
        print(f"{name} 没有找到")

    def sort_fruit(self, sort_par):
        if sort_par == '1':
            self.fruits = sorted(self.fruits, key=lambda fruit: fruit.price)
            for fruit in self.fruits:
                print(fruit)
            print('已按照价格升序')
        elif sort_par == '2':
            self.fruits = sorted(self.fruits, key=lambda fruit: fruit.count)
            for fruit in self.fruits:
                print(fruit)
            print('已按照数量升序')


def main():
    initial_data = [
        ('苹果', 5, 9),
        ('香蕉', 3, 15),
        ('樱桃', 8, 30),
        ('西瓜', 1, 5),
        ('梨', 4, 25)
    ]

    fu = Shop(initial_data)

    print("\n*******三晴超市欢迎您*******")
    print("1.查看所有水果信息")
    print("2.增加水果信息")
    print("3.删除水果信息")
    print("4.更改水果价格或数量")
    print("5.查找水果信息")
    print("6.排序(价格、数量)")
    print("7.退出系统")
    print("*************************")

    while True:
        option = input("选择功能: ").strip().lower()

        if option == "1":
            fu.display_fruits()

        elif option == "2":
            name, price, count = map(str, input('格式:名称 价格 数量\n输入: ').split())
            fu.add_fruit(name, price, count)

        elif option == "3":
            name = input("输入水果名称来移除: ").strip()
            fu.remove_fruit(name)

        elif option == "4":
            user_input = input('格式:名称 [价格] 数量\n输入: ').split()

            name = user_input[0]

            # 检查输入长度,决定如何解析
            if len(user_input) == 2:  # 只更新数量
                count = user_input[1]
                fu.update_fruit(name, count=count)
            elif len(user_input) == 3:  # 更新价格和数量
                price = user_input[1]
                count = user_input[2]
                fu.update_fruit(name, price=price, count=count)
            else:
                print("输入格式不正确,请输入:名称 [价格] 数量")

        elif option == "5":
            name = input("输入水果名称来查找: ").strip()
            fu.find_fruit(name)

        elif option == "6":
            sort_par = input('输入排序方式\n1.价格,2.数量: ').strip()
            fu.sort_fruit(sort_par)

        elif option == "7":
            print("退出程序")
            break

        else:
            print("无此功能,请重新选择功能")

if __name__ == "__main__":
    main()

2、第二种方法(商店用字典存水果)

class Fruit:
    def __init__(self,name,price,count): #构造方法
        self.name = name
        self.price = price
        self.count = count
    
    def __str__(self):
        return "名称:" + self.name + "价格:" + str(self.price) + "数量:" + str(self.count)
class Shop(Fruit):
    def __init__(self):  #初始化  (具体的水果)
        self.fruits = {'apple':Fruit("apple",10,100),'banana':Fruit("banana",5,15),"orange":Fruit("orange",8,10)}
    
    def add_fruit(self,name,price,count): #增加
        fruit = Fruit(name,price,count)
        self.fruits[name] = fruit
        
    def remove_fruit(self,name):  #删除
        if name in self.fruits:
            del self.fruits[name]  # {'apple':Fruit("apple",10,100),'banana':Fruit("banana",5,15),"orange":Fruit("orange",8,10)}
        else:
            print(f'{name} not found in shop.')
        
    def update_fruit(self,name,price=None,count=None): #更新
        if name in self.fruits:
            fruit = self.fruits[name]
            if price is not None:
                fruit.price = price
            if count is not None:
                fruit.count = count
        else:
            print(f'{name} not found in shop.')
            
    
    def printinfo(self):  #打印
        for fruit in self.fruits.values():
            print(f"Fruit:{fruit.name}, Price:{fruit.price},Count:{fruit.count}")
    
    
    def find_fruit(self,name): #查找
        for  fruit in self.fruits.values():
            if fruit.name == name:
                print(f"Fruit:{fruit.name}, Price:{fruit.price},Count:{fruit.count}")
                return
        print(f'{name} not found in shop.')
            
    
    #价格排序
    def sort_fruits_by_price(self):
        sorted_fruits = sorted(self.fruits.values(), key=lambda x:x.price)
        #打印
        for fruit in sorted_fruits:
            print(f"Fruit:{fruit.name}, Price:{fruit.price},Count:{fruit.count}")
        
        
    #数量排序
    def sort_fruits_by_count(self):
        sorted_fruits = sorted(self.fruits.values(), key=lambda x:x.count)
        for fruit in sorted_fruits:
            print(f"Fruit:{fruit.name}, Price:{fruit.price},Count:{fruit.count}")
    
    
    
def main():
    shop = Shop()
    print("以下为功能菜单:")
    flag = 0
    print("***************宗霖超市欢迎您********************")
    print("1.查看所有的水果信息")
    print("2.增加水果信息")
    print("3.删除水果信息")
    print("4.更改水果的价格或数量")
    print("5.查找水果信息")
    print("6.排序(价格/数量),价格按照选项1,数量按照选项2")
    print("7.退出系统")
    print("*************************************************")
        
    while True:
        i = int(input("请输入选项:"))
        if i == 1:
            shop.printinfo()
        elif i ==2:
            name = input("请输入名称:")
            price = int(input("请输入价格:"))
            count = int(input("请输入数量:"))
            shop.add_fruit(name,price,count)
        elif i == 3:
            name = input("请输入待删除的水果的名称")
            shop.remove_fruit(name)
        elif i == 4:
            name = input("请输入待更改的水果信息")
            price = int(input("请输入价格:"))
            count = int(input("请输入数量:"))
            shop.update_fruit(name,price,count)
        elif i == 5:
            name = input("请输入水果的名称:")
            shop.find_fruit(name)
        elif i == 6:
#             shop.sort_fruits_by_price()
#               shop.sort_fruits_by_count()
                flagSort = int(input("请输入排序方式:价格输入1,数量输入2"))
                if flagSort == 1:
                    pass
                else:
                    pass
        
            
        elif i == 7:
            print("=================欢迎下次光临======================")
            break
        else:
            print("选项错误,请重新选择!")
        
main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新三晴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值