Jump to content
atye

Coding Menggunakan Oop

Recommended Posts

salam..

aku nk mintak tolong check kan coding aku wat ni leh x?

ade error la..

lgpon..ade certain2 coding aku xphm nk buat..

nak gune set dan get..

//Student.h ...................header File
class StudentRecord
{
public:
	int stu_ID;
	char grade;
	float stu_Score;

	void student_data();
	void score (int stu_ID, int score);
	void Calc_Score();
	void ShowScore();
	void setStudentGrade(char grade, int total_grade);
	char getStudentGrade();
//	void setStudentScore(double result);
//	int getStudentScore();

};
//Student_Record_Implementation.cpp................CPP file
#include <iostream>
#include "Student.h"
using namespace std;

void StudentRecord::student_data()
{
	cout<<endl<<endl;
	cout<< "Enter the student ID number:";
	cin>> stu_ID;
	cout<<endl<<endl;
}

void StudentRecord::Calc_Score()
{
	cout<< "=============QUIZZES===============\n";
	cout<< "Enter the score for the first quiz: ";
	int quiz1;
	cin>>quiz1;

	cout<< "Enter the score for the second quiz: ";
	int quiz2;
	cin>>quiz2;
	cout<<endl;

	cout<< "=============MID TERM===============\n";
	cout<< "Enter the score for the mid term test: ";
	int midterm;
	cin>>midterm;
	cout<<endl<<endl;

	cout<< "=============FINAL EXAM=============\n";
	cout<< "Enter the score for the final exam: ";
	int final;
	cin>>final;
	cout<<endl<<endl;

	int PerQuiz = ((quiz1+quiz2)*25/20);
	cout<< "The quiz score is " <<PerQuiz<<endl<<endl;

	int PerMidterm = (midterm*25)/100;
	cout<< "The mid term score is " <<PerMidterm<<endl<<endl;

	int PerFinal = (final*50)/100;
	cout<< "The final exam score is " <<PerFinal<<endl<<endl;

	int total_score;
	total_score = PerQuiz+PerMidterm+PerFinal;
	cout<< "The total score for this course is " <<total_score<<endl<<endl;

}

void setStudentGrade(char grade, int total_grade)
{

	if (total_grade<=100 && total_grade >= 90)
		grade = 'A';
	else if (total_grade<=89 && total_grade >= 80)
		grade = 'B';
	else if (total_grade<=79 && total_grade >= 70)
		grade = 'C';
	else if (total_grade<=69 && total_grade >= 60)
		grade = 'D';
	else
		grade = 'F';
}

char StudentRecord::getStudentGrade()
{
	return grade;
}



/*void setStudentScore()
{
	cout<< "=============QUIZZES===============\n";
	cout<< "Enter the score for the first quiz: ";
	int quiz1;
	cin>>quiz1;

	cout<< "Enter the score for the second quiz: ";
	int quiz2;
	cin>>quiz2;
	cout<<endl;

	cout<< "=============MID TERM===============\n";
	cout<< "Enter the score for the mid term test: ";
	int midterm;
	cin>>midterm;
	cout<<endl<<endl;

	cout<< "=============FINAL EXAM=============\n";
	cout<< "Enter the score for the final exam: ";
	int final;
	cin>>final;
	cout<<endl<<endl;

	int PerQuiz = ((quiz1+quiz2)*25/20);
	cout<< "The quiz score is " <<PerQuiz<<endl<<endl;

	int PerMidterm = (midterm*25)/100;
	cout<< "The mid term score is " <<PerMidterm<<endl<<endl;

	int PerFinal = (final*50)/100;
	cout<< "The final exam score is " <<PerFinal<<endl<<endl;

	int total;
	total = PerQuiz+PerMidterm+PerFinal;
	cout<< "The total score for this course is " <<total<<endl<<endl;
}

int StudentRecord::getStudentScore()
{
	return total_score;
}*/


void StudentRecord::ShowScore()
{
//	cout<<"Student Score "<<getStudentScore()<<endl;
	cout<<"Student Grade "<<getStudentGrade()<<endl;

}
// Student_Record_main.cpp........main program
#include <iostream>
#include <fstream>
#include "Student.h"
using namespace std;

int main()
{
	int x;
	StudentRecord score;
	for ( x=0;x<1;x++)
	{
		score.student_data();
		score.Calc_Score();
		score.ShowScore();

		ofstream File("Student Score.txt", ios::app);
		File<<score.getStudentGrade<<endl;

	}
	return 0;
}

ok..aku da wat coding cam kat atas tu..

program ni digunakan oleh lecturer utk mengira markah student..iaitu..

ada 2 kuiz masing2 dengan 10 markah..

ada 1 midterm..markahnye 100

ada 1 final exam..markahnye 100..

kuiz..juz amik 25%...

midterm pon 25%..

and final exam...50%...

aku dah wat calculation..

and dah display semua mark..

cume sekarang ni msalahnye..

aku nak displaykan letter grade iaitu..

kalau mark (setelah dicampur ketiga2 exam)

kalau >90 = A

antara 80-89 = B

anatara 70-79 = C

antara 60-69 = D

bawah 60 = F

aku dah wat coding tu..tapi kuar simbol ape ntah..

ok..masalah kedua..nak wat outfile..

knp bile save kuar no 1 je?

aku harap ade yang dpt bantu aku fix kan masalah ni....

thanx..

Edited by atye

Share this post


Link to post
Share on other sites

try google struct c++...huhu...ada prob bole tanya...

edit: eh..smlm ko tanya pasal struct kan?...

Edited by betik

Share this post


Link to post
Share on other sites

nak gune set dan get..

pada dasarnya, set dan get(dlm erti kata sebenar spt C#, etc) xde dlm C++...dlm C++ ia dipanggil Accessor (tetapi tidak digalakkan)..utk permulaan, gunakan 'One method name' utk accessor ko...

cth:

class X
{
public:
    int    age() const     { return mAge; } //get
    void   age(int age)    { mAge = age; } //set
private:
    int mAge;
};
utk guna :
int a = 0;
X foo1;

foo1.age(8); //set age to 8
a = foo1.age(); //get age
kalau >90 = A antara 80-89 = B anatara 70-79 = C antara 60-69 = D bawah 60 = F aku dah wat coding tu..tapi kuar simbol ape ntah..
ni c0de ko :
void setStudentGrade(char grade, int total_grade){
    if (total_grade<=100 && total_grade >= 90)    
    grade = 'A';
///////////and so on
ko try assign value utk 'grade' yg berada dlm class StudentRecord...ttp setStudentGrade bkn member kpd class tu...pastu ko guna "char StudentRecord::getStudentGrade(){return grade;}" utk memaparkan value dr 'grade' which is only junk data(sbb x initialize semasa class constructor).. kalu ko wat camtu, oleh kerana 'grade' tu adalah public, so ko bole assign value utk dia dgn: StudentRecord sr; sr.grade='A';
ok..masalah kedua..nak wat outfile.. knp bile save kuar no 1 je?
tukar File<<score.getStudentGrade<<endl; kpd: File<<score.getStudentGrade()<<endl; pada keseluruhan, drpd c0de ko, aku rasa ko perlu tahu pasal basic Class dulu... ni cdgn Class utk ko...try implementkan:
class StudentRecord{
private:
    char mGrade;
    float mScore;
public:
    int mID;
    StudentRecord (){ //initialize dlm constructor
        mID=0;
        mGrade=0;
        mScore=0;
    }

    char grade() const {return mGrade;}
    void grade(char gr) {mGrade=gr;}

    float score() const {return mScore;}
    void score(float scr) {mScore = scr;}

};

hint:

1)function spt 'void StudentRecord::Calc_Score()' tidak perlu menjadi ahli kpd class studentRecord...memadai ia meng'set'kan jumlah score menggunakan 'void score(float scr) {mstu_Score = scr;}' <--- cara penggunaan, rujuk atas...

2)sbg latihan jugak, cuba derivekan satu class utk mengira grade (yg dpt exploit mgrade dan mstu_Score) dan lihat perbezaan antara public n private data member (mID is public)...harap2 ko da tau cara utk derive class..

3)pastu kat main()...try guna class tu n paparkan ke screen data2 dr class tu...

happy c0ding...

//aku cuma smpt tengok gitu2 je c0de ko :D...tp aku harap apa yg aku poskan dpt membantu...huhu

Share this post


Link to post
Share on other sites

owh..cmtu..

aku kne study byk lg la sal class ni..

huhu..

ape pon..thanx..

aku try phmkn n wat cre ko ajr tu..

thnx a lot k..

Share this post


Link to post
Share on other sites

aku dah try tgk semua coding ko ni.aku rs mcm bnyk yg x kena/lengkap jerk.

1st lec aku ajar kalo nak baca program kena start baca dr main().

n then dlm main() ko tu mn code bg function2 ni semua :

score.student_data();

score.Calc_Score();

score.ShowScore();

x phm betul aku tgk code ko ni.

dekat Student.h pun sama.

mn pegi '}'?

ni cth program yg aku buat.tp aku x masukkan lg function output file.aku memerlukan komen drp otai2 c++ kat sini bg jadikan program aku ni lebih efektif.

//copyright reserved [email protected]

#include <iostream>
using namespace std;

class student
{
private:    
    char grade;
    double tScore;
public:
    int ID;
    void iData();
    void gred();
    void oData();
};

void student::iData()
{
    double kuiz1, kuiz2, midterm, exam;
    double tkuiz, tmidterm, texam;

    cout<<"Masukkan ID : ";
    cin>>ID;
    cout<<"Masukkan markah kuiz 1 (max = 10 markah) : ";
    cin>>kuiz1;
    cout<<"Masukkan markah kuiz 2 (max = 10 markah) : ";
    cin>>kuiz2;
    cout<<"Masukkan markah midterm (max = 100 markah) : ";
    cin>>midterm;
    cout<<"Masukkan markah final exam (max = 100 markah) : ";
    cin>>exam;

    tkuiz = ((kuiz1 + kuiz2) * 25 ) / 20;
    tmidterm = midterm * 0.25;
    texam = exam * 0.5;

    tScore = tkuiz+tmidterm+texam;
}

void student::gred()
{
    if (tScore >= 90.00) grade = 'A';
    else if (tScore >= 80.00) grade = 'B';
    else if (tScore >= 70.00) grade = 'C';
    else if (tScore >= 60.00) grade = 'D';
    else grade = 'F';
}

void student::oData()
{
    cout<<endl<<endl;
    cout<<"Slip Peperiksaan"<<endl;
    cout<<"----------------"<<endl;
    cout<<"No ID : "<<ID<<endl;
    cout<<"Jumlah Markah : "<<tScore<<endl;
    cout<<"Gred : "<<grade<<endl;

}
void main()
{
    student samad;
    samad.iData();
    samad.gred();
    samad.oData();
}

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...