C/Visual C - HELP con un programa

 
Vista:

HELP con un programa

Publicado por QberT (1 intervención) el 25/09/2001 18:07:21
como puedo hacer un programa con las siguientes instrucciones???

hacer un programa en c que ofrezca el sig menu:
1. arriendo
2. estadisticas
3. salir

el ARRIENDO debe calcular el valor del arriendo de vehiculos y la cantidad de KM de arriendo de acuerdo a la siguiente info

COD
vehiculo valor arr diario km por dia
sedan 12000 200
camioneta 14000 250
furgon 16000 300

TIPO CLIENTE
genreal: valor normal, 50 km extra por dia si arrienda por 5 o mas dias
habitual: desc del 10% 40 km extra si arrienda por 4 o mas dias
empresa: desc del 15%, 10% de KM extra por cada dia tipo C o F (camioneta o furgon)

FORMA DE PAGO:
efectivo: tiene un desc del 10%
cheque: tiene un desc del 5%
empresa: recargo fijo fijo de 1000

la ESTADISTICA entregara la cantidad total de vehiculos arrendados por cada tipo de cliente

al SALIR debera entregar el resumen de lo recaudado en el dia desglosado por la forma de pago

¿COMO HARIAN UDS ESTE PROGRAMA EN VISUAL C++?

plz necesito ayuda!!!

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
Imágen de perfil de Alejandro

Programa de arriendo de vehículos en C

Publicado por Alejandro (913 intervenciones) el 15/10/2024 23:45:28
QberT, a continuación, te presento un ejemplo de cómo podrías implementar el programa en C que cumpla con las especificaciones que has proporcionado. Este programa incluye un menú para el arriendo de vehículos, estadísticas y salida con un resumen de lo recaudado.

Código del programa



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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include <stdio.h>
#include <stdlib.h>
 
#define MAX_VEHICULOS 100
 
typedef struct {
    char tipo[20];
    int valor_diario;
    int km_por_dia;
} Vehiculo;
 
typedef struct {
    char tipo_cliente[20];
    int total_arrendados;
} Estadistica;
 
Vehiculo vehiculos[] = {
    {"sedán", 12000, 200},
    {"camioneta", 14000, 250},
    {"furgón", 16000, 300}
};
 
Estadistica estadisticas[3] = {
    {"general", 0},
    {"habitual", 0},
    {"empresa", 0}
};
 
float total_recaudado_efectivo = 0;
float total_recaudado_cheque = 0;
float total_recaudado_empresa = 0;
 
void calcular_arriendo() {
    int tipo_vehiculo, dias, km_extra = 0;
    char tipo_cliente[20], forma_pago[20];
    float total = 0;
 
    printf("Seleccione el tipo de vehículo:\n");
    printf("1. Sedán\n2. Camioneta\n3. Furgón\n");
    scanf("%d", &tipo_vehiculo);
 
    printf("Ingrese la cantidad de días de arriendo: ");
    scanf("%d", &dias);
 
    printf("Ingrese el tipo de cliente (general/habitual/empresa): ");
    scanf("%s", tipo_cliente);
 
    printf("Ingrese la forma de pago (efectivo/cheque/empresa): ");
    scanf("%s", forma_pago);
 
    // Calcular el costo del arriendo
    if (tipo_vehiculo < 1 || tipo_vehiculo > 3) {
        printf("Tipo de vehículo no válido.\n");
        return;
    }
 
    tipo_vehiculo--; // Ajustar para índice de array
    total += vehiculos[tipo_vehiculo].valor_diario * dias;
 
    // Calcular KM extra
    if (strcmp(tipo_cliente, "general") == 0 && dias >= 5) {
        km_extra = 50;
    } else if (strcmp(tipo_cliente, "habitual") == 0 && dias >= 4) {
        km_extra = 40;
    } else if (strcmp(tipo_cliente, "empresa") == 0) {
        if (tipo_vehiculo == 1 || tipo_vehiculo == 2) { // Camioneta o furgón
            km_extra = dias * 0.1 * vehiculos[tipo_vehiculo].km_por_dia;
        }
    }
 
    total += (vehiculos[tipo_vehiculo].km_por_dia + km_extra) * dias;
 
    // Descuentos y recargos
    if (strcmp(forma_pago, "efectivo") == 0) {
        total *= 0.9; // Descuento del 10%
    } else if (strcmp(forma_pago, "cheque") == 0) {
        total *= 0.95; // Descuento del 5%
    } else if (strcmp(forma_pago, "empresa") == 0) {
        total += 1000; // Recargo fijo
    }
 
    printf("Total a pagar: %.2f\n", total);
 
    // Actualizar estadísticas
    for (int i = 0; i < 3; i++) {
        if (strcmp(estadisticas[i].tipo_cliente, tipo_cliente) == 0) {
            estadisticas[i].total_arrendados++;
            break;
        }
    }
 
    // Actualizar total recaudado
    if (strcmp(forma_pago, "efectivo") == 0) {
        total_recaudado_efectivo += total;
    } else if (strcmp(forma_pago, "cheque") == 0) {
        total_recaudado_cheque += total;
    } else if (strcmp(forma_pago, "empresa") == 0) {
        total_recaudado_empresa += total;
    }
}
 
void mostrar_estadisticas() {
    printf("Estadísticas de vehículos arrendados:\n");
    for (int i = 0; i < 3; i++) {
        printf("%s: %d\n", estadisticas[i].tipo_cliente, estadisticas[i].total_arrendados);
    }
}
 
void salir() {
    printf("Resumen de lo recaudado:\n");
    printf("Efectivo: %.2f\n", total_recaudado_efectivo);
    printf("Cheque: %.2f\n", total_recaudado_cheque);
    printf("Empresa: %.2f\n", total_recaudado_empresa);
}
 
int main() {
    int opcion;
 
    do {
        printf("Menú:\n");
        printf("1. Arriendo\n");
        printf("2. Estadísticas\n");
        printf("3. Salir\n");
        printf("Seleccione una opción: ");
        scanf("%d", &opcion);
 
        switch (opcion) {
            case 1:
                calcular_arriendo();
                break;
            case 2:
                mostrar_estadisticas();
                break;
            case 3:
                salir();
                break;
            default:
                printf("Opción no válida.\n");
        }
    } while (opcion != 3);
 
    return 0;
}

Explicación del código



1. Estructuras: Se definen estructuras para los vehículos y las estadísticas de arrendamiento.
2. Funciones:
- `calcular_arriendo()`: Calcula el costo del arriendo según las reglas proporcionadas.
- `mostrar_estadisticas()`: Muestra la cantidad total de vehículos arrendados por cada tipo de cliente.
- `salir()`: Muestra un resumen de lo recaudado al salir del programa.
3. Menú principal: Un bucle `do-while` que muestra el menú y permite al usuario seleccionar opciones.

Consideraciones



- Asegúrate de compilar el programa en un entorno que soporte C, como Turbo C++ o cualquier compilador moderno.
- Puedes mejorar el manejo de errores y la validación de entradas según sea necesario.

¡Saludos!
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