elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda ejercicio pago de multa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda ejercicio pago de multa  (Leído 1,595 veces)
dieguex1

Desconectado Desconectado

Mensajes: 1


Ver Perfil
ayuda ejercicio pago de multa
« en: 31 Agosto 2015, 03:33 am »

necesito ayuda con este ejercicio, el enunciado es este y se cierra al ingresar "drogas"  :(

Se requiere realizar un programa en lenguaje “C” que se utilice como apoyo para la inducción en el proceso del pago de una multa.
El problema comienza solicitando al usuario el número de la causa denominado RIT (Rol interno de tribunal). También se le solicita el delito por el cual se le condenó. Si el delito corresponde a “DROGAS”, entonces el programa debe enviar un mensaje que señale: “COMPLETAR FORMULARIO DE CTA. CORRIENTE N° 9023283 DEL BANCO ESTADO, MINISTERIO DEL INTERIOR Y CONCURRIR A DEPOSITAR EL DINERO EN DICHA CUENTA”. En caso contrario si el delito no es “DROGAS”, se debe solicitar al usuario el tipo de procedimiento; si es del tipo “MONITORIO”, entonces se debe solicitar al usuario  la fecha en que recibió la notificación de la multa y el valor de la multa. Si desde aquella fecha de notificación hasta la fecha actual (hoy) han transcurrido menos o igual a 15 días, entonces se debe realizar un 25% de descuento, mostrando por pantalla el monto a pagar calculado, a través de los siguientes mensajes:
1.- “LA MULTA A PAGAR ES DE $(debe ir el monto a pagar calculado)”
2.- “COMPLETAR FORMULARIO EXCEL DENOMINADO “PAGO MONITORIO” Y CONCURRIR A PAGAR LA MULTA EN LA MUNICIPALIDAD”.
3.- “PAGAR LAS COSTAS DE LA CAUSA EN LA CUENTA CORRIENTE N°53309172147 DEL BANCO ESTADO, CORPORACIÓN ADMINISTRATIVA DEL PODER JUDICIAL”.

En el caso que el procedimiento no es del tipo “MONITORIO”, entonces el programa debe mostrar los siguientes mensajes:
1.- “INGRESAR A LA PÁGINA WEB http://www.tesoreria.cl/, COMPLETAR EL FORMULARIO 10 DE LA TESORERÍA GENERAL DE LA REPÚBLICA”.
2.- “PAGAR LA MULTA EN CUALQUIERA DE LOS SIGUIENTES BANCOS: BBVA – BICE – CORP BANCA – SCOTIABANK – CHILE – BCI – SECURITY – ITAU – INTERNATIONAL – BANCOESTADO”.

esto es lo que tengo avanzado hasta el momento

Código:
#include <stdio.h>
#include <time.h>
//----------------------------------------------------
void transformar(char delito[]){
int i;
for(i=0;delito[i]!='\0';i++){
if(delito[i]>=65&&delito[i]<=90)
delito[i]=delito[i]+32;
}
}
//----------------------------------------------------
int verificar(char delito[]){
int i;
char copia[7]={"drogas"};
for(i=0;delito[i]!='\0';i++){
if(delito[i]!=copia[i])
return 1;
}
return 0;
}
//----------------------------------------------------
int verificar2(char delito[]){
int i;
char copia[10]={"monitorio"};
for(i=0;delito[i]!='\0';i++){
if(delito[i]!=copia[i])
return 1;
}
return 0;
}
//----------------------------------------------------
float descuento(float valor, char fecha[]){
int retorno;
time_t tiempo = time(0);
struct tm *tlocal = localtime(&tiempo);
char output[128];
strftime(output,128,"%d/%m/%y %H:%M:%S",tlocal);
retorno=verificarfecha(output,fecha);
switch(retorno){
case 0:{
printf("La fecha de la multa no excede los 15 dias, se aplica descuento.\n");
return valor*0.75;
break;
}
case 1:{
printf("La fecha de la multa excede los 15 dias, no se aplica descuento.\n");
return valor;
break;
}
}
}
//----------------------------------------------------
int verificarfecha(char output[], char fecha[]){
int diaac;
int diaml;
int i;
for(i=2;i<8;i++){
if(i<=5){
if (fecha[i]!=output[i])
return 1;
}
else
if (fecha[i+2]!=output[i])
return 1;
}
diaac=(output[0]-48)*10+output[1]-48;
diaml=(fecha[0]-48)*10+fecha[1]-48;
if (diaac>diaml){
if(diaac-diaml>15){
return 1;
}
return 0;
}
else{
if(diaml-diaac>15){
return 1;
}
return 0;
}
}
//----------------------------------------------------
int main(int argc,char* argv[]){
int rit;
char delito[50];
char procedimiento[50];
char fecha[11];
float valor;
printf("Ingrese su RIT:\n");
scanf("%d",&rit);
printf("Ingrese su delito:\n");
printf("el cual puede ser 'Drogas' u 'Otros'\n");
scanf("%s",delito);
transformar(delito);
switch(verificar(delito)){
case 0: {
printf("COMPLETAR FORMULARIO DE CTA. CORRIENTE N° 9023283 DEL BANCO ESTADO, MINISTERIO DEL INTERIOR Y CONCURRIR A DEPOSITAR EL DINERO EN DICHA CUENTA\n");
break;
};
case 1: {
printf("Ingrese Tipo de procedimiento:\n");
printf("Puede ser 'Monitorio' u 'Otro'\n");
scanf("%s",procedimiento);
transformar(procedimiento);
switch(verificar2(procedimiento)){
case 0:{
printf("Ingrese la fecha en la cual se le entrego la multa\n");
printf("formato fecha: 'dia/mes/año' '01/01/2000' ignorando las comillas.\n");
scanf("%s",fecha);
printf("Ingrese el valor de su multa\n");
scanf("%f",&valor);
valor=descuento(valor,fecha);
printf("LA MULTA A PAGAR ES DE $%.2f. \nCOMPLETAR FORMULARIO EXCEL DENOMINADO “PAGO MONITORIO†Y CONCURRIR A PAGAR LA MULTA EN LA MUNICIPALIDAD.\nPAGAR LAS COSTAS DE LA CAUSA EN LA CUENTA CORRIENTE N°53309172147 DEL BANCO ESTADO, CORPORACIÓN ADMINISTRATIVA DEL PODER JUDICIAL\n",valor);
break;
}
case 1:{
printf("INGRESAR A LA PÃGINA WEB http://www.tesoreria.cl/, COMPLETAR EL FORMULARIO 10 DE LA TESORERÃA GENERAL DE LA REPÚBLICA.\nPAGAR LA MULTA EN CUALQUIERA DE LOS SIGUIENTES BANCOS: BBVA – BICE – CORP BANCA – SCOTIABANK – CHILE – BCI – SECURITY – ITAU – INTERNATIONAL – BANCOESTADO\n");
break;
}
}
break;
};
}
return 0;
}

http://www.mediafire.com/download/4cdpsv9d65vjx5r/work.c.rar

de antemano muchas gracias


En línea

RockPosts

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: ayuda ejercicio pago de multa
« Respuesta #1 en: 2 Septiembre 2015, 12:52 pm »

Después de que se active el switch con el case 1 (el de las drogas), el programa muestra un mensaje en pantalla. Después de mostrar el mensaje, como has puesto un break, se sale del switch. Después del switch hay un 'return 0;. Cuando la función main retorna, el programa se cierra. Para solucionar esto, después del switch pon (si trabajas en Windows) system("pause");, o puedes usar getc. Eso ya es elección tuya


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] Pago 20€ . Counter strike (SERVER DEDICADO)
Juegos y Consolas
juan_dinio69 1 2,299 Último mensaje 5 Enero 2011, 12:43 pm
por Siquillote
Ayuda ejercicio de Pascal, cuando uno no lo ve claro pide ayuda
Programación General
manu3742 1 3,250 Último mensaje 31 Marzo 2011, 15:43 pm
por d(-_-)b
Nuevo virus se hace pasar por la Policía y exige el pago de una multa de 100 € « 1 2 »
Seguridad
wolfbcn 13 34,457 Último mensaje 29 Julio 2012, 22:01 pm
por Buster_BSA
Pago por resolver ejercicio CCNA 3
Redes
Enzo.net 7 3,854 Último mensaje 2 Diciembre 2014, 12:14 pm
por HdM
Ayuda con Formas de Pago?
Dudas Generales
TrashAmbishion 1 1,342 Último mensaje 5 Septiembre 2018, 23:23 pm
por Machacador
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines