یک برنامهٔ C++ بنویسید که مقادیر شبیه‌سازی‌شدهٔ یک سنسور را خط‌به‌خط بخواند و اگر مقدار خارج از بازهٔ مجاز یا خطای ارتباطی رخ داد، استثنا پرتاب کند و در برنامهٔ اصلی با چاپ نوع خطا و پیام مناسب آن‌ها را مدیریت کند.

3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:21

0.0

یک کلاس سادهٔ Sensor تعریف کنید که متد read() مقدار را برمی‌گرداند و در شرایط نامطلوب مثل خارج شدن مقدار از بازه یا قطع ارتباط، استثناهای std::out_of_range یا یک استثنای سفارشی مشتق‌شده از std::exception پرتاب کند. در تابع main حلقه‌ای برای خواندن مرتب مقادیر بنویسید و فراخوانی read() را درون بلوک try قرار دهید و با catchهای جداگانه، خطای مشخص را گزارش دهید. از هدرهای استاندارد C++ مانند و و کلاس‌های std::string استفاده کنید؛ نکته‌ی عملی برای سیستم‌های تعبیه‌شده این است که در محیط‌های محدود یا زمان واقعی ممکن است بهتر باشد به‌جای استثناها از کدهای خطا استفاده کنید یا از استثناها فقط در سطوح بالا برای گزارش و لاگینگ بهره ببرید.

توسط پژوهشگر در 220 روز قبل ساعت 02:21
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arash در 220 روز قبل ساعت 10:00

برای طراحی مناسب، از استثناهای سفارشی مشتق‌شده از std::exception استفاده کنید و در کنار آن از std::out_of_range برای بازه‌های نامعتبر بهره ببرید تا پیام خطا روشن باشد. در حلقهٔ اصلی، read() را داخل بلوک try قرار دهید و با catchهای جداگانه برای SensorError و std::out_of_range پیام مناسب را گزارش کنید. اگر هدف سیستم‌های تعبیه‌شده است، بهینه‌سازی استثناها را مد نظر بگیرید و در برخی موارد از کدهای بازگشت یا لاگِ ساده به‌جای استثنا استفاده کنید. برای آزمودن، مقدار شبیه‌سازی‌شده را به‌خوبی متنوع کنید تا تمامی مسیرهای خطا پوشش داده شود.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری