Está en la página 1de 6

using System; using System.Collections.Generic; using System.IO; using System.

Text; public class Plato { private string nombre; private int costo; private int nroi; private string []P=new string[5]; public Plato(){ nombre="Sajta"; nroi=1; costo=15; P[1]="aji"; } public string Nombre { get { return nombre; } set { nombre = value; } } public int Nroi { get { return nroi; } set { nroi = value; } } public string pos(int i){ return P[i]; } public int Costo { get { return costo; } set { costo = value; } } public void leer(){ Console.WriteLine("\n int nombre de plato "); nombre=Console.ReadLine(); Console.Write(" int costo de plato "); costo=int.Parse(Console.ReadLine()); Console.Write(" int num de ingredientes "); nroi=int.Parse(Console.ReadLine()); for(int i=1;i<=nroi;i++)

{ Console.Write(" int ingrediente "); P[i]=Console.ReadLine();//ingr. } } public void mostrar(){ Console.WriteLine("\n plato "+nombre+" costo "+costo+" Bs"); Console.WriteLine(" num de ingredientes "+nroi); for(int i=1;i<=nroi;i++) { Console.WriteLine(" "+P[i]); } } /// <summary> /// Escribe un registro en el archivo especificado en escritor. /// </summary> /// <param name="escritor">Formateador binario</param> public void escribir(BinaryWriter escritor) { escritor.Write(this.nombre); escritor.Write(this.costo); escritor.Write(this.nroi); for(int i=1; i<=nroi; i++) { escritor.Write(this.P[i]); } } /// <summary> /// Lee un registro en el archivo especificado en lector. /// </summary> public void leer( BinaryReader lector) { this.nombre=lector.ReadString(); this.costo=lector.ReadInt32(); this.nroi = lector.ReadInt32(); for(int i=1; i<=nroi; i++) { this.P[i] = lector.ReadString(); } } } using System; using System.Collections.Generic; using System.IO; using System.Text; public class ArchiPlato { private string nombre; public ArchiPlato(string x) { nombre = x; }

public void crearNuevo(){ if( System.IO.File.Exists(nombre) ) { Console.WriteLine("\n Realmente quiere borrar el archivo?. s/n"); if( Console.ReadKey().KeyChar == 's' ) System.IO.File.Delete(nombre); } else Console.WriteLine("El archivo no existe."); } public void adicionar() { // Abrimos el archivo o se crea un nuevo archivo si no existe Stream arch = File.Open(nombre, FileMode.Append); BinaryWriter escribe = new BinaryWriter(arch); Plato x = new Plato(); try { do { x.leer(); x.escribir(escribe); Console.Write("Desea continuar aadiendo platos? s/n => "); } while( Console.ReadKey().KeyChar == 's' ); } catch( Exception ) { Console.WriteLine("Fallo en adicionar el objeto !!!"); } finally { arch.Close(); } } public void listar(){ // Abrimos el archivo o se crea un nuevo archivo si no existe Stream arch = File.Open(nombre, FileMode.OpenOrCreate); BinaryReader lee = new BinaryReader(arch); Plato f = new Plato(); try { while( true ){ f.leer(lee); f.mostrar(); //Console.WriteLine(f.mostrar());// f.mostrar(); } } catch( Exception ){ Console.Write("\n \t Fin de archivo ..."); }

finally { arch.Close(); } } public int Determina(string x){ Stream arch = File.Open(nombre, FileMode.OpenOrCreate); BinaryReader lee = new BinaryReader(arch); Plato f = new Plato(); int cont=0; try { while( true ) { f.leer(lee); for(int i=1;i<=f.Nroi;i++){ if(f.pos(i).Equals(x)){ cont++; } } } } catch( Exception ) { Console.Write("\n \t Fin de archivo ..."); return cont; } finally { arch.Close(); } } public int mayonum()//obtiene el costo mayor de todos los platos { // Abrimos el archivo o se crea un nuevo archivo si no existe Stream arch = File.Open(nombre, FileMode.OpenOrCreate); BinaryReader lee = new BinaryReader(arch); Plato f = new Plato(); int num=0; try { while( true ){ f.leer(lee); if(f.Costo>num) num=f.Costo; } } catch( Exception ){ return num; } finally { arch.Close(); }

} public void mostrarmay(int c) { // Abrimos el archivo o se crea un nuevo archivo si no existe Stream arch = File.Open(nombre, FileMode.OpenOrCreate); BinaryReader lee = new BinaryReader(arch); Plato f = new Plato(); try { while( true ) { f.leer(lee); if(f.Costo==c) { f.mostrar(); } } } catch( Exception ) { Console.Write("\n \t Fin de archivo ..."); } finally { arch.Close(); } } } using using using using class System; System.Collections.Generic; System.IO; System.Text; Principal { static void Main( string[] args ) { bool sw = true; while(sw) { //Console.ForegroundColor = ConsoleColor.Cyan; //Console.BackgroundColor = ConsoleColor.DarkBlue; Console.WriteLine("\n Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine(" "); Console.WriteLine("1. CREAR "); Console.WriteLine("2. ADICION "); ==== MENU

");

Console.WriteLine("3. LISTADO "); Console.WriteLine("4. CUANTOS PLATOS UTILIZAN EL "); Console.WriteLine("5. MOSTRAR LOS PLATOS CON EL AMYOR COSTO "); Console.WriteLine("6. ELIMINAR EL INGREDIENTE X DEL PLATO Y "); Console.WriteLine("7. ADICIONAR EL INGREDIENTE X AL PLATO Y "); Console.WriteLine("8. SALIR "); Console.WriteLine(" "); Console.Write("INTRODUCIR UNA OPCION ==> "); INGREDIENTE X ArchiPlato W = new ArchiPlato(@"c:\Plato.dat"); switch( Console.ReadKey().KeyChar ) { case '1': W.crearNuevo(); break; case '2': W.adicionar(); break; case '3': W.listar(); break; case '4': Console.Write("\n int ingrediente x "); string x=Console.ReadLine(); int c=W.Determina(x); Console.WriteLine("\n hay "+c+" platos que utilizan "+x); break; case '5': int b=W.mayonum(); W.mostrarmay(b); break; default: Console.WriteLine("\n termino !!!"); Console.Beep(); sw = false; break; } } } }

El programa ya

También podría gustarte