Atividade Struct
Luis Alves de Paiva Neto – 20230145650
Questão 1:
#include <stdio.h>
#include <stdlib.h>
typedef struct{
char nome[50];
int matricula;
float notas[3], media;
}Aluno;
void calcula_media(Aluno *p, int n);
void mostra_dados(Aluno *p, int n);
int main(){
int n;
printf("-----------------Sistema Escolar--------------\n\n");
printf("Digite o numero de alunos para o cadastro: ");
scanf("%d", &n);
Aluno aluno[n];
//Preenchimento dos alunos
printf("\nCadastro dos alunos\n\n");
for( int i=0; i<n; i++){
printf("Digite o nome do aluno: ");
scanf(" %[^\n]", aluno[i].nome);
printf("Digite a matricula do aluno: ");
scanf("%d", &aluno[i].matricula);
printf("Digite a nota 1: ");
scanf("%f", &aluno[i].notas[0]);
printf("Digite a nota 2: ");
scanf("%f", &aluno[i].notas[1]);
printf("Digite a nota 3: ");
scanf("%f", &aluno[i].notas[2]);
printf("\n\n");
calcula_media(aluno, n);
mostra_dados(aluno, n);
return 0;
}
void calcula_media(Aluno *p, int n){
float soma = 0;
for( int i=0; i<n; i++){
for( int j=0; j<3; j++)
soma = soma + p[i].notas[j];
p[i].media = soma/3;
soma = 0;
}
}
void mostra_dados(Aluno *p, int n){
float med_turma = 0;
//Mostrando nome e media de cada aluno
printf("------------Dados da Turma-------------\n\n");
for(int i=0; i<n; i++)
printf("| Nome: %s | Media: %.2f |\n", p[i].nome, p[i].media);
for(int i=0; i<n; i++)
med_turma = med_turma + p[i].media;
printf("\n\nMedia geral da turma: %g", med_turma/n);
}
Questao 2:
//Exercicio loja de eletronicos
#include <stdio.h>
#include <string.h>
#include <ctype.h>
typedef struct
{
char sis_op[20];
int capacidade;
}Smartphone;
typedef struct
{
int qtd_mem;
float polegadas;
}Notebook;
typedef struct
{
float polegadas;
char resolucao[15];
}Televisor;
typedef struct
{
char nome[50], marca[50], modelo[50];
float preco;
Televisor tv;
Notebook pc;
Smartphone cell;
}Produto;
void cadastro_produto(Produto *produto, int n, int *dado);
void mostrar_produtos(Produto *produto, int n, int *dado);
void busca_pelo_nome(Produto *produto, int n, int *dado);
int main(){
int op, n=0;
Produto cadastro[100];
int dd_p[100];
while(1){
printf("--------------Sistema da Loja-------------");
printf("\n(1) Cadastro de produto");
printf("\n(2) Produtos Cadastrados");
printf("\n(3) Buscar Produto pelo nome");
printf("\n(4) Sair do programa");
printf("\nDigite a Opcao desejada: ");
scanf("%d", &op);
switch (op){
case 1:
cadastro_produto(cadastro, n, dd_p);
n++;
break;
case 2:
mostrar_produtos(cadastro, n, dd_p);
break;
case 3:
busca_pelo_nome(cadastro, n, dd_p);
case 4:
break;
default:
break;
}
if(op == 4)
break;
}
return 0;
}
void cadastro_produto(Produto *produto, int n, int *dado){
int p;
printf("\n\nAVISO: Por limitacoes tecnicas so eh possivel fazer o cadastro
de 100 produtos!!!\n\n");
printf("-------------Cadastro Produto-------------");
printf("\nDigite qual o tipo do produto - (1) Tv - (2) Smartphone - (3)
Notebook: ");
scanf("%d", &p);
if(p == 1){
printf("\n\n***********Informacoes tecnicas do
Produto***********\n\n");
printf("Digite a resolucao e a polegada(Separadas por espaco): ");
scanf("%s %f", &produto[n].[Link], &produto[n].[Link]);
printf("\n\n***********Informacoes do Produto***********\n\n");
printf("Digite o nome: ");
scanf(" %[^\n]s", &produto[n].nome);
printf("Digite o marca: ");
scanf(" %[^\n]s", &produto[n].marca);
printf("Digite o modelo: ");
scanf(" %[^\n]s", &produto[n].modelo);
printf("Digite o preco: ");
scanf(" %f", &produto[n].preco);
dado[n] = 1;
}
else if(p == 2){
printf("\n\n***********Informacoes tecnicas do
Produto***********\n\n");
printf("Digite o sistema operacional e a capacidade em GB (Separadas
por espaco): ");
scanf("%s %d", &produto[n].cell.sis_op, &produto[n].[Link]);
printf("\n\n***********Informacoes do Produto***********\n\n");
printf("Digite o nome: ");
scanf(" %[^\n]s", &produto[n].nome);
printf("Digite o marca: ");
scanf(" %[^\n]s", &produto[n].marca);
printf("Digite o modelo: ");
scanf(" %[^\n]s", &produto[n].modelo);
printf("Digite o preco: ");
scanf(" %f", &produto[n].preco);
dado[n] = 2;
else if(p == 3){
printf("\n\n***********Informacoes tecnicas do
Produto***********\n\n");
printf("Digite a polegadas e a quantidade de memoria(Separadas por
espaco): ");
scanf("%f %d", &produto[n].[Link], &produto[n].pc.qtd_mem);
printf("\n\n***********Informacoes do Produto***********\n\n");
printf("Digite o nome: ");
scanf(" %[^\n]s", &produto[n].nome);
printf("Digite o marca: ");
scanf(" %[^\n]s", &produto[n].marca);
printf("Digite o modelo: ");
scanf(" %[^\n]s", &produto[n].modelo);
printf("Digite o preco: ");
scanf(" %f", &produto[n].preco);
dado[n] = 3;
}
n++;
printf("\n\nCadastros disponiveis: %d", (100 - n));
printf("\n\n------------------------------------------------\n\n\n");
}
void mostrar_produtos(Produto *produto, int n, int *dado){
printf("\n\n---------------Produtos Cadastrados------------\n\n");
for(int i=0; i<n; i++){
if(dado[i] == 1){
printf("Informacoes Tecnicas: \n");
printf("Resolucao..............: %s\n", produto[i].[Link]);
printf("Polegadas..............: %g\n", produto[i].[Link]);
printf("Informacoes do produto: \n");
printf("Nome...................: %s\n", produto[i].nome);
printf("Marca...................: %s\n", produto[i].marca);
printf("Modelo...................: %s\n", produto[i].modelo);
printf("Preco...................: R$ %g", produto[i].preco);
}
else if(dado[i] == 2){
printf("Informacoes Tecnicas: \n");
printf("Sistema Operacional....: %s\n", produto[i].cell.sis_op);
printf("Capacidade.............: %d GB\n",
produto[i].[Link]);
printf("Informacoes do produto: \n");
printf("Nome...................: %s\n", produto[i].nome);
printf("Marca...................: %s\n", produto[i].marca);
printf("Modelo...................: %s\n", produto[i].modelo);
printf("Preco...................: R$ %g", produto[i].preco);
}
else if(dado[i] == 3){
printf("Informacoes Tecnicas: \n");
printf("Memoria..............: %d\n", produto[i].pc.qtd_mem);
printf("Polegadas..............: %g\n", produto[i].[Link]);
printf("Informacoes do produto: \n");
printf("Nome...................: %s\n", produto[i].nome);
printf("Marca...................: %s\n", produto[i].marca);
printf("Modelo...................: %s\n", produto[i].modelo);
printf("Preco...................: R$ %g", produto[i].preco);
}
printf("\n\n");
}
printf("\n\n");
}
void busca_pelo_nome(Produto *produto, int n, int *dado){
char nome[50];
int pos, controle;
printf("\n\n--------------------Busca de produto por nome----------\n\n");
printf("Digite o nome do produto: ");
scanf(" %[^\n]s", nome);
for(int i=0; i<n; i++){
controle = strcmp(nome, produto[i].nome);
if(controle == 0){
pos = i + 1;
if(dado[i] == 1){
printf("\nInformacoes Tecnicas: \n");
printf("Resolucao..............: %s\n",
produto[i].[Link]);
printf("Polegadas..............: %g\n",
produto[i].[Link]);
printf("Informacoes do produto: \n");
printf("Nome...................: %s\n", produto[i].nome);
printf("Marca...................: %s\n", produto[i].marca);
printf("Modelo...................: %s\n", produto[i].modelo);
printf("Preco...................: R$ %g", produto[i].preco);
printf("\nPosicao do produto no cadastro: %d", pos);
}
else if(dado[i] == 2){
printf("\nInformacoes Tecnicas: \n");
printf("Sistema Operacional....: %s\n",
produto[i].cell.sis_op);
printf("Capacidade.............: %d GB\n",
produto[i].[Link]);
printf("Informacoes do produto: \n");
printf("Nome...................: %s\n", produto[i].nome);
printf("Marca...................: %s\n", produto[i].marca);
printf("Modelo...................: %s\n", produto[i].modelo);
printf("Preco...................: R$ %g", produto[i].preco);
printf("\nPosicao do produto no cadastro: %d", pos);
}
else if(dado[i] == 3){
printf("\nInformacoes Tecnicas: \n");
printf("Memoria..............: %d\n", produto[i].pc.qtd_mem);
printf("Polegadas..............: %g\n",
produto[i].[Link]);
printf("Informacoes do produto: \n");
printf("Nome...................: %s\n", produto[i].nome);
printf("Marca...................: %s\n", produto[i].marca);
printf("Modelo...................: %s\n", produto[i].modelo);
printf("Preco...................: R$ %g", produto[i].preco);
printf("\nPosicao do produto no cadastro: %d", pos);
}
printf("\n\n");
}
}