Autor Tema: c# Ejercicios de CLASES,campos y funciones y constructores y dudas  (Leído 13521 veces)

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Planteamiento del Problema

Se necesita de un programa que sirva para capturar el nombre y los valores de las ventas mensuales de un vendedor. Son 12 valores, uno por cada mes del año.
El programa debe repetirse para tantos vendedores como el usuario desea ingresar. Después de ingresar e imprimir los datos de un vendedor debe preguntarse al usuario si desea continuar o salir del programa. Cuando el usuario seleccione salir debe imprimirse un gran total de las ventas registradas en toda la corrida del programa.
Se requiere realizar el programa utilizando POO, manejando en archivos separados la declaración de la clase, la declaración de las funciones de la clase y el programa cliente que realice lo requerido.



Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tiempo
{
    class imprimirTiempo
    {
        string  nombreVendedor;
        int sumatorio = 0;
        int decision;
        public imprimirTiempo(int[]ventasMes)
        {
            Console.WriteLine("Ingrese datos de ventas del vendedor:");
            Console.WriteLine("Nombre del vendedor:");
            nombreVendedor = Console.ReadLine();
            for (int i = 0; i < 12;i++ )
            {

                Console.WriteLine("Introduzca el monto de ventas del mes:");
                ventasMes[i] = int.Parse(Console.ReadLine());

                sumatorio = ventasMes[i] + sumatorio;
               
               if(i == 11)
               {
                   Console.WriteLine("Las ventas anuales totales del vendedor " + nombreVendedor + " son : " + sumatorio);
                   Console.WriteLine("Digite -1 para salir, o 1 para continuar: ");
                   decision = int.Parse(Console.ReadLine());
                   if (decision == 1)
                   {
                       i = -1;
                       continue;
                   }
                   if (decision == -1)
                   {
                       Console.WriteLine("Gran total de ventas registradas: "+sumatorio);
                   }
               }


            }
           
           
        }

    }
}

CLASE PRINCIPAL

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tiempo
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] prueba = new int[12];
            imprimirTiempo hola = new imprimirTiempo(prueba);
           
           
        }
    }
}


El programa funciona correctamente, pero me queda  una dudilla  ???

A ver yo hice este ejercicio solo con un constructor y cree una nueva instancia en la clase principal(Tiempo)  :P

1.) en esta línea   public imprimirTiempo(int[]ventasMes)  antes la puse así   public int imprimirTiempo(int[]ventasMes)  pero me daba error, y hacia return a una variable de tipo int, osea que devolvia integer ¿por que ese error? el error me lo daba cuando llamaba a la instancia  >:(

AÑADIDO: ya se la respuesta, es por que un constructor no permite la devolución de un valor

2.)Este ejercicio esta bien así? es decir cada vez que hago métodos y clases la duda que tengo siempre es que no se si se puede dividir mas el código, es decir podría quitar parte de ese código y meterlo en otro constructor o algo así? yo creo que no, creo que se debe de trabajar en ese mismo siempre, por lo menos para este ejercicio no?


3.) Vi en un videocurso que utilizaban la libreria Shel32.dll por que es capaz de trabajar con archivos, pero mi duda es que busque por internet sobre trabajar con archivos en c# y no me sale Shell32, es decir no encuentro información sobre esa librería.. entonces estoy buscando en google pero no me aparece nadie o alguna pagina que con Shell32 podría  ??? puse esto en google: c# SABER LA DURACION DE UN VIDEO
Creo que con eso se puede.
http://msdn.microsoft.com/es-es/library/6yk7a1b0.aspx

 pero es de las librerias shell32 que es?
« Última modificación: 02 de Noviembre 2014, 13:55 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:c# Ejercicios de CLASES,campos y funciones y constructores y dudas
« Respuesta #1 en: 02 de Noviembre 2014, 12:31 »
Hola, para este programa no veo la clase con el static void Main(string[] args) por lo que no he podido compilar el programa. ¿Puedes pegar el resto del código? (aunque sólo sean 4 líneas, el caso es que tú puedes saber que son cuatro líneas pero para revisar el código no podemos saber si son 4 o si son 40 si no lo vemos :) Salu2

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Re:c# Ejercicios de CLASES,campos y funciones y constructores y dudas
« Respuesta #2 en: 02 de Noviembre 2014, 13:18 »
No puedo modificar el mensaje principal  :-\

de todas manera lo pongo aquí:

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tiempo
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] prueba = new int[12];
            imprimirTiempo hola = new imprimirTiempo(prueba);
           
           
        }
    }
}

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:c# Ejercicios de CLASES,campos y funciones y constructores y dudas
« Respuesta #3 en: 02 de Noviembre 2014, 14:06 »
Hola, el problema que veo aquí es el mismo que en el otro programa que te comentaba: el diseño. ¿Qué diferencia hay entre la clase imprimirTiempo y la clase Program? Si te fijas no sirve de nada tener dos clases, realmente simplemente usas la clase Program para llamar a la clase imprimirTiempo. Estás montando un programa que funciona pero que no está bien diseñado.

Las cuestiones de diseño son muchas y variadas, no podríamos hablar de todo lo que conlleva en un sólo tema de foro, o en torno a un programa, por eso te recomendaba el curso de java donde esos conceptos se van estudiando y trabajando poco a poco (http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188)

Seguramente hay otros cursos donde se expliquen esos conceptos, pero no sabría decirte cuál puedes encontrar donde se explique todo eso sobre c#, algunos tiene que haber supongo. Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".