Problema c++

Intrebari despre limbajul C++, standardul C++, STL, OOP in C++ sau alte subiecte nelegate de VisualC++
Post Reply
Empirey
Junior
Junior
Posts: 5
Joined: 03 Dec 2011, 22:33
Judet: Dolj

Problema c++

Post by Empirey » 03 Dec 2011, 22:39

Salut. Am o singura eroare la aceasta problema si anume Grupa::calcul_medie must return a value. Ma poate rezolva cineva?

#include "stdafx.h"
#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;

class Grupa
{
private:
float media;

public:
char nume[40];
char prenume[40];
int varsta;

Grupa(char *nume, char *prenume, int varsta) //Constructor
{
strcpy(Grupa::nume, nume);
strcpy(Grupa::prenume, prenume);
Grupa::varsta = varsta;
}

float calcul_medie() //calcul medie a celor 5 examene
{
float v[5];
float s;
int i;
for(i=1;i<=5;i++)
{
cout<<"Dati nota "<<i<<": ";
cin>>v;
}
s = 0;
for(i=1;i<=5;i++)
{
s=v++;
media = s/5;
}
}

void arata_student()
{
cout<<"Nume:"<<nume<<endl<<"Prenume:"<<prenume<<endl<<"Varsta:"<<varsta<<endl;

}

};

void main()
{ char nume[64];
char prenume[64];
int varsta;
cout<<"Nume:";
cin>>nume;
cout<<"Prenume:";
cin>>prenume;
cout<<"Varsta:";
cin>>varsta;

Grupa grupa(nume,prenume,varsta);
grupa.arata_student();
grupa.calcul_medie();
}



User avatar
zlatomir
Membru++
Membru++
Posts: 282
Joined: 04 Jul 2009, 23:59
Location: Arad
Contact:

Re: Problema c++

Post by zlatomir » 03 Dec 2011, 22:57

Problema vine de la faptul ca ai declarat ca functia calcul_medie() returneaza un float, si in corpul functiei nu ai nici un "return media;" si apoi inca o problema va fi la apelarea functiei sa ai grija sa afisezi valoarea returnata sau sa o stochezi intr-o variabila.

LE: acum vad ca "media" e membru in clasa, deci poti sa schimbi functia in void calcul_medie() si o mica sugestie e sa folosesti acele "code-tags" atunci cand postezi cod: [ code][ /code] (fara spatii intre [] - sau ai buton undeva in partea de sus a paginii in care iti scri mesajul)

User avatar
bu7ch3r
Membru++
Membru++
Posts: 326
Joined: 17 May 2011, 15:17
Judet: Iaşi
Location: Sofia
Contact:

Re: Problema c++

Post by bu7ch3r » 04 Dec 2011, 23:52

@Empirey. Tu incurci niste treburi pe acolo :)

Code: Select all

for(i=1;i<=5;i++)
{
cout<<"Dati nota "<<i<<": ";
cin>>v[i];
}
s = 0;
for(i=1;i<=5;i++)
{
s=v[i]++; //aici nu inteleg ce vrei sa faci !!!!!!!! s o sa fie ultima valoare introdusa + 1....daca ultima nota o sa fie 9 media o sa fie 2 :D, nu e chiar bun ;)  iar media=s/5 nu e bun s-o faci de fiecare data fa-o la sfarsit, dupa ce calculezi suma, si suma poti s-o calculezi cand citesti(scapi de un for)
media = s/5;
}
Poti sa faci asta intr-un singur for. Poti sa faci un singur for care chiar sa calculeze bine media ;) Poti sa pastrezi incapsularea si functia ta calcul_medie(s-o faci setter/getter :)) ) sa intoarca media daca e calculata si s-o calculeze si intoarca daca nu;)

BTW:
Inainte sa te joci cu OOP-ul tre sa inveti regulile. Pun pariu ca dupa ce ai sa modifici in orice mod sugerat mai sus de zlatomir problema, o sa ai o noua eroare la un moment dat: "Cannot access private member media in class Grupa"(sau ceva de genu) dar o sa discutam despre asta atunci :D
Cu stima,
Lupu Claudiu

Empirey
Junior
Junior
Posts: 5
Joined: 03 Dec 2011, 22:33
Judet: Dolj

Re: Problema c++

Post by Empirey » 05 Dec 2011, 01:32

Code: Select all

#include "stdafx.h"
#include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;

class Grupa
{
private:
	float media;

public:
	char nume[40];
	char prenume[40];
	int varsta;

	Grupa(char *nume, char *prenume, int varsta) //Constructor
	{
		strcpy(Grupa::nume, nume);
		strcpy(Grupa::prenume, prenume);
		Grupa::varsta = varsta;
	}

	void calcul_medie() //calcul medie a celor 5 examene
	{
		float v[5];
		float s;
		int i;
		for(i=0;i<=4;i++)
		{
			cout<<"Dati nota "<<i+1<<": ";
			cin>>v[i];
		}
		s = 0;
		for(i=0;i<=4;i++)
			s += v[i];

		media = s/5;

		cout<<"Media este: "<<media<<endl;
	}

	void arata_student()
	{
		cout<<"Nume:"<<nume<<endl<<"Prenume:"<<prenume<<endl<<"Varsta:"<<varsta<<endl;

	}
	
};

void main()
{char nume[64];
	char prenume[64];
	int varsta;
	cout<<"Nume:";
	cin>>nume;
	cout<<"Prenume:";
	cin>>prenume;
	cout<<"Varsta:";
	cin>>varsta;
	
	Grupa grupa(nume,prenume,varsta);
	grupa.arata_student();
	grupa.calcul_medie();
}
i-am dat cap pana la urma,multumesc pentru ajutor. Sunt incepator.. Problema asta mi-a dat-o profesoara de laborator de la facultate, am facut ce am facut eu la ea, am intrebat-o de erorile astea si mi-a zis sa-mi bag borland :? . Vai de mama lor, facultate cica, o faci pentru un carton. Daca nu stai singur acasa sa inveti, iesi lemn din ea. Multumesc pentru ajutor inca o data.

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Problema c++

Post by Ovidiu Cucu » 05 Dec 2011, 10:11

[ Un pic off-topic ]

Un mic pas inainte ar fi sa treci de la "C cu cin si cout" (care se invata in scoala :)) la C++, descoperind std::string si std::vector.
Apreciez (ma mira chiar :)) faptul ca profa de laborator a auzit si va spune si voua despre clase.
Totusi de aici si pana la OOP mai e mult. Chiar si problemuta asta mititica ar fi meritat un "design" un pic mai elaborat.

Bafta,
Ovidiu

User avatar
bu7ch3r
Membru++
Membru++
Posts: 326
Joined: 17 May 2011, 15:17
Judet: Iaşi
Location: Sofia
Contact:

Re: Problema c++

Post by bu7ch3r » 05 Dec 2011, 10:37

Pe principiul "faster code is better", am ramas blocat pe ce am scris aseara :) Scuza-mi insistenta dar nu ma pot abtine :D

Code: Select all

s = 0;
for(i=0;i<=4;i++)
      {
         cout<<"Dati nota "<<i+1<<": ";
         cin>>v[i];
         s += v[i];
      }

  media = s/5;

      cout<<"Media este: "<<media<<endl;     
         
OFFTOPIC
@Ovidiu, eu am facut OOP la facultate, in anul 2 chiar, destul de riguros la vremea aia, deci se face. Aveam clasa "pisica" derivata din clasa "animal" :)) Cine a facut A.C. stie de faimoasa clasa si de faimoasa doamna profesoara :P. Plus s-a predat si C# si JAVA (la C# totusi primul laborator a fost despre delegati...ciudat :-?? la JAVA ... ce-i aia JAVA ? )
Cu stima,
Lupu Claudiu

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Problema c++

Post by Ovidiu Cucu » 05 Dec 2011, 11:00

bu7ch3r wrote:...
JAVA ... ce-i aia JAVA ? )
Definitia scurta:
Java e un C++ mutant nascut inainte de accidentul nuclear de la Cernobil. :biggrin:

Post Reply