Page d'Accueil

Lecture de données

 

Introduction

Dans des leçons précédentes, nous avons vu que console de classe permet d'utiliser les méthodes Write() et WriteLine()  pour afficher des choses sur l'écran. Tandis que la méthode Console.Write() est utilisée pour afficher quelque chose sur l'écran, la console de classe fournit la méthode Read() pour obtenir une valeur de l'utilisateur. Pour l'utiliser, le nom d'une variable peut lui être assigné. La syntaxe utilisée est :

VariableName = Console.Read () ;

Ceci signifie simplement que, l'utilisateur dactylographie quelque chose et appuie sur Enter, ce que l'utilisateur a dactylographié sera donné (le mot est assigné) à la variable indiquée du côté gauche de l'opérateur de tâche.

Read () ne doit pas toujours assigner sa valeur à une variable. Par exemple, elle peut être utilisée sur sa propre ligne, ce qui signifie simplement que l'utilisateur est sensé dactylographier quelque chose, mais la valeur dactylographiée par l'utilisateur ne seraient utiliser pour aucun but significatif. Par exemple quelques versions de C# ( comprenant même C# et Borland C#Builder de Microsoft) afficheraient la fenêtre de DOS brièvement et disparaîtraient. Vous pouvez utiliser la fonction Read()  pour attendre de l'utilisateur d'appuyer sur n'importe quelle touche afin de fermer la fenêtre de DOS.

En plus de Read (), la console de classe fournit également la méthode ReadLine (). De même que la fonction WriteLine (), après avoir effectué sa tâche, la méthode ReadLine () envoie le signe d'insersion à la prochaine ligne. Autrement, elle joue le même rôle que la fonction Read() .

 

Étude pratiqueÉtude pratique : Présentation des données de lecture 

  1. Commencez Microsoft Visual C# et créer une application de console appelée GeorgetownCleaningServices3
  2. Changer le type de fichier comme suit :
     
    using System;
    
    namespace GeorgetownCleaningServices4
    {
        class OrderProcessing
        {
    	static void Main()
    	{
    	    Console.WriteLine();
    	}
        }
    }
  3. Sauvegardez le fichier

Demande d'une valeur chaîne de caractères 

Dans la plupart des attributions de vos programmes, vous ne saurez pas la valeur d'une chaîne de caractères quand vous écrivez votre application. Par exemple, vous pouvez vouloir que l'utilisateur fournisse une telle chaîne de caractères. Pour demander une chaîne de caractères (ou tout autre variable que nous verrons dans cette leçon), vous pouvez faire appel à Console.Read () ou à la fonction Console.ReadLine () et l'assigner du nom de la variable dont vous voulez retrouver la valeur. Voici un exemple :

string FirstName;
Console.Write("Enter First Name: ");
FirstName = Console.ReadLine();
 

Étude pratiqueÉtude pratique : Lecture des valeurs chaîne de caractères

  1. Pour demander une chaîne de caractères à l'utilisateur, changer le dossier comme suit :
     
    using System;
    
    namespace GeorgetownCleaningServices4
    {
        class OrderProcessing
        {
    	static void Main()
    	{
    	    string CustomerName, HomePhone;
    
    	    Console.WriteLine("-/- Georgetown Cleaning Services -/-");
    	    // Request customer information from the user
    	    Console.Write("Enter Customer Name:  ");
    	    CustomerName = Console.ReadLine();
    	    Console.Write("Enter Customer Phone: ");
    	    HomePhone = Console.ReadLine();
    
    	    Console.WriteLine();
    	    // Display the receipt
    	    Console.WriteLine("====================================");
    	    Console.WriteLine("-/- Georgetown Cleaning Services -/-");
    	    Console.WriteLine("====================================");
    	    Console.Write("Customer:   ");
    	    Console.WriteLine(CustomerName);
    	    Console.Write("Home Phone: ");
    	    Console.WriteLine(HomePhone);
    	    Console.WriteLine("====================================\n");
    	}
        }
    }
  2. Exécutez le programme. Ce qui produirait :
     
    -/- Georgetown Cleaning Services -/-
    Enter Customer Name:  James Watson
    Enter Customer Phone: (410) 493-2005
    
    ====================================
    -/- Georgetown Cleaning Services -/-
    ====================================
    Customer:   James Watson
    Home Phone: (410) 493-2005
    ====================================
  3. Fermer la fenêtre de DOS

 Demande d'un Nombre

Dans C#, tout ce que l'utilisateur tape est une corde et le compilateur l'analyserait difficilement sans votre demande explicite pour le faire de telle façon. Par conséquent, si vous voulez obtenir un nombre de l'utilisateur, demander d'abord une corde. Voici un exemple :

using System;

namespace GeorgetownCleaningServices4
{
	class OrderProcessing
	{
		static void Main()
		{
			int Number;
			string strNumber;

			strNumber = Console.ReadLine();
		}
	}
}

Après avoir obtenu la corde, vous devez la convertir en nombre. Pour exécuter cette conversion, chaque type de données de .NET Framework fournit un mécanisme appelé parse. Pour utiliser parse (), dactylographiez le type de données, suivi d'un point, suivi de parse, et suivi des parenthèses. Dans les parenthèses de parse, introduire au clavier la corde que vous demandez à l'utilisateur. Voici un exemple :

using System;

namespace GeorgetownCleaningServices4
{
	class OrderProcessing
	{
		static void Main()
		{
			int Number;
			string strNumber;

			strNumber = Console.ReadLine();
			Number = int.Parse(strNumber);
		}
	}
}

Une manière avançée mais plus rapide de faire ceci est de dactylographier Console.ReadLine () dans les parenthèses de parse. Ceci a le même effet. Voici un exemple :

using System;

namespace GeorgetownCleaningServices4
{
	class OrderProcessing
	{
		static void Main()
		{
			int Number;

			Number = int.Parse(Console.ReadLine());
		}
	}
}

Étude pratiqueÉtude pratique : Lecture des valeurs numériques

  1. Pour rechercher divers nombres de l'utilisateur, changez le fichier comme suit :
     
    using System;
    
    namespace GeorgetownCleaningServices4
    {
        class OrderProcessing
        {
    	static void Main()
    	{
    	    // Price of items
    	    const decimal PriceOneShirt     = 0.95M;
    	    const decimal PriceAPairOfPants = 2.95M;
    	    const decimal PriceOneDress     = 4.55M;
    	    const decimal TaxRate           = 0.0575M;  // 5.75%
    
    	    // Customer personal infoirmation
    	    string CustomerName, HomePhone;
    	    // Unsigned numbers to represent cleaning items
    	    uint NumberOfShirts, NumberOfPants, NumberOfDresses;
    	    // Each of these sub totals will be used for cleaning items
    	    decimal SubTotalShirts, SubTotalPants, SubTotalDresses;
    	    // Values used to process an order
    	    decimal TotalOrder, TaxAmount, SalesTotal;
    	    decimal AmountTended, Difference;
    
    	    Console.WriteLine("-/- Georgetown Cleaning Services -/-");
    	    // Request customer information from the user
    	    Console.Write("Enter Customer Name:  ");
    	    CustomerName = Console.ReadLine();
    	    Console.Write("Enter Customer Phone: ");
    	    HomePhone = Console.ReadLine();
    			
    	    // Request the quantity of each category of items
    	    Console.Write("Number of Shirts:  ");
    	    string strShirts = Console.ReadLine();
    	    NumberOfShirts   = uint.Parse(strShirts);
    			
    	    Console.Write("Number of Pants:   ");
    	    string strPants  = Console.ReadLine();
    	    NumberOfPants    = uint.Parse(strPants);
    			
    	    Console.Write("Number of Dresses: ");
    	    string strDresses = Console.ReadLine();
    	    NumberOfDresses   = uint.Parse(strDresses);
    			
    	    // 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    = decimal.Parse(Console.ReadLine());
    
    	    // Calculate the difference owed to the customer
    	    // or that the customer still owes to the store
    	    Difference      = AmountTended - SalesTotal;
    	    Console.WriteLine();
    
    	    // Display the receipt
    	    Console.WriteLine("====================================");
    	    Console.WriteLine("-/- Georgetown Cleaning Services -/-");
    	    Console.WriteLine("====================================");
    	    Console.Write("Customer:   ");
    	    Console.WriteLine(CustomerName);
    	    Console.Write("Home Phone: ");
    	    Console.WriteLine(HomePhone);
    	    Console.WriteLine("------------------------------------");
    	    Console.WriteLine("Item Type  Qty Unit/Price Sub-Total");
    	    Console.WriteLine("------------------------------------");
    	    Console.Write("Shirts      ");
    	    Console.Write(NumberOfShirts);
    	    Console.Write("     ");
    	    Console.Write(PriceOneShirt);
    	    Console.Write("     ");
    	    Console.WriteLine(SubTotalShirts);
    	    Console.Write("Pants       ");
    	    Console.Write(NumberOfPants);
    	    Console.Write("     ");
    	    Console.Write(PriceAPairOfPants);
    	    Console.Write("     ");
    	    Console.WriteLine(SubTotalPants);
    	    Console.Write("Dresses     ");
    	    Console.Write(NumberOfDresses);
    	    Console.Write("     ");
    	    Console.Write(PriceOneDress);
    	    Console.Write("     ");
    	    Console.WriteLine(SubTotalDresses);
    	    Console.WriteLine("------------------------------------");
    	    Console.Write("Total Order:     ");
    	    Console.WriteLine(TotalOrder);
    	    Console.Write("Tax Rate:        ");
    	    Console.Write(TaxRate * 100);
    	    Console.WriteLine('%');
    	    Console.Write("Tax Amount:      ");
    	    Console.WriteLine(TaxAmount);
    	    Console.Write("Net Price:       ");
    	    Console.WriteLine(SalesTotal);
    	    Console.WriteLine("------------------------------------");
    	    Console.Write("Amount Tended:   ");
    	    Console.WriteLine(AmountTended);
    	    Console.Write("Difference:      ");
    	    Console.WriteLine(Difference);
    	    Console.WriteLine("====================================");
    	}
        }
    }
  2.  Exécutez le programme et examinez le. Voici un exemple :
     
    -/- Georgetown Cleaning Services -/-
    Enter Customer Name:  Genevieve Alton
    Enter Customer Phone: (202) 974-8244
    Number of Shirts:  8
    Number of Pants:   2
    Number of Dresses: 3
    
    The Total order is: 28.711125
    Amount Tended? 30
    
    ====================================
    -/- Georgetown Cleaning Services -/-
    ====================================
    Customer:   Genevieve Alton
    Home Phone: (202) 974-8244
    ------------------------------------
    Item Type  Qty Unit/Price Sub-Total
    ------------------------------------
    Shirts      8     0.95     7.60
    Pants       2     2.95     5.90
    Dresses     3     4.55     13.65
    ------------------------------------
    Total Order:     27.15
    Tax Rate:        5.7500%
    Tax Amount:      1.561125
    Net Price:       28.711125
    ------------------------------------
    Amount Tended:   30
    Difference:      1.288875
    ====================================
  3. Fermer la fenêtre de DOS

Demande des dates et du temps

Comme fait avec les nombres réguliers, vous pouvez demander une valeur de date à l'utilisateur. Ceci est également fait en demandant une corde à l'utilisateur. Voici un exemple :

using System;

namespace ValueRequests
{
    class Exercise
    {
	static void Main()
	{
	    string strDateHired;

	    strDateHired = Console.ReadLine();
	}
    }
}

Après que l'utilisateur ait  entré la corde vous pouvez alors la convertir en valeur date heure. Comme toute valeur que vous demandez à l'utilisateur, la valeur date ou temps tapée par l'utilisateur doit être valide, autrement, le programme afficherait une erreur. Puisque les dates et les temps suivent quelques règles pour leurs formats, vous devriez tâcher de permettre à l'utilisateur de savoir ce que vous attendez de la valeur à écrire.

Par défaut, si vous demandez seulement une date à l'utilisateur et l'utilisateur écrit une date valide, le compilateur ajouterait la valeur de minuit à la date. Si vous demandez seulement le temps à l'utilisateur et l'utilisateur écrit un temps valide, le compilateur ajouterait la date du jour à la valeur. Plus tard, nous apprendrons comment isoler seulement la date ou seulement l'heure.

Étude pratiqueÉtude pratique : Demande des valeurs  date et Temps

  1. Pour traiter avec les nouvelles dates et temps, changer le programme comme suit :
     
    using System;
    
    namespace GeorgetownCleaningServices4
    {
        class OrderProcessing
        {
    	static void Main()
    	{
    	    // Price of items
    	    const decimal PriceOneShirt     = 0.95M;
    	    const decimal PriceAPairOfPants = 2.95M;
    	    const decimal PriceOneDress     = 4.55M;
    	    const decimal TaxRate           = 0.0575M;  // 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
    	    decimal SubTotalShirts, SubTotalPants, SubTotalDresses;
    	    // Values used to process an order
    	    decimal TotalOrder, TaxAmount, SalesTotal;
    	    decimal AmountTended, Difference;
    
    	    Console.WriteLine("-/- Georgetown 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/yyyy hh:mm AM/PM)");
    	    OrderDate = DateTime.Parse(Console.ReadLine());
    			
    	    // Request the quantity of each category of items
    	    Console.Write("Number of Shirts:  ");
    	    string strShirts = Console.ReadLine();
    	    NumberOfShirts   = uint.Parse(strShirts);
    			
    	    Console.Write("Number of Pants:   ");
    	    string strPants  = Console.ReadLine();
    	    NumberOfPants    = uint.Parse(strPants);
    		
    	    Console.Write("Number of Dresses: ");
    	    string strDresses = Console.ReadLine();
    	    NumberOfDresses   = uint.Parse(strDresses);
    			
    	    // 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    = decimal.Parse(Console.ReadLine());
    
    	    // Calculate the difference owed to the customer
    	    // or that the customer still owes to the store
    	    Difference      = AmountTended - SalesTotal;
    	    Console.WriteLine();
    
    	    // Display the receipt
    	    Console.WriteLine("====================================");
    	    Console.WriteLine("-/- Georgetown Cleaning Services -/-");
    	    Console.WriteLine("====================================");
    	    Console.Write("Customer:    ");
    	    Console.WriteLine(CustomerName);
    	    Console.Write("Home Phone:  ");
    	    Console.WriteLine(HomePhone);
    	    Console.Write("Date & Time: ");
    	    Console.WriteLine(OrderDate);
    	    Console.WriteLine("------------------------------------");
    	    Console.WriteLine("Item Type  Qty Unit/Price Sub-Total");
    	    Console.WriteLine("------------------------------------");
    	    Console.Write("Shirts      ");
    	    Console.Write(NumberOfShirts);
    	    Console.Write("     ");
    	    Console.Write(PriceOneShirt);
    	    Console.Write("     ");
    	    Console.WriteLine(SubTotalShirts);
    	    Console.Write("Pants       ");
    	    Console.Write(NumberOfPants);
    	    Console.Write("     ");
    	    Console.Write(PriceAPairOfPants);
    	    Console.Write("     ");
    	    Console.WriteLine(SubTotalPants);
    	    Console.Write("Dresses     ");
    	    Console.Write(NumberOfDresses);
    	    Console.Write("     ");
    	    Console.Write(PriceOneDress);
    	    Console.Write("     ");
    	    Console.WriteLine(SubTotalDresses);
    	    Console.WriteLine("------------------------------------");
    	    Console.Write("Total Order:     ");
    	    Console.WriteLine(TotalOrder);
    	    Console.Write("Tax Rate:        ");
    	    Console.Write(TaxRate * 100);
    	    Console.WriteLine('%');
    	    Console.Write("Tax Amount:      ");
    	    Console.WriteLine(TaxAmount);
    	    Console.Write("Net Price:       ");
    	    Console.WriteLine(SalesTotal);
    	    Console.WriteLine("------------------------------------");
    	    Console.Write("Amount Tended:   ");
    	    Console.WriteLine(AmountTended);
    	    Console.Write("Difference:      ");
    	    Console.WriteLine(Difference);
    	    Console.WriteLine("====================================");
    	}
        }
    }
  2. Exécutez le programme et examinez le. Voici un exemple :
     
    -/- Georgetown Cleaning Services -/-
    Enter Customer Name:  Alexander Pappas
    Enter Customer Phone: (301) 397-9764
    Enter the order date and time (mm/dd/yyyy hh:mm AM/PM)
    06/22/98 08:26 AM
    Number of Shirts:  2
    Number of Pants:   6
    Number of Dresses: 0
    
    The Total order is: 20.727000
    Amount Tended? 50
    
    ====================================
    -/- Georgetown Cleaning Services -/-
    ====================================
    Customer:    Alexander Pappas
    Home Phone:  (301) 397-9764
    Date & Time: 6/22/1998 8:26:00 AM
    ------------------------------------
    Item Type  Qty Unit/Price Sub-Total
    ------------------------------------
    Shirts      2     0.95     1.90
    Pants       6     2.95     17.70
    Dresses     0     4.55     0
    ------------------------------------
    Total Order:     19.60
    Tax Rate:        5.7500%
    Tax Amount:      1.127000
    Net Price:       20.727000
    ------------------------------------
    Amount Tended:   50
    Difference:      29.273000
    ====================================
  3. Revenir au bloc-notes
 

Précédent Copyright © 2007-2008, Yevol Suivant