• Sábado 11 de Mayo de 2024, 14:22

Autor Tema:  Re: Amiguitos les pido ayuda con esto  (Leído 2115 veces)

ana carolina

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Amiguitos les pido ayuda con esto
« en: Martes 6 de Mayo de 2003, 08:08 »
0
Tengo que hacer un codigo de esto
 
El administrador de una tienda de música desea automatizar el proceso de cobro a sus clientes, por esto le solicita a Ud. que elabore un programa en C++ que efectúe las operaciones que hagan mas eficiente el cobro, así:
 
 
Según la popularidad del artista, los discos se clasifican en 4, y de acuerdo a esto varía el precio de los discos :
 
DISCOS   PRECIO NETO
CLASE A   30000
CLASE B   20000
CLASE C   15000
CLASE D   10000
 
 
La tienda también ofrece descuentos, de acuerdo al cliente y a la cantidad de discos:
 
Según el cliente:
 
NORMAL   5 %
ESPECIAL   15 %
 
 
Según el número de discos:
 
 3 < =  Número de discos < 5   10 %
5 < =  Número de discos < 8   15 %
Número de discos > = 8   20 %
 
 
(Los descuentos se hacen sobre el precio neto del disco)
 
El programa debe pedir los datos pertinente y al final debe entregar:
 
•   Número de discos vendidos al cliente.
•   Tipo de cliente
•   Total descuento
•   Total a pagar
 
 
Se desea que el programa solo termine cuando el usuario (cajero) así lo desee, o sea, que si el programa terminó de hacer los cálculos de una venta, y el usuario desea continuar, entonces el programa debe regresar a la parte inicial para realizar las operaciones de una nueva venta .

ana carolina

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Amiguitos les pido ayuda con esto
« Respuesta #1 en: Martes 6 de Mayo de 2003, 08:10 »
0
si alguien me puede explicar le estoy muy agradecida  :jumpie:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Amiguitos les pido ayuda con esto
« Respuesta #2 en: Martes 6 de Mayo de 2003, 16:02 »
0
Esta es la idea de loq ue debe hacer el programa:

etapas

a-preguntar que clase de cliente es
b-preguntar cuantos discos y de que clase de discos desea comprar
c-calcular

etapa a-clase de clientes
se debe mostrar en pantalla las clases de clientes hay y preguntar al cliente de que clase es el.

b-preguntar cuantos discos y de que clase de discos desea comprar

Se muestran en pantalla las clases de discos y se pregunta cuantos disco y de que clase...se hace la multiplicacion y se guarda el resultado en una variable,

calculos
luego teniendo en cuenta estos datos se calculan los descuentos...tener en cuenta cantidad de discos, clase de disco, y clase de cliente.Mostrar en pantalla resultados.

Esto es lo que debe de hacer el rpograma, pero debes tebner en cuenta que una vez hechos los calculos debes pregunstr sui desea volver a comprar, si responde si..tu programa vuelve a preguntar si es espoecial o normal, sio responde no tu programa se sale..

b-preguntar cuantos discos y de que clase de discos desea comprar.
En resumen tu programa queda asi:

 
Código: Text
  1.  
  2. int main()
  3. {
  4.   int cantidad=0, valor=0, canttotal=0,valtotal=0;
  5.   int resp=0, esp=0;
  6.   int decesp=0, desccant=0;
  7.   int siguecompra=0;
  8.  
  9.   while(resp==0)
  10.   {
  11.      //dentro de este bucle se controla si desea seguir  o no
  12.      
  13.    ptintf("es cliente  1normal, 2.especial");
  14.    scanf("%d",&esp);
  15.      
  16.     if (esp==2)//descuento segun si es especial o no
  17.        descesp=15
  18.     else
  19.        desesp=5;
  20.    /*dentro de este bucle se controlan las compras*/
  21.    while(siguecompra=0)
  22.    {
  23.           //mostrar en pantalla los datos
  24.           //pedir datos de cantidad
  25.           //pedir datos de tipo de disco
  26.           //establecer decuento segun cantidad
  27.           //establecer descuento segun tipo de cliente(ya cklculado al comienzo)
  28.           //hacer los calculos y acumularlos encaso de que se quiera seguir comprando
  29.           printf("otra compra 1.no 0.si");
  30.           scanf("%d",&siguecompra);
  31.    }
  32.    // mostrar Número de discos vendidos al cliente.
  33.   // Tipo de cliente
  34.   // Total descuento
  35.   //Total a pagar
  36.    printf("otra compra 1.no 0.si");
  37.    scanf("%d",&resp);
  38.   }
  39.    //fin
  40.    return 1;
  41. }
  42.  
  43.  
  44.  

Bueno este fue a groso modo el bosquejo de tu programa..si tienes alguna duda no dudes en hacermela saber que con gusto te ayudare.

Chau

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

ana carolina

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Amiguitos les pido ayuda con esto
« Respuesta #3 en: Martes 6 de Mayo de 2003, 17:47 »
0
Juan Te estoy muy agradecida:

lei tu perfil y me di cuenta que sos de colombia, yo tambien, soy de medellin, y estudio en la Universidad de Antioquia, es mi primer materia de Computadores I y laboratorio, nos pusieron a hacer este codigo, pero solo nos han enseñado, la funcion IF, la funcion while no la han explicado, por eso es que estoy en problemas.

Juan, sera posible que te pueda seguir escribiendo a tu email, para que me colabores con algunas dudas que tengo?

Muchas Gracias :kiss:

Att
Ana

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Amiguitos les pido ayuda con esto
« Respuesta #4 en: Martes 6 de Mayo de 2003, 17:58 »
0
claro que me puedes escribir al mail, aunque preferirira que tambien lo hicieras en el foro, porque al solucionar tus inquietudes tambien se pueden solucionar las de otras pesonas ..no crees?... de todos modos puedes escribicrme, siempre es rico tener amigos cerca.

Con respecto a lo del while...puedes utilizar esto otro, pero se supone que va en contra de los princiopios de programacion estructurada..de todos modos como no te han enseñado más...

while(esp==0)
{
...
...
}

cambialo por

bandera:
...
...
...
if(esp==0)
  goto bandera;


esto hace lo mismo que el while
espero que te sirva de mucho .

chauu


Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

ana carolina

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Amiguitos les pido ayuda con esto
« Respuesta #5 en: Martes 6 de Mayo de 2003, 18:34 »
0
Hola Juan.

Bueno entonces te voy a decir las inquietudes que tengo respecto a este codigo.

1) Tengo que hacer el programa en turbo c++ , hay unas partes que pusiste pero no entiendo como:
scanf("%d",&esp);

2)Donde colocaste una instruccion dentro de / / queres decir que hay tengo que completar el codigo con las operaciones?

3)al principio del codigo te faltaron las librerias conio.h y iostream.h?

4) he visto algunos programas con una introduccion dentro de un cuadro, me podrias decir como se hace?, o me podes dar una recomendacion para hacer una buena presentacion del programa?

Gracias

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Amiguitos les pido ayuda con esto
« Respuesta #6 en: Martes 6 de Mayo de 2003, 18:56 »
0
1-Tengo que hacer el programa en turbo c++ , hay unas partes que pusiste pero no entiendo como:
scanf("%d",&esp);

scanf captura un valor digitado en la pantalla y lo uarda en una variable, el & es porque trabaja por referencia..no te dire mucho de eso de "referencia" para no complicarte, en este caso lo que digiten en pantalla se guarda en la variable esp.

2-Donde colocaste una instruccion dentro de / / queres decir que hay tengo que completar el codigo con las operaciones?

si, de hecho si tu colocas en c estas dos // lo que escribas en frente son solo comentarios y no cuentan en el programa.

3-al principio del codigo te faltaron las librerias conio.h y iostream.h?

si y no.... si fuera un programa si, de hecho deberia haber colocado
#include<stdio.h>

conio.h actualmente ya no es necesario pero en turboc que no es muy actual si es necesario.  iostream... bueno no es c standart asi que no lo uso..pero he visto que casi todo el mundo si lo usa.

4) he visto algunos programas con una introduccion dentro de un cuadro, me podrias decir como se hace?, o me podes dar una recomendacion para hacer una buena presentacion del programa?

Eso se hace con la funcion printf, escribiendo caracteres ascii:  
desde el caracter 191 hasta el 197
y desde 200 hasta 206
y desde 185 a 188..

que que es esto.. si en turbo c precionas ALT + uno de estos nujmeros..obtendras partes del borde de un cuadro, asi que si colocas y ordenas esto dentro de printf, te podras dibujar el cuadro.

Esto es la manera mas sencilla de hacer esa presentacion.

Recuerda que el codigo que te coloque arriba es solo un modelo de guia, debes basarte en este modelo para poder hacer tu programa mas facilmente, porque si observas ese modelo por si solo no hace nada, si tienes problemas en el desarrollo del programa me cuentas y te voy ayudando en la medida que mi trabajo me lo permita.


Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

ana carolina

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Amiguitos les pido ayuda con esto
« Respuesta #7 en: Jueves 8 de Mayo de 2003, 17:51 »
0
Juan kis:

Te pido disculpas, por que mi compañero de trabajo es algo intenso, y se adelanto a escribirte, la verdad tenia pensado recibir la clase en la U sobre el condicional mientras, pero aun no lo vi, por lo que empece a adelantar el trabajo sin el while y llegue a esto:  

  #include <iostream.h>
  #include <conio.h>
  void main()
  {
  float cantda,cantdb,cantdc,cantdd;
  float valorda,valordb,valordc,valordd;
  float tipoclien,descesp,totald,descant,valortotald;
  clrscr();
  textcolor(4);textbackground(7);
  gotoxy(20,10);
  textcolor(4);textbackground(7);
  cout<<"El Cliente Es Normal(1) o Especial(2)?  1 o 2 ?  ";cin>>tipoclien;
  if (tipoclien=1)
   {descesp=5;}
    else
     {descesp=15;}
  clrscr();
  gotoxy(20,10);
   cout<<"Digite La Cantidad De Discos Clase A   ";cin>>cantda;
   if (cantda>=1)
    {valorda=cantda*30000;}
     else {valorda=0;}
  clrscr();
  gotoxy(20,10);
   cout<<"Digite La Cantidad De Discos Clase B   ";cin>>cantdb;
   if (cantdb>=1)
    {valordb=cantdb*20000;}
     else {valordb=0;}
  clrscr();
  gotoxy(20,10);
   cout<<"Digite La Cantidad De Discos Clase C   ";cin>>cantdc;
   if (cantdc>=1)
    {valordc=cantdc*15000;}
     else {valordc=0;}
  clrscr();
  gotoxy(20,10);
   cout<<"Digite La Cantidad De Discos Clase D   ";cin>>cantdd;
   if (cantdd>=1)
    {valordd=cantdd*10000;}
     else {valordd=0;}
  totald=cantda+cantdb+cantdc+cantdd;
   if ((totald>=3)&&(totald<5))
    {descant=10;}
     else
      if ( (totald>=5)&&(totald<8))
       {descant=15;}
   else {descant=20;}
  clrscr();
  gotoxy(20,10);
   cout<<"Total de discos  "<<totald;
   cout<<"descuento cantidad"<<descant;
   valortotald=valorda+valordb+valordc+valordd;
   cout<<"valor total  "<<valortotald;
   cout<<"descuento especial "<<descesp;

   getch();  }


Hasta ahora me funciona todo menos el de la pregunta si es cliente normal o especial   :hitcomp:


estuve revisando pero no encontre el problema, te pido el favor que me digas cual es el error, y me ayudes con el condicional while, por lo que lei en un libro basta con encerrar todo el codigo dentro de:
While (condicion)
{ejecute}, pero no se que condicion darle, buen Juan de nuevo te agradezco.

:kiss:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Amiguitos les pido ayuda con esto
« Respuesta #8 en: Jueves 8 de Mayo de 2003, 18:04 »
0
lo que pasa es que ya hice el programa,
lo hice con while, scanf y printf
si lo requieres te explico como funcionan

y me dices para que te pase el programa.

Juank
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

ana carolina

  • Nuevo Miembro
  • *
  • Mensajes: 15
    • Ver Perfil
Re: Amiguitos les pido ayuda con esto
« Respuesta #9 en: Jueves 8 de Mayo de 2003, 18:43 »
0
Claro que si!! :yes:

Por Fa, explicame lo del while, lo del scanf no se que es, pero el printf cumple la mismas funciones del cout???, ah porfis juan, ayudame con algunas tecnicas para una buena presentacion, tambien quisiera incluir una imagen al principio del programa como un logo de un cd o algo, para que quede mas lindo,

Gracias again..

:angel:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Amiguitos les pido ayuda con esto
« Respuesta #10 en: Jueves 8 de Mayo de 2003, 18:51 »
0
conectate al chat y charlamos...

bueno, creo que no alcansaste a ver el mensaje..
 
Lo de la imagen tendra que esperar, porque te haria falta aprender muchisisisimo más... lo podriamos hacer pero el profesor nunca tye creeria que lo hiciste tu... más adelante tal vez , por el momento no te preocupes por eso que hasta ahora estas comenzando.

Lo de la presentacion..en el programa que hice ya inclui un poco de eso para que se den una idea y lo mejoren... necesito que te conectes al chat  para explicarte....
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io