Recherche dans un tableau..

techker Messages postés 3 Date d'inscription lundi 6 octobre 2014 Statut Membre Dernière intervention 6 octobre 2014 - 6 oct. 2014 à 13:03
techker Messages postés 3 Date d'inscription lundi 6 octobre 2014 Statut Membre Dernière intervention 6 octobre 2014 - 6 oct. 2014 à 16:09
bonjour,je suis un petit nouveau enprog et je suis en c# en ce moment..notre projet et de faire une console avec des tableau et recherche..

les tableaux sont faites mais c'est la recherche que je bogue..

voici une partie




tableau
struct Oeuvre //table Oeuvre
{
public string Titre;
public int id_O;
public int Id_Artiste;
public string AnneeAquis;
public double ValeurEstimer;
public double PrixdeVente;
public string etat;
// public string Suivis;


}

static void rechercheOeuvres()
{
string[] Oeuvres = new string[10];


Console.WriteLine("Quelle artiste vous cherchez ? ");
int nb_element = Convert.ToInt32(Console.ReadLine());



// traitement je convertie en int car c'est des ID que j essaye de trouver
Id_Artiste





/}
}






merci!

2 réponses

Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
6 oct. 2014 à 13:32
Bonjour,

j'ai déplacé ton sujet dans la rubrique C#.


Déjà il y a un truc qui ne colle pas dans le bout de code que tu nous montres.
Tu as crées une structure Oeuvre, mais ton tableau est un tableau de string.

donc l'initiation de ton tableau devrait ressembler à ça:
            Oeuvre[] oeuvres = new Oeuvre[10];
            
            Oeuvre monOeuvre = new Oeuvre();
            monOeuvre.Id_Artiste = 1;
            monOeuvre.id_O = 2;
            monOeuvre.Titre = "Le Titre";
            monOeuvre.ValeurEstimer = 1234;
            monOeuvre.PrixdeVente = 1243;
            monOeuvre.etat = "Joli";
            monOeuvre.AnneeAquis = "1990";

            oeuvres[0] = monOeuvre;


Ensuite pourquoi avoir mis l'année en string, ça devrait etre un int.
Enfin tu as des champs dont le nom commence par une majuscule et d'autres par une minuscule.


Pour ce qui est de la recherche proprement dit, il te faut faire une boucle (for ou foreach), regarder si la valeur du champ Id_Artsit de l'item en cours correspond à l'ID recherché.
Quand c'est bon, tu stoppes la boucles (ou pas si l'artiste peut être present plusieurs fois) et tu affiches le résultat


0
techker Messages postés 3 Date d'inscription lundi 6 octobre 2014 Statut Membre Dernière intervention 6 octobre 2014
6 oct. 2014 à 13:38
les valeur de tableau sont insérer par le client.

tout est client pas pré déterminer..

c'est pour ca que je me mélange..readline..
je vais changer mon annee...merci

voici complet j'ai commencer mais jammer..

ligne ajouterConservateur et rechercheOeuvre



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
struct Conservateur//table conservateur
{
public string Nom;
public string Prenom;
public int C_id;

}

static Conservateur[] Consrvateurs = new Conservateur[10];
static int nbreC = 0;///incrementation Conservateur
//----------------------------------------------------------//

struct Artiste //table Artiste
{
public string Nom;
public int id_C;
public int A_id;

}

static Artiste[] Artistes= new Artiste[10];
static int nbreAr = 0;///incrementation Conservateur
//-----------------------------------------------------------//

//----------------------------------------------------------//

struct Oeuvre //table Oeuvre
{
public string Titre;
public int id_O;
public int Id_Artiste;
public string AnneeAquis;
public double ValeurEstimer;
public double PrixdeVente;
public string etat;
// public string Suivis;


}

static Oeuvre[] Oeuvres = new Oeuvre[10];
static int nbreO = 0;///incrementation Conservateur
//-----------------------------------------------------------//

static void Main(string[] args)
{
// Max Menu
const int maxMenuItems = 9;
int selector = 0;
bool good = false;//Depart

while (selector != maxMenuItems)
{
Console.Clear();
DrawTitle();
DrawMenu(maxMenuItems);
good = int.TryParse(Console.ReadLine(), out selector);
if (good)
{
switch (selector)
{
case 1:
ajouterConservatuer();
break;
/////////////////////////////////////////////////////////
case 2:
ajouterArtiste();
//Ajouter Artiste
break;

/////////////////////////////////////////////////////////
case 3:
ajouterOeuvre();
//Ajouter un Oeuvre
break;

/////////////////////////////////////////////////////////
case 4:
afficherConservatuer();
break;
//Afficher les conservateur
//////////////////////////////////////////////////////////

case 5:
afficherArtiste();
break;
//Afficher les artiste

/////////////////////////////////////////////////////////
case 6:
rechercheOeuvres();
break;

//Rechercher Oeuvre

////////////////////////////////////////////////////////
case 7:
break;
//Vendre un Oeuvre

//////////////////////////////////////////////////////
case 8:
rapportOeuvres();
break;
//Rapport
///////////////////////////////////////////////////////

case 9:
Environment.Exit(0);
break;
//exit
///////////////////////////////////////////////////////

default:
if (selector != maxMenuItems)
{
ErrorMessage();
}
break;
}
}
else
{
ErrorMessage();
}
Console.ReadKey();
}
}
private static void ErrorMessage()
{
Console.WriteLine("Erreur,Taper pour continuer.");
}

/// <summary>
/// Look Menu
/// </summary>
private static void DrawStarLine()
{
Console.WriteLine("************************");
}
private static void DrawTitle()
{
DrawStarLine();
Console.WriteLine("+++ Application SGI +++");
DrawStarLine();
}
//Menu
private static void DrawMenu(int maxitems)
{
DrawStarLine();
Console.WriteLine("[1]. Ajouter Conservatuer");
Console.WriteLine("[2]. Ajouter Artiste");
Console.WriteLine("[3]. Ajouter un Oeuvre");
Console.WriteLine("[4]. Afficher les conservateurs");
Console.WriteLine("[5]. Afficher les artistes");
Console.WriteLine("[6]. Rechercher Oeuvre");
Console.WriteLine("[7]. Vendre un Oeuvre");
Console.WriteLine("[8]. Rapport des Oeuvres");
Console.WriteLine("[9]. Exit");
DrawStarLine();
Console.WriteLine("Selection: 1, 2,... ou {0} pour Sortir", maxitems);
DrawStarLine();
}
//Menu

//Menu ajouter Conservateur

static void ajouterConservatuer()
{

Console.WriteLine("introduire l'ID conservatuer");
Consrvateurs[nbreC].C_id =
Convert.ToInt32(Console.ReadLine());

// if (Consrvateurs[nbreC].C_id != (string) Consrvateurs[])
//{

// Console.WriteLine("id existe");
//}
// else
/// {

///Console.WriteLine("ok");
//}





Console.WriteLine("entrer le nom de conservatuer");
Consrvateurs[nbreC].Nom =
Console.ReadLine();

Console.WriteLine("entrer le prenom conservatuer");
Consrvateurs[nbreC].Prenom =
Console.ReadLine();

nbreC ++;

return;

}

static void afficherConservatuer()
{
for (int cnt = 0; cnt < nbreC; cnt++)
{

Console.WriteLine("id =" + Consrvateurs[cnt].C_id+"\n nom ="+Consrvateurs[cnt].Nom+"\n prenom ="+Consrvateurs[cnt].Prenom);

}


}//fin

/////////////////Ajouter Artiste

static void ajouterArtiste()//ajouter
{

Console.WriteLine("introduire l'ID Artiste");
Artistes[nbreAr].A_id=
Convert.ToInt32(Console.ReadLine());

Console.WriteLine("entrer le nom de l'artiste");
Artistes[nbreAr].Nom =
Console.ReadLine();

Console.WriteLine("entrer le ID conservateur");
Artistes[nbreAr].id_C =
Convert.ToInt32(Console.ReadLine());

nbreAr++;

return;

}

static void afficherArtiste()
{
for (int cnt = 0; cnt < nbreAr; cnt++)
{

Console.WriteLine("ID Artiste =" + Artistes[cnt].A_id + "\n Nom =" + Artistes[cnt].Nom + "\n ID Conservateur =" + Artistes[cnt].id_C);

}


}

/////////////////Ajouter Oeuvre

static void ajouterOeuvre()//ajouter
{

Console.WriteLine("introduire l'ID Oeuvre");
Oeuvres[nbreO].id_O =
Convert.ToInt32(Console.ReadLine());

Console.WriteLine("entrer le Titre de l'oeuvre");
Oeuvres[nbreO].Titre =
Console.ReadLine();

Console.WriteLine("entrer le ID Artiste");
Oeuvres[nbreO].Id_Artiste =
Convert.ToInt32(Console.ReadLine());

Console.WriteLine("entrer l'annee aquis");
Oeuvres[nbreO].AnneeAquis =
Console.ReadLine();

Console.WriteLine("entrer la valeur estimer");
Oeuvres[nbreO].ValeurEstimer =
Convert.ToInt32(Console.ReadLine());


Console.WriteLine("entrer le prix de vente");
Oeuvres[nbreO].PrixdeVente=
Convert.ToInt32(Console.ReadLine());


Console.WriteLine("entrer l'etats");
Oeuvres[nbreO].etat=
Console.ReadLine();

nbreO++;

return;

}



static void rechercheOeuvres()
{
string[] Oeuvres = new string[10];


Console.WriteLine("Quelle Nom artiste vous cherchez ? ");
string recherche = Console.ReadLine();



// traitement
if
(recherche == Oeuvres[""])
{
Console.WriteLine("ce nom existe..");

}
else
{
Console.WriteLine("Quelle Nom artiste vous cherchez ? ");



}





//verifier si le readline fonctionne
//Console.WriteLine("Le tableau ne contient pas le ID :"+ Oeuvres[] );
//Console.ReadKey();

}

static void rapportOeuvres()
{

for (int cnt = 0; cnt < nbreO; cnt++)
{
Console.WriteLine("*************Rapport des Oeuvres***********");
Console.WriteLine("ID Oeuvre =" + Oeuvres[cnt].id_O + "\n Titre =" + Oeuvres[cnt].Titre + "\n ID Artiste =" + Oeuvres[cnt].Id_Artiste + "\n Annee Aquis =" + Oeuvres[cnt].AnneeAquis + "\n ValeurEstimer =" + Oeuvres[cnt].ValeurEstimer + "\n Prix de vente =" + Oeuvres[cnt].PrixdeVente + "\n Etat =" + Oeuvres[cnt].etat);
Console.WriteLine("************************");
}


}






}
}











0
Whismeril Messages postés 19022 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 17 avril 2024 656
6 oct. 2014 à 16:00
Pour ajouterConservateur, inspire toi du code exemple pour l'ajout d'une oeuvre que j'ai mis plus haut.
Pour rechercheOeuvre, je t'ai posé les bases plus haut aussi.

A noter, le fait que tu utilises de tableaux et des structs me font penser que tu débutes tout juste et j'ai donc répondu à ce niveau.
Je suppose que c'est un exercice dans le cadre d'une formation, si on fait le travail pour toi, que vas tu apprendre?
0
techker Messages postés 3 Date d'inscription lundi 6 octobre 2014 Statut Membre Dernière intervention 6 octobre 2014
6 oct. 2014 à 16:09
Cest juste un projet cest vrais.et oui je veux juste un guide pas la reponse.merci pour ton aide.
0
Rejoignez-nous