حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
همهٔ تمرین‌ها

برنامه مدیریت پارکینگ

تمرین آسان 6962 visibility link download flag trending_up پربازدید

برنامه مدیریت پارکینگی بنویسید که:

هنگام ورود، ساعت ورود و شماره پلاک خودرو ذخیره شود
هنگام خروج، ساعت خروج برای خودرو مورد نظر ذخیره شود
در هر لحظه وضعیت خودروها (در پارکینگ، خارج شده) و سایر اطلاعات قابل مشاهده باشد
هنگام خروج، هزینه پارکینگ به صورت زیر محاسبه و نمایش داده شود (ورودی ثابت 5000 تومان، برای بیشتر از 6 ساعت به ازای هر ساعت اضافه 1000 تومان اضافه شود)
این تمرین یه پروژه ست! یعنی پتانسیل اینو داره که خیلی بیشتر روش کار بشه بنابراین ایده اصلی رو از اینجا بردار و خودت بیشتر روش کار کن تا به یه تمرین بزرگتر تبدیل یشه
👨‍💻 1 ساعت قبل کاربر ناشناس این تمرین رو مشاهده کرد

پاسخ‌ها 16

class Car:
    def __init__(self,code_p,time,persen):
        self.code_p=code_p
        self.time=time
        self.persen=persen
    def car_list(self):
        print(self.code_p,"-",self.time,'-',self.persen)
lc=[]
while True:
    print("3 = car list ___ 2 = sabt khrooj ___ 1 = sabt worod ")
    j=input('che amaliaty anjam midi : ')
    if j =='1':
        per = input('esm shakhs : ')
        p = input('pelak mashin: ')
        print("nokte:be jaye ':' in '.' ra begzarid")
        t = float(input('zamane worod: '))
        ll = Car(p,t,per)
        lc.append(ll)
    elif j =='3':
        for i,cr in enumerate(lc,1):
            print(i,end='. ')
            cr.car_list()
    elif j=='2':
        sh = int(input('chandomin mashin hast az list: '))
        pr= input('esm shakhs: ')
        po=input("plake kharej Shode: ") 
        to=float(input("zamane koroj: "))
        zaman= to-t
        hazine= zaman*5000
        print(hazine)
        fin= lc[sh- 1]
        fin.code_p=po
        fin.time=to
        fin.persen=pr + (' karej shode')
import datetime
class Car:
    def __init__(self, license_plate):
        self.license_plate = license_plate
        self.entry_time = None
        self.exit_time = None

    def set_entry_time(self, entry_time):
        self.entry_time = entry_time

    def set_exit_time(self, exit_time):
        self.exit_time = exit_time

    def calculate_parking_fee(self):
        if self.entry_time and self.exit_time:
            duration = self.exit_time - self.entry_time
            hours = duration.total_seconds() / 3600
            
            # هزینه ثابت
            base_fee = 5000
            
            # هزینه برای بیش از 6 ساعت
            if hours > 6:
                extra_hours = hours - 6
                extra_fee = extra_hours * 1000
                total_fee = base_fee + extra_fee
            else:
                total_fee = base_fee
            
            return total_fee, hours
        return None, None


class ParkingLot:
    def __init__(self):
        self.cars = {}

    def car_entry(self, license_plate):
        car = Car(license_plate)
        entry_time = datetime.datetime.now()
        car.set_entry_time(entry_time)
        self.cars[license_plate] = car
        print(f"خودرو با پلاک {license_plate} در ساعت {entry_time} وارد پارکینگ شد.")

    def car_exit(self, license_plate):
        if license_plate in self.cars:
            exit_time = datetime.datetime.now()
            self.cars[license_plate].set_exit_time(exit_time)
            fee, hours = self.cars[license_plate].calculate_parking_fee()
            print(f"خودرو با پلاک {license_plate} در ساعت {exit_time} از پارکینگ خارج شد.")
            print(f"مدت زمان پارک: {hours:.2f} ساعت")
            print(f"هزینه پارکینگ: {fee} تومان")
            del self.cars[license_plate]  # حذف خودرو از پارکینگ
        else:
            print("خودرو با این پلاک در پارکینگ وجود ندارد.")

    def display_status(self):
        if not self.cars:
            print("هیچ خودرویی در پارکینگ وجود ندارد.")
        else:
            print("وضعیت خودروها در پارکینگ:")
            for car in self.cars.values():
                print(f"پلاک: {car.license_plate}, ساعت ورود: {car.entry_time.strftime('%Y-%m-%d %H:%M:%S')}")

def main():
    parking_lot = ParkingLot()

    while True:
        print("\n1. ورود خودرو")
        print("2. خروج خودرو")
        print("3. نمایش وضعیت پارکینگ")
        print("4. خروج")
        choice = input("لطفاً گزینه مورد نظر را وارد کنید: ")

        if choice == '1':
            license_plate = input("لطفاً شماره پلاک خودرو را وارد کنید: ")
            parking_lot.car_entry(license_plate)
        elif choice == '2':
            license_plate = input("لطفاً شماره پلاک خودرو را وارد کنید: ")
            parking_lot.car_exit(license_plate)
        elif choice == '3':
            parking_lot.display_status()
        elif choice == '4':
            print("برنامه خاتمه یافت.")
            break
        else:
            print("گزینه نامعتبر. لطفاً دوباره تلاش کنید.")

if __name__ == "__main__":
    main()
from datetime import datetime
import math

cars = {}

while True:
    print("1. ورود خودرو")
    print("2. خروج خودرو")
    print("3. نمایش وضعیت خودروها")
    print("4. خروج از برنامه")

    choice = input()

    if choice == "1":
        plate = input("شماره پلاک: ")
        if plate in cars and cars[plate]["status"] == "در پارکینگ":
            print("این خودرو در پارکینگ است")
        else:
            cars[plate] = {
                "entry": datetime.now(),
                "exit": None,
                "status": "در پارکینگ",
                "cost": None
            }
            print("ورود ثبت شد")

    elif choice == "2":
        plate = input("شماره پلاک: ")

        if plate not in cars or cars[plate]["status"] != "در پارکینگ":
            print("خودرو در پارکینگ نیست")
        else:
            exit_time = datetime.now()
            entry_time = cars[plate]["entry"]
            hours = (exit_time - entry_time).total_seconds() / 3600
            extra_hours = max(0, math.ceil(hours) - 6)
            cost = 5000 + extra_hours * 1000

            cars[plate]["exit"] = exit_time
            cars[plate]["status"] = "خارج شده"
            cars[plate]["cost"] = cost

            print("ساعت ورود:", entry_time.strftime("%Y-%m-%d %H:%M:%S"))
            print("ساعت خروج:", exit_time.strftime("%Y-%m-%d %H:%M:%S"))
            print("مدت توقف:", round(hours, 2), "ساعت")
            print("هزینه پارکینگ:", cost, "تومان")

    elif choice == "3":
        if not cars:
            print("خودرویی ثبت نشده است")

        for plate, info in cars.items():
            print("پلاک:", plate)
            print("وضعیت:", info["status"])
            print("ساعت ورود:", info["entry"].strftime("%Y-%m-%d %H:%M:%S"))
            print(
                "ساعت خروج:",
                info["exit"].strftime("%Y-%m-%d %H:%M:%S")
                if info["exit"] else "ثبت نشده"
            )
            print("هزینه:", info["cost"] if info["cost"] is not None else "هنوز محاسبه نشده")
            print("-" * 30)

    elif choice == "4":
        break

    else:
        print("گزینه نامعتبر است")
class Car:
    def __init__(self, plate_number, entry_time):
        self.plate_number = plate_number
        self.entry_time = entry_time
        self.exit_time = None

    def set_exit_time(self, exit_time):
        self.exit_time = exit_time

    def calculate_parking_fee(self):
        if self.exit_time is None:
            return None  # خروج ثبت نشده است

        duration = self.exit_time - self.entry_time
        hours = duration.total_seconds() / 3600

        base_fee = 5000
        if hours > 6:
            extra_hours = hours - 6
            total_fee = base_fee + (extra_hours * 1000)
        else:
            total_fee = base_fee

        return total_fee

class ParkingLot:
    def __init__(self):
        self.cars = {}

    def car_entry(self, plate_number, entry_time):
        if plate_number in self.cars:
            print(f"خودرو با پلاک {plate_number} قبلاً وارد شده است.")
        else:
            self.cars[plate_number] = Car(plate_number, entry_time)
            print(f"خودرو با پلاک {plate_number} با ساعت ورود {entry_time} ثبت شد.")

    def car_exit(self, plate_number, exit_time):
        if plate_number not in self.cars:
            print(f"خودرو با پلاک {plate_number} در پارکینگ نیست.")
        else:
            car = self.cars[plate_number]
            car.set_exit_time(exit_time)
            fee = car.calculate_parking_fee()
            print(f"خودرو با پلاک {plate_number} با ساعت خروج {exit_time} ثبت شد.")
            print(f"هزینه پارکینگ: {fee} تومان")
            del self.cars[plate_number]  # حذف خودرو از پارکینگ

    def show_parking_status(self):
        if not self.cars:
            print("پارکینگ خالی است.")
        else:
            print("وضعیت خودروها در پارکینگ:")
            for car in self.cars.values():
                print(f"پلاک: {car.plate_number}, ساعت ورود: {car.entry_time}, وضعیت: در پارکینگ")

# مثال استفاده
from datetime import datetime
parking_lot = ParkingLot()

# ورود خودروها
parking_lot.car_entry("123-ABC", datetime(2023, 10, 1, 10, 0))
parking_lot.car_entry("456-DEF", datetime(2023, 10, 1, 12, 0))

# نمایش وضعیت پارکینگ
parking_lot.show_parking_status()

# خروج خودروها
parking_lot.car_exit("123-ABC", datetime(2023, 10, 1, 17, 0))
parking_lot.car_exit("456-DEF", datetime(2023, 10, 1, 14, 0))

# نمایش وضعیت پارکینگ بعد از خروج
parking_lot.show_parking_status()

classdef ParkingManagement
    properties
        list_car
    end

    methods
        function obj = ParkingManagement()
            obj.list_car = containers.Map('KeyType', 'char', 'ValueType', 'char');
        end

        function obj = entry_car(obj, car_plate, entry_time)
            obj.list_car(car_plate) = entry_time;
            fprintf('Car with plate: %s at time: %s entered the parking lot\n', car_plate, entry_time);
        end

        function obj = exit_car(obj, car_plate)
            if isKey(obj.list_car, car_plate)
                entry_time_str = obj.list_car(car_plate);
                obj.list_car.remove(car_plate);
                entry_time = datetime(entry_time_str, 'InputFormat', 'HH:mm');
                exit_time = datetime('now');
                duration = hours(exit_time - entry_time);

                base_cost = 5000;
                if duration <= 6
                    total_cost = base_cost;
                else
                    extra_hours = duration - 6;
                    total_cost = base_cost + (extra_hours * 1000);
                end

                fprintf('Car with plate: %s left the parking lot.\n', car_plate);
                fprintf('Total parking duration: %.2f hours\n', duration);
                fprintf('Total cost: %.2f Toman\n', total_cost);
            else
                fprintf('Car with plate: %s is not in the parking lot\n', car_plate);
            end
        end

        function parking_information(obj, car_plate)
            if isKey(obj.list_car, car_plate)
                data = obj.list_car(car_plate);
                fprintf('%s\n', data);
            else
                fprintf('This car is not available in the parking lot\n');
            end
        end

        function obj = add_car_info(obj)
            car_plate = input('Enter the car license plate number: ', 's');
            entry_time = input('Enter the entry time (format HH:MM): ', 's');
            obj = obj.entry_car(car_plate, entry_time);
        end
    end
end

parking_lot = ParkingManagement();
parking_lot = parking_lot.add_car_info();

car_plate_to_check = input('Enter the car license plate number to check its information: ', 's');
parking_lot.parking_information(car_plate_to_check);

car_plate_to_exit = input('Enter the car license plate number to exit: ', 's');
parking_lot = parking_lot.exit_car(car_plate_to_exit);
پاسخ هوش مصنوعی Ai Matlab
from datetime import *

parking = []
enter_times = []

out_cars = []
out_times = []

parking_time = []

cost = 5000

try :
    def Enter() :
        now = datetime.now()
        e_times = now.strftime("%H:%M:%S")
        e_h = int(e_times.split(':')[0])
        license_plate = input("Enter your license plate (enter) : ").strip()

        if license_plate in parking :
            print('====')
            print('Error : this car in parking now')
        else :
            parking.append(license_plate)
            enter_times.append(e_times)
            print("New car entered the parking lot ✅ .")
            print('-----')

        return e_h


    def Exit() :
        global cost

        now = datetime.now()
        o_times = now.strftime("%H:%M:%S")
        o_h = int(o_times.split(':')[0])

        index = int(input("Enter car number in parking ( for exit enter 0 ) = ").strip())


        if index == 0 :
            return 0

        elif index < 0 :
            print('Error : Invalid input') 
            print('====')

        elif index > len(parking) :
            print('This car is not in parking')
            print('====')

        e_h = int ( (enter_times[index - 1]).split(':')[0] )
        d_h = o_h - e_h
        if d_h > 6 :
            cost = cost + ((d_h - 6) * 1000)
        print("-----")
        print(f'Cost = {cost}')
        print("-----")

        if True :
            out_cars.append(parking[index - 1])
            parking.pop(index - 1)
            enter_times.pop(index - 1)
            out_times.append(o_times)
            print("This car has left ❌ .")
            print('====')

        return 0

    while True :

        c = int(input("Choose :  1) Enter-car   2) Exit-car( pay )   3) Show-Parking   4) Out-cars  5) out  = ").strip())
        print("=============")

        if 0 < c < 6 :
            if c == 1 :
                Enter()

            elif c == 2 :
                p = int(input("Enter 1 to pay the cost (for exit your car) : ").strip())
                if p == 1 :
                    Exit()
                    cost = 5000
                else :
                    print("You must pay the cost .")

            elif c == 3 :
                if len(parking) == 0 :
                    print("Parking lot is empty .")
                    print('====')
                    continue

                print("-----Parking-----")

                if len(parking) != len(enter_times) :
                    for i,cars in enumerate(parking , start=1) :
                        print(f'{i} : {cars}')
                    print("----Times----")
                    for j,times in enumerate(enter_times , start=1) :
                        print(f'{j} : {times}')

                else :
                    for i,cars in enumerate(parking , start=1) :
                        print(f'{i} : {cars}')
                    print("----Times----")
                    for j,times in enumerate(enter_times , start=1) :
                        print(f'{j} : {times}')

            elif c == 4 :

                if len(out_cars) == 0 :
                    print("No cars have left.")
                    print('====')
                    continue

                print("====Out-Cars====")
                for i,cars in enumerate(out_cars , start=1) :
                    print(f'{i} : {cars}')
                print("----Times----")
                for j,times in enumerate(out_times , start=1) :
                    print(f'{j} : {times}')

            elif c == 5 :
                print('Exit ...')
                break

        else :
            print('Error : enter between 1-3')
            continue

except ValueError :
    print('Error : Invalid input')

ارسال جواب

جوابت را با Markdown بنویس و ثبت کن

×
بستن