|
Une collection d'articles |
|
|
Introduction |
|
Dans les leçons précédentes, nous avons appris comment créer une rangée comme liste d'articles. Comme une rangée, une collection est une série d'articles de même type. La particularité dans la création d'une rangée est que vous devez savoir à l'avance le nombre d'articles qui composeront la liste. Il y a des moments où vous ne savez pas, vous ne pouvez pas savoir, ou vous ne pouvez pas prévoir le nombre d'articles de la liste. Pour cette raison, vous pouvez vouloir créer la liste pour laquelle vous n'indiquez pas le nombre maximum des articles mais vous permettez à l'utilisateur de la liste d'ajouter, localiser, ou enlever des articles à volonté. |
|
Avant de créer une liste, vous devriez d'abord décider probablement ou définir de quoi la liste serait faite. Aussi différent qu'ils sont, une liste peut être faite de valeurs numériques. Par exemple, une liste sera faite de nombres. Vous pouvez vouloir une liste qui est faite de noms. Une telle liste peut être créée d'une classe qui inclut une variable membre chaîne de caractères. Un autre type de liste peut contenir les objets complexes. |
|
|
using System;
namespace FlowerShop4
{
public enum FlowerType
{
Roses = 1,
Lilies,
Daisies,
Carnations,
LivePlant,
Mixed
}
public enum FlowerColor
{
Red = 1,
White,
Yellow,
Pink,
Orange,
Blue,
Lavender,
Mixed
}
public enum FlowerArrangement
{
Bouquet = 1,
Vase,
Basket,
Any
}
public sealed class Flower
{
private decimal pc;
public FlowerType Type;
public FlowerColor Color;
public FlowerArrangement Arrangement;
public Flower()
{
Type = FlowerType.Mixed;
Color = FlowerColor.Mixed;
Arrangement = FlowerArrangement.Vase;
pc = 0.00M;
}
public Flower(FlowerType type, FlowerColor color,
FlowerArrangement argn, decimal price)
{
Type = type;
Color = color;
Arrangement = argn;
pc = price;
}
public decimal UnitPrice
{
get { return pc; }
set { pc = value; }
}
}
}
|
![]() |
using System;
namespace FlowerShop4
{
public class OrderProcessing
{
public Flower FlowerOrder;
private int qty;
public int Quantity
{
get { return qty; }
set { qty = value; }
}
public OrderProcessing()
{
FlowerOrder = new Flower();
}
public decimal TotalPrice
{
get { return Quantity * FlowerOrder.UnitPrice; }
}
public void GetFlowerType()
{
int choice = 0;
do
{
try
{
Console.WriteLine("Enter the Type of Flower Order");
Console.WriteLine("1. Roses");
Console.WriteLine("2. Lilies");
Console.WriteLine("3. Daisies");
Console.WriteLine("4. Carnations");
Console.WriteLine("5. Live Plant");
Console.WriteLine("6. Mixed");
Console.Write("Your Choice: ");
choice = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You failed to enter an " +
"appropriate number!");
}
if ((choice < 1) || (choice > 6))
Console.WriteLine("Invalid Value: Please enter " +
"a value between 1 and 6");
} while ((choice < 1) || (choice > 6));
switch (choice)
{
case 1:
FlowerOrder.Type = FlowerType.Roses;
break;
case 2:
FlowerOrder.Type = FlowerType.Lilies;
break;
case 3:
FlowerOrder.Type = FlowerType.Daisies;
break;
case 4:
FlowerOrder.Type = FlowerType.Carnations;
break;
case 5:
FlowerOrder.Type = FlowerType.LivePlant;
break;
default:
FlowerOrder.Type = FlowerType.Mixed;
break;
}
}
public void GetFlowerColor()
{
int choice = 0;
do
{
try
{
Console.WriteLine("Enter the Color");
Console.WriteLine("1. Red");
Console.WriteLine("2. White");
Console.WriteLine("3. Yellow");
Console.WriteLine("4. Pink");
Console.WriteLine("5. Orange");
Console.WriteLine("6. Blue");
Console.WriteLine("7. Lavender");
Console.WriteLine("8. Mixed");
Console.Write("Your Choice: ");
choice = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You didn't enter an " +
"appropriate number!");
}
if ((choice < 1) || (choice > 8))
Console.WriteLine("Invalid Value: Please " +
"enter a value between 1 and 8");
} while ((choice < 1) || (choice > 8));
switch (choice)
{
case 1:
FlowerOrder.Color = FlowerColor.Red;
break;
case 2:
FlowerOrder.Color = FlowerColor.White;
break;
case 3:
FlowerOrder.Color = FlowerColor.Yellow;
break;
case 4:
FlowerOrder.Color = FlowerColor.Pink;
break;
case 5:
FlowerOrder.Color = FlowerColor.Yellow;
break;
case 6:
FlowerOrder.Color = FlowerColor.Blue;
break;
case 7:
FlowerOrder.Color = FlowerColor.Lavender;
break;
default:
FlowerOrder.Color = FlowerColor.Mixed;
break;
}
}
public void GetFlowerArrangement()
{
int choice = 0;
do
{
try
{
Console.WriteLine("Enter the Type of Arrangement");
Console.WriteLine("1. Bouquet");
Console.WriteLine("2. Vase");
Console.WriteLine("3. Basket");
Console.WriteLine("4. Mixed");
Console.Write("Your Choice: ");
choice = int.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("You didn't provide an " +
"acceptable number!");
}
if ((choice < 1) || (choice > 4))
Console.WriteLine("Invalid Value: Please enter " +
"a value between 1 and 4");
} while ((choice < 1) || (choice > 4));
switch (choice)
{
case 1:
FlowerOrder.Arrangement = FlowerArrangement.Bouquet;
break;
case 2:
FlowerOrder.Arrangement = FlowerArrangement.Vase;
break;
case 3:
FlowerOrder.Arrangement = FlowerArrangement.Basket;
break;
default:
FlowerOrder.Arrangement = FlowerArrangement.Any;
break;
}
}
public void ProcessOrder()
{
GetFlowerType();
GetFlowerColor();
GetFlowerArrangement();
try
{
Console.Write("Enter the Unit Price: ");
FlowerOrder.UnitPrice =
Math.Abs(decimal.Parse(Console.ReadLine()));
}
catch (FormatException)
{
Console.WriteLine("You didn't specify a valid price!");
}
try
{
Console.Write("Enter Quantity: ");
Quantity = Math.Abs(int.Parse(Console.ReadLine()));
}
catch (FormatException)
{
Console.WriteLine("The quantity you entered " +
"is not acceptable!");
}
}
public void ShowOrder()
{
Console.WriteLine("=======================");
Console.WriteLine("==-=-=Flower Shop=-=-==");
Console.WriteLine("-----------------------");
Console.WriteLine("Flower Type: {0}",
FlowerOrder.Type);
Console.WriteLine("Flower Color: {0}",
FlowerOrder.Color);
Console.WriteLine("Arrangement: {0}",
FlowerOrder.Arrangement);
Console.WriteLine("Price: {0:C}",
FlowerOrder.UnitPrice);
Console.WriteLine("Quantity: {0}", Quantity);
Console.WriteLine("Total Price: {0:C}", TotalPrice);
Console.WriteLine("=======================");
}
}
}
|
using System;
namespace FlowerShop4
{
public class Program
{
static int Main(string[] args)
{
OrderProcessing order = new OrderProcessing();
order.ProcessOrder();
Console.WriteLine();
order.ShowOrder();
Console.WriteLine();
return 0;
}
}
}
|
Enter the Type of Flower Order 1. Roses 2. Lilies 3. Daisies 4. Carnations 5. Live Plant 6. Mixed Your Choice: 3 Enter the Color 1. Red 2. White 3. Yellow 4. Pink 5. Orange 6. Blue 7. Lavender 8. Mixed Your Choice: 8 Enter the Type of Arrangement 1. Bouquet 2. Vase 3. Basket 4. Mixed Your Choice: 1 Enter the Unit Price: 45.50 Enter Quantity: 3 ======================= ==-=-=Flower Shop=-=-== ----------------------- Flower Type: Daisies Flower Color: Mixed Arrangement: Bouquet Price: $45.50 Quantity: 3 Total Price: $136.50 ======================= Press any key to continue . . . |
![]() |
Après avoir décidé de ce que chaque article de la liste serait fait, vous pouvez créer une classe qui contrôlerait la liste. Cette classe serait responsable de toutes les opérations qui peuvent être effectuées sur la liste. Si la liste sera faite de valeurs primitives, vous pouvez directement créer un champ de type désiré. Voici un exemple :
Si la liste sera faite d'objets, vous pouvez d'abord créer une classe qui indique ces types d'articles et puis déclarez sa variable dans la classe liste. Voici un exemple d'une classe simple qui contient une valeur à double précision : using System;
public class Number
{
public double Item;
}
public class Numbers
{
Number Sample;
}
public class Program
{
static int Main(string[] args)
{
Numbers nbrs = new Numbers();
return 0;
}
}
En créant une liste, un des aspects que vous devriez prêter attention à est de maintenir le nombre d'articles dans la liste. Pour ce faire, vous pouvez créer une propriété qui contient le nombre. La valeur de cette propriété augmenterait comme les articles sont ajoutés à la liste et la valeur diminuerait comme les articles sont enlevés de la liste. Voici comment ceci peut être fait : using System;
public class Number
{
public double Item;
}
public class Numbers
{
int size;
Number Sample;
public Numbers()
{
size = 0;
}
public int Count
{
get { return size; }
}
}
public class Program
{
static int Main(string[] args)
{
Numbers nbrs = new Numbers();
Console.WriteLine("Number of Items: {0}", nbrs.Count);
return 0;
}
}
Ceci produirait : Number of Items: 0 Press any key to continue . . .
Une bonne collection est une liste qui peut se développer ou se rétrécir comme l'utilisateur souhaite. En créant la liste, vous n'avez pas besoin de prévoir le nombre maximum des articles qui seront ajoutés à la liste. Quand une liste débute, elle est vide ou au moins elle doit être considérer comme telle, avant que n'importe quel article lui soit ajouté. Pour indiquer ceci, vous devriez déclarer une variable membre primaire. Bien que vous puissiez l'appeler n'importe comment, ceci s'appelle habituellement Head. Ce membre peut être rendu privé si vous n'avez pas l'intention de lui accéder en dehors de la classe. Si vous voulez que les clients de la classe lui accèdent, vous pouvez le rendre le public. Voici un exemple : public class Numbers
{
int listSize;
Number Sample;
public Numbers()
{
size = 0;
Head = null;
}
public int Count
{
get { return listSize; }
}
public Number Head;
}
public class Number
{
public double Item;
public Number Next;
}
|
|
|
||
| Précédent | Copyright © 2007, Yevol | Suivant |
|
|
||