Linguagens de Programação - Atividade 15

Leia com atenção as instruções abaixo.

Preparação do Repositório.

Crie um repositório privado no GitHub. Repositórios públicos levaram nota zero automaticamente. Se seu nome for José Carlos Silva, o repositório deve ter o nome josecarloslip20202. Primeiro e segundo nome, sufixo lip20202, tudo minúsculo. É nele que devem ser colocados os arquivos. Convide o professor (jmarcelo.alencar@gmail.com) para ser colaborador do repositório. Faz parte da avaliação utilizar o GitHub de forma correta.

Dentro do repositório crie uma pasta chamada atividades. Dentro desta pasta você colocará os arquivos de cada atividade. Por exemplo, os arquivos da Atividade 02 devem estar na pasta atividades/atividade02.

Formato da Entrega:

Valor: 1,0 ponto na 2ª Nota.

Data da Entrega Limite: 10/03/2021

Coloque a resolução das questões na pasta atividades/atividade15/ no seu repositório.

Questão Única - 1,0 Ponto

Nesta questão vamos exercitar as estruturas, uniões e enumerações na linguagem C. Você deve criar os tipos de dados para permitir representar um estudante, incluindo seu nome, disciplina, curso, avaliação e situação de consolidação. Para tal defina, no arquivo alunos.c, os seguintes tipos:

Após definição dos tipos, defina uma função chamada comparaEstudante que retorna verdadeiro caso dois estudantes sejam iguais, falso caso contrário. Para testar se seu programa está correto, a função main abaixo:

int main(int argc, char *argv[]) {
Estudante a = { .nome = "João Marcelo", 
                .disciplina = Paralela, 
                .curso = CC , 
                .avaliacao.media = 7.0 , 
                .consolidado = SIM };
Estudante b = { .nome = "João Marcelo", 
                .disciplina = Paralela, 
                .curso = CC , 
                .avaliacao.notas = {7.0, 8.0, 6.0} , 
                .consolidado = NAO };	
                        
printf("%s %d %d %.2f %d\n", a.nome, 
                             a.disciplina, 
                             a.curso, 
                             a.avaliacao.media, 
                             a.consolidado);
printf("%s %d %d %.2f %d\n", b.nome, 
                             b.disciplina, 
                             b.curso, 
                             (b.avaliacao.notas[0] + 
                             b.avaliacao.notas[1] + 
                             b.avaliacao.notas[2])/3.0, 
                             b.consolidado) ;
                            
if (comparaEstudante(a, b)) {
    printf("a e b iguais.\n");
} else {
    printf("a e b diferentes.\n");
}
                            
Estudante c = { .nome = "Maria do Carmo", 
                .disciplina = Compiladores, 
                .curso = ES , 
                .avaliacao.media = 8.0 , 
                .consolidado = SIM };
Estudante d = { .nome = "Francisco de Assis", 
                .disciplina = LIP, 
                .curso = EC , 
                .avaliacao.notas = {2.0, 2.0, 6.0} , 
                .consolidado = NAO };	
                        
printf("%s %d %d %.2f %d\n", c.nome, 
                             c.disciplina, 
                             c.curso, 
                             c.avaliacao.media, 
                             c.consolidado);
printf("%s %d %d %.2f %d\n", d.nome, 
                             d.disciplina, 
                             d.curso, 
                             (d.avaliacao.notas[0] + 
                             d.avaliacao.notas[1] + 
                             d.avaliacao.notas[2])/3.0, 
                             d.consolidado) ;
                        
if (comparaEstudante(c, d)) {
    printf("c e d iguais.\n");
} else {
    printf("c e d diferentes.\n");
}
return 0;
}
                    

Deve retornar a seguinte saída:

João Marcelo 2 0 7.00 1
João Marcelo 2 0 7.00 0
a e b iguais.
Maria do Carmo 1 1 8.00 1
Francisco de Assis 0 2 3.33 0
c e d diferentes.