Chewy Mesaj tarihi: Eylül 29, 2010 Paylaş Mesaj tarihi: Eylül 29, 2010 beyler bu dönem c++ alıyorum. Şimdi istediğim publicte fonksiyon yazmadan main'de averaj hesaplama.Yani 2 öğrenci girikcek getle alıcam bilgilerini showla göstericem.Ama main'de yapacağım işlemlerle bu ikisinin GPA'sının averajını alıcam.Functionla olur yaparım ama hoca istemiyor. Kod #include<iostream> using namespace std; // a class which includes a student's information class Student{ private: int idNo; double gpa; int deptcode; public: void get_info()//Getting from the user idno, gpa and departmen code { cout<<"nEnter your ID No:";cin>>idNo; cout<<"nEnter your GPA:";cin>>gpa; cout<<"nEnter your Departmen Code:";cin>>deptcode; } void show_info()//Showing the information which user inputted { cout<<"nId No is"<<idNo<<"nGPA is "<<gpa<<"and Departmen code is"<<deptcode; } }; int main() { Student fstu,sstu,avg; fstu.get_info();//Getting first student's information sstu.get_info();//Getting second student's information fstu.show_info();//Showing first student's information sstu.show_info();//Showing second student's information system("PAUSE"); return 0; } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Eylül 29, 2010 Paylaş Mesaj tarihi: Eylül 29, 2010 Student sınıfının içinde public bi metod yaratacaksın aşağıdaki gibi: double get_gpa() { return this->gpa; } Ardından mainin içinde de aşağıdaki gibi bi satırın olcak: cout << "Average GPA: " << ((fstu.get_gpa()+sstu.get_gpa())/2) << endl; Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
fizban Mesaj tarihi: Eylül 29, 2010 Paylaş Mesaj tarihi: Eylül 29, 2010 birincisi avg diye bir kullanıcı olmaz. ikincisi constructor'ın yok üçüncüsü tanımladığın studentlar init edilmemiş variablelar. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Chewy Mesaj tarihi: Eylül 29, 2010 Konuyu açan Paylaş Mesaj tarihi: Eylül 29, 2010 Kojiroh said: Student sınıfının içinde public bi metod yaratacaksın aşağıdaki gibi: double get_gpa() { return this->gpa; } Ardından mainin içinde de aşağıdaki gibi bi satırın olcak: cout << "Average GPA: " << ((fstu.get_gpa()+sstu.get_gpa())/2) << endl; Inside the main add a code segment, which displays the average gpa of these students. Can you access the gpa data member of a Student object from main? Discuss possible solutions and implement the proper one. demişte.Şimdi senin bu dediğinde bi bakıma function değil mi :S Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Eylül 29, 2010 Paylaş Mesaj tarihi: Eylül 29, 2010 private olan bi nesneye dışardan erişemezsin. Erişmen gerekiyosa private yapmazsın, public yaparsın. Ama bu durumda da güvenliğini sağlayamazsın, üzerinde değişiklik yapılabilir dışardan. Dolayısı ile eğer nesnenin bi propertysi dışardan erişilebilsin ama müdahale edilemesin istiyosan, az önce yazdığım gibi bi metod tanımlamak zorundasın. Sınıfın kendinden dışarı bi pencere açmış oluyosun bi nevi, encapsulation denilen olayın ta kendisi. Yazdığın şeyde, main'den student'ın private alanına erişebilir misin dene, erişemezsen tartışa tartışa en doğru çözümü bul demiş. En doğru çözüm bu işte, anahtar kelime de encapsulation. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Fly Mesaj tarihi: Eylül 29, 2010 Paylaş Mesaj tarihi: Eylül 29, 2010 get_gpa gibi bir metodu kullanmanızı isteyecek, oradan da encapsulation konusuna başlayacak sanırım, başka yolu yok hocanız fantastik bir adamsa private değerin adresini alıp değiştirmenizi bekliyor diyeceğim ama aklıselim bir compiler hede->hödö dediğin an hödö private değer, napıyorsun arkadaşım der, fonksiyon kullanmadan yaptırt diyorsan bu daha da mümkün değil Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Eralph Mesaj tarihi: Eylül 29, 2010 Paylaş Mesaj tarihi: Eylül 29, 2010 Evet belki class pointerından ileri doğru memory'i tarayıp bulup değiştirebilirsin de..hiç bir hocanın böyle saçma bişeyi isteyecek olduğunu düşünmüyorum Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Chewy Mesaj tarihi: Eylül 30, 2010 Konuyu açan Paylaş Mesaj tarihi: Eylül 30, 2010 tamam beyler anladım saolun. Şimdi yeni program yazdım. burda s3'e toplanmış değerleri atmak istoyurm.Ama yukarıdaki functionı görmüyor :S.Neden ? 2 tane parametre gidiyor, maindede 2 tane parametre giriyorum function un içine <div class="spinfo">pgm</div> #include<iostream> #include<stdlib.h> using namespace std; class Int{ int number; public: void initialize() { number=0; } int new_number(int n1) { number=n1; } void show() { cout<<"Sayi"<<number; } int topla(int d1,int d2) { return(d1+d2); } }; int main() { Int s1,s2,s3; s1.new_number(5); s2.new_number(6); s3.topla(s1,s2); system("PAUSE"); return 0; } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Penthesilea Mesaj tarihi: Eylül 30, 2010 Paylaş Mesaj tarihi: Eylül 30, 2010 cunku int yazdigin fonksiyonu void olarak kullaniyorsun. s.topla(sayi, sayi) int donduruyor. bu donen int i ya bir variable a ataman lazim, ya da boyle kullanacaksan fonksiyonu degistirip return yerine number = yapman lazim. ayni sekilde new_number cok kotu, ismi ve yaptigi isi gectim, hem int donduruyor hem de number'i esitliyor parametreye. ayni anda iki sey yaptirmak, hele birini kullanmamak, baya yanlis aklinda olsun. da abi Int classi, new_number falan gordugum en kotu class implementation'i sanirim kusura bakma da. hoca boyle birsey falan mi istedi, neden boyle seyler yaptin ki sen? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Penthesilea Mesaj tarihi: Eylül 30, 2010 Paylaş Mesaj tarihi: Eylül 30, 2010 simdi farkettim, her seyi gectim compile etmez bu, gormuyor derken sen de onu kastediyorsun sanirim. yukaridaki fonksiyon int istiyor iki tane, primitive type olan bildigimiz int. sen ise kendi yazdigin Int classinin objectlerini yolluyorsun classin icine. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Chewy Mesaj tarihi: Eylül 30, 2010 Konuyu açan Paylaş Mesaj tarihi: Eylül 30, 2010 Penthesilea said: cunku int yazdigin fonksiyonu void olarak kullaniyorsun. s.topla(sayi, sayi) int donduruyor. bu donen int i ya bir variable a ataman lazim, ya da boyle kullanacaksan fonksiyonu degistirip return yerine number = yapman lazim. ayni sekilde new_number cok kotu, ismi ve yaptigi isi gectim, hem int donduruyor hem de number'i esitliyor parametreye. ayni anda iki sey yaptirmak, hele birini kullanmamak, baya yanlis aklinda olsun. da abi Int classi, new_number falan gordugum en kotu class implementation'i sanirim kusura bakma da. hoca boyle birsey falan mi istedi, neden boyle seyler yaptin ki sen?Valla direk söledikleri üzerinden yapıyorum.Classın adına kadar :) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
freemaniacss Mesaj tarihi: Eylül 30, 2010 Paylaş Mesaj tarihi: Eylül 30, 2010 sen sanırım şunu yapmaya uğraştın.yaptığın yanlış şu,classın içinde tanımladığın topla fonksiyonuna parametre olarak int alıyorsun. int topla(int d1,int d2){ return (d1+d2); } sonra main de iki tane obje tanımlıyorsun ve bu objeleri 3. bir objenin içine atıyosun s3.topla(s1,s2); diyerek.yapman gereken tek şey,class ın içinde tanımladığın fonksiyona integer değer değil de obje yollaman. yani mainde yine aynı şeyi yapacaksın fakat topla fonksiyonunda int topla(Int d1,Int d2){ return d1.number + d2.number; } diyeceksin.Yani fonksiyonda o objelerin numberlarına erişip toplama yapacaksın Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Penthesilea Mesaj tarihi: Eylül 30, 2010 Paylaş Mesaj tarihi: Eylül 30, 2010 abi niye ucuncu objenin icine atsin, ortaya cikan sonuc 2 ogrencinin GPA lerinin ortalamasi, ucuncu bir ogrenci degil ki o bilgiyi ucuncu bir ogrenci objesine atsin? edit: pardon sanirim Int classindan bahsediyormussun, obje derken ben student'tan bahsediyorsun zannettim. O Int class'i isi basli basina cok yanlis abi neden o yola soktunuz adami anlamadim ben hic. Hadi bari GPA olsaydi class'in adi yani Int nedir :) hocanin ne istedigi de bir muallak da, eger yeni ogreniyorsan hocanin senden istedigi sey private member'a public method araciligiyla erisme iste, onu da getGPA() memberimiz yapiyor mesela asagida verdigim ornekte, gordugun uzere flGPA'yi donduruyor. kisa bisey yazdim ben sadece gpa isini gostermek icin, ekstra bilgi okutman gerekiyorsa onu ayrica eklersin class'a. ornek #include <iostream> #include <sstream> #include <string> #include <iomanip> using namespace std; class Student { public: Student() {} float getGPA() { return this->flGPA; } void setGPA(float flGPA) { this->flGPA = flGPA; } private: float flGPA; }; float readFloat() { float flResult; string strInput; cout << "Please enter the GPA of the student. GPA must be a float value" << endl; // verify that the input was a float while(true) { getline(cin, strInput); stringstream sStream(strInput); if(sStream >> flResult) { break; } else { cout << strInput << " is not a float, please enter a valid GPA, for example 3.83"<< endl; cin.clear(); } } return flResult; } int main() { Student student1, student2; student1.setGPA(readFloat()); student2.setGPA(readFloat()); float flAverage = (student1.getGPA() + student2.getGPA()) / 2.0f; cout << "Their average is " << setprecision(3) << flAverage << endl; system("PAUSE"); return 0; } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar