Java - POO-programa que gestione los datos de una empresa de venta de productos software

 
Vista:
sin imagen de perfil
Val: 5
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

POO-programa que gestione los datos de una empresa de venta de productos software

Publicado por Víctor (18 intervenciones) el 19/05/2021 19:10:06
Buenas queria ver si me podian ayudar con este programa:

Se desea crear un programa que gestione los datos de una empresa de venta de productos software. Para ello se está creando una aplicación web, de uso interno y externo, que permitirá la compra de productos, el registro de usuarios, etc. Un equipo de diseñadores está programando la parte front y nosotros estamos en el equipo de la parte back en el que codificaremos el backoffice de la aplicación. Dentro de este equipo nuestra tarea es la definición e implementación de las clases Java que serán utilizadas por el front para realizar todas las operaciones necesarias para la aplicación.
Parte 1 – Gestión de usuarios. La primera parte de nuestro desarrollo consistirá en crear las clases para la gestión de los usuarios en el sistema siguiendo los siguientes requisitos: - Se almacenan los siguientes datos de un usuario: nombre, apellido1, apellido2, email, fecha de nacimiento, nombre de usuario, contraseña y el perfil del usuario. Se podrá crear un usuario solo con email, nombre de usuario y clave o bien con todos los datos. También almacena los datos de la dirección de envío y los datos de la dirección de facturación. - Los datos de la dirección de envío y de facturación son los mismos: calle, número, portal, piso, puerta, código postal, municipio, provincia y país. - El perfil del usuario tiene los siguientes datos: el nombre del perfil y el código del perfil. Por ejemplo: ADMINISTRADOR - ADM En este momento del diseño de la aplicación se define un usuario como una persona, sin requisitos específicos.
Parte 2 – Gestión de productos y pedidos. En esta parte se implementará la parte de productos que se pondrán a la venta en la aplicación web. Cada producto debe almacenar: nombre del producto, marca, código del producto, precio por unidad (en euros), un campo de observaciones y la dirección URL del producto en la tienda. Se define un pedido a un conjunto de productos, de la que también se pueda obtener el número de unidades por producto, precio de cada producto, subtotal (total para varios productos idénticos) y total (cálculo total). Los datos de totales y subtotales serán campos calculados. Cuando se habla de campos calculados nos estamos refiriendo a que esos datos se calculan cada vez que se invoca al método. Por tanto dentro de la clase pedido debe haber dos métodos: Uno que calcule el total del pedido (para ello deberá recorrer todos los productos y hacer la operación por las unidades del producto) y otro método que dado el código de un producto como parámetro de entrada calcule el subtotal de dichos productos en el pedido (recorriendo también la estructura de datos y haciendo el cálculo). Se deben permitir decimales. Un usuario tiene un conjunto de pedidos realizados, donde a su vez cada pedido es un conjunto de productos. Cuestiones generales: - Todos los objetos que se creen deben tener un identificador como atributo de tipo int. - Estos identificadores no podrán ser modificados desde la aplicación. Se pide: - Implementar el conjunto de clases necesarias y un programa de prueba donde se verifique el correcto funcionamiento de todos los métodos (incluido total y subtotales).
**********
Yo tengo hecha la primera parte que seria esta:

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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
package empresaVentaProdSoftware;
 
public class Direccion {
 
	//Atributos
    private String calle;
    private int numero;
    private int portal;
    private String piso;
    private String puerta;
    private int codigoPostal;
    private String municipio;
    private String provincia;
    private String pais;
 
    //Constructor
    public Direccion(String calle, int numero, int portal, String piso, String puerta, int codigoPostal, String municipio, String provincia, String pais) {
        this.calle = calle;
        this.numero = numero;
        this.portal = portal;
        this.piso = piso;
        this.puerta = puerta;
        this.codigoPostal = codigoPostal;
        this.municipio = municipio;
        this.provincia = provincia;
        this.pais = pais;
    }
 
    //Métodos
 
    /**
     * @return the calle
     */
    public String getCalle() {
        return calle;
    }
 
    /**
     * @param calle the calle to set
     */
    public void setCalle(String calle) {
        this.calle = calle;
    }
 
    /**
     * @return the número
     */
    public int getNumero() {
        return numero;
    }
 
    /**
     * @param numero the número to set
     */
    public void setNumero(int numero) {
        this.numero = numero;
    }
 
    /**
     * @return the portal
     */
    public int getPortal() {
        return portal;
    }
 
    /**
     * @param portal the portal to set
     */
    public void setPortal(int portal) {
        this.portal = portal;
    }
 
    /**
     * @return the piso
     */
    public String getPiso() {
        return piso;
    }
 
    /**
     * @param piso the piso to set
     */
    public void setPiso(String piso) {
        this.piso = piso;
    }
 
    /**
     * @return the puerta
     */
    public String getPuerta() {
        return puerta;
    }
 
    /**
     * @param puerta the puerta to set
     */
    public void setPuerta(String puerta) {
        this.puerta = puerta;
    }
 
    /**
     * @return the códigoPostal
     */
    public int getCodigoPostal() {
        return codigoPostal;
    }
 
    /**
     * @param codigoPostal the códigoPostal to set
     */
    public void setCodigoPostal(int codigoPostal) {
        this.codigoPostal = codigoPostal;
    }
 
    /**
     * @return the municipio
     */
    public String getMunicipio() {
        return municipio;
    }
 
    /**
     * @param municipio the municipio to set
     */
    public void setMunicipio(String municipio) {
        this.municipio = municipio;
    }
 
    /**
     * @return the provincia
     */
    public String getProvincia() {
        return provincia;
    }
 
    /**
     * @param provincia the provincia to set
     */
    public void setProvincia(String provincia) {
        this.provincia = provincia;
    }
 
    /**
     * @return the pais
     */
    public String getPais() {
        return pais;
    }
 
    /**
     * @param pais the pais to set
     */
    public void setPais(String pais) {
        this.pais = pais;
    }
 
    @Override
    public String toString() {
        return "Calle: " + calle + "\nNumero: " + numero + "\nPortal: " + portal + "\nPiso: " + piso + "\nPuerta: " + puerta + "\nCodigo Postal: " + codigoPostal
                + "\nMunicipio: " + municipio + "\nProvincia: " + provincia + "\nPais: " + pais;
    }
 
}


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
package empresaVentaProdSoftware;
 
public class Perfil {
 
	//Atributos
    private String nombre;
    private String codigo;
 
    //Constructor
    public Perfil(String nombre, String codigo) {
        this.nombre = nombre;
        this.codigo = codigo;
    }
 
    //Métodos
 
    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }
 
    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
    /**
     * @return the codigo
     */
    public String getCodigo() {
        return codigo;
    }
 
    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }
 
    @Override
    public String toString() {
        return nombre + " - " + codigo;
    }
 
}


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
package empresaVentaProdSoftware;
 
public class Persona {
 
	//Atributos
    private String nombre;
    private String apellido1;
    private String apellido2;
    private String fechaNacimiento;
 
    //Constructor
    public Persona(String nombre, String apellido1, String apellido2, String fechaNacimiento) {
        this.nombre = nombre;
        this.apellido1 = apellido1;
        this.apellido2 = apellido2;
        this.fechaNacimiento = fechaNacimiento;
    }
 
    //Métodos
 
    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }
 
    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
 
    /**
     * @return the apellido1
     */
    public String getApellido1() {
        return apellido1;
    }
 
    /**
     * @param apellido1 the apellido1 to set
     */
    public void setApellido1(String apellido1) {
        this.apellido1 = apellido1;
    }
 
    /**
     * @return the apellido2
     */
    public String getApellido2() {
        return apellido2;
    }
 
    /**
     * @param apellido2 the apellido2 to set
     */
    public void setApellido2(String apellido2) {
        this.apellido2 = apellido2;
    }
 
    /**
     * @return the fechaNacimiento
     */
    public String getFechaNacimiento() {
        return fechaNacimiento;
    }
 
    /**
     * @param fechaNacimiento the fechaNacimiento to set
     */
    public void setFechaNacimiento(String fechaNacimiento) {
        this.fechaNacimiento = fechaNacimiento;
    }
 
    @Override
    public String toString() {
        return nombre + " " + apellido1 + " " + apellido2 + "\nFecha de nacimiento: " + fechaNacimiento;
    }
 
}


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
package empresaVentaProdSoftware;
 
public class Usuario extends Persona {
 
	//Atributos
    private String email;
    private String nombreUsuario;
    private String contraseña;
    private Direccion direccion;
    private Perfil perfil;
 
    //Constructores
    public Usuario(String email, String nombreUsuario, String contraseña, String nombre, String apellido1, String apellido2, String fechaNacimiento) {
        super(nombre, apellido1, apellido2, fechaNacimiento);
        this.email = email;
        this.nombreUsuario = nombreUsuario;
        this.contraseña = contraseña;
    }
 
    public Usuario(String email, String nombreUsuario, String contraseña, String nombre, String apellido1, String apellido2, String fechaNacimiento, Direccion direccion, Perfil perfil) {
        super(nombre, apellido1, apellido2, fechaNacimiento);
        this.email = email;
        this.nombreUsuario = nombreUsuario;
        this.contraseña = contraseña;
        this.direccion = direccion;
        this.perfil = perfil;
    }
 
    //Métodos
 
    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }
 
    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }
 
    /**
     * @return the nombreUsuario
     */
    public String getNombreUsuario() {
        return nombreUsuario;
    }
 
    /**
     * @param nombreUsuario the nombreUsuario to set
     */
    public void setNombreUsuario(String nombreUsuario) {
        this.nombreUsuario = nombreUsuario;
    }
 
    /**
     * @return the contraseña
     */
    public String getContraseña() {
        return contraseña;
    }
 
    /**
     * @param clave the contraseña to set
     */
    public void setContraseña(String contraseña) {
        this.contraseña = contraseña;
    }
 
    /**
     * @return the perfil
     */
    public Perfil getPerfil() {
        return perfil;
    }
 
    /**
     * @param perfil the perfil to set
     */
    public void setPerfil(Perfil perfil) {
        this.perfil = perfil;
    }
 
    /**
     * @return the direccion
     */
    public Direccion getDireccion() {
        return direccion;
    }
 
    /**
     * @param direccion the direccion to set
     */
    public void setDireccion(Direccion direccion) {
        this.direccion = direccion;
    }
 
    @Override
    public String toString() {
    	return super.toString() + "\nEmail: " + email + "\nNombre de usuario: " + nombreUsuario + "\nContraseña: " + contraseña;
    }
 
}

No sé si me podrían ayudar con la segunda parte ya que no la entiendo bien del todo.
Un saludo.
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