سورس چند تکه برنامه مفید در زبان C

secret_f

عضو جدید
کاربر ممتاز
سلام:w21:
هركس یه برنامه ای كه نوشته هر چقدر هم كه ساده باشه بیاد اینجا ارایه بده سورس برنامه با توضیحش .
هرچقدر هم كه ساده باشه مشكلی نیست همیشه كسانی هستند كه حتی اون برنامه هام براشون مفید باشه..
برای شروع هم خودم شروع میكنم.
 

secret_f

عضو جدید
کاربر ممتاز
پیاده سازی یه سیستم بانکی
پروژه درس پیشرفتمون بود یادمه اون موقع خیلی روش کار کردم...
دوستان جایی خواستین استفاده كنین با ذكر منبع بلا مانع میباشد.;)
bank system
نمیدونم چرا نشد تو باشگاه آپلود کنم:question:
 
آخرین ویرایش:

secret_f

عضو جدید
کاربر ممتاز
گراااااااااااااااف

گراااااااااااااااف

-کوتاهترین مسیر از هر نود تا نود دیگربا روشهای دایجسترا،بلمن فورد و فلوید
 

پیوست ها

  • floyd.zip
    719.8 کیلوبایت · بازدیدها: 3
  • bel-dai.zip
    1.4 مگایابت · بازدیدها: 4

palma

عضو جدید
برنامه ی کارخانه اتومبیل سازی

برنامه ی کارخانه اتومبیل سازی

برنامه ی یک کارخونه اتومبیل سازی که قابلیت ذخیره،حذف،جستجو،edit ، لیست کردن و لود کردن فایل رو داره!
پروژه درس ذخیره و بازیابی اطلاعاتمون بود!
امیدوارم بدرد بخوره;):)
 

پیوست ها

  • New Text Document.txt
    6.9 کیلوبایت · بازدیدها: 1

russell

مدیر بازنشسته
function overloading ... string

function overloading ... string

سلام
یه برنامه کوچیک :redface:
برای سربارگزاری توابع + ، = ، == ،<<(cin), و >> (cout) برای یک رشته بزرگ که با لیست پیوندی پیاده سازی شده ...

دانلود

برنامه مال خیلی وقت پیشه ، به صورت تصادفی دیدمش :D
 

آبجی

عضو جدید
کاربر ممتاز
سورس چند تکه برنامه مفید در زبان C

این برنامه یک ماتریس سه بعدی از ورودی گرفته و ضرب عناصر آنرا در یک آرایه یک بعدی ذخیره و چاپ میکند.

PHP:
    			#include <iostream.h>

int main()
{
     int x[2][2][2], y[2]={1,1};
     for(int i=0;i<2;i++)
          for(int j=0;j<2;j++)
                for(int k=0;k<2;k++)
                {
                     cout<<"Enter: "<<i<<"\t"<<j<<"\t"<<k<<"\n";
                     cin>>x[i][j][k];
                }
     for(int c=0;c<2;c++)
          for(int j=0;j<2;j++)
                for(int k=0;k<2;k++)
                     y[c]*=x[c][j][k];
     cout<<"Result:"<<"\n"<<y[0]<<"\t"<<y[1];
     return 0;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
نحوه عملکرد توابع _strupr و _strlwr

نحوه عملکرد توابع _strupr و _strlwr

برنامه ای که نحوه عملکرد دو تابع _strupr و _strlwr را نشان میدهد:
PHP:
#include <iostream>
#include <string>
using namespace std;
void main()
{
   char string[] = "The String to End All Strings!";
     cout<<"Mixed:\n"<<string<<endl;
       cout<<"Uper:\n"<<strupr(string)<<endl;
         char* lwr_str=strlwr(string);
           cout<<"Lower:\n"<<lwr_str<<endl;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
نحوه عملکرد توابع strchr و strrchr

نحوه عملکرد توابع strchr و strrchr

برنامه ای که یادآوری: نحوه عملکرد توابع strchr و strrchr را نشان میدهد:
PHP:
#include <iostream>
#include <string>
using namespace std;
void main(void)
{
   char ch='r';
   char string[] =
"The quick brown dog jumps over the lazy fox";
   char fmt1[] =
"         1         2         3         4         5";
   char fmt2[] =
"12345678901234567890123456789012345678901234567890";
   char* pdest;
   int result;
   cout<<"String to be searched: \n\t\t"<<string<<"\n";
    cout<<"\t\t"<<fmt1<<"\n\t\t"<<fmt2<<"\n\n";
     cout<<"Search char:\t"<<ch<<"\n";
/* Search forward. */
   pdest=strchr(string, ch);
    result=pdest - string + 1;
     if( pdest != NULL )
       cout<<"Result:\tfirst "<<ch
           <<" found at position "<<result<<"\n\n";
    else
       cout<<"Result:\t"<<ch<<" not found\n";
/* Search backward. */
   pdest=strrchr(string, ch);
    result=pdest - string + 1;
     if( pdest != NULL )
       cout<<"Result:\tfirst "<<ch
           <<" found at position "<<result<<"\n\n";
     else
       cout<<"Result:\t"<<ch<<" not found\n";
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
نحوه عملکرد تابع strlen

نحوه عملکرد تابع strlen

برنامه ای که کاربرد تابع strlen را نشان میدهد. با اجرای این برنامه عدد 15 به عنوان طول رشته str چاپ میشود:


#include <iostream>
#include <string>
using namespace std ;
int main()
{
char str [16] = "how long am I ?";
int len ;
len = strlen(str) ;
cout<<str<<" is "<<len<<" characters long\n";
return 0;
}

//end​
 

آبجی

عضو جدید
کاربر ممتاز
پیاده سازی تابع strrchr

پیاده سازی تابع strrchr

پیاده سازی تابع strrchr

PHP:
int strlen(const char *s)
{
    for(int i=0;s[i];++i);
    return i;
}
char *strrchr(const char *s,int c)
{
    long i;
    for(i=strlen(s)-1;i>=0 && s[i]!=(char)c;i--);
    if(i<0)
        return NULL;
    else
        return (char *)&s[i];
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
پیاده سازی strncpy به دو صورت

پیاده سازی strncpy به دو صورت

پیاده سازی strncpy به دو صورت

صورت اول:
PHP:
char *strncpy(char *s,const char *t,unsigned n)
{
    for(unsigned i=0;i<n && t[i]!='\0';i++)
        s[i]=t[i];
    for(;i<n;i++)
        s[i]='\0';
    return s;
}

//end

صورت دوم:
PHP:
char *strncpy(char *s,const char *t,unsigned n)
{
    char *ts=s;
    for(unsigned i=0;i<n && *t!='\0';i++,s++,t++)
        *s=*t;
    for(;i<n;i++,s++)
        *s='\0';
    return ts;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
پیاده سازی تابع strncat

پیاده سازی تابع strncat

PHP:
char *strncat(char *s,const char *t,unsigned n)
{
    const char *p=t;
    unsigned i,j;
    i=j=0;
    while(s[i]!='\0')
        i++;
    while(j<n && (s[i++]=p[j++])!='\0');
    if(p[j-1]!='\0')
        s[i]='\0';
    return s;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
پیاده سازی strcpy به دو صورت

پیاده سازی strcpy به دو صورت

پیاده سازی strcpy به دو صورت

حالت اول:
PHP:
char *strcpy(char *s,const char *t)
{
    int i=0;
    while((s[i]=t[i])!='\0')
        i++;
    return s;
}

//end


حالت دوم:
PHP:
char *strcpy(char *s,const char *t)
{
    char *ts;
    ts=s;
    while((*s=*t)!='\0')
    {
        s++;
        t++;
    }
    return ts;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
پیاده سازی توابع strlen و strchr

پیاده سازی توابع strlen و strchr

پیاده سازی توابع strlen و strchr

int strlen(const char *s)
{
for(int i=0;s;++i);
return i;
}
char *strchr(const char *s,int c)
{
unsigned i;
for(i=0;i<strlen(s) && s!=(char)c;++i);
if(i==strlen(s))
return NULL;
else
return (char *)&s;
}

//end

 

آبجی

عضو جدید
کاربر ممتاز
پیاده سازی تابع strcat

پیاده سازی تابع strcat

پیاده سازی تابع strcat
PHP:
char *strcat(char *s,const char *t)
{
    unsigned i,j;
    i=j=0;
    while(s[i]!='\0')
        i++;
    while((s[i++]=t[j++])!='\0');
    return s;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
تعیین مثلثی بودن ماتریس

تعیین مثلثی بودن ماتریس

برنامه ای که با گرفتن یک ماتریس، مثلثی بودن یا نبودن آن را حساب میکند.
PHP:
#include <iostream.h>
#include <conio.h>

int Matrix(int** matrix,int size)
{
    int down=0,up=0;
    for(int i=0;i<size;i++)
    {
            for(int j=0;j<size;j++)
            {
                    if(j>i && matrix[i][j] != 0)
                           down=2;
                    if(i>j && matrix[i][j] != 0)
                           up=1;
            }
    }
    return down+up;
}

int main()
{
    int size=0;
    cout<<"Enter size of matrix(number of rows and columns):";
    cin>>size;
    cout<<endl;
    int **matrix=new int*[size];
    for(int i=0;i<size;i++)
            matrix[i]=new int[size];
    int row=1;
    while(row<=size)
    {
         cout<<"Enter numbers for row "<<row<<":";
         for(int i=0;i<size;i++)
         {
                 cin>>matrix[row-1][i];
         }
         row++;
    }
    for(i=0;i<size;i++)
    {
            for(int j=0;j<size;j++)
                    cout<<matrix[i][j]<<" ";
            cout<<endl;
    }
    cout<<endl<<endl;
    int ud=Matrix(matrix,size);
    if(ud==3)
    {
         cout<<"Hich kodum"<<endl;
    }
    else if(ud==2)
    {
         cout<<"Bala mosallasi"<<endl;
    }
    else if(ud==1)
    {
         cout<<"Paein mosallasi"<<endl;
    }
    else if(ud==0)
    {
         cout<<"Har do"<<endl;
    }
    cout<<"Press any key to quit...";
    getch();
    return 0;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
رشته های کاراکتری

رشته های کاراکتری

یه تمرین جالب برای کار با آرایه های کاراکتری:

- برنامه ای بنویسید که ابتدا عددی به عنوان تعداد کاراکتر رشته گرفته و سپس به طور کاملا تصادفی یک رشته ی کاراکتری با طول عدد گرفته شده درست کرده و سپس از کاربر بپرسد که آن رشته چیست و کاربر با وارد کردن هر حرف، آن حرف به جای - قرار میگیرد و یک نمره ی مثبت یا منفی در نظر گرفته میشود و در آخر، رشته ی ایجاد شده و امتیاز کاربر را نمایش دهد.
PHP:
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

void main()
{
     int x[20], n, scr=0;
     char ch;
     cout<<"Enter the number of characters:"<<endl;
     cin>>n;
     for(int i=0;i<n;i++)
        x[i]=(97+random(26));
     clrscr();
     cout<<"Enter your guess:"<<endl;
     for(int c=0;c<n;c++)
        cout<<"-";
     gotoxy(1,2);
     for(i=0;i<n;i++)
     {
        ch=getche();
        if(x[i]!=ch)
            scr--;
        else
            scr++;
     }
     cout<<"\nCorrect Characters: ";
     for(i=0;i<n;i++)
     {
        ch=x[i];
        cout<<ch;
     }
     cout<<"\nYour score: "<<scr;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
نحوه عملکرد strncmp و _strnicmo یا strnicmp

نحوه عملکرد strncmp و _strnicmo یا strnicmp

برنامه ای که نحوه عملکرد دو تابع strncmp و _strnicmp (در کامپایلر های بورلند: strnicmp) را نشان میدهد.
PHP:
   			#include <iostream.h>
#include <string.h>

void main(void)
{
    char string1[]="The quick brown dog jumps over the lazy fox";
    char string2[]="The QUICK brown fox jumps over the lazy dog";
    char tmp[20];
    int result;
     cout<<"Compare strings:\n\t\tString1= "<<string1
          <<"\n\t\tString2= "<<string2<<"\n\n";
cout<<"Function:\tstrncmp(first 10 characters only)\n";
     result = strncmp( string1, string2 , 10 );
      if( result > 0 )
            strcpy( tmp, "greater than" );
      else if( result < 0 )
            strcpy( tmp, "less than" );
      else
             strcpy( tmp, "equal to" );
    cout<<"Result:\t\tString 1 is "<<tmp<<" string 2\n\n";
cout<<"Function:\t_strnicmp (first 10 characters only)";
     result = strnicmp( string1, string2, 10 );
      if( result > 0 )
            strcpy( tmp, "greater than" );
      else if( result < 0 )
            strcpy( tmp, "less than" );
      else
            strcpy( tmp, "equal to" );
cout<<"\nResult:\t\tString 1 is "<<tmp<<" string 2\n\n";
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
عملکرد تابع strncpy

عملکرد تابع strncpy

برنامه ای که نحوه عملکرد تابع strncpy را نشان میدهد:
PHP:
#include <iostream.h>
#include <cstring.h>

int main(){
  char str[ ] = "cats are nice usually.";
    cout<<"before operating :\n"<<str;
     strncpy(str,"dogs",4);
      strncpy(str+9,"mean",4);
        cout<<"\nafter operating :\n"<<str<<endl;
  return 0 ;
}

//end
 

آبجی

عضو جدید
کاربر ممتاز
الحاق رشته های string

الحاق رشته های string

برنامه ای که نحوه ی الحاق یک رشته را به رشته ای از نوع string نشان میدهد.
PHP:
   			//This program shows concatenation of string object.
#include <iostream.h>
#include <cstring.h>

int main()
{
    char S1[ ]="computer";
     string S2=S1;
      cout<<S2<<endl;
    strcpy(S1," science");
     S2=S2+S1;
      cout<<S2<<endl;
    return 0;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
توابع جستجوی یک زیر رشته در رشته هایی از نوع string

توابع جستجوی یک زیر رشته در رشته هایی از نوع string

توابع جستجوی یک زیر رشته در رشته هایی از نوع string:

در تمامی موارد زیر فرض کنید str رشته ای از نوع string است که بصورت زیر تعریف شده است:
string str;
//end


تابع find: این تابع جهت یافتن یک زیر رشته در یک رشته از نوع string به کار می رود. این تابع بصورت کلی زیر بکار می رود:
;(نقطه شروع جستجو ,زیر رشته مورد جستجو)int pos = str.find


عملکرد این تابع به این صورت است که اگر زیر رشته داده شده به عنوان ورودی تابع در رشته ی str یافت شود، موقعیت آن در رشته str و در غیر این صورت عدد -1 برمیگرداند.

تابع rfind: این تابع از نظر به کار گیری دقیقا مشابه تابع find است با این تفاوت که عمل جستجو را از نقطه شروع به طور معکوس (به سمت ابتدا رشته) انجام میدهد.

تابع find_first_of: این تابع رشته را به جهت یافتن اولین موقعیتی که یک کاراکتر از عناصر یک مجموعه کاراکتری وجود داشته باشد، مورد جستجو قرار می دهد و بصورت کلی زیر بکار می رود:

;(نقطه شروع جستجو ,یک مجموعه کاراکتر بصورت رشته)int pos = str.find_first_of


تابع find_first_not_of: این تابع همانند تابع find_first_of عمل کرده با این تفاوت که رشته را به جهت یافتن اولین کاراکتری که داخل یک مجموعه از کاراکتر ها نباشد، مورد جستجو قرار میدهد. در صورت یافته شدن چنین کاراکتری در رشته، موقعیت کاراکتر را در رشته بصورت یک عدد int باز میگرداند و در غیر این صورت مقدار -1 را برمیگرداند.

تابع find_last_of و find_last_not_of: این دو تابع دقیقا مشابه دو تابع قبلی عمل میکنند با این تفاوت که همانند تابع rfind رشته را از انتها به ابتدا جهت یافتن آخرین کاراکتر مورد نظر جستجو میکند.
 

آبجی

عضو جدید
کاربر ممتاز
کپی دو رشته

کپی دو رشته

برنامه ای که یک رشته را در رشته ای دیگر کپی میکند.
PHP:
   			//This program copies one string to another.
#include <iostream.h>
#include <conio.h>

int main()
{
    char s1[2000],s2[2000];
     cout<<"Please enter a sentence:\n";
      cin.get(s1,100,'.');
        for(int i=0; i<2000 && s1[i]!='\0'; i++)
                 s2[i]=s1[i];
        s2[i]='\0';
         clrscr();
          cout<<"You entered :\n";
             cout<<s2<<endl;
    return 0;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
برنامه ضرب دو ماتریس با استفاده از Vector ها

برنامه ضرب دو ماتریس با استفاده از Vector ها

برنامه ای که ضرب دو ماتریس با ابعاد m*n و n*p را پیاده سازی میکند.
PHP:
   			//This program calculates the product of 2 matrix.
#include <iostream.h>
#include <vector.h>
#include <conio.h>

int main()
{
    int m,n,p;
   cout<<"Enter size of tow integer matrix to get the product of them.\n";
    cout<<"Enter size of first matrix A(m*n).\n";
     cout<<"Enter m = ";
      cin>>m;
       cout<<"Enter n = ";
        cin>>n;
      vector <vector <int> > A(m, vector <int> (n,0));
       cout<<"\nEnter size of second matrix B("
           <<n<<"*p) .\n";
        cout<<"Enter p = ";
         cin>>p;
      vector <vector <int> > B(n, vector <int> (p,0));
        clrscr();
  cout<<"Enter Matrix A members:\n";
  for(int i=0;i<m;i++)
     for(int j=0;j<n;j++)
        {
          cout<<"Enter A["<<(i+1)<<"]["<<(j+1)<<"] =";
           cin>>A[i][j];
        }
 cout<<"\nEnter Matrix B members:\n";
  for(i=0;i<n;i++)
     for(int j=0;j<p;j++)
        {
          cout<<"Enter B["<<(i+1)<<"]["<<(j+1)<<"] =";
           cin>>B[i][j];
        }
      vector <vector <int> > C(m, vector <int> (p,0));
       for(i=0;i<m;i++)
         for(int k=0;k<p;k++)
           for(int j=0,sum=0;j<n;j++)
             C[i][k]+=A[i][j]*B[j][k];
    clrscr();
      for(i=0;i<m;i++)
         {
             for(int j=0;j<p;j++)
                cout<<C[i][j]<<"\t";
              cout<<endl;
          }
 return 0;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
برنامه جمع دو عدد خیلی بزرگ با vector

برنامه جمع دو عدد خیلی بزرگ با vector

برای جمع اعدادی که در محدوده ی قابل ذخیره در مبنا 32 اعداد int نباشند، باید به صورت نرم افزاری عمل کرد. در زیر برنامه ای ارائه شده که با استفاده از وکتور های یک بعدی دو عدد بسیار بزرگ (Huge Integer) را با یکدیگر جمع میکند.
PHP:
   			//This program gets the sum of two huge integer numbers.
#include <iostream.h>
#include <conio.h>
#include <vector.h>

int main()
{
    vector <char> num1,num2,result;
    cout<<"Enter tow huge integer numbers to get the sum of them.\n";
     cout<<"Enter number one and press enter key.\n\n";
     char ch;
     while((ch=getch())!=13)
      {
          if(ch>='0'&& ch<='9')
            {
                cout.put(ch);
                ch-=48;
                num1.push_back(ch);
            }
      }
     cout<<"\n+"<<endl;
     while((ch=getch())!=13)
      {
          if(ch>='0'&& ch<='9')
            {
                cout.put(ch);
                ch-=48;
                num2.push_back(ch);
            }
      }
    cout<<"\n="<<endl;
    int min_size;
    min_size = num1.size() < num2.size() ? 
               num1.size() : num2.size();
    bool carry=0;
    while(min_size>0)
     {
       if(num1.back()+num2.back()+carry<10)
        {
         result.push_back(num1.back()+num2.back()+carry); 
         num1.pop_back();
         num2.pop_back();
         carry=0;
        }
       else 
        {
    result.push_back((num1.back()+num2.back()+carry)%10);
         num1.pop_back();
         num2.pop_back();
         carry=1;
        }
      min_size--;
     }
   while(num1.size()!=0)
    {
      if(num1.back()+carry<10)
       {
           result.push_back(num1.back()+carry); 
           num1.pop_back();
           carry=0;
        }
      else 
        {
           result.push_back((num1.back()+carry)%10);
           num1.pop_back();
           carry=1;
        }  
    }
  while(num2.size()!=0)
    {
      if(num2.back()+carry<10)
        {
           result.push_back(num2.back()+carry); 
           num2.pop_back();
           carry=0;
        }
      else 
        {
           result.push_back((num2.back()+carry)%10);
           num2.pop_back();
           carry=1;
        }   
     }
   if(carry==1)
      result.push_back(1);
   while(result.size()>0)
    {
        cout.put(result.back()+48);
        result.pop_back();
    }
   cout<<endl;
  return 0;
} 


//end
 

آبجی

عضو جدید
کاربر ممتاز
نمرات دانشجویان (تمرین کامل برای آرایه ها)

نمرات دانشجویان (تمرین کامل برای آرایه ها)

یه تمرین کامل برای آرایه ها:

- برنامه ای بنویسید که 4 نمره امتحانی 10 دانشجو را خوانده و معدل هر دانشجو و معدل کلاس را در هر درس محاسبه و چاپ نماید.
PHP:
  			#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

int main()
{
 int score[10][5]={0};
 int lesson_sum[4]={0};
  for(int i=0;i<3;i++)
     {
        for(int j=0;j<5;j++)
          {
              if(j==0)
                 {
                    cout<<"Please enter student number = ";
                    cin>>score[i][0];
                 }
              else
             {
                    cout<<"Enter score number "<<j<<" = ";
                    cin>>score[i][j];
                    lesson_sum[j-1]+=score[i][j];
                 }
          }
        clrscr();
     }
  clrscr();
      for(i=0;i<10;i++)
          {
              float sum=0;
                 for(int j=1;j<5;j++)
                      sum+=score[i][j];
              cout<<setw(2)<<(i+1)<<"-Averag of student "
                    <<setw(10)<<score[i][0]
                    <<" = "<<(sum/4)<<endl;
          }
      for(i=0;i<4;i++)
          cout<<"\nAverage of lesson "<<(i+1)
                <<" = "<<((float)lesson_sum[i]/10);
    cout<<endl;
 return 0;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
gotoxy تابع انتقال مکان نما در صفحه نمایش

gotoxy تابع انتقال مکان نما در صفحه نمایش

انتقال مکان نما در صفحه نمایش:

اصولا برای ایجاد یک خروجی مناسب در صفحه نمایش نیازمند آن هستیم که به راحتی مکان نما را در صفحه حرکت داده و در هر نقطه که لازم باشد خروجی چاپ شود. این امکان در کامپایلر های شرکت بورلند به واسطه تابع gotoxy فراهم شده است. برای استفاده از این تابع باید هدر فایل conio.h را به برنامه اضافه کرد. این تابع دارای شکل کلی زیر است:
PHP:
gotoxy(int x, int y);
//end

در حالت کنسول صفحه نمایش بصورت 80 ستون و 25 ردیف فرض میشود. که گوشه ی بالا سمت چپ، معادل نقطه (0,0) و گوشه ی پایین سمت راست معادل نقطه (80,25) در نظر گرفته میشود. نکته ی قابل توجه آن که در دستور gotoxy ایتدا شماره ستون و سپس شماره ردیف ذکر می گردد. برای مثال دستور زیر مکان نما را به ستون پنجم و ردیف دهم منتقل میکند:
PHP:
gotoxy(5, 10);
//end
 

آبجی

عضو جدید
کاربر ممتاز
نبود تابع clrscr و gotoxy در کامپایلر Dev C++ و نحوه تعریف آنها

نبود تابع clrscr و gotoxy در کامپایلر Dev C++ و نحوه تعریف آنها

دوستانی که با کامپایلر Dev C++ کار کرده اند، حتما میدانند که این کامپایلر دو تابع مهم gotoxy و clrscr رو در خودش به صورت تعریف شده نداره. ولی میشه این دو رو تعریف کرد و حتی بعد از تعریف با فرمت .h ذخیره و به عنوان هدر فایل استفاده کرد.
روش تعریف این دو در Dev C++ به شکل زیر است:
PHP:
#include <iostream>
#include <windows.h>

using namespace std;

void gotoxy(int x, int y)
{
     HANDLE hConsoleOutput;
     COORD dwCursorPosition;
     cout.flush();
     dwCursorPosition.X=x;
     dwCursorPosition.Y=y;
     hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
     SetConsoleCursorPosition(hConsoleOutput, dwCursorPosition);
}

void clrscr()
{
     system("cls");
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
برنامه ی محاسبه روز های گذشته سال

برنامه ی محاسبه روز های گذشته سال

برنامه ای که با دریافت تاریخ یک روز سال جاری، تعداد روز های گذشته از ابتدای سال را مشخص میکند. این برنامه برای سال های کبیسه جواب اشتباه می دهد.
PHP:
  			#include <iostream.h>
#include <conio.h>

int main()
{
    short month, day, total_days;
    int day_per_month[12]={31,31,31,31,31,31,
                                  30,30,30,30,30,29};
    cout<<"Enter month (1 to 12) : ";
     cin>>month;
     if(month<1 || month>12)
      {
            cout<<"Wrong input! Press any key to end.\n";
             getch();
              return 0;
      }
     cout<<"Enter day (1 to 31) : ";
      cin>>day;
        total_days=day;
          for(int i=0;i<month-1;i++)
              total_days+=day_per_month[i];
          cout<<"Total days from start of year is:"
                <<total_days<<endl;
  return 0;
}


//end
 

آبجی

عضو جدید
کاربر ممتاز
عملگر شرطی (عملگر سه تایی Ternary Operator)

عملگر شرطی (عملگر سه تایی Ternary Operator)

عملگر شرطی (عملگر سه تایی Ternary Operator):

در C++ میتوان به واسطه ی عملگر ? یک ساختار تصمیم گیری ساده ولی پر کاربرد را پیاده سازی کرد که به این واسطه در کد نویسی صرفه جویی میشود. شکل کلی به کار گیری این عملگر به صورت زیر است:

;عبارت محاسباتی 2 : عبارت محاسباتی 1 ? (عبارت شرطی) = متغیر

عملکرد این عملگر به این صورت است که اگر عبارت شرطی دارای ارزش درستی بود، آنگاه مقدار عبارت محاسباتی 1 ارزیابی شده و در متغیر سمت چپ دستور انتساب قرار می گیرد، و الا اگر عبارت شرطی دارای ارزش نادرستی باشد مقدار عبارت محاسباتی 2 ارزیابی شده و در متغیر سمت چپ دستور انتساب قرار میگیرد.

به عبارت دیگر عملگر سه تایی معادل کد زیر عمل میکند:
(عبارت شرطی)if
;عبارت محاسباتی 1 = متغیر
else
;عبارت محاسباتی 2 = متغیر

 

Similar threads

بالا