物件導向程式
使用結構化程式可以輕鬆的管理一個或少數個班級的成績,可是使用結構化程式管理多數個班級時,主程式會變得非常龐大難以管理。如下圖只管理兩個班級的成績,主程式就令人覺得有點複雜,若是管理全校的成績時,則主程式就令人更複雜,更何況全校成績時,那只能計算各班總分與平均,要再計算較成績或同年級及高分同學,這麼一來主程式會變得很龐大,造成管理與除厝的困擾。
以下結構化程式
函數
`void setPoint(int arrray[35]){
//設定全班成績
}`
`void showPoint(int arrray[35]){
//顯示全班成績
}`
`void totalPoint(int arrray[35]){
//計算並顯示全班成績
}`
`void average(int arrray[35]){
//計算並顯示全班平均
}`
主程式
`int main(int argc,char** argv){
int chiC[35]; //C班中文
int mathC[35]; //C班數學
int engC[35]; //C班英文
setPoint(chiC);
setPoint(mathC);
setPoint(engC);
showPoint(chiC,mathC,engC);
totalPoint(chiC,mathC,engC);
average(chiC,mathC,engC);
int chiD[35]; //D班中文
int mathD[35]; //D班數學
int engD[35]; //D班英文
setPoint(chiD);
setPoint(mathD);
setPoint(engD);
showPoint(chiD,mathD,engD);
totalPoint(chiD,mathD,engD);
average(chiD,mathD,engD);
system("PAUSE");
return EXIT_SUCCESS;
}`
將上圖結構化程式改成下圖物件導向,主程式就變得簡單且清楚。即使在計算同一年級的總分與平均,
比較同年級不同科不同班的成績,找出成績或同年級及高分同學。要管理各年級成績時,可定義一個
Grade類別,且令Grade類別繼承Point類別的資料和函數。
物件導向程式
類別
`class Point
{
private:
int chinese[35];
int math[35];
int english[35];
public:
void setPoint(){
//設定全班成績
}
void showPoint(){
//顯示全班成績
}
void totalPoint(){
//計算並顯示全班成績
}
void average(){
//計算並顯示全班平均
}
};`
主程式
`int main(int argc,char** argv){
Point C; //C班物件
C.setPoint();
C.showPoint();
C.totalPoint();
C.average;
int main(int argc,char** argv){
Point D; //D班物件
D.setPoint();
D.showPoint();
D.totalPoint();
D.average;
.
.
.
.
.
system("PAUSE");
return EXIT_SUCCESS;
}`