Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdlib>
- #include <cstdio>
- #include "cursos.h"
- using namespace std;
- int main(int argc, char** argv) {
- freopen("cursos.txt", "r", stdin);
- void* lstCursos;
- leerLstCursos(lstCursos);
- imprimirLstCursos(lstCursos);
- return 0;
- }
- //Cursos.cpp
- #include <iostream>
- #include "cursos.h"
- #include <cstring>
- #define N 10
- using namespace std;
- void imprimirRegCurso(void** regCurso){
- char* codigo = (char*)regCurso[0];
- double* credito = (double*)regCurso[1];
- char* nombre = (char*)regCurso[2];
- cout << "Codigo: " << codigo << endl;
- cout << "Creditos: " << *credito << endl;
- cout << "Nombre: " << nombre << endl;
- }
- void imprimirLstCursos(void *lstCursos){
- void** recLstCursos = (void**) lstCursos;
- for (int i = 0; i < recLstCursos[i] != NULL; i++) {
- void** regCurso = (void**)recLstCursos[i];
- imprimirRegCurso(regCurso);
- cout << endl;
- }
- }
- void fitSize(void*** input, void*& output, int numElem){
- void *** auxOutPut = new void**[numElem+1];
- for (int i=0; i<numElem; i++) auxOutPut[i] = input[i];
- auxOutPut[numElem] = NULL;
- output = auxOutPut;
- }
- void leerDatosCurso(char* &codigo, double*& creditos, char*& nombre){
- char auxCadena[100];
- cin >> auxCadena;
- codigo = new char[strlen(auxCadena)+1];
- strcpy(codigo, auxCadena);
- creditos = new double;
- cin >> *creditos;
- cin >> ws;
- cin.getline(auxCadena, 100, '\n');
- nombre = new char[strlen(auxCadena)+1];
- strcpy(nombre, auxCadena);
- }
- void** nuevoRegistroCurso(){
- void** regCurso = new void*[3];
- char* codigo, *nombre;
- double* creditos;
- leerDatosCurso(codigo, creditos, nombre);
- regCurso[0] = codigo;
- regCurso[1] = creditos;
- regCurso[2] = nombre;
- }
- void leerLstCursos(void* &lstCursos){
- int numCursos = 0;
- void** bufferCursos[N];
- while(!cin.eof()){
- void** regCurso = nuevoRegistroCurso();
- bufferCursos[numCursos++] = regCurso;
- cin >> ws;
- }
- fitSize(bufferCursos, lstCursos, numCursos);
- }
- //Cursos.h
- #ifndef CURSOS_H
- #define CURSOS_H
- void leerDatosCurso(char* &codigo, double* & creditos, char* &nombre);
- void imprimirRegCurso(void** regCurso);
- void** nuevoRegistroCurso();
- void fitSize(void*** input, void*** &output, int numElem);
- void leerLstCursos(void* &lstCursos);
- void imprimirLstCursos(void* lstCursos);
- #endif /* CURSOS_H */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement