domingo, 14 de diciembre de 2008

PROYECTO

Proyecto de manejo de datos de Archivos [Inscripción de Alumnos en Cursos]

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication1
{
//Curso
class Curso
{
string sigla, descripcion;
int creditos;

public Curso(string s, string d, int c)
{
sigla = s.ToUpper(); descripcion = d.ToUpper(); creditos = c;
}
public string Sigla
{
get
{
return (sigla);
}
}
public string Descropcion
{
get
{
return (descripcion);
}
}
public int Creditos
{
get
{
return (creditos);
}
}
}
}
class ListaCursos
{
Curso[] cursos; //Almacena la lista de cursos
int cantidad = 0;
const int MAX = 20; //Limitacion: 20 cursos maximo
string archivo = "C:\\Archivos\\cursos.dat";

//Constructor: dimensiona la lista de alumnos en MAX
public ListaCursos()
{
cursos = new Curso[MAX]; //Limitacion: 20 cursos maximo
}

//Constructor: dimensiona la lista de cursos en MAX y carga
//los datos de archivo identificado por su nombre
public ListaCursos(string Filename)
{
StreamReader fr;
cursos = new Curso[MAX];
archivo = Filename;

try
{
fr = new StreamReader(archivo);
}
catch (Exception e)
{
//No se pudo abrir: se crea
StreamWriter sw = new StreamWriter(archivo);
sw.Close();
return;
}
string linea;
linea = fr.ReadLine();
while (linea != null)
{
string[] datos = linea.Split();
//Formato del archivo tiene: creditos sigla descripcion
Agregar(datos[1].ToUpper(), datos[2].ToUpper(), int.Parse(datos[0]));
linea = fr.ReadLine();
}
fr.Close();
}

//Guardar(): guarda datos en estructura al archivo identificado por su nombre
public bool Guardar()
{
StreamWriter fw;
try
{
fw = new StreamWriter(archivo);
}
catch (Exception e)
{
Console.WriteLine("Error en la apertura de \"{0}\": {1}", archivo, e.ToString());
return (false);
}
for (int i = 0; i < cantidad; i++)
fw.WriteLine("{0} {1} {2}", cursos[i].Creditos, cursos[i].Sigla, cursos[i].Descropcion);
fw.Close();
return (true);
}
//Agregar(): agrega un curso dado a la lista
//Prametros: Curso, c, el curso a agregar
public void Agregar(Curso c)
{
if (cantidad < MAX) cursos[cantidad++] = c;
}
//Agregar(): agrega un curso dados sus datos, a ña ñista
//Parametros: la sigla, la descripcion y los creditos
public void Agregar(string s, string d, int c)
{
if (cantidad < MAX)
{
cursos[cantidad++] = new Curso(s, d, c);
}
}
//Atributo Cantidad, solo lectura, no se puede modificar por fuera
public int Cantidad
{
get
{
return (cantidad);
}
}
//Mostrar(): muestra los datos registrados al momento
public void Mostrar()
{
Console.WriteLine("\nCURSOS:");
for (int i = 0; i < cantidad; i++)
Console.WriteLine("{0} {1} {2}", cursos[i].Creditos, cursos[i].Sigla, cursos[i].Descropcion);
Console.WriteLine("------------------------------------------------------------------------\n");
}
//Buscar(): Busca curso definido por sigla. Retorna la posicion, -1 si no esta.
public int Buscar(string sigla)
{
for (int i = 0; i < cantidad; i++)
if (cursos[i].Sigla == sigla.ToUpper())
return (i);
return (-1); //Si llego aqui, no lo encontro
}
//GetCurso(): Entrega curso ubicado en la posicion n del arreglo, con n de 0.. N-1
public Curso GetCursos(int n)
{
return (cursos[n]);
}

}
}
//Clase Alumno: representa un alumno con sus atributos basicos
class Alumno
{
string nombre, apellido;
string fechanac;
int numero;
public Alumno(int num, string n, string a, string f)
{
numero = num; nombre = n.ToUpper(); apellido = a.ToUpper(); fechanac = f;
}
public string Nombre
{
get
{
return (nombre);
}
}
public string Apellido
{
get
{
return (apellido);
}
}
public string FechaNac
{
get
{
return (fechanac);
}
}
public int Numero
{
get
{
return (numero);
}
}

}
}
//Clase ListaAlumnos: representa un conjunto de alumnos
class ListaAlumnos
{
Alumno[] alumnos; //Almacena la lista de alumnos
int cantidad = 0;
const int MAX = 20; //Limitacion: 20 alumnos maximo
string archivo = "C:\\Archivos\\alumnos.dat";

//Constructor: dimensiona la lista de alumnos en MAX
public ListaAlumnos()
{
alumnos = new Alumno[MAX];
}//Limitacion: 20 alumnos maximo

//Constructor: dimensiona la lista de alumnos en MAX
public ListaAlumnos(string Filename)
{
StreamReader fr;
alumnos = new Alumno[MAX];
archivo = Filename;
try
{
fr = new StreamReader(archivo);
}
catch (Exception e)
{
//No se pudo abrir, se crea
StreamWriter sw = new StreamWriter(archivo);
sw.Close();
return;
}
string linea;
linea = fr.ReadLine();
while (linea != null)
{
string[] datos = linea.Split();
//Formato del archivo tiene: num fecha nombre apellido
Agregar(int.Parse(datos[10]), datos[2], datos[3], datos[1]);
linea = fr.ReadLine();
}
fr.Close();
}

//Guardar():Guarda datos en la estructura al archivo identificado por su nombre

public bool Guardar()
{
StreamWriter fw;
try
{
fw = new StreamWriter(archivo);
}
catch (Exception e)
{
Console.WriteLine("Error en la apertura de \"{0}\": {1}", archivo, e.ToString());
return(false);
}
for(int i = 0; i < cantidad; i++)
fw.WriteLine("{0} {1} {2} {3}",alumnos[i].Numero, alumnos[i].FechaNac, alumnos[i].Nombre, alumnos[i].Apellido);
fw.Close();
return(true);
}
//Agregar(): agrega un alumno dado a la lista
//Parametros: Alumno a, el alumno a agregar
public void Agregar(Alumno a)
{
if(cantidad < MAX) alumnos[cantidad++] = a;
}
//Agregar(): agrega un alumno dados sus datos, a la lista
//Parametros: el numero, nombre, apellido, y fecha nacimiento
public void Agregar(int num, string n, string a, string f)
{
if(cantidad < MAX)
{
alumnos[cantidad++] = new Alumno(num, n, a, f);
}
}
//Atributo Cantidad, solo lectura, no se puede modificar por fuera
public int Cantidad
{
get
{
return(cantidad);
}
}

//Mostrar(): muestra los datos registrados al momento
public void Mostrar()
{
Console.WriteLine("\nALUMNOS:");
for(int i = 0; i < cantidad; i++)
Console.WriteLine("{0} {1} {2} {3}", alumnos[i].Numero, alumnos[i].FechaNac, alumnos[i].Nombre, alumnos[i].Apellido);
Console.WriteLine("--------------------------------------------------------------------------------------------------------");
}

//Buscar(): Busca alumnos definido por numero, retorna posicion -1 si no esta
public int Buscar(int numero)
{
for(int i = 0; i < cantidad; i++)
if(alumnos[i].Numero == numero)
return(i);
return(-1); //Si llego aqui no lo encontro
}

//GetAlumno(): Entrega alumno ubicado en posicion n del arreglo, con n de 0.. N-1
public Alumno GetAlumno(int n)
{
return(alumnos[n]);
}
}
}
//Clase ListaInscripciones: representa un conjunto de inscripciones
class ListaInscripciones
{
Inscripcion[] inscripciones; //Almacena la lista de inscripciones
int cantidad = 0;
const int MAX = 60; //Limitacion: 60 inscripciones maximo
string archivo = "C:\\Archivos\\inscripciones.dat";

//Constructor: dimensiona la lista de inscripciones en MAX
public ListaInscripciones()
{
inscripciones = new Inscripcion[MAX];
}

//Constructor: dimensiona la lista de inscripciones en MAX
//y carga los datos de archivo identificado por su nombre
public ListaInscripciones(string Filename)
{
StreamReader fr;
inscripciones = new Inscripcion[MAX];
archivo = Filename;
try
{
fr = new StreamReader(archivo);
}
catch (Exception e)
{
//No se pudo abrir, se crea
StreamWriter sw = new StreamWriter(archivo);
sw.Close();
return;
}
string linea;
linea = fr.ReadLine();
while (linea != null)
{
string[] datos = linea.Split();
//Formato del archivo tiene: sigla numero semestre
Agregar(datos[0].ToUpper(), int.Parse(datos[1]), int.Parse(datos[2]));
linea = fr.ReadLine();
}
fr.Close();
}
//Guardar(): guarda datos en la estructura al archivo identificado por su nombre
public bool Guardar()
{
StreamWriter fw;
try
{
fw = new StreamWriter(archivo);
}
catch (Exception e)
{
Console.WriteLine("Error en la apertura de \"{0}\": {1}", archivo, e.ToString());
return (false);
}
for (int i = 0; i < cantidad; i++)
fw.WriteLine("{0} {1} {2}", inscripciones[i].Sigla, inscripciones[i].Numero, inscripciones[i].Semestre);
fw.Close();
return (true);
}
//Agregar(): agregar una inscripcion dada a la lista
//Parametros: Inscripcion i, el curso a agregar
public void Agregar(Inscripcion i)
{
if (cantidad < MAX) inscripciones[cantidad++] = i;
}
//Agregar(): agrega un curso dados sus dtos, a la lista
//Parametros: la sigla, la descripcion, y los creditos
public void Agregar(string s, int n, int m)
{
if (cantidad < MAX)
{
inscripciones[cantidad++] = new Inscripcion(s, n, m);
}
}
//Atributo Cantidad, solo lectura, no se puede modificar por fuera
public int Cantidad
{
get
{
return (cantidad);
}
}
//Mostrar(): muestra los datos registrados al momento
public void Mostrar(ListaAlumnos la, ListaCursos lc)
{
Console.WriteLine("\nINSCRIPCIONES:");
for (int i = 0; i < MAX; i++)
{
Alumno a; Curso c;
a = la.GetAlumno(la.Buscar(inscripciones[i].Numero));
c = lc.GetCursos(lc.Buscar(inscripciones[i].Sigla));
Console.WriteLine("{0} ({1}) - {2} ({3} {4}) en {5}", c.Sigla, c.Descropcion, a.Numero, a.Nombre, a.Apellido, inscripciones[i].Semestre);
}
Console.WriteLine("-----------------------------------------------------------------------------------------------------------------------------");
}
}
}
//Clase MainApp: bloqu del algoritmo principal y metodos auxiliares
class MainApp
{
//ValidarFecha(): valida una fecha en formato ddmmaaaa
static bool ValidarFecha(string fecha)
{
string digitos = "0123456789";
if (fecha.Length != 8) return (false);
for (int i = 0; i < fecha.Length; i++)
if (digitos.IndexOf(fecha[i]) < 0) return (false);
if (int.Parse(fecha.Substring(0, 2)) > 31) return (false);
if (int.Parse(fecha.Substring(0, 2)) == 0) return (false);
if (int.Parse(fecha.Substring(2, 2)) > 12) return (false);
if (int.Parse(fecha.Substring(2, 2)) == 0) return (false);
return (true);
}
static Alumno NuevoAlumno()
{
string nombre, apellido, fechanac;
int numero;
Console.WriteLine("Datos del nuevo alumno");
Console.Write("Nombre:"); nombre = Console.ReadLine();
Console.Write("Apellido:"); apellido = Console.ReadLine();
do
{
Console.Write("Fecha Nac (ddmmaaaa): ");
fechanac = Console.ReadLine();
}
while (!ValidarFecha(fechanac));
Console.Write("Numero: "); numero = int.Parse(Console.ReadLine());
return (new Alumno(numero, nombre, apellido, fechanac));
}
static Curso NuevoCurso()
{
string sigla, descripcion;
int creditos;
Console.WriteLine("Datos del nuevo curso");
Console.Write("Sigla: "); sigla = Console.ReadLine();
Console.Write("Descripcion: "); descripcion = Console.ReadLine();
Console.Write("Creditos: "); creditos = int.Parse(Console.ReadLine());
return (new Curso(sigla, descripcion, creditos));
}
//NuevaInscripcion(): crea una nueva inscripcion relacionando un alumno existente
//con un curso que tambien debe ser existente
//Observaciones: se le pide al usuario solo el numero del alumno y la sigla del curso
//validando que ambis existan
static Inscripcion NuevaInscripcion(ListaAlumnos la, ListaCursos lc)
{
string sigla;
int numero, semestre;
Alumno a; Curso c;
//Muestra la lista en pantalla para ayudar al usuario a indicar datos
la.Mostrar(); lc.Mostrar();
Console.WriteLine("Inscripcion de Curso:");
do
{
Console.Write("Numero del Alumno: ");
numero = int.Parse(Console.ReadLine());
}
while (la.Buscar(numero) < 0);
do
{
Console.Write("Sigla Curso: ");
sigla = Console.ReadLine();
}
while (lc.Buscar(sigla) < 0);
Console.Write("Semestre: "); semestre = int.Parse(Console.ReadLine());
a = la.GetAlumno(la.Buscar(numero)); c = lc.GetCursos(lc.Buscar(sigla));
Console.WriteLine("El alumno {0} {1} se inscribio en el curso {2} ({3})", a.Nombre, a.Apellido, c.Sigla, c.Descropcion);
return (new Inscripcion(sigla, numero, semestre));
}
static int Menu(string[] opciones)
{
int contador = 1, op = 0;
foreach (string opcion in opciones)
Console.WriteLine("{0}) {1}", contador++, opcion);
Console.Write("Ingrese su opcion: ");
do
op = int.Parse(Console.ReadLine());
while (op <= 0 && op >= contador);
return (op);
}
static void Main ()
{
string[] opciones = { "Agregar Alumno", "Agregar Curso", "Inscribir en Curso", "Mostrar Alumnos", "Mostrar Cursos", "Mostrar Inscripciones", "Salir" };
int opcion = 0;
const string archivocursos = "C:\\Archivos\\cursos.dat";
const string archivoalumnos = "C:\\Archivos\\alumnos.dat";
const string archivoinscripciones = "C:\\Archivos\\inscripciones.dat";
ListaCursos lc = new ListaCursos(archivocursos);
ListaAlumnos la = new ListaAlumnos(archivoalumnos);
ListaInscripciones li = new ListaInscripciones(archivoinscripciones);
do
{
opcion = Menu(opciones);
switch (opcion)
{
case 1: la.Agregar(NuevoAlumno()); break;
case 2: lc.Agregar(NuevoCurso()); break;
case 3: li.Agregar(NuevaInscripcion(la,lc)); break;
case 4: la.Mostrar(); break;
case 5: lc.Mostrar(); break;
case 6: li.Mostrar(la, lc); break;
}
}
while (opcion != 7);
lc.Guardar();
la.Guardar();
li.Guardar();
}
}
}



sábado, 13 de diciembre de 2008

Resumen [FLUJOS]

Sabemos que la comunicación entre un programa y el origen o el destino de cierta información, se realiza mediante un flujo de información(Stream) que no es más que un objeto que hace de intermediario entre el programa, y el origen o el destino de la información.
Este nivel de abstracción hace que un programa no tenga que saber nada del dispositivo, lo que se traduce en una facilidad más a la hora de escribir programas, ya que los algoritmos para leer y escribir datos serán siempre más o menos los mismos.
(System.IO) de la biblioteca .NET contiene una colección de clases que soportan estos algortimos.
(FileStream) subclase de Stream permite escribir o leer datos de un fichero.
(StreamWriter y StreamReader) subclases de TextWriter y TextReader, permiten escribir y leer los caracteres.
(BinaryReader y BinaryWriter) permiten leer y escribir datos de cualquier tipo primitivo en binario y cadenas de caracteres.

ABRIENDO FICHEROS PARA ACCESO SECUENCIAL

El tipo de acceso a un fichero de datos es secuencial. Un fichero abierto para "acceso secuencial" es un fichero que puede almacenar resgistros de cualquier longitud. Cuando la información se escribe resgistro a resgitro, estos son colocados uno a continuación de otro, y cuando se lee, se empieza por el primer registro y se continúa al siguiente hasta alcanzar el final.
Este tipo de acceso se utiliza con ficeros de texto en los que se escribe toda la información desde el principio hasta el final y se lee de la misma forma. Los ficheros de texto no son apropiados para almacenar grandes series de números, porque cada número es almacenado como una secuencia de bytes.

Flujos de bytes

Los datos pueden ser escritos o lídos de un fichero byte a byte utilizando un flujo de la clase "FileStream"

FileStream
Un flujo de la clase FileStream perimte leer y escribir bytes en un fichero.

FileStream(string nombre, FileMode modo)
FileStream(string nombre, FileMode modo, FileAccess acceso)

El primer constructor abre un flujo de entrada y salida (para leer y escribir), el segundo hace lo mismo, pero con la posibilidad de especificar el tipo de acceso (leer, escribir, o leer y escribir).
Ele parametro "nombre" es una cadena de caracteres que especifica la ruta donde está guardado o se guardará el fichero.

"C:\\temp\\doc.txt"
@"C:\\temp\\doc.txt"

El parámetro "modo", del tipo enumerado FileMode, puede tomar uno de los valores siguientes:

CreateNew Crear un nuevo fichero.
Create Crear fichero. Si el fichero existe será sobreescrito.
Open Abrir un fichero existente.
OpenOrCreate Abrir un fichero si existe; si no, se crea un nuevo fichero.
Truncate Abrir un fichero existente.Una vez abierto, el fichero será truncado a cero bytes de longitud.
Append Abrir un fichero para añadir datos al final del mismo si existe, o crear un nuevo fichero si no existe.

El parámetro "acceso", del tipo FileAccess, puede tomar uno de lo siguientes valores:
Read Permite acceder al fichero para realizar operaciones de lectura.

ReadWrite Permite acceder al fichero para realizar operaciones de lectura y escritura.

Write Permite acceder al fichero para realizar operaciones de escritura.

Tipos de caracteres

Los datos pueden ser escritos o leídos de un fichero carácter en un formato portable, utilizando flujos de las clases "StreamWriter y StreamReader", subclases de "TextWriter y TextReader".

StreamWriter

Un flujo de la clase StreamWriter permite escribir caracteres en un fichero.

StreamWriter(string nombre)
StreamWriter(Stream flujo)

El primer constructor abre un flujo de salida (para escribir) hacia el fichero especificado por "nombre" (ver la clase FileStream), mientras que el segundo hace lo mismo, pero desde otro flujo existente de la clase Stream o de sus derivadas.

Clases File, Directory y Path

Estas clases soportan la manipulación del nombre de un fichero o de un directorio que puede existir en el sistema de ficheros de la máquina, sus métodos permitirán interrogar al sistema sobre todas las características de ese fichero. Todos los métodos de estas clases son "static" para que puedan ser invocados sin necesidad de que exista un objeto de ellas.

"C:\\MiDir\\MiFichero.txt"
@"C:\\MiDir\MiFichero.txt"
@"C:\MiDir"
"MiDir\\MiSubDir\\MiFichero.txt"
@"MiDir\MiSubDir\MiFichero.txt"
@"MiDir\MiSubDir"
"MiFichero.txt"
"\\\\MiServidor\\MiDirCompartido\\MiFichero.txt"

Flujos de datos de tipos primitivos

Datos de tipos primitivos (Bool, Byte, Double, Float, Long, Int, Short, etc).
Para estos casos, el espacio de nombres "System.IO" proporciona las clases "BinaryReader y BinaryWriter", las cuales permiten leer y escribir, respectivamente, datos de cualquier tipo primitivo en formto binario, y cadenas de carácteres en formato "utf_8".
Un flujo BinaryReader sólo puede leer datos almacenados enun fichero a través de un flujo BinaryWriter.

BinaryWriter

Un flujo de la clase BinaryWriter perimte a una aplicación escribir datos de cualquier tipo primitivo. Se puede crear un flujo de esta clase utilizabdo el siguiente constructor:

BinaryWriter(Stream flujo)

Este constructor abre un flujo de salida (para escribir) hacia el fichero vinculado con otro flujo existente de la clase Stream o de sus derivadas.

BinaryReader

Un flujo de la clase BinaryReader, permite a una aplicación leer datos de cualquier tipo primitivo escritos por un flujo de la clase BinryWriter.

BinaryReader(Stream flujo)

Este constructor abre un flujo de entrada (para leer) desde el fichero vinculado con otro flujo existente de la clase Strem o de sus derivadas.

jueves, 11 de diciembre de 2008

Ejemplo 6

using System;
using System.IO;


public class MostrarListaTfnos
{
public static void mostrarFichero(String fichero)
{
BinaryReader br = null; //flujo entrada de datos
//desde el fichero
try
{
//Verificar si el fichero existe
if (File.Exists(fichero))
{
//Si existe, abrir un flujo desde el mismo para leer
br = new BinaryReader(new FileStream(fichero, FileMode.Open, FileAccess.Read));

//Declarar los datos a leer desde el fichero
String nombre, direccion;
long telefono;

do
{
//Leer un nombre, una direccion y un telefono desde el
//fichero. Cuando se alcance al final del fichro C#
//lanzara una excepcion del tipo EndOfStreamException.
nombre = br.ReadString();
direccion = br.ReadString();
telefono = br.ReadInt64();

//Mostrar los datos nombre, direccion, y telefono
Console.WriteLine(nombre);
Console.WriteLine(direccion);
Console.WriteLine(telefono);
Console.WriteLine();
}
while (true);

}

else
Console.WriteLine("El fichero no existe");

}
catch (EndOfStreamException)
{
Console.WriteLine("Fin del Listado");

}
finally
{
//Cerrar el flujo
if (br != null) br.Close();

}

}
public static void Main(string[] args)
{
try
{
if (args.Length == 0)
{
//Obtener el nombre del fichero
Console.Write("Nombre del fichero: ");
string nombreFichero = Console.ReadLine();

}
else
{

}

}
catch (IOException e)
{
Console.WriteLine("Error: " + e.Message);
}
}
}

miércoles, 10 de diciembre de 2008

Ejemplo 4

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication1
{
public class CLeerCars

{
public static void Main(string[] args)
{
StreamReader sr = null;
String str;

try
{
//Crear un flujo desde el fichero doc.txt
sr = new StreamReader("C:\\doc\\doc.txt");
//Leer del fichero una linea de texto
str = sr.ReadLine();
while (str != null)
{
//Mostrar la linea leida
Console.WriteLine(str);
//Leer la linea siguiente
str = sr.ReadLine();
}
}
catch (IOException e)
{
Console.WriteLine("Error: " + e.Message);
}
finally
{
//Cerrar el fichero
if (sr != null) sr.Close();
}
Console.ReadLine();

}
}
}

martes, 9 de diciembre de 2008

Ejemplo 3

using System;
using System.IO;
using System.Text;


namespace ConsoleApplication1
{
public class CEscribirCars
{
static void Main(string[] args)
{
StreamWriter sw = null;
string str;
try
{
//Crar un flujo hacia el fichero doc.txt
sw = new StreamWriter("C:\\doc\\doc.txt");
Console.WriteLine("Escriba las lineas de texto a almacenar en el fichero.\n" +
"Finalice cada linea pulsando la tecla .\n" +
"Para finalizar solo pulse la tecla .\n");
//Leer la linea de la entrada estandar
str = Console.ReadLine();
while (str.Length != 0)
{
//Escribir la linea leida en el fichero
sw.WriteLine(str);
//Leer la linea siguiente
str = Console.ReadLine();
}
}
catch (IOException e)
{
Console.WriteLine("Error:" + e.Message);
}
finally
{
if (sw != null) sw.Close();
}
}
}
}



Ejemplo 2

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication1
{
public class CLeerBytes
{
public static void Main(string[] args)
{
FileStream fe = null;
char[] cBuffer = new char[81];
byte[] bBuffer = new byte[81];
int nbytes;
try
{
// Crear un flujo desde el fichero texto.text
fe = new FileStream("C:\\Datos\\texto.txt", FileMode.Open, FileAccess.Read);
//Leer del fichero un linea de texto
nbytes = fe.Read(bBuffer, 0, 81);
//Crear un objeto string con el texto leido
Array.Copy(bBuffer, cBuffer, bBuffer.Length);
String str = new String(cBuffer, 0, nbytes);
// Mostrar el texto leido
Console.WriteLine(str);
}
catch (IOException e)
{
Console.WriteLine("Error: " + e.Message);
}
finally
{
//Cerrar el fichero
if (fe != null) fe.Close();
}
Console.ReadLine();
}
}
}

Ejemplo 1

using System;
using System.IO;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
public class CEscribirBytes
{

public static void Main(string[] args)
{
FileStream fs = null;
byte[] buffer = new byte[81];
int nbytes = 0, car;

try
{
//Crear un flujo hacia el fichero texto.txt
fs = new FileStream("C:\\Datos\\texto.txt", FileMode.Create, FileAccess.Write);
Console.WriteLine("Escriba el texto que desea almacenar en el fichero:");
while ((car = Console.Read()) != '\r' && nbytes < buffer.Length)
{
buffer[nbytes] = (byte)car;
nbytes++;
}

//Escribir la linea de texto en el fichero
fs.Write(buffer, 0, nbytes);
}
catch (IOException e)
{
Console.WriteLine("Error: " + e.Message);

}
Console.ReadLine();
}
}
}
}




martes, 2 de diciembre de 2008

examen 3 consola

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
public class PUNTO
{
protected double x;
protected double y;
public PUNTO()
{
x = 0;
y = 0;
}
public double X
{
get { return x; }
set { x = value; }
}
public double Y
{
get { return y; }
set { y = value; }
}
public virtual double area()
{
return 0;
}
public double distancia(double x1, double y1, double x2, double y2)
{
return Math.Sqrt((Math.Pow((x2 - x1), 2)) + (Math.Pow((y2 - y1), 2)));
}
}
public class circulo : PUNTO
{
double radio;
public circulo()
{
radio = 0;
x = 0;
y = 0;
}
public double Radio
{
get { return radio; }
set { radio = value; }
}
public override double area()
{
return Math.PI*(Math.Pow(radio, 2));
}
}
}


class Program
{
static void Main(string[] args)
{
circulo c1 = new circulo();
Console.WriteLine("Introduce los datos del circulo 1");
Console.Write("X: ");
c1.X = double.Parse(Console.ReadLine());
Console.Write("Y: ");
c1.Y = double.Parse(Console.ReadLine());
Console.Write("Radio: ");
c1.Radio = double.Parse(Console.ReadLine());
circulo c2 = new circulo();
Console.WriteLine("\nIntroduce los datos del circulo 2");
Console.Write("X: ");
c2.X = double.Parse(Console.ReadLine());
Console.Write("Y: ");
c2.Y = double.Parse(Console.ReadLine());
Console.Write("Radio: ");
c2.Radio = double.Parse(Console.ReadLine());
Console.WriteLine("\nResultado");
Console.WriteLine("Area circulo 1: {0}", c1.area());
Console.WriteLine("Area circulo 2: {0}", c2.area());
Console.WriteLine("Distancia entre los puntos: {0}", c1.distancia(c1.X, c1.Y, c2.X, c2.Y));
Console.ReadLine();
}
}
}


sábado, 22 de noviembre de 2008

examen 2 consola

using System;
using System.Collections.Generic;
using System.Text;

namespace Examen_2
{
class Estudiante
{
public int estudiante;
float[] calificacion;
int suma;

public Estudiante()
{
suma = 0;
calificacion = new float[5];
estudiante = 0;
}
public void identificacion()
{
Console.WriteLine("Numero de identificacion del alumno:");
estudiante = int.Parse(Console.ReadLine());
}
public void calificaciones()
{
for (int r = 0; r < 5; r++)
{
Console.WriteLine("Calificacion {0}:", r + 1);
calificacion[r] = int.Parse(Console.ReadLine());
suma = suma + (int)calificacion[r];
}
}
public void Promedio()
{
double Prom;
Prom = (double)suma / 5;
Console.WriteLine("El promedio es de: {0}", Prom);
}
class Program
{
static void Main(string[] args)
{
Estudiante e = new Estudiante();

e.identificacion();
e.calificaciones();
e.Promedio();
Console.ReadLine();
}
}
}
}


miércoles, 5 de noviembre de 2008

examen 1 consola

using System;
using System.Collections.Generic;
using System.Text;

namespace Aplicacion_Consola_
{

class ArregloUnidimensional
{
object[] Lista;
public ArregloUnidimensional(int D)
{
Lista = new object[D];
}
public void asignarDato(int Indice, object dato)
{
Lista[Indice] = dato;
}
public object obtenerDato(int Indice)
{
return Lista[Indice];
}
public object[] lista
{
get { return Lista; }
set { Lista = value; }
}
}
class ArregloBidimensional
{
object[,] Matriz;

public ArregloBidimensional(int N, int d)
{
Matriz = new object[N, d];

}
public void asignarDato(int nom, int plan, object dato)
{
Matriz[nom, plan] = dato;
}
public object obtenerDato(int nom, int plan)
{
return Matriz[nom, plan];
}
public object[,] matriz
{
get { return Matriz; }
set { Matriz = value; }
}

}
class Program
{
static void Main(string[] args)
{
object datoNombre;
int suma = 0;
Console.Write("Introduce el numero de Plantas: ");
int Numero = int.Parse(Console.ReadLine());
Console.Write("introduce el numero de Dias a evaluar: ");
int Dias = int.Parse(Console.ReadLine());
ArregloBidimensional B = new ArregloBidimensional(Numero, Dias + 1);
ArregloUnidimensional nom = new ArregloUnidimensional(Numero);
int I, J, datoProd = 0;
for (I = 0; I < Numero; I++)
{
Console.Write("Nombre de la Planta {0}: ", I + 1);
datoNombre = Console.ReadLine();
nom.asignarDato(I, datoNombre);
suma = 0;
for (J = 0; J < Dias; J++)
{
Console.Write("Produccion de los dias: {0} :", J + 1);
datoProd = int.Parse(Console.ReadLine());
B.asignarDato(I, J, datoProd);
suma = suma + datoProd;
}
B.asignarDato(I, J, suma);
}
int mayor = 0;
int renglon = 0;
for (I = 0; I < Numero; I++)
{
suma = (int)B.obtenerDato(I, Dias);
if (suma > mayor)
{
mayor = (int)B.obtenerDato(I, Dias);
renglon = I;
}
}
Console.WriteLine("\n\nEl numero de Planta con mayor produccion es {0}", renglon + 1);
Console.WriteLine("Nombre de la Planta: {0} ", nom.obtenerDato(renglon));
Console.WriteLine("Total de la produccion es {0}", mayor);

for (
I= 0; I < Numero; I++)
{
Console.WriteLine("\n\nNo de Plantas {0}:", I + 1);
Console.WriteLine("Nombre de la Planta {0}:", nom.obtenerDato(I));
Console.WriteLine("Total de la produccion :{0} ", B.obtenerDato(I,Dias));

}
Console.ReadLine();

}
}
}


Practica 7visual

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class FrmEjercicio7 : Form
{


int[,] Matriz;
string[] Nombres;
int R, C;
int M, N;

public FrmEjercicio7()
{
InitializeComponent();
R = C = 0;
M = N = 0;
}

private void button1_Click(object sender, EventArgs e)
{
M = int.Parse(textBox1.Text);
N = int.Parse(textBox2.Text);
Nombres = new string[M];
Matriz = new int[M, N + 1];
textBox1.Enabled = false;
textBox2.Enabled = false;
button1.Enabled = false;
textBox3.Text = (R + 1).ToString();
textBox4.Text = (C + 1).ToString();

textBox5.Focus();


}

private void button2_Click(object sender, EventArgs e)
{
if (R < M && C < N)
{
Matriz[R, C] = int.Parse(textBox5.Text);
Nombres[R] = textBox6.Text;
C++;
textBox6.Enabled = false;


if (C == N)

{
C = 0;
R++;
textBox6.Enabled = true;
textBox6.Clear();
}
if (R != M)
{
textBox3.Text = (R + 1).ToString();
textBox4.Text = (C + 1).ToString();
textBox5.Clear();

textBox5.Focus();

}
else
{
textBox3.Enabled = false;
textBox4.Enabled = false;
textBox5.Enabled = false;
textBox6.Enabled = false;
MessageBox.Show("Todos los datos fueron introducidos");
}
}
}

private void button3_Click(object sender, EventArgs e)
{
int Suma = 0;
listBox1.Items.Add("No. Estacion Responsable Produccion");
for (R = 0; R < M; R++)
{
Suma = 0;

for (C = 0; C < N; C++)
{
Suma += Matriz[R, C];
}
Matriz[R, C] = Suma;
}
for (R = 0; R < M; R++)
{
listBox1.Items.Add((R + 1).ToString() + " " + Nombres[R] + " " + Matriz[R, N].ToString());

}
}

}
}

Practica 6visual

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Ejercicio_6
{
public partial class FrmEjercicio6 : Form
{
public FrmEjercicio6()
{
InitializeComponent();
}

int[,] num = new int[4, 5];
int[] ordenar = new int[20];
int ren = 0;
int col = 0;
int p, i, m, r, c, j, k,me;
private void cmdtabla_Click(object sender, EventArgs e)
{

cmdnum.Enabled = true;
cmdtabla.Enabled = false;

//creacion de tabla aleatoria
Random aleatorio = new Random();

for (ren = 0; ren < 4; ren++)
{
for (col = 0; col < 5; col++)
{
num[ren, col] = aleatorio.Next(50);

txttabla.Text = txttabla.Text + num[ren, col] + "\t";
}
txttabla.Text = txttabla.Text + "\r\n";
}

}

private void cmdnum_Click(object sender, EventArgs e)
{
txttabla.Clear();
lblDespliegue.Visible = true;

for (p = 1; p <= 20; p++)
{
me = num[0, 0];
r = 0;
c = 0;
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
if (num[i, j] < me)
{
me = num[i, j];
r = i;
c = j;
}
}
}
ordenar[k] = me;
num[r, c] = 9999;
k++;

}

for (k = 0; k < 20; k++)
{
txttabla.Text = txttabla.Text + ordenar[k].ToString() + ", ";
}

}

private void cmdLimpiar_Click(object sender, EventArgs e)
{
cmdtabla.Enabled = true;
cmdnum.Enabled = false;
lbltabla.Visible = true;
lblDespliegue.Visible = false;
txttabla.Text = "";
txttabla.Clear();

}

private void cmdSalir_Click(object sender, EventArgs e)
{
Close();
}

}
}

Practica 5visual

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Practica5_visual
{
public partial class FrmEjercicio5 : Form
{
public FrmEjercicio5()
{
InitializeComponent();
}
int NumA = 0, NumC = 0, R = 0, C = 0;
int Suma = 0,b=0;
string[] Nombres;
int[,] Calificaciones;
double[] Promedio;

private void cmdCapturar_Click(object sender, EventArgs e)
{





if (R < NumA)
{
if (b == 0)
{
Nombres[R] = txtNombre.Text;
lstNombres.Items.Add(Nombres[R].ToString());
txtNombre.Enabled = false;
b = 1;
}
if (C < NumC)
{
txtCalificaciones.Enabled = true;
Calificaciones[R, C] = System.Int16.Parse(txtCalificaciones.Text);
txtNota.Text=txtNota.Text.ToString()+","+Calificaciones[R,C].ToString()+"\t";
txtCalificaciones.Clear();
txtCalificaciones.Focus();
C++;

if (C == NumC)
{
txtNota.Text = txtNota.Text + "\r\n";
txtNombre.Enabled = true;
txtNombre.Clear();
txtNombre.Focus();
R++;
b = 0;
C = 0;
}

}

}



if (R == NumA)
{
txtNombre.Enabled = false;
txtCalificaciones.Enabled = false;
for (R = 0; R < NumA; R++)
{

Suma = 0;
for (C = 0; C < NumC; C++)
{
Suma = Suma + Calificaciones[R, C];

}
Promedio[R] = Suma / NumC;
lstPromedio.Items.Add(Promedio[R].ToString());
}

}

}





private void cmdLimpiar_Click(object sender, EventArgs e)
{
txtCalificaciones.Clear();
txtNombre.Clear();
txtNumA.Enabled = true;
txtNumC.Enabled = true;
lstNombres.Items.Clear();
lstPromedio.Items.Clear();
txtNota.Clear();
txtNumA.Clear();
txtNumC.Clear();
txtNumA.Focus();
}

private void cmdCap_Click(object sender, EventArgs e)
{
NumA = System.Int16.Parse(txtNumA.Text);
NumC = System.Int16.Parse(txtNumC.Text);
txtNumA.Enabled = false;
txtNumC.Enabled = false;

Nombres = new string[NumA];
Calificaciones = new int[NumA, NumC];
Promedio = new double[NumA];
}
}
}


Practica 4visual

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace Prcatica4a_Visual
{

public partial class FrmEjercicio4 : Form
{
rectangulo rect;
circulo circ;
Triangulo trian;
public FrmEjercicio4()
{

rect = new rectangulo();
circ = new circulo();
trian = new Triangulo();
InitializeComponent();
txtanchorect.Text = "0";
txtlargorect.Text = "0";
}

private void cmdcalculo_Click(object sender, EventArgs e)
{

int opc=0;
opc = System.Int32.Parse(txtopcion.Text);


if (opc == 1)
{
txtlargorect.Visible = true;
txtanchorect.Visible = true;
lbllargo.Visible = true;
lbl12.Visible = true;
lblbase.Visible = true;
lblradio.Visible = true;
lblaltura.Visible = true;
txtanchorect.Focus();
rect.Ancho= Double.Parse(txtanchorect.Text);
rect.Largo = Double.Parse(txtlargorect.Text);


lblareas.Text = "Area = " +rect.area().ToString();
lblperimetros.Text = "Perimetro= " + rect.perimetro().ToString();

}
else if (opc == 2)
{

txtanchorect.Visible = true;
txtlargorect.Visible = true;
txtlargorect.Focus();
lblbase.Visible = true;
lbllargo.Visible = true;
trian.altura = Double.Parse(txtanchorect.Text);
trian.basetrieangulo = Double.Parse(txtlargorect.Text);
lblareas.Text = "El area del triangulo es: " + trian.areatriangulo().ToString();
}
else if (opc == 3)
{

txtlargorect.Focus();
lblradio.Visible = true;
txtlargorect.Visible = true;
circ.Radio = Double.Parse(txtlargorect.Text);
lblareas.Text = "El area del Circulo es: " + circ.Area().ToString();
lblperimetros.Text = "La circuferencia es: " + circ.Circunferencia().ToString();
}
else
{
MessageBox.Show("Tu opcion no esta en el menu....elige bien");
txtopcion.Focus();
txtopcion.Clear();

}

}


}
}

Practica 3visual

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class FrmEjercicio3 : Form
{
int Ceconomica = 10;
int i = 0;
int I = 10;
int[] avion = new int[30];
int Primerac = 0;
public FrmEjercicio3()
{
InitializeComponent();
}

private void cmdAvion_Click_1(object sender, EventArgs e)
{
if (PrimeraClase.Checked)
{
if (Primerac < 10)
{

label2.ForeColor = System.Drawing.Color.Green;
label2.Text="Asiento # "+ (i+ 1)+ " Primera Clase";

avion[Primerac] = 1;
Primerac++;
i++;

}

else
{
MessageBox.Show("Primera Clase Llena \n\nSi decea seleccione la opcion de Clase economica");
PrimeraClase.Enabled = false;
PrimeraClase.Checked = false;

}

}



if (Claseconomica.Checked)
{

if (Ceconomica < 30)
{

label3.ForeColor = System.Drawing.Color.Green;
label3.Text="Asiento # " + (I + 1) + " Clase Economica";
avion[Ceconomica] = 1;
Ceconomica++;
I++;


}

else
{


MessageBox.Show("Clase Economica Llena \n\nSi decea seleccione la opcion de Primera clase");
Claseconomica.Enabled = false;
Claseconomica.Checked = false;

}
}

}
}
}



Practica 2visual

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
double[] corriente;
double[] resistencia;
double[] potencia;
int i;
double total;
public Form1()
{
corriente = new double[10];
potencia = new double[10];
resistencia = new double[10] { 26, 40, 44, 50, 66, 89, 10, 32, 5, 18 };

i = 0;
total=0.0;
InitializeComponent();
lboxDesplegar.Items.Add("Corriente Resistencia Potencia ");
}


private void cmdAceptar_Click(object sender, EventArgs e)
{
if (i < 10)
{
corriente[i] = double.Parse(textBox1.Text);
potencia[i] = resistencia[i] * Math.Pow(corriente[i], 2);
total += potencia[i];
lboxDesplegar.Items.Add(corriente[i].ToString() + " " + resistencia[i] + " " + potencia[i]); textBox1.Clear();
textBox1.Focus();
i++;
}

else
{

lboxDesplegar.Items.Add(" Total potencia =" + total); MessageBox.Show("excede los 10 datos"); i = 0;
textBox1.Clear();
textBox1.Enabled = false;
}
}
}
}


martes, 4 de noviembre de 2008

Practica 1visual

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class FrmEjercicio1 : Form
{
double[] corriente;
double[] resistencia;
double[] potencia;
int I;

public FrmEjercicio1()
{
corriente = new double[10];
potencia = new double[10];
I =0;

InitializeComponent();
}

private void cmdAceptar_Click(object sender, EventArgs e)
{
if (I < 10)
{
corriente[I] = double.Parse(textBox1.Text);
lbDesplegar.Items.Add(corriente[I].ToString());
textBox1.Clear();
textBox1.Focus();

I = I + 1;
}
else
{
MessageBox.Show("Solo aceptan 10 datos");
}


}
}
}

jueves, 30 de octubre de 2008

Practica 9

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int NG = 0, NoAlu = 0, mat = 0;
int suma = 0;
double promedio = 0;

Console.Write("\nCaptura numero de grupos: ");
NG = System.Int32.Parse(Console.ReadLine());
Console.Write("\nCaptura numero de alumnos: ");
NoAlu = System.Int32.Parse(Console.ReadLine());
Console.Write("\nCaptura numero de materias por alumno: ");
mat = System.Int32.Parse(Console.ReadLine());

int[, ,] kodex = new int[NG, NoAlu, mat];

for (int g = 0; g < NG; g++)
{
for (int a = 0; a < NoAlu; a++)
{
Console.Clear();
Console.WriteLine("Las calificaciones de los alumnos del grupo son{0}:", g + 1);
for (int m = 0; m < mat; m++)
{
Console.Write("\nintroduce calificacion {0} de alumno {1}: ", m + 1, a + 1);
kodex[g, a, m] = System.Int32.Parse(Console.ReadLine());
}
}
}
for (int g = 0; g < NG; g++)
{
Console.WriteLine("\nPromedio de los alumnosdel grupo{0}:", g + 1);
for (int a = 0; a < NoAlu; a++)
{
suma = 0;
for (int m = 0; m < mat; m++)
suma = suma + kodex[g, a, m];
{
promedio = suma / mat;
Console.WriteLine("Promedio de alumno{0}: {1}", a + 1, promedio);
}
}
Console.ReadLine();
}



}
}
}





lunes, 20 de octubre de 2008

Practica 8

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
double[,,] compañia;
int numS, noDep, dias;
Console.Write("Introduce el numero de sucursales:");
numS = int.Parse(Console.ReadLine());
Console.Write("Introduce el numero de departamentos:");
noDep = int.Parse(Console.ReadLine());
Console.Write("Introduce el numero de dias:");
dias = int.Parse(Console.ReadLine());
compañia = new double[numS, noDep, dias];
int p, s, t;
for (p = 0; p < numS; p++)
{
Console.WriteLine("Sucursal{0}: ", p + 1);
for (s = 0; s < noDep; s++)
{
Console.WriteLine("Departamento{0}: ", s + 1);
for (t = 0; t < dias; t++)
{
Console.Write(" Dia{0}:", t + 1);
compañia[p,s,t] = double.Parse(Console.ReadLine());
}
}
}
double suma = 0.0;
for (p=0; p < numS; p++)
{
suma = 0.0;
for (s=0; s < noDep; s++)
{
suma = 0.0;
for (t=0; t < dias; t++)
{
suma+ = compañia[p,s,t];
}
}
Console.WriteLine(" Numero de Sucursal:{0} ", p + 1);
Console.WriteLine("La venta total es:{0} ", suma);
}
Console.ReadLine();

}
}
}





Practica 7

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class ArregloBidimencional
{
object[,] arreglo;

public ArregloBidimencional(int m, int nm)
{
arreglo = new object[m, nm];

}
public void asignarDato(int reng, int col, object dato)
{
arreglo[reng, col] = dato;
}
public object obtenerDato(int reng, int col)
{
return arreglo[reng, col];
}
public object[,] Arreglo
{
get { return arreglo; }
set { arreglo = value; }
}

}
}
class ArregloUnidimencional
{
object[] arreglo;
public ArregloUnidimencional (int i)
{
arreglo = new object [i];
}
public void asignarDato(int j, object k)
{
arreglo[j] = k;
}
public object obtenerDato(int i)
{
return arreglo[i];
}
public object[] Arreglo
{
get { return arreglo; }
set { arreglo = value; }
}
}
}
class Program
{
static void Main(string[] args)
{
object datoNombre;
int suma = 0;

Console.Write("Introduce el numero de estaciones:");
int num = int.Parse(Console.ReadLine());
Console.Write("Introduce el numero de meses a evaluar:");
int meses = int.Parse(Console.ReadLine());
ArregloBidimencional B = new ArregloBidimencional(num, meses + 1);
ArregloUnidimencional nom = new ArregloUnidimencional(num);
int r, c, datoProd=0;
for (r = 0; r < num; r++)
{
Console.Write("Nombre del responsable de la estacion{0}:", r + 1);
datoNombre = Console.ReadLine();
nom.asignarDato(r, datoNombre);
suma = 0;
for (c = 0; c < meses; c++)
{
Console.Write("Produccion del mes{0}:", c + 1);
datoProd = int.Parse(Console.ReadLine());
B.asignarDato(r, c, datoProd);
suma = suma + datoProd;
}
B.asignarDato(r, c, suma);
}
int mayor = 0;
int renglon = 0;
for (r = 0; r < num; r++)
{
suma = (int)B.obtenerDato(r, meses);
if (suma > mayor)
{
mayor = (int)B.obtenerDato(r, meses);
renglon = r;
}
}
Console.WriteLine("\n\nEl numero de estacion con mayor produccion es{0}:", renglon + 1);
Console.WriteLine("Nombre del responsable{0}:", nom.obtenerDato(renglon));
Console.WriteLine("Total de la produccion:{0}", B.obtenerDato(r, meses));

Console.ReadLine();

}


}
}



Practica 6

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int [,] m = new int[4,5];
int[] ordenar = new int[20];
int I, J, R, C, P, menor, K = 0;
Console.WriteLine("introduce los siguientes enteros");
for (I=0; I < 4; I++)
{
for (J=0; J < 5; J++)
{
Console.Write("m[{0},{1}]:",I,J);
m[I, J] = int.Parse(Console.ReadLine());
}
}
for(P=1; P <= 20; P++)
{
menor = m [0,0];
R=0;
C=0;
for (I=0; I < 4; I++)
{
for(J=0; J < 5; J++)
{
if(m[I,J] < menor)
{
menor = m[I,J];
R=I;
C=J;
}
}
}
ordenar[K]=menor;
m[R,C]=9999;
K++;
}
Console.WriteLine("elementos ordenados de la matriz ordenados");
for(K=0; K < 20; K++)
{
Console.Write("{0,4}", ordenar[K]);
}
Console.ReadLine();
}

}
}





Practica 5

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int n, m, r, c;
double suma = 0;
string[] nombres;
double[,] notas;

Console.WriteLine("introduce el numero de alumnos a registrar");
n = int.Parse(Console.ReadLine());

Console.WriteLine("Introduce el numero de calificaciones a registrar por cada alumnno");
m = int.Parse(Console.ReadLine());

nombres = new string[n];
notas = new double [n,m];
Console.WriteLine("Introduce los siguientes datos");

for (r=0; r < n; r++)
{
Console.WriteLine("Nombre Alumno {0}", r + 1);
nombres[r]= Console.ReadLine();

for (c=0; c < m; c++)
{
Console.WriteLine("Calificacion{0}", c + 1);
}
}

Console.WriteLine("Nombre del Alumno Calificaciones Promedio");
Console.WriteLine("----");

for (r=0; r < n; r++)
{
Console.Write("{0}", nombres[r]);
suma = 0.0;
for (c=0; c < m; c++)
{
Console.Write("\t{0}", notas[r, c]);
suma = suma + notas [r, c];
}
Console.WriteLine("\t\t\t {0}", suma / m);
}
Console.ReadLine();
}

}
}




martes, 7 de octubre de 2008

Practica 4b

Programa que clasifique cada una de las ciudades que son 5 y con cada número de empleado con los siguientes datos: (nombre del empleado, ciudad, número del empleado).

corrida de escritorio

using System;
using System.Collections.Generic;
using System.Text;

namespace WindowsApplication1
{
class Empleado
{
String NombreEmpleado;
int Ciudad;
int No_Empleado;
public Empleado (String Name, int City, int Number)
{
NombreEmpleado = Name ;
Ciudad = City;
No_Empleado = Number;
}
public Empleado()
{
NombreEmpleado= " ";
No_Empleado= 0;
Ciudad= " ";
}
public String nombreempleado
{
get { return NombreEmpleado; }
set { NombreEmpleado = value; }

}

public int ciudad
{
get { return Ciudad; }
set { Ciudad = value; }

}

public int no_empleado
{
get { return No_Empleado; }
set { No_Empleado = value;}

}


}

}

namespace WindowsApplication1
{
public partial class FrmEjercicio4b : Form
{
Empleado E1;
Empleado[] Empresa; int I;

public FrmEjercicio4b()
{
E1 = new Empleado();
I = 0;
InitializeComponent();
}

private void cmdAceptar_Click(object sender, EventArgs e)
{
int N = int.Parse(txtbNo_Datos.Text);
Empresa = new Empleado[N];
txtbNo_Datos.Enabled = false;
txtbName.Focus();

}
public void Ok Datos()
{
E1.nombreempleado = txtbName.Text;
E1.Ciudad = int.Parse(txtbCity.Text);
E1.no_empleado = int.Parse(txtnNumero.Text);
Empresa[I] = E1;
I++;
}

}
}


domingo, 5 de octubre de 2008

Practica 4a Rectangulo

Programa que saca el area y el perimetro
de un rectangulo, dando como unicos datos
el largo y el ancho del rectangulo.

corrida de escritorio

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Rectangulo
{
double largo, ancho;
public Rectangulo(double w, double h)
{
ancho = w;
largo = h;
}
public Rectangulo()
{
ancho = 1;
largo = 1;
}
public double area()
{
return largo * ancho;
}
public double perimetro()
{
return 2 * (largo + ancho);
}
public double Ancho
{
get { return ancho; }
set { ancho = value; }
}
public double Largo
{
get { return largo; }
set { largo = value; }
}
}



class Program
{
static void Main(string[] args)
{
Rectangulo unRect = new Rectangulo(10, 20);
Console.WriteLine("Datos de un rectangulo uno ");
Console.WriteLine(" ancho =" + unRect.Ancho + " ," + "largo= " + unRect.Largo);
Console.WriteLine("Area = {0} , Perimetro= {1}", unRect.area(), unRect.perimetro());
Console.WriteLine("\n\nDatos de un rectangulo dos ");
Rectangulo dosRect = new Rectangulo();
Console.WriteLine("\n ancho={0},largo={1} ", dosRect.Ancho, dosRect.Largo);
Console.WriteLine("Area={0} , perimetro= {1} ", dosRect.area(), dosRect.perimetro());

double L1, A1;
Console.WriteLine("\n\nDatos de un rectangulo tres ");
Console.Write("\n\nIntroduce el largo de un rectangulo : ");
L1 = double.Parse(Console.ReadLine());
Console.Write("Introduce el ancho de un rectangulo : ");
A1 = double.Parse(Console.ReadLine());
Rectangulo tresRect = new Rectangulo(A1, L1);

Console.WriteLine("\n ancho={0},largo={1} ", tresRect.Ancho, tresRect.Largo);
Console.WriteLine("Area={0} , perimetro= {1} ", tresRect.area(), tresRect.perimetro());


Console.ReadLine();
}
}
}


martes, 30 de septiembre de 2008

Practica 3

Programa que asigne los asientos, en cada vuelo, del único avión de una aerolínea (capacidad : 30 asientos).
Su programa debe desplegar el siguiente menú de alternativas:
digite 1 para primera clase
digite 2 para económico

Si la persona digita 1, el programa debe asignar un asiento en la sección de primera clase (asientos del 1 al 10). Si la persona digita 2, el programa debe asignar un asiento en la sección económica (asientos 11 al 30).

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class arreglo
{
int[] datos;
int i, cPrimera, cEconomico;
public arreglo(int n)
{
datos = new int[n];
for (i = 0; i < 30; i++)
{
datos[i] = 0;
}
i = cPrimera = 0;
cEconomico = 10;
}
public void EstablecerDato(int j)
{
datos[j] = 1;
}
public int obtnerDato(int j)
{
return datos[j];
}
public int[] Datos
{
get { return datos; }
set { datos = value; }
}
public int I
{
get { return i; }
set { i = value; }
}
public int Cprimera
{
get { return cPrimera; }
set { cPrimera = value; }
}
public int Ceconomico
{
get { return cEconomico; }
set { cEconomico = value; }
}
}



class Program
{
static void Main(string[] args)
{
int opcion;
char opc;
arreglo avion = new arreglo(30);
do
{
Console.Clear();
Console.WriteLine("\nPor favor, digite 1 para primera clase ");
Console.WriteLine("\nPor favor digite 2 para economico");
opcion = int.Parse(Console.ReadLine());
if (opcion == 1)
{
if (avion.Cprimera < 9)
{
avion.EstablecerDato(avion.Cprimera);
Console.WriteLine("No de asiento {0}", avion.Cprimera + 1);
Console.WriteLine("pase de abordar de primera clase");
avion.Cprimera++;
}
else
{
Console.WriteLine("Primera clase no tiene asientos disponibles");
Console.WriteLine("Desea en clase economica (s/n): ");
opc = char.Parse(Console.ReadLine());
if (opc == 's' || opc == 'S')
{
if (avion.Ceconomico < 30)
{
avion.EstablecerDato(avion.Ceconomico);
Console.WriteLine("No de asiento {0}", avion.Ceconomico + 1);
Console.WriteLine("pase de abordar clase economica");
avion.Ceconomico++;
}
}
else
{ Console.WriteLine("el siguiente vuelo parte en tres horas"); }
}
}
else
{
if (opcion == 2)
{
if (avion.Ceconomico < 29)
{
avion.EstablecerDato(avion.Ceconomico);
Console.WriteLine("No de asiento: {0} ", avion.Ceconomico + 1);
Console.WriteLine("pase de abordar de clase economica");
avion.Ceconomico++;
}
else
{
Console.WriteLine("Clase Economica no tiene asientos disponible ");
Console.WriteLine("desea en Primera clase (s/n) : ");
opc = char.Parse(Console.ReadLine());
if (opc == 's' || opc == 'S')
{
if (avion.Cprimera < 9)
{
avion.EstablecerDato(avion.Cprimera);
Console.WriteLine("No de asiento : {0} ", avion.Cprimera + 1);
Console.WriteLine("pase de abordar Primera clase");
avion.Cprimera++;
}
}
else
{
Console.WriteLine("el siguiente vuelo parte en tres horas");
}
}
}

else
{
Console.WriteLine("Presiono opcion equívocada");
}
}
Console.Write("deseas continuar (s/n) : ");
opc = char.Parse(Console.ReadLine());
}
while (opc == 'S' || opc == 's');

}
}
}