فرض کنید در حال طراحی یک سیستم فروش هستید، در این سیستم شما موجودیت سند Voucher
خواهید داشت که خود می تواند شامل چندین ردیف اقلام VoucherSub
باشد. ردیف اقلام نیز داری چندین خصیصه است که یکتایی ردیف را مشخص می کند. کلاس دیاگرام سیستم بصورت زیر است:
هر ردیف اقلام (VoucherSub
) شامل کالا، تعداد و فی است. با استفاده از قابلیت Operator Overloading
در سیشارپ، پیادهسازیی انجام دهید که بتوان ۲ سند را به راحتی با عملگر +
، با هم جمع زد که شرایط زیر را حفظ کنند.
-
برای دانلود فایل پروژه بر روی این لینک کلیک کنید
-
در صورت جمع ۲ سند، تمامی ردیفهای غیرتکراری دو سند قبل در یک سند جدید باید اضافه شود.
تکراری بودن به معنای یکسان بود کد کالا است.
- اگر ردیفی کالاهای آن ادغام پذیر باشد یک ردیف جدید ایجاد خواهد شد که تعداد برابر با جمع تعداد ردیفهای هم نوع، و مبلغ برابر بزرگترین مبلغ ردیف خواهد بود.
ادغام پذیر بودن به این معناست که
IsMergeable == ture
و در زمان ادغام بزرگترین مبلغ ردیفها در ستونPrice
قرار داده میشود.
-
به ازای ردیفهایی که کالای تکراری دارند و ادغام پذیر نیستند برای هر کدام یک ردیف جدید درج شود.
-
بعد از افزودن اقلام، مبلغ نهایی فاکتور باید محاسبه شود.
TotalPrice = SUM(all-vouchersub.price)
-
تاریخ تحویل در سند جدید برابر است با بزرگترین تاریخ تحویل.
delivery date
-
در زمان درج هر ردیف، باید شماره ردیف لحاظ گردد.
RowNumber
ارسال پاسخ برای این سؤال