Está en la página 1de 19

11-2-2024

Definición de clases
Entregable 3

Nombre: Misael Rangel Estrada

Código: 220792965

Materia: Seminario de solución de problemas de Estructura de Datos II

Sección: D05

Profesor: Alfredo Gutiérrez Hernández


Misael Rangel Estrada 11/Febrero/2024

INTRODUCCIÓN ................................................................................................................................ 2

IMPLEMENTACIÓN DE CLASES ......................................................................................................... 2

MEDICOS ............................................................................................................................................ 2
DOCTOR.HPP....................................................................................................................................................... 2
NAME.HPP ........................................................................................................................................................... 3
SCHEDULE.HPP(HORARIO) .................................................................................................................................... 4
FILEDOCTOR.HPP .................................................................................................................................................. 4

MENUDOCTOR.HPP............................................................................................................................................... 5
PACIENTES .......................................................................................................................................... 6
PATIENT.HPP........................................................................................................................................................ 6
DATE.HPP ............................................................................................................................................................. 7

ADDRESS.HPP....................................................................................................................................................... 8
FILEPATIENT.HPP ................................................................................................................................................. 9
MENUPATIENT.HPP ............................................................................................................................................ 10
DIAGNOSTICOS................................................................................................................................... 10
DIAGNOSIS.HPP .................................................................................................................................................. 10
FILEDIAGNOSIS.HPP ............................................................................................................................................ 11
MENUDIAGNOSIS.HPP ......................................................................................................................................... 12
MEDICAMENTOS ................................................................................................................................. 12
MEDICINE.HPP .................................................................................................................................................... 12
FILEMEDICINE.HPP ............................................................................................................................................. 13
MENUMEDICINE.HPP .......................................................................................................................................... 14
CONSULTAS ...................................................................................................................................... 15
CONSULTATION.HPP ........................................................................................................................................... 15
TIME.HPP ........................................................................................................................................................... 16
FILECONSULTATION.HPP ..................................................................................................................................... 16
MENUCONSULTATION.HPP .................................................................................................................................. 17

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

INTRODUCCIÓN

Elabore el código fuente correspondiente a la definición de las clases que ha considerado


necesarias para el proyecto.

Considere:

Puede haber diferencias entre el diagrama de clases de la entrega enterior y la


definición de clases debido a que usted ha reconsiderado algunos aspectos, recuerde
modificar lo que sea necesario para que coincidan, como preparación para la entrega
final.

IMPLEMENTACIÓN DE CLASES

MEDICOS

Doctor.HPP
#ifndef __DOCTOR_H__
#define __DOCTOR_H__

#include <string>

#include "name.hpp"
#include "schedule.hpp"

class Doctor
{
private:
Name name;
std::string code;
std::string idCard;
Schedule schedule;
public:
Doctor();
Doctor(const Doctor&);

void setName(const Name&);


void setCode(const std::string&);
void setIdCard(const std::string&);
void setSchedule(const Schedule&);

std::string toString()const;

Name getName() const;


std::string getCode() const;
std::string getIdCard() const;
Schedule getSchedule() const;

Doctor& operator = (const Doctor&) const;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

bool operator == (const Doctor&)const;


bool operator != (const Doctor&)const;
bool operator < (const Doctor&)const;
bool operator <= (const Doctor&)const;
bool operator > (const Doctor&)const;
bool operator >= (const Doctor&)const;

//Operadores

friend std::istream operator >> (std::istream , Doctor&);


friend std::ostream operator << (std::ostream , Doctor&);

std::string serileze() const;


void deserialize(const std::string);

};

#endif // __DOCTOR_H__

Name.hpp
#ifndef __NAME_H__
#define __NAME_H__

#include <string>
#include <iostream>

class Name
{
private:
std::string first;
std::string last;
public:
Name();
Name(const Name&);
Name(const std::string&,const std::string&);

void setFirst(const std::string);


void setLast(const std::string);

std::string toString() const;

std::string getFirst() const;


std::string getLast() const;

Name& operator = (const Name&)const;

bool operator == (const Name&)const;


bool operator != (const Name&)const;
bool operator < (const Name&)const;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

bool operator <= (const Name&)const;


bool operator > (const Name&)const;
bool operator >= (const Name&)const;

//Operadores

friend std::istream operator >> (std::istream , const Name&);


friend std::ostream operator << (std::ostream , const Name&);
};

#endif // __NAME_H__

Schedule.hpp(Horario)
#ifndef __SCHEDULE_H__
#define __SCHEDULE_H__

#include <iostream>

class Schedule
{
private:
int entry;
int departure;
public:
Schedule();
Schedule(const Schedule&);
Schedule(const int&,const int&);

int toInt()const;

Schedule& operator = (const Schedule&)const;

bool operator == (const Schedule&)const;


bool operator != (const Schedule&)const;
bool operator < (const Schedule&)const;
bool operator <= (const Schedule&)const;
bool operator > (const Schedule&)const;
bool operator >= (const Schedule&)const;

//Operadores

friend std::istream operator >> (std::istream , const Schedule&);


friend std::ostream operator << (std::ostream , const Schedule&);
};

#endif // __SCHEDULE_H__

fileDoctor.hpp

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

#ifndef __FILEDOCTOR_H__
#define __FILEDOCTOR_H__

#include <fstream>
#include <list>

#include "doctor.hpp"
#include "name.hpp"
#include "tuple.hpp"

class FileDoctor{
private:
std::fstream dataFile;
std::fstream indexByCodeFile;
std::fstream indexByNameFile;

std::string nameFile;
std::list<Tuple<std::string>> indexByCode;
std::list<Tuple<Name>> indexByName;
public:
FileDoctor(const std::string); //Nombre del archivo

void addRecord(const Doctor&);


void delRecord(const int&);

int findRecord(const Doctor&);


int findRecord(int);
int findRecord(const Name&);

void clear();
void reIndex();
void compress();

};

#endif // __FILEDOCTOR_H__

MenuDoctor.hpp
#ifndef __MENUDOCTOR_H__
#define __MENUDOCTOR_H__

#include "fileDoctor.hpp"

class MenuDoctor{
private:
FileDoctor fileDoctor;
public:
MenuDoctor();
MenuDoctor(const MenuDoctor&);
MenuDoctor(const FileDoctor&);

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

int mainMenu();
void add();
void del();
void find();
void edit();

};

#endif // __MENUDOCTOR_H__

PACIENTES

Patient.hpp
#ifndef __PATIENTS_H__
#define __PATIENTS_H__

#include <string>

#include "name.hpp"
#include "date.hpp"
#include "address.hpp"

class Patients{
private:
std::string socialSecurity;
Name name;
Date birthDate;
Address address;
std::string telefone;
public:
Patients();
Patients(const Patients&);

void setSocialSecurity(const std::string&);


void setName(const Name&);
void setBirthDate(const Date&);
void setAddress(const Address&);
void setTelefone(const std::string&);

std::string toString()const;

std::string getSocialSecurity()const;
Name getName()const;
Date getBirthDate()const;
Address getAddress()const;
std::string getTelefone()const;

Patients& operator = (const Patients&) const;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

bool operator == (const Patients&)const;


bool operator != (const Patients&)const;
bool operator < (const Patients&)const;
bool operator <= (const Patients&)const;
bool operator > (const Patients&)const;
bool operator >= (const Patients&)const;

//Operadores

friend std::istream operator >> (std::istream , Patients&);


friend std::ostream operator << (std::ostream , Patients&);

std::string serileze() const;


void deserialize(const std::string);
};

#endif // __PATIENTS_H__

date.hpp
#ifndef __DATE_H__
#define __DATE_H__

#include <iostream>

class Date{
private:
int year;
int month;
int day;
public:
Date();
Date(const Date&);
Date(const int&,const int&,const int&);

void setYear(const int&);


void setMonth(const int&);
void setDay(const int&);

int toInt()const;

int getYear()const;
int getMonth()const;
int getDay()const;

Date& operator = (const Date&)const;

bool operator == (const Date&)const;


bool operator != (const Date&)const;
bool operator < (const Date&)const;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

bool operator <= (const Date&)const;


bool operator > (const Date&)const;
bool operator >= (const Date&)const;

//Operadores

friend std::istream operator >> (std::istream , Date&);


friend std::ostream operator << (std::ostream , Date&);
};

#endif // __DATE_H__

Address.hpp
#ifndef __ADDRESS_H__
#define __ADDRESS_H__

#include <string>
#include <iostream>

class Address{
private:
std::string street;
int number;
std::string cologne;
int postalCode;
std::string town;
public:
Address();
Address(const Address&);

void setStreet(const std::string);


void setNumber(const int&);
void setCologne(const std::string&);
void setPostalCOde(const int&);
void setTown(const std::string&);

std::string toString() const;

std::string getStreet() const;


int getNumber() const;
std::string getCologne()const;
int getCodePostal() const;
std::string getTown() const;

Address& operator = (const Address&)const;

bool operator == (const Address&)const;


bool operator != (const Address&)const;
bool operator < (const Address&)const;
bool operator <= (const Address&)const;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

bool operator > (const Address&)const;


bool operator >= (const Address&)const;

//Operadores

friend std::istream operator >> (std::istream , Address&);


friend std::ostream operator << (std::ostream , Address&);
};

#endif // __ADDRESS_H__

FilePatient.hpp
#ifndef __FILEPATIENTS_H__
#define __FILEPATIENTS_H__

#include <fstream>
#include <list>

#include "patients.hpp"
#include "tuple.hpp"

class FilePatients{
private:
std::fstream dataFile;
std::fstream indexByCodeFile;
std::fstream indexByNameFile;

std::string nameFile;
std::list<Tuple<std::string>> indexByCode;
std::list<Tuple<Name>> indexByName;
public:
FilePatients(const std::string); //Nombre del archivo

void addRecord(const Patients&);


void delRecord(const int&);

int findRecord(const Patients&);


int findRecord(int);
int findRecord(const Name&);

void clear();
void reIndex();
void compress();

};

#endif // __FILEPATIENTS_H__

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

MenuPatient.hpp
#ifndef __MENUPATIENTS_H__
#define __MENUPATIENTS_H__

#include "filePatients.hpp"

class MenuPatients{
private:
FilePatients filePatient;
public:
MenuPatients();
MenuPatients(const MenuPatients&);
MenuPatients(const FilePatients&);

int mainMenu();
void add();
void del();
void find();
void edit();
};

#endif // __MENUPATIENTS_H__

DIAGNOSTICOS

Diagnosis.hpp
#ifndef __DIAGNOSIS_H__
#define __DIAGNOSIS_H__

#include <iostream>
#include <string>

class Diagnosis{
private:
std::string code;
std::string name;
std::string description;
public:
Diagnosis();
Diagnosis(const Diagnosis&);
Diagnosis(const std::string&, const std::string&, const std::string&);

void setCode(const std::string);


void setName(const std::string);
void setDescription(const std::string);

std::string toString()const;

std::string getCode()const;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

std::string getName()const;
std::string getDescription()const;

Diagnosis& operator = (const Diagnosis&) const;

bool operator == (const Diagnosis&)const;


bool operator != (const Diagnosis&)const;
bool operator < (const Diagnosis&)const;
bool operator <= (const Diagnosis&)const;
bool operator > (const Diagnosis&)const;
bool operator >= (const Diagnosis&)const;

//Operadores

friend std::istream operator >> (std::istream , Diagnosis&);


friend std::ostream operator << (std::ostream , Diagnosis&);

std::string serileze() const;


void deserialize(const std::string);
};

#endif // __DIAGNOSIS_H__

FileDiagnosis.hpp
#ifndef __FILEDIAGNOSIS_H__
#define __FILEDIAGNOSIS_H__

#include <fstream>
#include <list>

#include "diagnosis.hpp"

#include "tuple.hpp"

class FileDiagnosis{
private:
std::fstream dataFile;
std::fstream indexByCodeFile;
std::fstream indexByNameFile;

std::string nameFile;
std::list<Tuple<std::string>> indexByCode;
std::list<Tuple<std::string>> indexByName;
public:
FileDiagnosis(const std::string); //Nombre del archivo

void addRecord(const Diagnosis&);


void delRecord(const int&);

int findRecord(const Diagnosis&);

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

int findRecord(int);
int findRecord(const std::string&);

void clear();
void reIndex();
void compress();
};

#endif // __FILEDIAGNOSIS_H__

MenuDiagnosis.hpp
#ifndef __MENUDIAGNOSIS_H__
#define __MENUDIAGNOSIS_H__

#include "fileDiagnosis.hpp"

class MenuDiagnosis{
private:
FileDiagnosis fileDoctor;
public:
MenuDiagnosis();
MenuDiagnosis(const MenuDiagnosis&);
MenuDiagnosis(const FileDiagnosis&);

int mainMenu();
void add();
void del();
void find();
void edit();

};

#endif // __MENUDIAGNOSIS_H__

MEDICAMENTOS

Medicine.hpp
#ifndef __MEDICINE_H__
#define __MEDICINE_H__

#include <string>
#include<iostream>

class Medicine{
private:
std::string code;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

std::string name;
std::string description;
public:
Medicine();
Medicine(const Medicine&);
Medicine(const std::string&, const std::string&, const std::string&);

void setCode(const std::string);


void setName(const std::string);
void setDescription(const std::string);

std::string toString()const;

std::string getCode()const;
std::string getName()const;
std::string getDescription()const;

Medicine& operator = (const Medicine&) const;

bool operator == (const Medicine&)const;


bool operator != (const Medicine&)const;
bool operator < (const Medicine&)const;
bool operator <= (const Medicine&)const;
bool operator > (const Medicine&)const;
bool operator >= (const Medicine&)const;

//Operadores

friend std::istream operator >> (std::istream , Medicine&);


friend std::ostream operator << (std::ostream , Medicine&);

std::string serileze() const;


void deserialize(const std::string);
};

#endif // __MEDICINE_H__

FileMedicine.hpp
#ifndef __FILEMEDICINE_H__
#define __FILEMEDICINE_H__

#include <fstream>
#include <list>

#include "medicine.hpp"
#include "tuple.hpp"

class FileMedicine{
private:
std::fstream dataFile;
std::fstream indexByCodeFile;

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

std::fstream indexByNameFile;

std::string nameFile;
std::list<Tuple<std::string>> indexByCode;
std::list<Tuple<std::string>> indexByName;
public:
FileMedicine(const std::string); //Nombre del archivo

void addRecord(const Medicine&);


void delRecord(const int&);

int findRecord(const Medicine&);


int findRecord(int);
int findRecord(const std::string&);

void clear();
void reIndex();
void compress();
};

#endif // __FILEMEDICINE_H__

MenuMedicine.hpp
#ifndef __MENUMEDICINE_H__
#define __MENUMEDICINE_H__

#include "fileMedicine.hpp"

class MenuMedicine{
private:
FileMedicine fileMedicine;
public:
MenuMedicine();
MenuMedicine(const MenuMedicine&);
MenuMedicine(const FileMedicine&);

int mainMenu();
void add();
void del();
void find();
void edit();

};

#endif // __MENUMEDICINE_H__

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

CONSULTAS

Consultation.hpp
#ifndef __CONSULTATION_H__
#define __CONSULTATION_H__

#include <string>

#include "date.hpp"
#include "time.hpp"

class Consultation{
private:
std::string code;
Date date;
Time hour;
std::string doctorsCode;
std::string patientsCode;
std::string medicinesCode1;
std::string medicinesCode2;
std::string medicinesCode3;
std::string diagnosis;

public:
Consultation();
Consultation(const Consultation&);

void setCode(const std::string&);


void setDoctorsCode(const std::string&);
void setPatientsCode(const std::string&);
void setMedicinesCode1(const std::string&);
void setMedicinesCode2(const std::string&);
void setMedicinesCode3(const std::string&);
void setDiagnosis(const std::string&);

std::string toString() const;

std::string getCode()const;
std::string getDoctorsCode()const;
std::string getPatientsCode()const;
std::string getMedicineCode1()const;
std::string getMedicineCode2()const;
std::string getMedicineCode3()const;
std::string getDiagnosis()const;

Consultation& operator = (const Consultation&);

friend std::istream operator >> (std::istream , Consultation&);


friend std::ostream operator << (std::ostream , Consultation&);
};

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

#endif // __CONSULTATION_H__

Time.hpp
#ifndef __TIME_H__
#define __TIME_H__

#include <iostream>

class Time{
private:
int hour;
int minute;
int second;
public:
Time();
Time(const Time&);
Time(const int&,const int&,const int&);

void setTime(const int&);


void setMinute(const int&);
void setSecond(const int&);

int toInt()const;

int getTime()const;
int getMinute()const;
int getSecond()const;

Time& operator = (const Time&)const;

bool operator == (const Time&)const;


bool operator != (const Time&)const;
bool operator < (const Time&)const;
bool operator <= (const Time&)const;
bool operator > (const Time&)const;
bool operator >= (const Time&)const;

//Operadores

friend std::istream operator >> (std::istream , const Time&);


friend std::ostream operator << (std::ostream , const Time&);
};

#endif // __TIME_H__

FileConsultation.hpp

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

#ifndef __FILECONSULTATION_H__
#define __FILECONSULTATION_H__

#include <fstream>
#include <list>

#include "consultation.hpp"
#include "tuple.hpp"

class FileConsultation{
private:
std::fstream dataFile;
std::fstream indexByCodeFile;
std::fstream indexByDateFile;

std::string nameFile;
std::list<Tuple<std::string>> indexByCode;
std::list<Tuple<Date>> indexByDate;
public:
FileConsultation(const std::string); //Nombre del archivo

void addRecord(const Consultation&);


void delRecord(const int&);

int findRecord(const Consultation&);


int findRecord(int);
int findRecord(const Date&);

void clear();
void reIndex();
void compress();
};

#endif // __FILECONSULTATION_H__

MenuConsultation.hpp
#ifndef __MENUCONSULTATION_H__
#define __MENUCONSULTATION_H__

#include "fileConsultation.hpp"

class MenuConsultation{
private:
FileConsultation fileConsultation;
public:
MenuConsultation();
MenuConsultation(const MenuConsultation&);
MenuConsultation(const FileConsultation&);

int mainMenu();

Seminario de solución de problemas de Estructuras de Datos II


Misael Rangel Estrada 11/Febrero/2024

void add();
void del();
void find();
void edit();

};

#endif // __MENUCONSULTATION_H__

Seminario de solución de problemas de Estructuras de Datos II

También podría gustarte