Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cacacolass

#1
Hola a todos, estoy haciendo un proyecto para el instituto en Java. Elegí diseñar un pequeño modelo para una biblioteca chica y debo mostrarlo usando jtables.
La idea es mostrar en el primer jtable los clientes, en el segundo jtable los libros y en el tercer jtable los préstamos. Y en el otro tabs usando jtextfields, manejo lo que son las altas y modificaciones.
Adjunto imagen y a continuación les dejo las tablas.

https://i.imgur.com/gsjQUmG.jpg

LIBROS
isbn
nombre
editorial
estado

CLIENTES
id_cli
nombre
ciudad
estado

PRESTAMO
id_prestamo
id_lib (FK isbn)
id_cliente (FK id_cli)
fecha_salida
fecha_max_dev
fecha_devolucion

El problema que tengo es que asi como esta planteado, puedo prestar solo un libro por prestamo, cuando el cliente podria llevarse mas de un libro por prestamo. Tambien tenia "cantidad" en libros porque por ejemplo tenia 5 libros de El Principito pero al hacer el prestamo (cantidad quedaba en 4), no sabia que ejemplar estaba prestando.

Espero puedan ayudarme en dejar el modelo de base de datos lo mejor posible.

Muchas gracias, saludos a todos.
#2
Muchas gracias, me olvidé de ese ";" del último for y lo inicializar suma, ya lo había corregido, lo inicialicé a 0 porque sino puede tomar basura de la memoria.
Así quedó el código (apliqué todo lo sugerido):

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void menmay (int vector[10], double promedio);
void free (void* ptr);

int main(int argc, char **argv)
{
int vector[10];
int i;
double suma=0.0, promedio=0.0;

srand(time(NULL));
for (i=0; i<10; i++)
{
vector[i] = rand() % 100;
printf("%3d", vector[i]);
suma += vector[i];
}

promedio = suma/10;
printf("\n Suma de los valores del vector: %.0lf", suma);
printf("\n Promedio de los valores del vector: %.0lf", promedio);
printf("\n");
menmay(vector,promedio);
return 0;
}

void menmay (int vector[10], double promedio)
{
int* menores;
int* mayores;
int i,j=0,k=0, cant=0, cant2=0;

menores = (int*)malloc (10*sizeof(int));
mayores = (int*)malloc (10*sizeof(int));


for (i=0; i<10; i++)
{
if (vector[i] < promedio)
{
menores[j] = vector[i];
cant++; j++;
}

else
{
mayores[k] = vector[i];
   cant2++; k++;
}

}
printf("Valores menores al promedio \n");
for (j=0;j<cant;j++)
printf("%3d",menores[j]);

free(menores);

printf("\nValores mayores al promedio \n");
for (k=0;k<cant2;k++)
printf("%3d",mayores[k]);

free(mayores);
}

void free (void* ptr);


P.D: Había pasado 'i' como parámetro para no volverlo a declarar de nuevo en la función. Pensé que no tenía nada de malo.

Muchas gracias por la ayuda, saludos !
#3
Programación C/C++ / Problema en C [Ayuda]
28 Abril 2014, 15:33 PM
/*
* Dado vector de números enteros, obtener el promedio del mismo.
* Luego partir el vector en 2 vectores,
* donde los menores al promedio estén en un vector y los mayores en otro vector.
*/



#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void menmay (int vector[10], int i, double promedio);
void free (void* ptr);

int main(int argc, char **argv)
{
int vector[10];
int i;
double suma, promedio=0;

srand(time(NULL));
for (i=0; i<10; i++)
{
vector[i] = rand() % 100;
printf("%3d", vector[i]);
suma += vector[i];
}

promedio = suma/10;
printf("\n Suma de los valores del vector: %.0lf", suma);
printf("\n Promedio de los valores del vector: %.0lf", promedio);
printf("\n");
menmay(vector,i,promedio);
return 0;
}

void menmay (int vector[10], int i, double promedio)
{
int* menores;
int* mayores;
int j=0,k=0;

menores = (int*)malloc (10*sizeof(int));
mayores = (int*)malloc (10*sizeof(int));


for (i=0; i<10; i++)
{
if (vector[i] < promedio)
{
menores[j] = vector[i];
j++;
}

else
{
mayores[k] = vector[i];
   k++;
}

}
printf("Valores menores al promedio \n");
for (j=0;j<10;j++)
if (menores[j] != 0)
printf("%3d",menores[j]);

free(menores);

printf("\nValores mayores al promedio \n");
for (k=0;k<10;k++);
printf("%3d",mayores[k]);

free(mayores);
}

void free (void* ptr);


Los números menores funcionan correctamente, pero los números mayores al promedio siempre quedan en 0, por qué?

Muchas gracias. Saludos
#4
Ejercicios / Ejercicio con bits
17 Octubre 2012, 05:17 AM
Hola muchachos, necesito por favor que alguien me explique como debo resolver esto:

Dado un byte X = x7x6x5x4x3x2x1x0 (indeterminado). ¿Qué operación y qué máscara debería utilizar para lograr cada uno de los siguientes resultados?

a) Poner en 1 los bits 0,2 y 5
b) Poner en 0 los bits 4 y 6
c) Invertir (cambiar 0 por 1 y viceversa) los bits 1, 3 y 7
d) Cambiar los bits de X de modo que el 2 bit quede en 1, el bit 7 en 0, y el bit 1 invierta su valor original.

En todos los casos, los bits no nombrados deben mantener su valor original. Considere cada inciso independientemente (no son operaciones secuenciales, siempre parte del mismo byte original.

Muchas gracias, saludos a todos
#5
Ejercicios / Duda con "Corte Control" Pascal
27 Noviembre 2011, 07:20 AM
Hola, leí varios ejemplos pero ninguno termino de entender.
Ya que todos leen datos de archivos, actualizan en otro.  Los ejemplos que ví, ninguno está completo.

Alguno me podría dar un buen ejemplo, y si me pueden guiar con alguna guía o libro mejor.

Muchas gracias.
Saludos
#6
Programación General / Pascal (Matriz 30x2)
4 Noviembre 2011, 01:11 AM
Hola, tengo un pequeño problemita.
Este es mi código:
program tp6_4;
uses crt,dos;
type wtf=array [1..30,1..2] of integer;
var matriz:wtf;

procedure fill (var matriz:wtf);
var i:integer;
begin
randomize;
   for i:=1 to 30 do
      begin
           matriz [i,1]:=random(10)-4;
           matriz [i,2]:=random(35)+1;
      end;
end;


procedure show (var matriz:wtf);
var i:integer;
begin
    for i:=1 to 30 do
       begin
            writeln;

                    write ('                 Dia :',(i):5,'         Minima :', matriz [i,1]:5,'         Maxima: ', matriz [i,2]:5);

        end;
end;

procedure calculations (matriz:wtf);
var i,j,minima,maxima,temptotal:integer;
   promedio:real;

begin
minima:=0;
maxima:=0;
temptotal:=matriz[i,1]+matriz[i,2];
promedio:=temptotal/30;

for i:=1 to 30 do
  begin
       if matriz[i,1] < minima then
          minima:=matriz[i,1];
       if matriz[i,2] > maxima then
          maxima:=matriz[i,2];
   end;

writeln;
writeln;
writeln;
writeln ('Temperatura minima del mes: ',minima);
writeln ('Temperatura maxima del mes: ',maxima);
writeln ('Temperatura promedio del mes: ',promedio:8:2);
end;


//begin program
begin
delay(30);
clrscr;
writeln;
writeln (' --------------------------------------------------------------------------------------- ');
writeln ('| MEDICIONES DE TEMPERATURAS MAXIMAS Y MINIMAS CORRESPONDIENTES A LOS 30 DIAS DE UN MES |');
writeln (' --------------------------------------------------------------------------------------- ');
writeln;
fill (matriz);
show (matriz);
calculations (matriz);
readkey;
end.


El problema que tengo, es que al ejecutarlo con Windows, no se ve el programa completo.
Me muestra "i" de 12 para abajo, lo que va haciendo lo borra...
Cómo hago para que eso no pase?
Gracias

P.D: Tengo Win 7 x86
Lo probé con Linux y se ve completo, en windows no.
#7
Ejercicios / Mostrar Matriz
21 Octubre 2011, 16:13 PM
Hola, estoy haciendo ejercicios con matriz pero aún hay cosas que no tengo claro.
Dejo un ejemplo simple para que me entiendan:

"Sumatoria de todos los elementos de una matriz de 3x4".
program tp6_1;
uses crt, dos;
const datos:array [1..4,1..3] of integer =( (1,2,3),
                                                             (4,5,6),
                                                             (7,8,9),
                                                          (10,11,12) );

var
suma,i,j:integer;


begin
clrscr;
for i:= 1 to 4 do
   begin
        for j:=1 to 3 do
        suma:= datos[i,j] + suma;
   write (datos [j,i]);
   end;
   writeln;
   write ('La sumatoria de todos los elementos de la matriz es:', suma);
   readkey;
end.


Como verán escribí write (datos [i,j]); pero me muestra solo la columna 3 con todos los números juntos.

Gracias,
#8
La verdad que no sé en qué se usa. Sólo eran ejercicios dados en un trabajo práctico para entregar.
#9
Dudas Generales / Re: Problema informático
22 Julio 2011, 02:26 AM
Cita de: .:UND3R:. en 22 Julio 2011, 02:16 AM
De nada una cosa podrías cambiar el título para que sea más accesible cuando se utilice un buscador tanto interno como externo (google,yahoo,etc)

Saludos
Perdón por molestarte, pero tenés idea de que es (Herrarum equinum est)?
Gracias por todo
#10
Cita de: seba123neo en 16 Julio 2011, 05:37 AM
no sirve pasarte por todas esas cosas, digo, ver algo de vb .net despues de C++ , de java, de php, de pascal, de brainfuck, de esto lo otro, eso no sirve, enfocate y dedicate a saber algo especifico, sino vas a saber "cositas" de muchas cosas y al final no vas a saber nada.
Perdón que me meta, pregunto porque yo también me inicié al mundo de la informática.
Quería saber por qué dices que no sirve.
Gracias