نمایش نتایج 1 تا 5 از 5

نام تاپیک: ساعت عقربه دار به زبان C یا‍ ‍‍++C یا JAVA

  1. #1

    ساعت عقربه دار به زبان C یا‍ ‍‍++C یا JAVA

    سلام دوستان
    من برای نوشتن برنامه ساعت عقربه دار نیاز به کمک دوستان دارم :mrgreen:
    لطفاً دوستان به من کمک کنن :flower: :موفق:

  2. #2
    حالت گرافیکی یا متن
    در داس یا ویندوز
    با سی یا سی++
    :confy2:

  3. #3

  4. #4
    من یه ساده را با سی نوشتم
    برای اینکه ایده بگیری

  5. #5
    کاربر دائمی آواتار sasan_vm
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    زاهدان
    پست
    494



    #include <dos.h>
    #include <math.h>
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    #include <graphics.h>

    //----------------------------------------------------------------------------------

    class Clock
    {
    private:
    unsigned XCentr;
    unsigned YCentr;
    unsigned Raduis;
    unsigned FrgCol;
    unsigned BkgCol;
    unsigned ColSec;
    unsigned ColMin;
    unsigned ColHor;
    unsigned RadSec;
    unsigned RadMin;
    unsigned RadHor;
    struct time Time;

    public:
    Clock(int, char *);
    ~Clock();
    void Show(void);

    private:
    void UpdateSec(void);
    void UpdateMin(void);
    void UpdateHor(void);

    double DegToRad(int Deg) { return ( Deg * M_PI / 180.0 ); }

    void Draw(int Red, double Teta, int Color)
    {
    int x, y;
    x = XCentr + ( Red * cos( Teta - M_PI_2 ) );
    y = YCentr + ( Red * sin( Teta - M_PI_2 ) );
    setcolor( Color );
    line( XCentr, YCentr, x, y );
    }
    };

    //----------------------------------------------------------------------------------

    Clock::Clock(int NumCommand, char *Red)
    {
    int gDriver=DETECT, gMode, errorcode;

    errorcode = registerbgidriver(EGAVGA_driver);
    if ( errorcode < 0 )
    {
    printf("Graphics error: %s\n", grapherrormsg(errorcode));
    printf("Press any key to halt:");
    getch();
    exit(1); /* terminate with an error code */
    }
    initgraph(&gDriver, &gMode,"");
    errorcode = graphresult();
    if ( errorcode != grOk ) /* an error occurred */
    {
    printf("Graphics error: %s\n", grapherrormsg(errorcode));
    printf("Press any key to halt:");
    getch();
    exit(1); /* terminate with an error code */
    }

    switch ( NumCommand )
    {
    case 1:
    Raduis = 200;
    break;

    case 2:
    Raduis = atoi(Red);
    break;
    }

    RadSec = 29/30. * Raduis;
    RadMin = 25/30. * Raduis;
    RadHor = 21/30. * Raduis;
    XCentr = getmaxx() / 2;
    YCentr = getmaxy() / 2;

    FrgCol = LIGHTGREEN;
    BkgCol = BLACK;
    ColSec = RED;
    ColMin = LIGHTBLUE;
    ColHor = BLUE;

    {
    int i, j, x, y;
    setcolor(FrgCol);
    for (i=0; i<=360; i += 30)
    {
    x = XCentr + ( Raduis * cos( DegToRad( i ) - M_PI_2 ) );
    y = YCentr + ( Raduis * sin( DegToRad( i ) - M_PI_2 ) );
    for (j=1; j<4; j++) circle(x, y, j);
    }
    setcolor(WHITE);
    settextstyle(DEFAULT_FONT, HORIZ_DIR, 0);
    y = getmaxy() - textheight("My Clock"); // any text your name
    outtextxy(2 , y, "Mansoor Tanhaey");
    setlinestyle(SOLID_LINE, 0 ,THICK_WIDTH);
    }
    }

    Clock::~Clock()
    {
    while ( kbhit() ) getch();
    closegraph();
    }

    //----------------------------------------------------------------------------------

    void Clock::UpdateSec(void)
    {
    static double SecTeta;

    Draw( RadSec, SecTeta, BkgCol );
    SecTeta = DegToRad( Time.ti_sec * 6 );
    Draw( RadSec, SecTeta, ColSec );
    UpdateMin();
    UpdateHor();
    }

    //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@

    void Clock::UpdateMin(void)
    {
    static double MinTeta;

    Draw( RadMin, MinTeta, BkgCol );
    MinTeta = DegToRad( Time.ti_min * 6 );
    Draw( RadMin, MinTeta, ColMin );
    if ( Time.ti_min==1 && Time.ti_sec==0 ) UpdateSec();
    }

    //----------------------------------------------------------------------------------

    void Clock::UpdateHor(void)
    {
    static double HorTeta;

    Draw( RadHor, HorTeta, BkgCol );
    HorTeta = DegToRad( Time.ti_hour * 30 + Time.ti_min / 2 );
    Draw( RadHor, HorTeta, ColHor );
    }

    //----------------------------------------------------------------------------------

    void Clock::Show(void)
    {
    static unsigned char OldSec; // for any PC that CLOCK is fast
    OldSec = Time.ti_sec;
    gettime(&Time);
    Time.ti_hour = ( Time.ti_hour >= 12 ) ? Time.ti_hour-12 : Time.ti_hour;
    if ( Time.ti_sec != OldSec )
    UpdateSec();
    }

    //----------------------------------------------------------------------------------

    void main(int argc, char **argv)
    {
    Clock * Rado = new Clock(argc, argv[1]);

    do
    Rado->Show();
    while ( !kbhit() );
    delete Rado;
    }

    //----------------------------------------------------------------------------------

تاپیک های مشابه

  1. Java Platform, Standard Edition (Java SE) 6 Beta
    نوشته شده توسط sokoot در بخش Java SE : نگارش استاندارد جاوا
    پاسخ: 0
    آخرین پست: جمعه 28 بهمن 1384, 09:25 صبح
  2. java یا #c
    نوشته شده توسط milder در بخش برنامه‌نویسی جاوا
    پاسخ: 4
    آخرین پست: سه شنبه 26 مهر 1384, 13:03 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •