haricanboy
پنج شنبه 27 آذر 1393, 19:39 عصر
سلام دوستان
دو تا برنامه سی پلاس پلاس دارم میخوام بدونم چیکار میکنه و چطوری کار میکنه نحوه کارش چطوریه
اگه تونستین در صورت امکان توضیح خط به خط هم بدین که بهتر متوجه بشم ...
ممنون.
البته متوجه میشدم کدهای برنامه های ساده رو ولی اینا بنظرم سخته نفهمیدم.
#include "stdafx.h"
#include<iostream>
#include <stdlib.h>
#include<string>
#include<conio.h>
using namespace std;
class NewDate
{
private:
int Year;
int Month;
int Day;
public:
NewDate()
{
Year = 0;
Month = 1;
Day = 1;
}
NewDate(int Newday, int Newmonth, int Newyear)
{
Year = Newyear;
Month = Newmonth;
Day = Newday;
}
NewDate(string str)
{
char y[4] = {str[6],str[7],str[8],str[9]};
char m[2] = {str[3],str[4]};
char d[2] = {str[0],str[1]};
Year = atoi(y);
Month = atoi(m);
Day = atoi(d);
}
void DateToString()
{
printf("%d.%d.%d",Day,Month,Year);
}
bool isLeap(int Year)
{
if ( Year % 400 == 0)
return true;
else if ( Year % 100 == 0)
return false;
else if ( Year % 4 == 0 )
return true;
return false;
}
int DaysTo(string date)
{
char y[4] = {date[6],date[7],date[8],date[9]};
char m[2] = {date[3],date[4]};
char d[2] = {date[0],date[1]};
int Year1 = atoi(y);
int Month1 = atoi(m);
int Day1 = atoi(d);
return (((Year1 - Year) * 365) + ((Month1 - Month) * 30) + (Day1 - Day));
}
NewDate Add(string date)
{
NewDate TempNewDate;
char y[4] = {date[6],date[7],date[8],date[9]};
char m[2] = {date[3],date[4]};
char d[2] = {date[0],date[1]};
int Year1 = atoi(y);
int Month1 = atoi(m);
int Day1 = atoi(d);
TempNewDate.Year = Year1 + Year;
TempNewDate.Month = Month1 + Month;
TempNewDate.Day = Day1 + Day;
TempNewDate.Month = TempNewDate.Month + (TempNewDate.Day / 30 );
TempNewDate.Day = TempNewDate.Day % 30;
TempNewDate.Year = TempNewDate.Year + (TempNewDate.Month / 12 );
TempNewDate.Month = TempNewDate.Month % 12;
return TempNewDate;
}
NewDate Sub(string date)
{
NewDate TempNewDate;
char y[4] = {date[6],date[7],date[8],date[9]};
char m[2] = {date[3],date[4]};
char d[2] = {date[0],date[1]};
int Year1 = atoi(y);
int Month1 = atoi(m);
int Day1 = atoi(d);
TempNewDate.Year = Year1 - Year;
TempNewDate.Month = Month1 - Month;
TempNewDate.Day = Day1 - Day;
TempNewDate.Month = TempNewDate.Month + (TempNewDate.Day / 30 );
TempNewDate.Day = TempNewDate.Day % 30;
TempNewDate.Year = TempNewDate.Year + (TempNewDate.Month / 12 );
TempNewDate.Month = TempNewDate.Month % 12;
return TempNewDate;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
NewDate date("10.04.2000");
printf("Current Date:");
date.DateToString();
printf("\nYear Is Leap[1->Yes 2->No]:%d",date.isLeap(2000));
printf("\nDays Remining To Current Date:%d",date.DaysTo("15.05.2000"));
printf("\nAdd Date To Current Date:");
date.Add("15.05.2015").DateToString();
printf("\nSub Date In Current Date:");
date.Sub("15.05.2015").DateToString();
getch();
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<iostream>
class Employee
{
public:
char Name[30];
char HireDate[15];
};
class PriceEmployee :public Employee
{
public:
int Hogog_Khedmat;
void Add(char* EName, char* EHireDate, int Hogog)
{
strncpy(Name,EName,30);
strncpy(HireDate,EHireDate,15);
Hogog_Khedmat = Hogog;
}
void GetInfo()
{
printf("Name:%s\tHireDate:%s\tType:Garardady\thogog:%d\n" , Name, HireDate ,Hogog_Khedmat );
}
};
class SalariedEmployee :public Employee
{
public:
int Hogog_Month;
void Add(char* EName, char* EHireDate, int Hogog)
{
strncpy(Name,EName,30);
strncpy(HireDate,EHireDate,15);
Hogog_Month = Hogog;
}
void GetInfo()
{
printf("Name:%s\tHireDate:%s\tType:Rasmi\thogog:%d\n" , Name, HireDate ,Hogog_Month );
}
};
class CommissionEmployee :public Employee
{
public:
int Hogog_Month;
int Forosh;
void Add(char* EName, char* EHireDate, int Hogog, int EForosh)
{
strncpy(Name,EName,30);
strncpy(HireDate,EHireDate,15);
Forosh = EForosh;
Hogog_Month = Hogog + (EForosh * 10 / 100);
}
void GetInfo()
{
printf("Name:%s\tHireDate:%s\tType:Darsadi\thogog:%d\tforo sh:%d\n" , Name, HireDate ,Hogog_Month,Forosh );
}
};
int _tmain(int argc, _TCHAR* argv[])
{
int n;
PriceEmployee PEmployee;
SalariedEmployee SEmployee;
CommissionEmployee CEmployee;
while(1)
{
printf("\n");
printf("1- Add Karmad Garardadi.\n");
printf("2- Add Karmand Rasmi.\n");
printf("3- Add Karmand Darsadi.\n");
printf("4- Exit.\n");
printf("Select 1..5:");
scanf("%d",&n);
switch(n)
{
case 1:
PEmployee.Add("ali reza1","1390.12.10",30000);
PEmployee.GetInfo();
break;
case 2:
SEmployee.Add("mohsen","1380.12.10",20000);
SEmployee.GetInfo();
break;
case 3:
CEmployee.Add("vali","1384.10.13",4000,3000);
CEmployee.GetInfo();
break;
case 4:
exit(0);
break;
}
}
return 0;
}
دو تا برنامه سی پلاس پلاس دارم میخوام بدونم چیکار میکنه و چطوری کار میکنه نحوه کارش چطوریه
اگه تونستین در صورت امکان توضیح خط به خط هم بدین که بهتر متوجه بشم ...
ممنون.
البته متوجه میشدم کدهای برنامه های ساده رو ولی اینا بنظرم سخته نفهمیدم.
#include "stdafx.h"
#include<iostream>
#include <stdlib.h>
#include<string>
#include<conio.h>
using namespace std;
class NewDate
{
private:
int Year;
int Month;
int Day;
public:
NewDate()
{
Year = 0;
Month = 1;
Day = 1;
}
NewDate(int Newday, int Newmonth, int Newyear)
{
Year = Newyear;
Month = Newmonth;
Day = Newday;
}
NewDate(string str)
{
char y[4] = {str[6],str[7],str[8],str[9]};
char m[2] = {str[3],str[4]};
char d[2] = {str[0],str[1]};
Year = atoi(y);
Month = atoi(m);
Day = atoi(d);
}
void DateToString()
{
printf("%d.%d.%d",Day,Month,Year);
}
bool isLeap(int Year)
{
if ( Year % 400 == 0)
return true;
else if ( Year % 100 == 0)
return false;
else if ( Year % 4 == 0 )
return true;
return false;
}
int DaysTo(string date)
{
char y[4] = {date[6],date[7],date[8],date[9]};
char m[2] = {date[3],date[4]};
char d[2] = {date[0],date[1]};
int Year1 = atoi(y);
int Month1 = atoi(m);
int Day1 = atoi(d);
return (((Year1 - Year) * 365) + ((Month1 - Month) * 30) + (Day1 - Day));
}
NewDate Add(string date)
{
NewDate TempNewDate;
char y[4] = {date[6],date[7],date[8],date[9]};
char m[2] = {date[3],date[4]};
char d[2] = {date[0],date[1]};
int Year1 = atoi(y);
int Month1 = atoi(m);
int Day1 = atoi(d);
TempNewDate.Year = Year1 + Year;
TempNewDate.Month = Month1 + Month;
TempNewDate.Day = Day1 + Day;
TempNewDate.Month = TempNewDate.Month + (TempNewDate.Day / 30 );
TempNewDate.Day = TempNewDate.Day % 30;
TempNewDate.Year = TempNewDate.Year + (TempNewDate.Month / 12 );
TempNewDate.Month = TempNewDate.Month % 12;
return TempNewDate;
}
NewDate Sub(string date)
{
NewDate TempNewDate;
char y[4] = {date[6],date[7],date[8],date[9]};
char m[2] = {date[3],date[4]};
char d[2] = {date[0],date[1]};
int Year1 = atoi(y);
int Month1 = atoi(m);
int Day1 = atoi(d);
TempNewDate.Year = Year1 - Year;
TempNewDate.Month = Month1 - Month;
TempNewDate.Day = Day1 - Day;
TempNewDate.Month = TempNewDate.Month + (TempNewDate.Day / 30 );
TempNewDate.Day = TempNewDate.Day % 30;
TempNewDate.Year = TempNewDate.Year + (TempNewDate.Month / 12 );
TempNewDate.Month = TempNewDate.Month % 12;
return TempNewDate;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
NewDate date("10.04.2000");
printf("Current Date:");
date.DateToString();
printf("\nYear Is Leap[1->Yes 2->No]:%d",date.isLeap(2000));
printf("\nDays Remining To Current Date:%d",date.DaysTo("15.05.2000"));
printf("\nAdd Date To Current Date:");
date.Add("15.05.2015").DateToString();
printf("\nSub Date In Current Date:");
date.Sub("15.05.2015").DateToString();
getch();
return 0;
}
--------------------------------------------------------------------------------------------------------------------------------
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<iostream>
class Employee
{
public:
char Name[30];
char HireDate[15];
};
class PriceEmployee :public Employee
{
public:
int Hogog_Khedmat;
void Add(char* EName, char* EHireDate, int Hogog)
{
strncpy(Name,EName,30);
strncpy(HireDate,EHireDate,15);
Hogog_Khedmat = Hogog;
}
void GetInfo()
{
printf("Name:%s\tHireDate:%s\tType:Garardady\thogog:%d\n" , Name, HireDate ,Hogog_Khedmat );
}
};
class SalariedEmployee :public Employee
{
public:
int Hogog_Month;
void Add(char* EName, char* EHireDate, int Hogog)
{
strncpy(Name,EName,30);
strncpy(HireDate,EHireDate,15);
Hogog_Month = Hogog;
}
void GetInfo()
{
printf("Name:%s\tHireDate:%s\tType:Rasmi\thogog:%d\n" , Name, HireDate ,Hogog_Month );
}
};
class CommissionEmployee :public Employee
{
public:
int Hogog_Month;
int Forosh;
void Add(char* EName, char* EHireDate, int Hogog, int EForosh)
{
strncpy(Name,EName,30);
strncpy(HireDate,EHireDate,15);
Forosh = EForosh;
Hogog_Month = Hogog + (EForosh * 10 / 100);
}
void GetInfo()
{
printf("Name:%s\tHireDate:%s\tType:Darsadi\thogog:%d\tforo sh:%d\n" , Name, HireDate ,Hogog_Month,Forosh );
}
};
int _tmain(int argc, _TCHAR* argv[])
{
int n;
PriceEmployee PEmployee;
SalariedEmployee SEmployee;
CommissionEmployee CEmployee;
while(1)
{
printf("\n");
printf("1- Add Karmad Garardadi.\n");
printf("2- Add Karmand Rasmi.\n");
printf("3- Add Karmand Darsadi.\n");
printf("4- Exit.\n");
printf("Select 1..5:");
scanf("%d",&n);
switch(n)
{
case 1:
PEmployee.Add("ali reza1","1390.12.10",30000);
PEmployee.GetInfo();
break;
case 2:
SEmployee.Add("mohsen","1380.12.10",20000);
SEmployee.GetInfo();
break;
case 3:
CEmployee.Add("vali","1384.10.13",4000,3000);
CEmployee.GetInfo();
break;
case 4:
exit(0);
break;
}
}
return 0;
}