روز
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
روز
ساعت
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
ساعت
دقیقه
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
دقیقه
ثانیه
۹۰۱۲۳۴۵۶۷۸۹۰۹۰۱۲۳۴۵۶۷۸۹۰
ثانیه

فرض کنید در حال طراحی یک سیستم فروش هستید، در این سیستم شما موجودیت سند Voucher خواهید داشت که خود می تواند شامل چندین ردیف اقلام VoucherSub باشد. ردیف اقلام نیز داری چندین خصیصه است که یکتایی ردیف را مشخص می کند. کلاس دیاگرام سیستم بصورت زیر است:

توضیح تصویر

هر ردیف اقلام (VoucherSub) شامل کالا، تعداد و فی است. با استفاده از قابلیت Operator Overloadingدر سی‌شارپ، پیاده‌سازیی انجام دهید که بتوان ۲ سند را به راحتی با عملگر + ، با هم جمع زد که شرایط زیر را حفظ کنند.

  1. برای دانلود فایل پروژه بر روی این لینک کلیک کنید

  2. در صورت جمع ۲ سند، تمامی ردیف‌های غیرتکراری دو سند قبل در یک سند جدید باید اضافه شود. توضیح تصویر

تکراری بودن به معنای یکسان بود کد کالا است.

  1. اگر ردیفی کالاهای آن ادغام پذیر باشد یک ردیف جدید ایجاد خواهد شد که تعداد برابر با جمع تعداد ردیف‌های هم نوع، و مبلغ برابر بزرگترین مبلغ ردیف خواهد بود. توضیح تصویر

ادغام پذیر بودن به این معناست که IsMergeable == ture و در زمان ادغام بزرگترین مبلغ ردیف‌ها در ستون Price قرار داده می‌شود.

  1. به ازای ردیف‌هایی که کالای تکراری دارند و ادغام پذیر نیستند برای هر کدام یک ردیف جدید درج شود. توضیح تصویر

  2. بعد از افزودن اقلام، مبلغ نهایی فاکتور باید محاسبه شود. TotalPrice = SUM(all-vouchersub.price)

  3. تاریخ تحویل در سند جدید برابر است با بزرگترین تاریخ تحویل. delivery date

  4. در زمان درج هر ردیف، باید شماره ردیف لحاظ گردد. RowNumber


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.