آموزش هوش مصنوعی از صفر ، بدون پیش‌نیاز آموزش هوش مصنوعی ، از صفر بدون پیش‌نیاز!
🎯 شروع یادگیری
بستن تبلیغات
تسلط کامل بر سی‌شارپ با یک دوره پروژه‌محور

یادگیری سی شارپ از مفاهیم پایه تا پروژه محور: شی‌گرایی، کار با SQL و LINQ، ORMها (Entity Framework)، ساخت پروژه مدیریت رستوران با گزارشات حرفه‌ای و امکانات کامل!

مشاهده بیشتر
تسلط جامع بر MVC Core برای توسعه وب حرفه‌ای

یادگیری MVC Core از مبانی تا پیشرفته: شی‌گرایی، Routing، Entity Framework، امنیت، تست یونیت، Razor، Ajax، و پروژه‌های کاربردی! یک دوره کامل برای تسلط بر توسعه وب با ASP.NET Core. به صورت حضوری و آنلاین!

مشاهده بیشتر

قالب بندی نمایش داده (data formatting) در سی شارپ

بسیاری مواقع لازم است تا برای ارایه رابط کاربری مناسب در برنامه بتوانیم داده های مورد نظر برای نمایش را به شکلی مناسب قالب بندی کنیم. روش های متفاوت و جالبی برای این امر در زبان سی شارپ وجود دارد که در این مقاله به آن ها خواهیم پرداخت.

  1. برای این منظور، فایل را به ترتیب زیر تغییر دهید.
                
using System;
public class OrderProcessing
{
public static int Main()
{
// Price of items
const double PriceOneShirt     = 0.95;
const double PriceAPairOfPants = 2.95;
const double PriceOneDress     = 4.55;
const double TaxRate           = 0.0575;  // 5.75%
// Basic information about an order
string customerName, homePhone;
DateTime orderDate;
// Unsigned numbers to represent cleaning items
uint numberOfShirts, numberOfPants, numberOfDresses;
// Each of these sub totals will be used for cleaning items
double subTotalShirts, subTotalPants, subTotalDresses;
// Values used to process an order
double totalOrder, taxAmount, salesTotal;
double amountTended, moneyChange, difference;
Console.Title = "Georgetown Dry Cleaning Services";
Console.WriteLine("-/- Georgetown Dry Cleaning Services -/-");
// Request order information from the user
Console.Write("Enter Customer Name:  ");
customerName = Console.ReadLine();
Console.Write("Enter Customer Phone: ");
homePhone = Console.ReadLine();
Console.WriteLine("Enter the order date and " + "time (mm/dd/yyyyhh:mm AM/PM)");
orderDate = DateTime.Parse(Console.ReadLine());
// Request the quantity of each category of items
Console.Write("Number of Shirts:  ");
numberOfShirts = uint.Parse(Console.ReadLine());
Console.Write("Number of Pants:   ");
numberOfPants = uint.Parse(Console.ReadLine());
Console.Write("Number of Dresses: ");
numberOfDresses = uint.Parse(Console.ReadLine());
// Perform the necessary calculations
subTotalShirts  =numberOfShirts  * PriceOneShirt;
subTotalPants   = numberOfPants   * PriceAPairOfPants;
subTotalDresses = numberOfDresses * PriceOneDress;
// Calculate the "temporary" total of the order
totalOrder      = subTotalShirts + 
subTotalPants + subTotalDresses;
// Calculate the tax amount using a constant rate
taxAmount       = totalOrder * TaxRate;
// Add the tax amount to the total order
salesTotal      = totalOrder + taxAmount;
// Communicate the total to the user...
Console.Write("\nThe Total order is: ");
Console.WriteLine(salesTotal);
// and request money for the order
Console.Write("Amount Tended? ");
amountTended = double.Parse(Console.ReadLine());
// Calculate the difference owed to the customer
// or that the customer still owes to the store
difference = amountTended - salesTotal;
Console.Clear();
// Display the receipt
Console.WriteLine("====================================");
Console.WriteLine("-/- Georgetown Dry Cleaning Services -/-");
Console.WriteLine("====================================");
Console.WriteLine("Customer:    {0}", customerName);
Console.WriteLine("Home Phone:  {0}", homePhone);
Console.WriteLine("Date & Time: {0}", orderDate);
Console.WriteLine("------------------------------------");
Console.WriteLine("Item Type  Qty Unit/Price Sub-Total");
Console.WriteLine("------------------------------------");
Console.WriteLine("Shirts      {0}     {1:C}     {2}",
numberOfShirts.ToString(), PriceOneShirt,
subTotalShirts.ToString("C"));
Console.WriteLine("Pants       {0}     {1:C}     {2:C}",
numberOfPants, PriceAPairOfPants,
subTotalPants);
Console.WriteLine("Dresses     {0}     {1:C}     {2:C}",
numberOfDresses, PriceOneDress,
subTotalDresses);
Console.WriteLine("------------------------------------");
Console.WriteLine("Total Order:     {0:C}", totalOrder);
Console.WriteLine("Tax Rate:        {0:P}", TaxRate);
Console.WriteLine("Tax Amount:      {0}",
taxAmount.ToString("C"));
Console.WriteLine("Net Price:       {0:F}", salesTotal);
Console.WriteLine("------------------------------------");
Console.WriteLine("Amount Tended:   {0:C}", amountTended);
Console.WriteLine("difference:      {0:C}", difference);
Console.WriteLine("====================================");
System.Console.ReadKey();
return 0;
}
}
  1. برنامه را اجرا کنید.

-/- Georgetown Dry Cleaning Services -/-
Enter Customer Name:  Gretchen McCormack
Enter Customer Phone: (410) 739-2884
Enter the order date and time (mm/dd/yyyyhh:mm AM/PM)
04/09/2001 10:25 AM
Number of Shirts:  5
Number of Pants:   12
Number of Dresses: 8
 
The Total order is: 80.951625
Amount Tended? 100

  1. حال Enter را بزنید.

====================================
-/- Georgetown Dry Cleaning Services -/-
====================================
Customer:    Gretchen McCormack
Home Phone:  (410) 739-2884
Date & Time: 4/9/2001 10:25:00 AM
------------------------------------
Item Type  Qty Unit/Price Sub-Total
------------------------------------
Shirts      5     $0.95     $4.75
Pants       12     $2.95     $35.40
Dresses     8     $4.55     $36.40
------------------------------------
Total Order:     $76.55
Tax Rate:        5.75 %
Tax Amount:      $4.40
Net Price:       80.95
------------------------------------
Amount Tended:   $100.00
Difference:      $19.05
====================================

  1. پنجره ی DOS را ببندید.

قالب بندی خط

در برنامه های بالا به منظور نمایش خطی از یک متن، از توابع Write() یا WriteLine() استفاده می کردیم. برای قرار دادن متنی با طول متفاوت بالای متن دیگری، با استفاده ی بیش از حد از فضاهای خالی، یک رشته را خراب می کردیم. چنین تکنیکی تاحدی غیر حرفه ای و نامطمئن تلقی می شود. خوشبختانه، قالب بندی خط و متن، همچنین نحوه ی نمایش آن ها را می توان تاحدی زیادی مدیریت کرد. همان طور که انتظار می رفت،.NET Framework به منظور تنظیم مقدار فضای مورد نیاز برای نمایش رشته ای از متن و نحوه ی قرار گیری رشته ی مزبور در خط مربوط به آن مکانیسم های ویژه ای در اختیار کاربر قرار می دهد. به منظور تعیین مقدار فضای مورد نیاز برای نمایش رشته، می توان از placeholder داخل پرانتز Write()یا WriteLine()استفاده کرد. برای این منظور، داخلplaceholder،0 یا تعدادی عدد تصاعدی (incrementing number) را به همراه کاراکتر قالب بندی آن (formatting character) تایپ کنید. سپس، ویرگول و به دنبال آن تعداد کاراکترهایی که با فضای (پهنا) دلخواه همخوانی دارد / برابر است را وارد کنید.

مثال:

                
using System;
public class Exercise
{
public static void Main()
{
var fullName = "Anselme Bogos";
var age = 15;
var hSalary = 22.74;
Console.WriteLine("Full Name: {0,20}", fullName);
Console.WriteLine("Age:{0,14}", age.ToString());
Console.WriteLine("Distance: {0:C,8}", hSalary.ToString());
Console.WriteLine();
}
}

نتیجه

Full Name: Anselme Bogos
Age: 15
Distance: 22.74

علامتی که برای پهنا (width) در نظر می گیرید بسیار مهم است. اگر مثبت بود، خط متن در سمت راست قرار می گیرد که باید alignment مرجع، به خصوص برای مقادیر عددی باشد. حال چنانچه علامتی که ارائه می دهید منفی باشد، متن در سمت چپ قرار می گیرد.

قالب بندی تاریخ و زمان

همان طور که پیش تر ذکر شد، هنگامی که کاربر مقدار زمان برای متغیر DateTime وارد می کند، compiler خود یک بخش زمان به مقدار مذکور اضافه می کند. اگر بخواهید تنها بخش زمان یا بخش تاریخ بررسی شود، لازم است این امر را برای compiler مشخص کنید. برای این منظور، نوع داده ی DateTime یک سری حروف در نظر گرفته است که با استفاده از آن می توان نحوه ی نمایش مقدار (نوع قالب بندی آن) برای کاربر را تعیین کرد. کاراکتر مورد نظر داخل placeholder متغیر DateTime پس از 0 یا مقدار عددی افزایشی (incremental numeric value) باید تایپ شود.

1404/01/20 12059 3399
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...