C++ programowanie

paczus
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 10 maja 2011, o 17:35
Płeć: Kobieta
Lokalizacja: Bydgoszcz
Podziękował: 2 razy

C++ programowanie

Post autor: paczus »

Witam, potrzebuję pomocy w napisaniu programu, który:
a) pozwoli na wprowadzenie danych (imie, nazwisko, ocena1,ocena2,ocena3);
b)okresli kwote stypendium (progi: 4-4,24 100zl, 4,25-4,49 200zl, 4,5-4,99 400zl, 5 500zl);
c)wyznaczy srednia ocen wszystkich osob;
d)wskaze osoby (imie i nazwisko) ktorych srednia jest wyzsza niz srednia grupy;

Punkt a i b właściwie mam zrobiony ale nie potrafię poradzić sobie z problemem wyliczania średniej... Proszę o wskazanie błędów i pomoc w rozwiązaniu mojego problemu Wink
c++:

Kod: Zaznacz cały

#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <math.h>

class student {
                char imie [80];
                char nazwisko [80];
                float ocenaGeo;
                float ocenaAlg;
                float ocenaAna;
               


public:
                void zapamietaj(char*napis1, char*napis2, float ocGeo, float ocAlg, float ocAna);

                void wypisz()


                {
                cout<<"	"<<imie<<" "<<nazwisko<<endl;


                }
                float srednia1 (float ocenaGeo, float ocenaAlg, float ocenaAna)
                { float s1;
                s1=(ocenaAna+ocenaAlg+ocenaGeo)/3;
                return s1;
                }
                float srednia2;

};
void student::zapamietaj(char*napis1, char*napis2, float oGeo, float oAlg, float oAna)
{
strcpy(imie,napis1);
strcpy(nazwisko,napis2);
ocenaAna=oAna;
ocenaAlg=oAlg;
ocenaGeo=oGeo;
}
 float a;
main()
{

clrscr();
 float i;
 student student1;
         for (i=1; i<=3; i++)
         {
         cout<<"podaj imie: "<<endl;
         char i1[80];
         cin>>i1;

         cout<<"podaj nazwisko: "<<endl;
         char nazwisko[80];
         cin>>nazwisko;


         cout<<"Podaj ocene z geometrii: "<<endl;
         float oGeo1;
         cin>>oGeo1;
         cout<<"podaj ocene z analizy: "<<endl;
         float oAna1;
         cin>>oAna1;
         cout<<"podaj ocene z algebry: "<<endl;
         float oAlg1;
         cin>>oAlg1;

         student1.zapamietaj(i1,nazwisko,oGeo1,oAna1,oAlg1);
         student1.srednia1(oGeo1,oAna1,oAlg1);
         {
         a=(oGeo1+oAna1+oAlg1)/3;
         if(a<4)
         cout<<"Nie masz stypendium"<<endl;
         if(a>=4 && a<=4,24)
         cout<<"Stypendium wynosi 100zl"<<endl;
         if(a>=4,25 && a<=4,49)
         cout<<"Stypendium wynosi 200zl"<<endl;
         if(a>=4,5 && a<=4,99)
         cout<<"Stypendium wynosi 400zl"<<endl;
         if(a>=5)
         cout<<"Stypendium wynosi 500zl"<<endl;
         }
getch();
Ostatnio zmieniony 10 maja 2011, o 20:39 przez Anonymous, łącznie zmieniany 2 razy.
Powód: Tagi BBCode to [code][/code], a nie tak jak napisałaś.
moozo
Użytkownik
Użytkownik
Posty: 131
Rejestracja: 5 kwie 2009, o 20:32
Płeć: Mężczyzna
Pomógł: 23 razy

C++ programowanie

Post autor: moozo »

1. if potrzebuje klamry, albo musi być pisany w jednej linijce
2. skorzystaj ze stosu
3. niema czegoś takiego jak przecinki!!! a<4,25, ma być 4.25
4. wklejaj kody w code

Kod: Zaznacz cały

#include <iostream.h>
#include <conio.h>

using namespace std;
class student{
      
      char imie [80];
      char nazwisko [80];
      float ocenaGeo;
      float ocenaAlg;
      float ocenaAna;

      public:
             void zapamietaj(char*napis1, char*napis2, float ocGeo, float ocAlg, float ocAna);

             void wypisz(){
                  cout<<"	"<<imie<<" "<<nazwisko<<endl;
             }
float srednia1 (float ocenaGeo, float ocenaAlg, float ocenaAna){ 
      float s1;
      s1=(ocenaAna+ocenaAlg+ocenaGeo)/3;
      return s1;
}


};
void student::zapamietaj(char*napis1, char*napis2, float oGeo, float oAlg, float oAna){
     strcpy(imie,napis1);
     strcpy(nazwisko,napis2);
     ocenaAna=oAna;
     ocenaAlg=oAlg;
     ocenaGeo=oGeo;
}

main(){
float i, a, oGeo1, oAna1, oAlg1;
student student1;
for (i=1; i<=3; i++){
    
    cout<<"podaj imie: "<<endl;
    char i1[80];
    cin>>i1;

    cout<<"podaj nazwisko: "<<endl;
    char nazwisko[80];
    cin>>nazwisko;


    cout<<"Podaj ocene z geometrii: "<<endl;
    cin>>oGeo1;
    
    cout<<"podaj ocene z analizy: "<<endl;
    cin>>oAna1;
    
    cout<<"podaj ocene z algebry: "<<endl;
    cin>>oAlg1;

    student1.zapamietaj(i1,nazwisko,oGeo1,oAna1,oAlg1);
    a=student1.srednia1(oGeo1,oAna1,oAlg1);

if(a<4) cout<<"Nie masz stypendium"<<endl;
else if(a>=4 && a<=4.24) cout<<"Stypendium wynosi 100zl"<<endl;
else if(a>=4.25 && a<=4.49) cout<<"Stypendium wynosi 200zl"<<endl;
else if(a>=4.5 && a<=4.99) cout<<"Stypendium wynosi 400zl"<<endl;
else if(a>=5) cout<<"Stypendium wynosi 500zl"<<endl;

getch();
}
} 
paczus
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 10 maja 2011, o 17:35
Płeć: Kobieta
Lokalizacja: Bydgoszcz
Podziękował: 2 razy

C++ programowanie

Post autor: paczus »

Już rozumiem i dziękuje za pomoc. A jak w takim razie można z tego wyliczyć srednia całej grupy?
moozo
Użytkownik
Użytkownik
Posty: 131
Rejestracja: 5 kwie 2009, o 20:32
Płeć: Mężczyzna
Pomógł: 23 razy

C++ programowanie

Post autor: moozo »

wrzuć dodatkową zmienną w stosie student - jej średnia, później suma średnich/liczbę osób
paczus
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 10 maja 2011, o 17:35
Płeć: Kobieta
Lokalizacja: Bydgoszcz
Podziękował: 2 razy

C++ programowanie

Post autor: paczus »

nie rozumiem tylko jak ma to wyglądać skoro nie mam rozdzielonych srednich w programie i nie wiem w sumie jak mam zsumowac te srednie poszczegolnych osob ;P
może moje pytania są banalne ale to początki programowania i jeszcze ciezko mi się myśli w tym temacie
moozo
Użytkownik
Użytkownik
Posty: 131
Rejestracja: 5 kwie 2009, o 20:32
Płeć: Mężczyzna
Pomógł: 23 razy

C++ programowanie

Post autor: moozo »

5. poczytaj o tworzeniu wektorów i ich funkcjach (push_back, size())
6. funkcja string jest lepsza dla nazw niż char[n]

Kod: Zaznacz cały

#include <iostream.h>
#include <string>
#include <vector>

using namespace std;
class student{
      public:
      
      string imie;
      string nazwisko;
      float ocenaGeo;
      float ocenaAlg;
      float ocenaAna;
      float srednia;
      
      student(string ximie, string xnazwisko, float xGeo, float xAlg, float xAna, float xsrednia);

};                                    

int main(){
       float i, a, oGeo1, oAna1, oAlg1, suma=0;

       vector <student> Stud;
       
       for (i=0; i<3; i++){
    
           cout<<"podaj imie: "<<endl;
           string imie;
           cin>>imie;

           cout<<"podaj nazwisko: "<<endl;
           string nazwisko;
           cin>>nazwisko;

            cout<<"Podaj ocene z geometrii: "<<endl;
            cin>>oGeo1;
    
            cout<<"podaj ocene z analizy: "<<endl;
            cin>>oAna1;
    
            cout<<"podaj ocene z algebry: "<<endl;
            cin>>oAlg1;
            
            a=(oGeo1+oAna1+oAlg1)/3;
            suma=suma+a;
            Stud.push_back(student(imie, nazwisko, oGeo1, oAna1, oAlg1, a));

            if(a<4) cout<<"Nie masz stypendium"<<endl;
            else if(a>=4 && a<=4.24) cout<<"Stypendium wynosi 100zl"<<endl;
            else if(a>=4.25 && a<=4.49) cout<<"Stypendium wynosi 200zl"<<endl;
            else if(a>=4.5 && a<=4.99) cout<<"Stypendium wynosi 400zl"<<endl;
            else if(a>=5) cout<<"Stypendium wynosi 500zl"<<endl;
            }
            float srO = suma/Stud.size();
            cout<<"Srednia ogolna: "<<srO<<endl;
            cout<<"uczniowie powyzej sredniej ogolnej: "<<endl;
            for(i=0;i<Stud.size();i++){
                                       if(srO<Stud[i].srednia) cout<<i+1<<" "<<Stud[i].imie<<" "<<Stud[i].nazwisko<<endl;
                                       }
            cin>>a;
            return 0;

} 
student::student(string ximie, string xnazwisko, float xGeo, float xAlg, float xAna, float xsrednia)
                   : ocenaGeo(xGeo)
                   , ocenaAlg(xAlg)
                   , ocenaAna(xAna)
                   , srednia(xsrednia)
                   , imie(ximie)
                   , nazwisko(xnazwisko)
                   {
                   }
ODPOWIEDZ