Consigo fazer um cin em um vetor dentro de um struct em uma biblioteca criada por mim mesmo?
Olá pessoal, sou iniciante tanto aqui no fórum tanto na linguagem c++.
Estou tentando resolver o seguinte algoritmo:
Calcule as médias das notas escolares de um aluno (media 1º bimestre, media 2º bimestre, media final) sendo que:
As notas das provas parciais 1 e 2 equivalem a 30% da nota total do bimestre 1 e 2;
As notas das provas oficiais 1 e 2 equivalem a 70% da nota total do bimestre 1 e 2;
A nota total do bimestre 1 equivale a 40% da nota final do semestre;
A nota total do bimestre 2 equivale a 60% da nota final do semestre;
Utilize structs para armazenar a notas e medias e referencie cada elemento por ponteiros no main.
Segue abaixo, a minha tentativa.
Não estou conseguindo guardar as notas pedidas no main no vetor de notas dentro da struct, estou usando cin para fazer isso, uma solução mais adequada para realizar este procedimento?
- Biblioteca
typedef struct notas {
float parcial[2], *p1, *p2;
float oficial[2], *of1, *of2;
float exame, *ex;
} NotasProvas;
void NotaBim1 (NotasProvas ¬as, float *p1, float *of1);
void NotaBim2 (NotasProvas ¬as, float *p2, float *of2);
void NotaExame (NotasProvas ¬as, float *ex);
typedef struct medias {
float mediaB1, mediaB2, *m1, *m2;
float notaFinal, *nf;
float notaTotal, *nt;
} MediasNotas;
void MediaBim1 (MediasNotas &medias, float *m1);
void MediaBim2 (MediasNotas &medias, float *m2);
void MediaFinal (MediasNotas &medias, float *m1, float *m2);
void MediaTotal (MediasNotas &medias, float *nf, float *ex);
- Procedimentos
#include "notas.h"
void NotaBim1 (NotasProvas ¬as, float p1, of1) {
*p1 = &NotasProvas.parcial[1];
*of1= &NotasProvas.oficial[1];
MediasNotas.mediaB1 = (p1 * 0.3) + (of1 * 0.7);
}
void NotaBim2 (NotasProvas ¬as, float p2, of2) {
*p2 = &NotasProvas.parcial[2];
*of2 = &NotasProvas.oficial[2];
MediasNotas.mediaB2 = (p2 * 0.3) + (of2 * 0.7);
}
void MediaFinal (MediasNotas &medias, float m1, m2) {
*m1 = &MediasNotas.mediaB1;
*m2 = &MediasNotas.mediaB2;
MediasNotas.notaFinal = (m1 * 0.4) + (m2 * 0.6);
}
void MediaTotal (MediasNotas &medias, float nf, ex) {
*nf = &MediasNotas.notaFinal;
*ex = &NotasProvas.exame;
MediasNotas.notaTotal = (nf + ex) / 2;
}
- Função Main
#include <iostream>#include "notas.h"
using namespace std;
int main() {
cout << "\t\t CALCULANDO NOTAS " << endl;
cout << endl;
cout << "Qual a sua nota da Prova Parcial 01? " << endl;
cin >> NotasProvas.p1;
cout << "Qual a sua notas da Prova Oficial 01? " << endl;
cin >> NotasProvas.of1;
cout << "Nota do 1º bimestre: " << MediasNotas.m1 << endl;
cout << "\t\t Segundo Bimestre" << endl;
cout << endl;
cout << "Qual a sua nota na Prova Parcial 02? " << endl;
cin >> NotasProvas.p2;
cout << "Qual a sua nota na Prova Oficial 02? " << endl;
cin >> NotasProvas.of2;
cout << "Nota do 2º bimestre: " << MediasNotas.m2 << endl;
cout << "Media Final: " << MediasNotas.nf << endl;
system("PAUSE");
return 0;
}
Desde já, agradeço pelas ajudas!Discussão (0)
Carregando comentários...