void DeduccionDialog::on_aceptarPushButton_clicked() { if (validarDatos()) { codigo = ui->codigoLineEdit->text(); cantidad = ui->cantidadSpinBox->value(); accept(); } }
void EmpleadoWidget::on_accionPushButton_clicked() { if (validarDatos()) { if (state == State::agregar) agregarEmpleado(); else if (state == State::modificar) modificarEmpleado(); } }
void AnticipoWidget::on_procesarPushButton_clicked() { if (validarDatos()) { if (InsertAnticipo()) { this->close(); } } }
void ingresoDeDatos() { /* Variables locales */ int salir = 0; /* Mientras sea 1, se mantiene en el bucle */ int entrada = 1; /* Variable donde se almacenan las entradas del teclado */ /* Pide ingresar el nombre de la variable */ setColor(WHITE); system("cls"); printf("\n\t\t\tPrograma estadistico"); printf("\n\nIngrese el nombre de la variable: "); gets(NombreVariable); printf("Variable \"%s\" registrada!\n\n", NombreVariable); Sleep(500); gotoxy(60, 1); setColor(CYAN); printf("Iniciando...", o); gotoxy(3, 10); setColor(YELLOW); printf("Cargando programa"); puntitos(200, 5); printf("\n\n Programa listo, presiona enter para continuar!"); gotoxy(1, 20); setColor(RED); hidecursor(); printf("si deseas cancelar, presiona: CONTROL+C"); entrada = _getche(); if (entrada == 3) { main(); } int indiceDato = 0; do { setColor(WHITE); char Dato_cadena[MAX_LENGHT] = { '\0' }; system("cls"); setColor(CYAN); printf("Variable: %s", NombreVariable); gotoxy(60, 1); setColor(GREEN); printf("En ejecuci%cn.", o); gotoxy(0, 0); setColor(WHITE); printf("\n\t\t\tPrograma estadistico\n\n"); showcursor(); printf("Ingresa el dato cuantitativo a registrar:"); gets(Dato_cadena); if (validarDatos(Dato_cadena)) { /* Convierte el Dato_cadena a entero*/ Datos[indiceDato] = atoi(Dato_cadena); indiceDato++; /* Muestra los datos ingresados en pantalla */ for (int i = 0; i < (int)sizeof(Datos) / (int)sizeof(Datos[0]); i++) { if (Datos[i] != 0) { printf(" %d, ", Datos[i]); } } gotoxy(4, 15); printf("ESCAPE para terminar"); printf("\t\t\tENTER para continuar"); /* Lee las 'teclas' del teclado */ for (;;) { hidecursor(); entrada = getkey(); /*printf("%d\n", entrada);*/ if (entrada == 0) /* ESCAPE 0*/ { salir = 0; break; } if (entrada == 1) /* ENTER 1*/ { salir = 1; break; } } } else { salir = 1; } showcursor(); } while (salir == 1); }
/** * Función principal del programa. * @param argc Cantidad de argumentos recibidos en la ejecución * @param argv Arreglo con los argumentos recibidos en la ejecución * @return Devuelve 0 (cero) si el programa finaliza con éxito */ int main(int argc, char *argv[]) { PROCESOS rp=NULL; EVENTOS re=NULL; SYSIND rs; // No lo inicializo porque es solo un struct /* * * Verificación de los parámetros de entrada * */ printf("Verificando parámetros...\n"); if (!comprobarParametros(argc,argv)) return 1; /* * * Carga de los archivos de entrada del programa. * */ // Variables para almacenar las posiciones de los archivos de entrada int ap=0,aio=0,aprec=0; PROCESOSIN procesosIN=NULL; IOSIN iosIN=NULL; PRECSIN precsIN=NULL; printf("Cargando archivos de entrada...\n"); //Busco las posiciones de los parámetros donde estan los archivos de entrada. int i; for (i=1; i<argc; i+=2) { if (!strcmp(argv[i],"-p")) ap=i+1; else if (!strcmp(argv[i],"-io")) aio=i+1; else if (!strcmp(argv[i],"-prec")) aprec=i+1; } //printf("Parámetros de entrada: %d - %d - %d\n",ap,aio,aprec); // Verifico todas las combinaciones de opciones de parámetros de entrada disponibles // en base a si un parámetro de entrada esta o no. if (ap == 0 && aio == 0 && aprec == 0) { if (!cargarArchivos("procesos.txt","io.txt","precedencia.txt",&procesosIN,&iosIN,&precsIN)) return 1; } else { if (ap == 0 && aio == 0 && aprec != 0) { if (!cargarArchivos("procesos.txt","io.txt",argv[aprec],&procesosIN,&iosIN,&precsIN)) return 1; } else { if (ap == 0 && aio !=0 && aprec == 0) { if (!cargarArchivos("procesos.txt",argv[aio],"precedencia.txt",&procesosIN,&iosIN,&precsIN)) return 1; } else { if (ap == 0 && aio != 0 && aprec != 0) { if (!cargarArchivos("procesos.txt",argv[aio],argv[aprec],&procesosIN,&iosIN,&precsIN)) return 1; } else { if (ap != 0 && aio == 0 && aprec == 0) { if (!cargarArchivos(argv[ap],"io.txt","precedencia.txt",&procesosIN,&iosIN,&precsIN)) return 1; } else { if (ap != 0 && aio == 0 && aprec != 0) { if (!cargarArchivos(argv[ap],"io.txt",argv[aprec],&procesosIN,&iosIN,&precsIN)) return 1; } else { if (ap != 0 && aio != 0 && aprec == 0) { if (!cargarArchivos(argv[ap],argv[aio],"precedencia.txt",&procesosIN,&iosIN,&precsIN)) return 1; } else { if (ap != 0 && aio != 0 && aprec != 0) { if (!cargarArchivos(argv[ap],argv[aio],argv[aprec],&procesosIN,&iosIN,&precsIN)) return 1; } } } } } } } } /* * Validación de los datos */ printf("Validando los datos de entrada...\n"); if (!validarDatos(procesosIN,iosIN,precsIN)) { printf("Los datos de entrada son inválidos!\n"); return 1; } else { printf("Los datos fueron validados con éxito!\n"); } /* * Comprobación de las listas de entrada (solo en desarrollo - comentar para publicación) */ PROCESOSIN pin=procesosIN; IOSIN iosin=iosIN; PRECSIN precsin=precsIN; while(pin != NULL) { printf("PROCESO\n"); printf("PID %d\n",pin->pid); printf("ARRIBO %d\n",pin->arribo); printf("T CPU %d\n",pin->Tcpu); printf("\n"); pin = pin->sig; } while(iosin != NULL) { printf("I/O\n"); printf("PID %d\n",iosin->pid); printf("INSTANTE %d\n",iosin->instante); printf("T RES %d\n",iosin->tiempo); printf("\n"); iosin = iosin->sig; } while(precsin != NULL) { printf("PRECEDENCIA\n"); printf("PRECEDENTE %d\n",precsin->precedente); printf("PRECEDIDO %d\n",precsin->precedido); printf("\n"); precsin = precsin->sig; } /* * * Inicializar los procesos que se van a simular * */ pin = procesosIN; PROCESOS procesos=NULL,ultimo; while(pin != NULL) { if (procesos == NULL) { procesos = (PROCESOS)malloc(sizeof(PROCESO)); procesos->pid = pin->pid; procesos->tcpu = pin->Tcpu; procesos->necesidad = pin->Tcpu; procesos->arribo = pin->arribo; procesos->turnAround = 0; procesos->tResp = 0; procesos->tEListos = 0; procesos->tESync = 0; procesos->tETotal = 0; procesos->tEDisp = 0; procesos->semaforos = cargarSemaforos(precsIN,pin->pid); procesos->sig = NULL; ultimo = procesos; } else { ultimo->sig = (PROCESOS)malloc(sizeof(PROCESO)); ultimo = ultimo->sig; ultimo->pid = pin->pid; ultimo->tcpu = pin->Tcpu; ultimo->necesidad = pin->Tcpu; ultimo->arribo = pin->arribo; ultimo->turnAround = 0; ultimo->tResp = 0; ultimo->tEListos = 0; ultimo->tESync = 0; ultimo->tETotal = 0; ultimo->tEDisp = 0; ultimo->semaforos = cargarSemaforos(precsIN,pin->pid); ultimo->sig = NULL; } pin = pin->sig; } SEMAFOROS s; ultimo = procesos; while(ultimo!=NULL) { printf("PROCESO\n"); printf("PID: %d\n",ultimo->pid); printf("NEC: %d\n",ultimo->necesidad); printf("Semaforos\n"); s = ultimo->semaforos; while (s!=NULL) { printf("Tipo: %c\n",s->tipo); printf("Nombre: %c\n",s->nombre); printf("Estado: %d\n\n",s->valor); s = s->sig; } ultimo = ultimo->sig; } /* * * Creación de la lista de System Calls * */ SCALLS systemcalls,actSC; EVENTOS eventos; systemcalls = systemCalls(procesos,iosIN); actSC = systemcalls; /* Comprobación de la lista de system calls * --- SOLO EN DESARROLLO - COMENTAR PARA PUBLICACIÓN */ printf("\nTABLA DE SYSTEM CALLS\n"); printf("----------------------\n"); printf("PID\t\tINSTATNTE\tRESOL\t\tTIPO\t\tSEMAFORO\n"); while (actSC != NULL) { printf("%d\t\t%d\t\t%d\t\t%s\t\t%c\n",actSC->pid,actSC->instante,actSC->resolucion,actSC->tipo,actSC->semaforo); actSC = actSC->sig; } /* * * Inicializar la lista de eventos con los arribos de los procesos * */ EVENTOS ant=NULL,act,nuevo; eventos = NULL; pin=procesosIN; while(pin != NULL) { act = eventos; while(act != NULL && act->instante <= pin->arribo) { ant = act; act = act->sig; } if (eventos == NULL) { eventos = (EVENTOS) malloc(sizeof(EVENTO)); eventos->pid=pin->pid; eventos->instante=pin->arribo; strcpy(eventos->codigo,"ANP"); eventos->semaforo = '-'; eventos->sig=NULL; //ultEvento = eventos; } else { nuevo = (EVENTOS) malloc(sizeof(EVENTO)); //ultEvento = ultEvento->sig; nuevo->pid=pin->pid; nuevo->instante=pin->arribo; strcpy(nuevo->codigo,"ANP"); nuevo->semaforo = '-'; nuevo->sig=act; ant->sig = nuevo; } pin = pin->sig; } //Muestro la tabla inicial de eventos act = eventos; printf("TABLA DE EVENTOS INICIAL\n"); printf("------------------------\n"); while (act!=NULL) { printf("%d\t\t%d\t\t%s\t\t%c\n",act->pid,act->instante,act->codigo,act->semaforo); act = act->sig; } /* * * Menú de opciones del programa. * * */ int opcion; int arp=0,are=0,ars=0; do { printf("Presione una tecla para volver al menú\n"); getchar();getchar(); system("clear"); printf("******************************************************************\n"); printf(" SIMULACIÓN DE PLANEAMIENTO A CORTO PLAZO\n"); printf("******************************************************************\n"); printf("\n"); printf("\n"); printf("Menu\n"); printf("----\n\n\n"); printf("1) Simulación paso a paso.\n"); printf("2) Generar directamente resultados de la simulación\n"); printf("3) Salir inmediatamente!\n"); printf("\n"); printf("\n"); do { printf("Seleccione una opcion: "); scanf("%d",&opcion); } while (opcion != 1 && opcion != 2 && opcion != 3); switch (opcion) { case 1: system("clear"); printf("Iniciando simulación paso a paso...\n"); simular(procesos,systemcalls,eventos,1,&rp,&re,&rs); printf("Simulación paso a paso finalizada.\n"); break; case 2: system("clear"); printf("Iniciando simulación...\n"); simular(procesos,systemcalls,eventos,0,&rp,&re,&rs); printf("Simulación finalizada.\n"); break; } if (opcion != 3) { printf("Generando resultados...\n"); //Busco las posiciones de los parámetros donde estan los archivos de entrada. for (i=1; i<argc; i+=2) { if (!strcmp(argv[i],"-rp")) arp=i+1; else if (!strcmp(argv[i],"-rs")) ars=i+1; else if (!strcmp(argv[i],"-ev")) are=i+1; } // Verifico todas las combinaciones de opciones de parámetros de salida disponibles // en base a si un parámetro de entrada esta o no. if (arp == 0 && ars == 0 && are == 0) { if (!escribirResultados("proc-ind.txt","sys-ind.txt","trace.txt",rp,rs,re)) return 1; } else { if (arp == 0 && ars == 0 && are != 0) { if (!escribirResultados("proc-ind.txt","sys-ind.txt",argv[are],rp,rs,re)) return 1; } else { if (arp == 0 && ars !=0 && are == 0) { if (!escribirResultados("proc-ind.txt",argv[ars],"trace.txt",rp,rs,re)) return 1; } else { if (arp == 0 && ars != 0 && are != 0) { if (!escribirResultados("proc-ind.txt",argv[ars],argv[are],rp,rs,re)) return 1; } else { if (arp != 0 && ars == 0 && are == 0) { if (!escribirResultados(argv[arp],"sys-ind.txt","trace.txt",rp,rs,re)) return 1; } else { if (arp != 0 && ars == 0 && are != 0) { if (!escribirResultados(argv[arp],"sys-ind.txt",argv[are],rp,rs,re)) return 1; } else { if (arp != 0 && ars != 0 && are == 0) { if (!escribirResultados(argv[arp],argv[ars],"trace.txt",rp,rs,re)) return 1; } else { if (arp != 0 && ars != 0 && are != 0) { if (!escribirResultados(argv[arp],argv[ars],argv[are],rp,rs,re)) return 1; } } } } } } } } } } while (opcion != 3); printf("Saliendo del progrma...\n"); return 0; }