Code Monkey home page Code Monkey logo

aed-schedules's Introduction

L.EIC Schedules

Projeto de AED | Entrega até 3/11
Duarte Assunção, Guilherme Matos, João Ferreira


ToDo

  1. Parse data: Ler e guardar a informação em memória (vice-versa)

  2. Funcionalidades de gestão de horários

  3. Listagens de dados (totais e parciais)

    [!IMPORTANT] Ainda por decidir. Alguns exemplos dados na descrição do projeto:
    "i.Consult the schedule of a given student or class;
    ii.Consult the students within a given class, course or year;
    iii.Consult the number of students registered in at least n UCs;
    iv.Consult the class/year/UC occupation (sorting by UC, ascending or descending order, …);
    v.Consult the UCs with the greatest number of students;"

  4. Pedidos de mudanças

    • Mudanças de cadeiras
    • Mudanças de turmas
  5. Registo cronológico de todas as mudanças e permitir restauro de mudanças recentes

  6. Documentação Doxygen


Estrutura em memória

Note

Este ainda é um design inicial e está suscetível a alterações, nomeadamente a favor de eficiência em certa funções.

A informação será guardada em memória numa estrutura muito semelhante aos ficheiros .csv.
Isto facilita imenso o parsing, porém ao custo da eficiência de algumas funções.

Por cada ficheiro x.csv, haverá uma classe appX que terá todos os seus métodos e um vetor de classes x que cada um representa uma linha do ficheiro.


Apresentação em 7 de Novembro

(TBD)

aed-schedules's People

Contributors

duartesassuncao avatar guilherme-ds-matos avatar jvdcf avatar

Stargazers

 avatar  avatar

aed-schedules's Issues

Class Student

Esta class é composta por uma entrada de estudante, e conterá informação de todos os ficheiros:

class Student

nome
código de estudante
vector<UcClass*> (Ver issue UcClass)

Class ClassSchedule

Esta class contem um pointer para uma turma em específico, mas também um pointer para o respetivo horário dessa turma.

class ClassSchedule

ClassPerUc*
vector<Class*>

Class AppStudent

Esta class é um set um wrapper para um std::set() cujo parâmetro de sorting vai ser o código do estudante

class AppStudent

std::set

Classe's ``Cap``

Incluir uma variável na AppClasses com a capacidade máxima de uma turma.
Acho boa ideia este valor ser decidido no construtor em vez de estar no código em si.

Fonte:
2. A class can only accept a new student if its capacity has not been exceeded.
Consider that there is a maximum capacity Cap for classes;

Schedule management system

  • print
    • student (horário, turmas e UCs)
    • class (estudantes de uma turma)
    • uc (turmas de uma UC)
  • remove
  • add
  • switch
  • quit
  • save
  • history
  • undo

Process class

Obrigatório e útil para: #5, #6, #7 e #8

Note

Regras para permitir pedidos:

  • UC:

    Nº de UC do estudante <= 7
    Pelo menos uma turma com vaga
    Sem conflito no horário

  • Class:

    Apenas uma turma por UC
    Se a capacidade Cap não for excedida
    Balanceado: Diferença entre turmas <= 4
    Sem conflito no horário

Perform several listings of the data

Warning

As listagens ainda têm de ser aprovadas...

Listagens necessárias devido a outras funções:

  • Estudantes registados em, pelo menos, n UCs
  • Nº de estudantes em cada turma numa dada UC
  • Horário de um estudante (para ver conflitos)
  • Turmas de um estudante

Listagens decididas:

  • Estudantes de uma dada turma
  • Estudantes de uma dada UC
  • Turmas de uma dada UC
  • ...

Explicando os mais recentes issues

Da forma como estávamos a fazer a complexidade rapidamente iria crescer, porque os iteradores de C++ são imensamente ineficientes. Como tal, vamos chegar a uma aproximação mais perto da vossa inicial para diminuir as complexidades O().
Não será preciso apagar qualquer progresso atual, vamos apenas prosseguir numa direção diferente do que estávamos a fazer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.