সম্প্রতি আমি একটি কোম্পানির জন্য চেষ্টা করছিলাম 'এক্স'। তারা আমাকে কিছু সেট পাঠিয়েছে এবং আমাকে কেবল একটি সমাধান করার জন্য বলেছে।
সমস্যাটি এরকম -
বুকস, খাবার এবং ছাড় প্রাপ্ত চিকিত্সা পণ্য ব্যতীত সমস্ত পণ্যগুলিতে 10% হারে বেসিক বিক্রয় কর প্রযোজ্য।
আমদানি শুল্ক একটি অতিরিক্ত বিক্রয় কর যা সমস্ত আমদানিকৃত পণ্যের উপর 5% হারে প্রযোজ্য, ছাড় ছাড়।
আমি যখন আইটেমগুলি কিনে থাকি তখন আমি একটি রশিদ পাই যা সমস্ত আইটেমের নাম এবং তাদের মূল্য (কর সহ) তালিকাভুক্ত করে, আইটেমগুলির মোট ব্যয় এবং শেষ পরিমাণে বিক্রয় ট্যাক্স প্রদান করে।
বিক্রয় করের রাউন্ডিংয়ের নিয়মগুলি হ'ল এন% ট্যাক্সের হারের জন্য, পি এর একটি শেল্ফ প্রাইসে বিক্রয় করের পরিমাণ (নিকটস্থ 0.05 পর্যন্ত গোল হয়) থাকে।
"তারা আমাকে বলেছিল, তারা আপনার সমাধানের ডিজাইন দিক সম্পর্কে আগ্রহী এবং আমার অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং দক্ষতা মূল্যায়ন করতে চাই ” "
তারা তাদের নিজস্ব কথায় এটি বলেছিল
- সমাধানের জন্য, আমরা চাই আপনি জাভা, রুবি বা সি # ব্যবহার করুন।
- আমরা আপনার সমাধানটির ডিজাইন সহায়তা সম্পর্কে আগ্রহী এবং আপনার অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং দক্ষতা মূল্যায়ন করতে চাই ।
- আপনি নির্মাণ বা পরীক্ষার উদ্দেশ্যে বাহ্যিক গ্রন্থাগার বা সরঞ্জাম ব্যবহার করতে পারেন। বিশেষত, আপনি ইউনিট টেস্টিং লাইব্রেরি ব্যবহার করতে পারেন বা আপনার নির্বাচিত ভাষার জন্য উপলব্ধ সরঞ্জামগুলি তৈরি করতে পারেন (যেমন, জুনিত, পিঁপড়া, নুনিট, ন্যান্ট, টেস্ট :: ইউনিট, রেক ইত্যাদি)
- Allyচ্ছিকভাবে, আপনি নিজের কোড সহ আপনার নকশা এবং অনুমানের একটি সংক্ষিপ্ত ব্যাখ্যাও অন্তর্ভুক্ত করতে পারেন।
- দয়া করে নোট করুন যে আমরা কোনও ওয়েব-ভিত্তিক অ্যাপ্লিকেশন বা একটি বিস্তৃত UI আশা করি না। বরং আমরা একটি সাধারণ, কনসোল ভিত্তিক অ্যাপ্লিকেশন আশা করছি এবং আপনার উত্স কোডে আগ্রহী।
সুতরাং আমি কোডের নীচে সরবরাহ করেছি - আপনি কেবল পেস্ট কোডটি অনুলিপি করতে এবং ভিএস-তে চালাতে পারেন
class Program
{
static void Main(string[] args)
{
try
{
double totalBill = 0, salesTax = 0;
List<Product> productList = getProductList();
foreach (Product prod in productList)
{
double tax = prod.ComputeSalesTax();
salesTax += tax;
totalBill += tax + (prod.Quantity * prod.ProductPrice);
Console.WriteLine(string.Format("Item = {0} : Quantity = {1} : Price = {2} : Tax = {3}", prod.ProductName, prod.Quantity, prod.ProductPrice + tax, tax));
}
Console.WriteLine("Total Tax : " + salesTax);
Console.WriteLine("Total Bill : " + totalBill);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
private static List<Product> getProductList()
{
List<Product> lstProducts = new List<Product>();
//input 1
lstProducts.Add(new Product("Book", 12.49, 1, ProductType.ExemptedProduct, false));
lstProducts.Add(new Product("Music CD", 14.99, 1, ProductType.TaxPaidProduct, false));
lstProducts.Add(new Product("Chocolate Bar", .85, 1, ProductType.ExemptedProduct, false));
//input 2
//lstProducts.Add(new Product("Imported Chocolate", 10, 1, ProductType.ExemptedProduct,true));
//lstProducts.Add(new Product("Imported Perfume", 47.50, 1, ProductType.TaxPaidProduct,true));
//input 3
//lstProducts.Add(new Product("Imported Perfume", 27.99, 1, ProductType.TaxPaidProduct,true));
//lstProducts.Add(new Product("Perfume", 18.99, 1, ProductType.TaxPaidProduct,false));
//lstProducts.Add(new Product("Headache Pills", 9.75, 1, ProductType.ExemptedProduct,false));
//lstProducts.Add(new Product("Imported Chocolate", 11.25, 1, ProductType.ExemptedProduct,true));
return lstProducts;
}
}
public enum ProductType
{
ExemptedProduct=1,
TaxPaidProduct=2,
//ImportedProduct=3
}
class Product
{
private ProductType _typeOfProduct = ProductType.TaxPaidProduct;
private string _productName = string.Empty;
private double _productPrice;
private int _quantity;
private bool _isImportedProduct = false;
public string ProductName { get { return _productName; } }
public double ProductPrice { get { return _productPrice; } }
public int Quantity { get { return _quantity; } }
public Product(string productName, double productPrice,int quantity, ProductType type, bool isImportedProduct)
{
_productName = productName;
_productPrice = productPrice;
_quantity = quantity;
_typeOfProduct = type;
_isImportedProduct = isImportedProduct;
}
public double ComputeSalesTax()
{
double tax = 0;
if(_isImportedProduct) //charge 5% tax directly
tax+=_productPrice*.05;
switch (_typeOfProduct)
{
case ProductType.ExemptedProduct: break;
case ProductType.TaxPaidProduct:
tax += _productPrice * .10;
break;
}
return Math.Round(tax, 2);
//round result before returning
}
}
আপনি ইনপুট আনমমনেট করতে পারেন এবং বিভিন্ন ইনপুট চালাতে পারেন।
আমি সমাধানটি সরবরাহ করেছিলাম তবে আমি প্রত্যাখ্যান করা হয়েছিল।
"তারা বলেছে, তারা আমাদের বর্তমান উন্মুক্ত অবস্থানের জন্য আমাকে বিবেচনা করতে পারছে না কারণ কোড সমাধান সন্তোষজনক নয়।"
এখানে অনুপস্থিত কি দয়া করে আমাকে গাইড করুন। এই সমাধান কি ভাল OOAD সমাধান নয়।
আমি কীভাবে আমার OOAD দক্ষতা উন্নত করতে পারি।
আমার সিনিয়ররা আরও বলেছে নিখুঁত OOAD অ্যাপ্লিকেশনটিও ব্যবহারিকভাবে কাজ করবে না।
ধন্যবাদ