C/Visual C - Sencillo Programa?

 
Vista:

Sencillo Programa?

Publicado por Scott Steiner (1 intervención) el 17/11/2000 00:00:00
Dónde consigo un código o ejemplo que genere el enunciado siguiente:

Diseñar una jerarquía de clases que utilice como clase base o raíz una clase LAN (red de área local).

Las subclases derivadas deben representar diferentes topologías como estrella, anillo, bus y hub.

Los miembros datos deben representar propiedades tales como soporte de transmisión, control de acceso, formato del marco de datos, estándares, velocidad de transmisión, etc. Se desea simular la actividad de los nodos de tal LAN.

La red consta de nodos, que pueden ser dispositivos tales como computadorras personales, estaciones de trabajo, máquinas FAX, etc., Una tarea principal de LAN es soportar comunicaciones de datos entre sus nodos.

El usuario del proceso de simulacion debe,
como minimo poder:

* enumerar los nodos actuales de la red LAN.
* añadir un nuevo nodo a la red LAN.
* quitar un nodo de la red LAN.
* configurar la red, proporcionándole una topología de estrella o de bus.
* especificar el tamaño del paquete que es el tamaño
en bytes del mensaje que va de un nodo a otro.
* enviar un paquete de un nodo especificado a otro.
* difundir un paquete desde un nodo a todos los demas de la red.
* realizar estadísticas de la LAN, tales como tiempo medio que emplea un paquete.

se le agradece cualquier ayuda o referncia.
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
Imágen de perfil de Alejandro

Simulación de red de área local (LAN) con jerarquía de clases

Publicado por Alejandro (913 intervenciones) el 04/09/2024 18:03:13
Aquí tienes un ejemplo de código en C++ que muestra una posible implementación de la jerarquía de clases para la simulación de una red de área local (LAN) con diferentes topologías:

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
#include <iostream>
#include <vector>
 
// Clase base o raíz: LAN
class LAN {
public:
    virtual void listarNodos() const = 0;
    virtual void agregarNodo() = 0;
    virtual void quitarNodo() = 0;
    virtual void configurarRed() = 0;
    virtual void especificarTamanoPaquete(int tamano) = 0;
    virtual void enviarPaquete(int nodoOrigen, int nodoDestino) = 0;
    virtual void difundirPaquete(int nodoOrigen) = 0;
    virtual void realizarEstadisticas() const = 0;
};
 
// Subclase derivada: Topología Estrella
class EstrellaLAN : public LAN {
private:
    std::vector<std::string> nodos;
    int tamanoPaquete;
 
public:
    void listarNodos() const override {
        std::cout << "Nodos actuales de la red LAN (topología Estrella):" << std::endl;
        for (const auto& nodo : nodos) {
            std::cout << nodo << std::endl;
        }
    }
 
    void agregarNodo() override {
        std::string nuevoNodo;
        std::cout << "Ingrese el nombre del nuevo nodo: ";
        std::cin >> nuevoNodo;
        nodos.push_back(nuevoNodo);
        std::cout << "Nodo agregado exitosamente." << std::endl;
    }
 
    void quitarNodo() override {
        int indice;
        std::cout << "Ingrese el índice del nodo a quitar: ";
        std::cin >> indice;
        if (indice >= 0 && indice < nodos.size()) {
            nodos.erase(nodos.begin() + indice);
            std::cout << "Nodo eliminado exitosamente." << std::endl;
        } else {
            std::cout << "Índice inválido." << std::endl;
        }
    }
 
    void configurarRed() override {
        std::cout << "Red configurada como topología Estrella." << std::endl;
    }
 
    void especificarTamanoPaquete(int tamano) override {
        tamanoPaquete = tamano;
        std::cout << "Tamaño del paquete especificado: " << tamanoPaquete << " bytes." << std::endl;
    }
 
    void enviarPaquete(int nodoOrigen, int nodoDestino) override {
        std::cout << "Enviando paquete desde el nodo " << nodos[nodoOrigen] << " al nodo " << nodos[nodoDestino] << "." << std::endl;
    }
 
    void difundirPaquete(int nodoOrigen) override {
        std::cout << "Difundiendo paquete desde el nodo " << nodos[nodoOrigen] << " a todos los demás nodos de la red." << std::endl;
    }
 
    void realizarEstadisticas() const override {
        std::cout << "Realizando estadísticas de la LAN (topología Estrella)..." << std::endl;
        // Cálculo de estadísticas
    }
};
 
// Otras subclases derivadas (AnilloLAN, BusLAN, HubLAN) se implementarían de manera similar
 
int main() {
    LAN* red = new EstrellaLAN(); // Puedes cambiar la topología aquí
 
    red->agregarNodo();
    red->agregarNodo();
    red->listarNodos();
    red->quitarNodo();
    red->configurarRed();
    red->especificarTamanoPaquete(1024);
    red->enviarPaquete(0, 1);
    red->difundirPaquete(0);
    red->realizarEstadisticas();
 
    delete red;
 
    return 0;
}

Este código muestra una implementación básica de la jerarquía de clases para la simulación de una red de área local (LAN) con la topología de estrella. Puedes agregar las otras topologías (anillo, bus, hub) como subclases derivadas de la clase base LAN y proporcionar su propia implementación para los métodos virtuales.

Ten en cuenta que este es solo un ejemplo y puedes adaptarlo según tus necesidades específicas. Además, es posible que necesites agregar más funcionalidades y métodos a las clases para cumplir con todos los requisitos del enunciado.

Espero que este ejemplo te sea útil como referencia para diseñar tu jerarquía de clases para la simulación de una red de área local. ¡Buena suerte con tu proyecto, Scott!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar