Dev - C++ - ejercicio no se realiza completamente

   
Vista:

ejercicio no se realiza completamente

Publicado por ejercicio basico (5 intervenciones) el 22/07/2017 22:31:06
buen dia.
estoy en un curso de c++ y me dejaron el siguiente problema para resolver.


En la empresa INYO SAS se necesita desarrollar un pequeño programa que ayude a realizar el siguiente proceso que se está realizando de manera manual en el área de contabilidad:

Los contadores de esta empresa deben calcular la cantidad de dinero que deben pagarle a sus empleados, de la siguiente manera:

1. Teniendo en cuenta si el empleado es del área Administrativa o del área de Servicios. Para para la primera área, el valor del día trabajado vale 90.000 pesos y para la segunda el valor del día equivale a 45.000 pesos.

2. Por otra parte se debe tener en cuenta, los descuentos que deben realizarse a cada empleado si este ha realizado un préstamo a la empresa y este no debe ser mayor al sueldo que este recibe.

mi problema es que programo todo, pero siempre trabaja sobre el valor 45000 pesos y nunca bota los errores de ingreso de variable podría alguien corregirme para saber que esta mal.

lo programe de la siguiente forma:


#include<iostream>

using namespace std;
int main(){
float A,S, prestamos,sueldo, dias,tipo,totalsin,totalcon;
A=90000;
S=45000;
char trabajador;

//recopilacion de informacion;
cout<< "ingrese la letra A si es administrativo ingrese S si es de servicios:"<<endl;
cin>>trabajador;
cout<<"ingrese dias trabajados: "<<endl;
cin>>dias;

cout<<"ingrese descuentos salariales: "<<endl;
cin>>prestamos;
//operaciones logicas tipo de trabajador;
if (trabajador=A){
tipo=A;
}
if (trabajador=S){
tipo=S;
}
//operacion logica dias trabajados;
totalsin=tipo*dias;
//operacion logica descuentos salariales;
totalcon=totalsin-prestamos;
if(totalsin<prestamos){
cout<<"Error deuda mayor a salario";
}
//tatal salario;
sueldo=totalcon;

//inforamcion ;
cout<<"su sueldo es: " <<sueldo<<"\n";
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ejercicio no se realiza completamente

Publicado por juanki (62 intervenciones) el 22/07/2017 22:52:46
Hola

1
if (trabajador=S){

Para comparar se usa ==, ahí estás haciendo una asignación .Además, trabajador es de tipo char y S es un float. Imagino que quieres comprobar si se pulsó S, para ello tienes que ponerla entre comillas simples 'S'

No repasé el código, solo me fijé en ese detalle.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ejercicio no se realiza completamente

Publicado por ejercicio basico (5 intervenciones) el 22/07/2017 23:04:45
corregí lo de ==, y ahora siempre el total salario es de 0 ya ni siquiera me da el valor de S. por otro lado no entendí muy bien las segunda corrección en la que dices " trabajador es de tipo char y S es un float." si pudieras colaborarme estaría agradecido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ejercicio no se realiza completamente

Publicado por juanki (62 intervenciones) el 22/07/2017 23:16:03
Hola

Quería decir, que si quieres comprobar si en trabajador el usuario pulsó una S, la tienes que poner entre comillas:


1
if (trabajador=='S'){

Si no, lo que está haciendo es comparando la variable trabajador con la variable S, que la has declarado de tipo float.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ejercicio no se realiza completamente

Publicado por ejercicio basico (5 intervenciones) el 23/07/2017 00:03:50
logre solucionarlo con las correcciones que me hiciste ahora tengo un problema que consiste en que cuando pongo los días trabajados solo me da resultados correctos si los días no sobrepasan el 10, si pongo por ejemplo 15 días trabajados me da como resultado esto: 1.35e+006.
como podría solucionar este error.


disculpa la molestia, pero soy muy nuevo en esto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ejercicio no se realiza completamente

Publicado por dario (107 intervenciones) el 23/07/2017 06:27:11
Tu programa arreglado

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <iomanip> //uso de manipuladores
 
using namespace std;
 
int main() {
    float const A = 90000.00;
    float const S = 45000.00;
    float prestamos,sueldo, dias,tipo,totalsin,totalcon;
    char trabajador;
 
  //recopilacion de informacion;
  cout << "ingrese la letra A si es administrativo ingrese S si es de servicios:"<<endl;
  cin >> trabajador;
  cout << "ingrese dias trabajados: "<<endl;
  cin >> dias;
  cout << "ingrese descuentos salariales: "<<endl;
  cin >> prestamos;
 
  //operaciones logicas tipo de trabajador;
  if (trabajador == 'A')
    tipo = A;
 
  if (trabajador == 'S')
    tipo = S;
 
  //operacion logica dias trabajados;
  totalsin=tipo*dias;
 
  //operacion logica descuentos salariales;
  totalcon=totalsin-prestamos;
 
    if(totalsin<prestamos)
        cout<<"Error deuda mayor a salario";
 
  //total salario;
  sueldo=totalcon;
 
  //inforamcion ;
  cout << fixed << setprecision(2); //fixed = convierte de notacion exponencial a decimal normal.
                                    // setprecision(2) = presenta el numero con dos decimales.
  cout << "su sueldo es: " << sueldo << "\n";
 
  return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

ejercicio no se realiza completamente

Publicado por ejercicio basico (5 intervenciones) el 23/07/2017 18:46:22
mil gracias por la ayuda todo quedo perfecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad