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 - TheZeck

#1
Buenas, estaba haciendo este código y me saltó este error, alguno sabe a que se debe?, desde ya no es la primera vez que me pasa. Otras veces me ocurrió lo mismo pero tuve que remover todo el código, ver ese error y no saber porque pasa me saca de quicio, no puedo seguir avanzando en el ejercicio si no logro solucionar eso xD. El ejercicio es este:

Generar una lista de teléfonos. La lista debe ser un objeto que encapsula la matriz de objetos persona, la clase CPersona define los atributos privados nombre, dirección, teléfono relativos a una persona, métodos respectivos que en un menú de opciones permita: añadir, eliminar y buscar en una lista.

El error que me sale es este: Exception in thread "main" java.lang.NullPointerException

gracias de antemano por la ayuda. 


Código (java) [Seleccionar]

public class CPersona {

private String nombre, telefono, direccion;

public CPersona(String nombre,String telefono, String direccion){
this.nombre = nombre;
this.telefono = telefono;
this.direccion = direccion;
}

public void setNombre(String nombre){
this.nombre = nombre;
}

public void setTelefono(String telefono){
this.telefono = telefono;
}

public void setDireccion(String direccion){
this.direccion = direccion;
}

public String getNombre(){
return nombre;
}

public String getTelefono(){
return telefono;
}

public String getDireccion(){
return direccion;
}

public static void main(String[] args) {
// TODO Auto-generated method stub

}

}

Código (java) [Seleccionar]
import java.util.Scanner;

public class Lista {
private CPersona[] persona;
private static int cantidad;

Lista(){
persona = new CPersona[1000];
cantidad = 0;
}

public void anadir(Scanner tecla){
String nombre, telefono, direccion;

System.out.println("Ingrese nombre: ");
System.out.println("Ingrese telefono: ");
System.out.println("Ingrese direccion: ");

nombre = tecla.nextLine();
telefono = tecla.nextLine();
direccion = tecla.nextLine();

if(cantidad == 0){
persona[cantidad].setNombre(nombre);
persona[cantidad].setTelefono(telefono);
persona[cantidad].setDireccion(direccion);
cantidad++;
}

boolean entrar = true;
if(cantidad != 0){
for(int i = 0 ; i < cantidad; i++)
if(persona[i].getTelefono().equals(telefono))
entrar = false;

if(entrar){
persona[cantidad].setNombre(nombre);
persona[cantidad].setTelefono(telefono);
persona[cantidad].setDireccion(direccion);
cantidad++;
}else{
System.out.println("Este numero ya existe en la lista");
}

}

}


public void eliminar(Scanner tecla){
int posicion = buscar(tecla);

}



public int buscar(Scanner tecla){

int pos = 0;
String telefono;
System.out.println("Ingrese telefono: ");
telefono = tecla.nextLine();

do{
pos++;
}while(pos < cantidad && persona[pos].getTelefono().equals(telefono) == false);

if(persona[pos].getTelefono().equals(telefono)){
return pos;
}else{
return -1;
}
}


public static void main(String[] args) {
// TODO Auto-generated method stub
Lista registro = new Lista();

Scanner tecla = new Scanner(System.in);
int rpta;
int opcion;

do{
System.out.println("1. Añadir: ");
System.out.println("2. Eliminar: ");
System.out.println("3. Buscar: ");

opcion = tecla.nextInt();

switch(opcion){
case 1:{
registro.anadir(tecla);
break;
}
case 2:{
registro.eliminar(tecla);
break;
}
case 3:{
registro.buscar(tecla);
break;
}
}


System.out.print("Mostrar las opciones de nuevo 1)si/2)no: ");
rpta = tecla.nextInt();
}while(rpta == 1);

}

}




#2
Programación C/C++ / estructura y archivos
13 Noviembre 2016, 17:52 PM
Tengo una duda, como se guarda en un archivo los datos de un struct? he visto que lo hacen con la funcion fwrite( , , , ) pero creo que para eso necesito usar la sintaxis del C, habra algo similar pero con C++?   :(
#3
Programación C/C++ / Re: Duda putc y fputc
12 Noviembre 2016, 12:15 PM
Ya veo xD gracias por la ayuda
#4
Programación C/C++ / Duda putc y fputc
11 Noviembre 2016, 21:39 PM
He estado buscando y no encuentro que diferencia hay entre esas dos funciones de la libreria stdio, segun wikipedia dice esto:
fputc: Escribe un carácter en un fichero.
putc: Escribe un carácter en un fichero.
Luego entre a ver que tipo de argumentos reciben y me encontre con esto:
int putc(int char, FILE *stream);
int fputc(int ch, FILE *stream);
y aun sigo teniendo la duda porque pareciera que es lo mismo.  :(
#5
Programación C/C++ / Re: Proyecto (ayuda)
5 Noviembre 2016, 23:04 PM
Muchas gracias! tomare en cuenta la primera opción recién veré archivos esta semana, creo que podre complementarlo.
#6
Programación C/C++ / Proyecto (ayuda)
5 Noviembre 2016, 02:50 AM
Buenas, ya tengo un tiempo en este foro y me han ayudado mucho :rolleyes: necesito un consejo, tengo que presentar un proyecto algo simple hecho en la consola, utilizando todo lo que he hecho en clases hasta hoy (llegué hasta structs) el proyecto es sobre algo que que le de solución a algún problema, como es la primera vez que me mandan hacer esto no se me ocurre mucho que podría hacer, alguien tiene alguna sugerencia?  :)
No pido que me hagan el código ni nada por el estilo sino que me aconsejen que podría hacer. Muchas gracias de antemano. Saludos. :)
#7
Bueno, no pretendo crear un juego pero si quiero ver como funciona al menos, es algo que me llama un poco la atención al menos la lógica de este, gracias por responder
#8
Hola, soy nuevo en esto de la programación (tengo ya medio año aprendiendo C++ y C) y como todas las personas que comienzan a programar en algún momento se hacen la pregunta como rayos se programa un juego? buscando en internet me topé con cosas como que necesitaba usar librerías como SDL, SFML, allegro, etc. Sin embargo, también información que hacia referencia al uso de motores gráficos. Mi pregunta es la siguiente ¿Vale la pena programar algún juego desde cero usando librerías como SDL o es mejor valerse de motores gráficos? (algo mas pegado a la programación 2D).
Me surgía la curiosidad porque quería ver como se usaban los códigos para generar movimiento a algo presionando alguna tecla y como se comportaban los objetos entre sí.
Gracias de antemano. :)
#9
Cita de: engel lex en 29 Julio 2016, 16:12 PM
delete no va a limpiar la memoria (seria perder tiempo en algo innecesario ) solo la va a liberar para que sea usable por otra varible o proceso

a menos que otra variable acceda y cambie ese valor ese puntero parecerá valido

Entonces en teoría lo que hice en el código esta bien solo que la definición sobre los operadores la tenia mal, verdad? por cierto gracias
#10
Hola, alguien podría ayudarme con esto? estuve viendo el tema de los operadores new y delete y queria darle valores a un arreglo para luego liberarlo usando delete e imprimir los valores nuevos que tendrían (se supone que seria cualquier valor) pero los 3 últimos valores siguen siendo los mismos a los que ingreso, entonces me hace pensar que no se ha liberado nada más que los dos primeros elementos. Gracias de antemano.
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main()
{
   int *puntero = new int[5];
   
   for(int i = 0; i < 5; i++){
       cout<<"Ingresa elemento "<<i+1<<": "; cin>>*(puntero + i);
       cout<<endl;
   }
   delete[] puntero;


   for(int i = 0; i < 5 ; i++){
       cout<<*(puntero + i)<<endl;
   }

   return 0;
}