برگزیده های پرشین تولز

تحلیل کد 2 برنامه کامل در ++C

haricanboy

کاربر تازه وارد
تاریخ عضویت
5 ژانویه 2013
نوشته‌ها
25
لایک‌ها
1
سلام دوستان
دو تا برنامه سی پلاس پلاس دارم میخوام بدونم چیکار میکنه و چطوری کار میکنه نحوه کارش چطوریه
اگه تونستین در صورت امکان توضیح خط به خط هم بدین که بهتر متوجه بشم ...
ممنون.
البته متوجه میشدم کدهای برنامه های ساده رو ولی اینا بنظرم سخته نفهمیدم.
کد:
#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\thogo  g:%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\tforosh:%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;
}
 

amin020

کاربر تازه وارد
تاریخ عضویت
27 ژانویه 2014
نوشته‌ها
39
لایک‌ها
13
سن
28
برنامه اولی کامپایل شدش رو ضمیمه کردم ،اما برنامه دومی مشکل داره .
در ضمن برنامه هاتون کد هاش خیلی زیاد هستش برای بررسی زمان زیادی لازمه
 

فایل های ضمیمه

  • Screenshots_2014-12-22-06-21-17.png
    Screenshots_2014-12-22-06-21-17.png
    42.8 KB · نمایش ها: 8

haricanboy

کاربر تازه وارد
تاریخ عضویت
5 ژانویه 2013
نوشته‌ها
25
لایک‌ها
1
برنامه اولی کامپایل شدش رو ضمیمه کردم ،اما برنامه دومی مشکل داره .
در ضمن برنامه هاتون کد هاش خیلی زیاد هستش برای بررسی زمان زیادی لازمه
ممنون
هر دو برنامه کار میکنه من تو ویژوال استودیو 2008 تست کردم
یه سوال این کدهای زبان c هست یا ++C ؟
بنظرم C هست ولی تو ++C اجرا میشه...
 

amin020

کاربر تازه وارد
تاریخ عضویت
27 ژانویه 2014
نوشته‌ها
39
لایک‌ها
13
سن
28
به زبان C هستن و برای کامپایلر این دو فرقی نداره اجرا میکنه
 

haricanboy

کاربر تازه وارد
تاریخ عضویت
5 ژانویه 2013
نوشته‌ها
25
لایک‌ها
1
سلام
دوستان تو این دو تا کد هم از کدهای ++C و هم از کدهای C استفاده شده درسته؟؟؟
یعنی امکانش هست از دستورات هر دو این زبانها تو یه برنامه استفاده کرد؟؟؟
توضیحش چیه
 

sooth3r

کاربر تازه وارد
تاریخ عضویت
3 اکتبر 2011
نوشته‌ها
15
لایک‌ها
2
بعله امکانش هست که از دستورات سی داخل سی پلاس پلاس استفاده کنید به دلیل اینکه سی پلاس پلاس تمام کتاب خانه های استاندارد سی رو داره داخل خودش همچنین
هر دو کد سی پلاس پلاس هستش و داخل نمونه ی اولی یه کلاس تاریخ و مدیریت تاریخ که دو تا متد داره و یه تاریخو به تاریخ اون وهله اضافه میکنه و یک متد هم برای کم کردن یه تاریخ از تاریخ وهله ی ساخته شده برنامه ی دومم یه کلاس کارمند هست که متد گرفتن اطلاعات اون وهله ی ساخته شده و همچنین یک متد هم برای اضافه کردن کارمند داخلش هست داخل فانکشن مین هم سه تا ابجکت ساخته از کلاس کارمند که وراثت داره ازش برای کلاسایه خاص خودش مثله کارمند قرادادی و ... و بعد از اون هم یک منوی ساده ساخته با ساختار سوییچ و کیس ....
 

چه_1983

کاربر تازه وارد
تاریخ عضویت
22 ژانویه 2015
نوشته‌ها
3
لایک‌ها
1
سن
40
جسارتا
کدها به زبان سی نوشته شدند
و در سی ++ هم به دلیل هم خانواده بودن اجرا میشن
ولی برای راحتیه کار میتونین تغییر بدید به سی ++ یا سی شارپ
کامپایلرهاشون از یکیه تقرریبا
 
بالا