ورود

View Full Version : مبتدی: تبدیل تابع main به کلاس



hastiam
پنج شنبه 28 آذر 1392, 17:00 عصر
سلام دوستان
من میخوام برنامه زیر رو به یک کلاس Library تبدیل کنم و از این کلاس هرجا که خواستم استفاده کنم من با کلاس نویسی ++C آشنایی زیادی ندارم به خاطر همین نمیدونم چطور این کار رو انجام بدم؟
لطفا راهنماییم کنید. ممنون.


double speed, tr_power, max_point, mid_point;
double A, B, C;
double LOW, MED, HIGH;

string value[3] = {"Low", "Medium", "High"};
int state[3][3] = {{1, 0, 0}, {2, 1, 0}, {2, 2, 1}};

double triangle(double X){
if (X >= A && X <= B) return (X - A) / (B - A);
if (X >= B && X <= C) return (C - X) / (C - B);
return 0.0;
}

double low_sagittal(double X){
if (X <= A) return 1.0;
if (X >= B) return 0.0;

double y = (X - mid_point) * (X - mid_point) - mid_point / 4.0 + 1.0;
return y;
}

double high_sagittal(double X){
if (X >= C) return 1.0;
if (X <= B) return 0.0;

double y = (X - mid_point) * (X - mid_point) - mid_point / 4.0 + 1.0;
return y;
}

int get_state(double memb[3]){
if (memb[0] > memb[1] && memb[0] > memb[2]) return 0;
if (memb[1] > memb[0] && memb[1] > memb[2]) return 1;
if (memb[2] > memb[0] && memb[2] > memb[0]) return 2;
return rand() % 3;
}
int main(int argc, char* argv[]){
if (argc < 4) printf("Please Speed, trPower and maxPoint correctly...\n");
else {
double temp[3];
for (int i = 0;i < 3;++i){
string s(argv[i + 1]);
istringstream ss(s);
ss >> temp[i];
}
speed = temp[0];
tr_power = temp[1];
max_point = temp[2];

mid_point = max_point / 2.0;
A = mid_point / 2.0;
B = mid_point;
C = 3.0 * mid_point / 2.0;

double tr_power_membership[3];
tr_power_membership[0] = low_sagittal(tr_power);
tr_power_membership[1] = triangle(tr_power);
tr_power_membership[2] = high_sagittal(tr_power);

double speed_membership[3];
speed_membership[0] = low_sagittal(speed);
speed_membership[1] = triangle(speed);
speed_membership[2] = high_sagittal(speed);

cout << tr_power_membership[0] << " " << tr_power_membership[1] << " " << tr_power_membership[2] << endl;
cout << speed_membership[0] << " " << speed_membership[1] << " " << speed_membership[2] << endl;

int s_state = get_state(speed_membership);
int t_state = get_state(tr_power_membership);
cout << value[t_state] << " " << value[s_state] << endl;
printf("%s\n", value[state[t_state][s_state]].c_str());

}
return 0;
}

hastiam
پنج شنبه 28 آذر 1392, 20:08 عصر
فقط دستوراتی که داخل تابع main هست رو میخوام تو یک کلاس بیارم. :افسرده::افسرده: لطفا راهنمایی کنید.