یک تابع C++ بنویسید که مقدار یک سنسور را از یک فایل شبیه‌سازی‌شده بخواند و در صورت نبود فایل، دادهٔ نامعتبر یا خارج از بازهٔ قابل قبول با استفاده از استثناهای موجود در (مثل std::runtime_error یا std::invalid_argument) خطا را پرتاب کند و در تابع main این استثناها را با try/catch مدیریت و پیام مناسبی چاپ کند.

4.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:36

0.0

در حل این مسئله از هدرهای برای خواندن فایل، برای استفاده از std::runtime_error/std::invalid_argument و برای چاپ استفاده کنید؛ هنگام خواندن مقدار را پارس و اعتبارسنجی کنید (مثلاً محدودهٔ مجاز را چک کنید) و در صورت خطا با throw یک استثنای مناسب بسازید. نکات: استثناها را به‌صورت مقدار پرتاب و با ارجاع ثابت (const&) بگیرید، برای خطاهای اختصاصی می‌توانید از کلاس مشتق‌شده از std::runtime_error استفاده کنید و در سیستم‌های تعبیه‌شده ترجیحاً از مدیریت استثناها برای گزارش خطا به‌جای کرش برنامه بهره ببرید.

توسط پژوهشگر در 202 روز قبل ساعت 02:36
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arash در 202 روز قبل ساعت 09:07

نکتهٔ کلیدی این کار استفاده از std::ifstream برای خواندن مقدار از فایل شبیه‌سازی‌شده و بررسی وجود فایل قبل از پارس است. اعتبارسنجی دقیق مقدار خوانده‌شده (مثلاً اینکه در بازهٔ مجاز قرار می‌گیرد) را انجام بدهید و در صورت نامعتبر بودن با throw یک استثنای مناسب مانند std::invalid_argument یا یک کلاس مشتق‌شده از std::runtime_error پرتاب کنید. استفاده از استثناها به‌عنوان مقدار پرتاب و با ارجاع ثابت (const&) به جلوگیری از کپی کمک می‌کند و برای خطاهای اختصاصی می‌توانید کلاس‌های مخصوص بسازید. در تابع main با بلوک‌های try/catch مناسب این استثناها را مدیریت کنید و پیام کاربرپسند چاپ نمایید تا در سیستم‌های تعبیه‌شده کرش نکند و خطای گزارش شود.

گزارش

1 پاسخ

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

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