چند مثال برای کلاس و سازنده (constructor) به زبان ++C
مصطفی عفافی | چهارشنبه, ۱۰ خرداد ۱۳۹۶، ۰۱:۴۲ ب.ظ
چند مثال برای کلاس و سازنده (constructor) به زبان سی پلاس پلاس
شما هم با انتشار دانش خود به نشر علم کمک کنید
۱.کلاسی که که با دریافت مشخصات تعداد چرخ، نام و رنگ ماشین این سه خاصیت فوق را مقدار دهی کند.
class Mashin{
int tedad_charkh;
char name[40];
char rang[40];
public:
void tanzim(int tcharkh,char n[40],char r[40])
{
if (tcharkh>=2)
tedad_charkh= tcharkh;
else tedad_charkh=4;
strcpy(name,n);
strcpy(rang,r);
}
void printinfo()
{
cout<<"\n"<<"name="<<name<<" rang="<<rang;
cout<<" tedad charkh="<< tedad_charkh;
}
};
void main()
{ Mashin M1;
M1.tanzim(-4,"pride","white");
M1.printinfo();}
}
۲.کلاسی که برای student شامل مقادیر خصوصی شماره دانشجویی، نام،معدل از طریق تابعی عمومی میخواهیم این مقادیر خصوصی را مقداردهی کنیم و از طریق تابعی وضعیت مشروط بودن یا نبودن آن دانشجو را مشخص کنیم و تابعی بنویسید که اطلاعات دانشجو را چاپ کند و تابعی که مشروط بودن یا نبودن شخص را نشان دهد.
class student{
int shomareh_daneshjooee;
char name[60];
float avg;
public:
void setInfo(int stid,char stname,float stavg)
{ if (stid>1000) shomareh_daneshjooee=stid;else shomareh_daneshjooee=1000;
Strcpy(name, stname);
if(stavg>=0 && stavg<=20) avg= stavg; else avg=0.0;
}
int AyaMashroot()
{if(avg<12)
return 1;
else return 0;
}
void showInfo()
{
cout<<”\n shomareh_daneshjooee=”<< shomareh_daneshjooee;
cout<<”\n name=”<< name<<” avg=”<< avg;
if(AyaMashroot()==1) cout<<”\nMASHROOOOOOOOOOOT”;
else cout<<”\nMASHROOOOOOOOOOOT nist”;
}
};
main()
{
student st1;
st1. setInfo(12344,”ali karami”,19.11);
st1. showInfo();
}
۳.کلاسی برای زمان شامل ساعت دقیقه ثانیه بنویسید و تابعی که این سه مقدار را تنظیم کند و تابع دیگری که کل زمان را برحسب ثانیه برگرداند و تابعی که زمان را چاپ کند.
Class ctime
{
int hour;
int min;
int sec;
public:
void tanzim( int h,int m ,int s )
{
hour=(h>=0 && h<24)?h:0;
min=(m>=0 && h<60)?m:0;
sec=(s>=0 && s<60)?s:0;
}
int total_time()
{ return hour*3600+min*60+sec;}
void show()
{
cout<<”\n”<<hour<<”:”<<min<<”\’:”<<sec<<”\””;
}
};
void main()
{ int h,m,s;
cout<<”\n h? m? s?”;
cin>>h>>m>>s;
ctime t1;
t1. Tanzim(h,m,s);
t1.show();
cout<<”\ntime in sec=”<<t1. total_time();
}
۴.کلاسی برای مثلث بنویسید با مقادیر خصوصی قاعده و ارتفاع با سه سازنده که این مقادیر را تنظیم کند و تابعی که مساحت مثلث را برگرداند.(به همراه سازنده constructor)
class Mosallas
{
float base; // قاعده
float height; // ارتفاع
public:
Mosallas()
{ base=1; height=1; }
Mosallas(float b)
{
If (b>0) base=b; else b=1; height=1;
}
Mosallas(float b,float h)
{
If (b>0) base=b; else base=1;
If (h>0) height=h; else height=1;
}
float area(){return base*height/2;}
};
void main()
{
Mosallas M1,M2(11),M3(11,2.75);
cout<<”\nM1.area()=”<<M1.area();
cout<<”\nM2.area()=”<<M2.area();
cout<<”\nM3.area()=”<<M3.area();
}
۵.کلاسی برای نقطه در صفحه مختصات (cpoint) بنویسید که شامل دو مقدار خصوصی x,y باشد و دارای سه سازنده و تابعی عمومی برای نمایش نقطه به صورت x:y(به همراه سازنده constructor)
class Cpoint
{
int x;
int y;
public:
Cpoint(){x=0; y=0;}
Cpoint(int x1){x=x1; y=0;}
Cpoint(int x1,int y1){x=x1; y=y1;}
void print()
{cout<<"\n"<< x<<":"<<y;}
};
void main()
{ Cpoint p1,p2(54),p3(23,97);
p1. print();
p2. print();
p3. print();
}
۶.کلاس تاریخ (Date ) شامل مقادیر خصوصی روز و ماه و سال بنویسید که دارای چهار سازنده باشد وتابعی به نام showdate بنویسید که تاریخ را به شکل روز/ماه/سال نشان دهد.(به همراه سازنده constructor)
class Date
{
int day;
int month;
int year;
public:
Date() {year=1392 ; month=2 ; day=23; }
Date(int d)
{
day=(d>0 && d<=31)?d:1;
month= 1;
y=1392;
}
Date(int d,int m)
{
day=(d>0 && d<=31)?d:1;
month=(m>0 && m<=12)?m:1;
y=1392;
}
Date(int d,int m,int y) {
day=(d>0 && d<=31)?d:1;
month=(m>0 && m<=12)?m:1;
year=(y>0)?y:1;
}
void showdate()
{cout<<”\n”<<year<<”/”<<month<<”/”<<day;}
};
void main()
{
Date d1(16,6,1370);
d1.showdate();
}