Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Menu đồ họa trong C_Xin được sự giúp đỡ .

  1. #1
    Ngày gia nhập
    07 2007
    Bài viết
    1

    Mặc định Menu đồ họa trong C_Xin được sự giúp đỡ .

    Mình đang trong giai đoạn thực tập nhỏ , giảng viên có cho một bài tập như thế này :

    Tạo một menu đồ họa có 4 chức năng sau :
    1. Vẽ đồ thị hàm cosin
    2. Vẽ đồ thị hàm bậc 1
    3. Vẽ đồ thị hàm bậc 4
    4. Tạo chức năng thoát

    Viết bằng ngôn ngữ C.

    Hiện tại thì 1 người bạn đã viết dùm mình nhưng giờ mình muốn chuyển từ C sang Pascal có đc kô nhỉ . Nếu đc rất mong được sự giúp đỡ của mọi người

    Cảm ơn trc


    C Code:
    1. #include<dos.h>
    2. #include <stdio.h>
    3. #include <conio.h>
    4. #include <process.h>
    5. #include<graphics.h>
    6. #include<time.h>
    7. #include<math.h>
    8. #define t 100
    9.  
    10. union REGS i,o;
    11.  
    12. initmouse()
    13.     {
    14.         i.x.ax=0;
    15.         int86(0x33,&i,&o);
    16.         return(o.x.ax);
    17.     }
    18.  
    19. showmouseptr()
    20.     {
    21.         i.x.ax=1;
    22.         int86(0x33,&i,&o);
    23.         return(0);
    24.     }
    25.  
    26. hidemouseptr()
    27.     {
    28.         i.x.ax=2;
    29.         int86(0x33,&i,&o);
    30.         return(0);
    31.     }
    32.  
    33. restrictmouseptr(int x1,int y1, int x2, int y2)
    34.     {
    35.         i.x.ax=7;
    36.         i.x.cx=x1;
    37.         i.x.dx=x2;
    38.         int86(0x33,&i,&o);
    39.  
    40.         i.x.ax=8;
    41.         i.x.cx=y1;
    42.         i.x.dx=y2;
    43.         int86(0x33,&i,&o);
    44.  
    45.     return(0);
    46.     }
    47.  
    48. getmousepos(int *button, int *x, int *y)    
    49.     {
    50.         i.x.ax=3;
    51.         int86(0x33,&i,&o);
    52.         *button=o.x.bx;
    53.         *x=o.x.cx;
    54.         *y=o.x.dx;
    55.     return(0);
    56.     }
    57. //*************************************************************************
    58. void ClearWin(int wx1,int wy1,int wx2,int wy2,int color)  
    59.  {
    60.      setfillstyle(1,color);
    61.      bar(wx1,wy1,wx2,wy2);
    62.  }
    63. //*************************************************************************
    64. void menu_hien()
    65. {       int a , b;
    66.     a = 45; b = 65;
    67.     setcolor(12);
    68.     rectangle(20,a,120,b); bar(21,a+1,119,b-1);
    69.     setcolor(11);
    70.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    71.     setcolor(4);
    72.     outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
    73.     delay(t);
    74.     setcolor(12);
    75.     rectangle(20,a+20,120,b+20);  bar(21,a+21,119,b+19);
    76.     setcolor(11);
    77.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    78.     setcolor(4);
    79.     outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
    80.     delay(t);
    81.     setcolor(12);
    82.     rectangle(20,a+40,120,b+40);  bar(21,a+41,119,b+39);
    83.     setcolor(11);
    84.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    85.     setcolor(4);
    86.     outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
    87.     delay(t);
    88.     setcolor(12);
    89.     rectangle(20,a+60,120,b+60);  bar(21,a+61,119,b+59);
    90.     setcolor(11);
    91.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    92.     setcolor(4);
    93.     outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
    94. }
    95.         //********************//
    96. void menu_an()
    97. {       int a , b ;
    98.     a = 45; b = 65;
    99.     setcolor(2);
    100.     rectangle(20,a,120,b);
    101.     setcolor(2);
    102.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    103.     setcolor(2);
    104.     outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
    105.     delay(t);
    106.     setcolor(2);
    107.     rectangle(20,a+20,120,b+20);
    108.     setcolor(2);
    109.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    110.     setcolor(2);
    111.     outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
    112.     delay(t);
    113.     setcolor(2);
    114.     rectangle(20,a+40,120,b+40);
    115.     setcolor(2);
    116.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    117.     setcolor(2);
    118.     outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
    119.     delay(t);
    120.     setcolor(2);
    121.     rectangle(20,a+60,120,b+60);
    122.     setcolor(2);
    123.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    124.     setcolor(2);
    125.     outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
    126. }
    127. //******************************************************************
    128. void tille()
    129. {
    130.   int maxx;
    131.   maxx = getmaxx();
    132.  setcolor(5);
    133.   rectangle(0,0,maxx-2,18);
    134.   setfillstyle(1,9);
    135.   bar(1,1,maxx-3,17);
    136.   setcolor(15);
    137.   settextjustify(CENTER_TEXT,CENTER_TEXT);
    138.   setcolor(4);
    139.   outtextxy((maxx)/2,(18)/2,"*** Chuong Trinh Ve Do Thi ***");
    140. }
    141. //******************************************************************
    142. void menu()
    143. {
    144.   setcolor(14);
    145.   rectangle(20,20,100,40);
    146.   setfillstyle(1,9);
    147.   bar(21,21,99,39);
    148.   setcolor(15);
    149.   settextjustify(CENTER_TEXT,CENTER_TEXT);
    150.   setcolor(4);
    151.   outtextxy((20+100)/2,(20+40)/2,"VE DO THI");
    152. }
    153.         //*******************//
    154. void menu_click()
    155. {
    156.   setcolor(1);
    157.   rectangle(20,20,100,40);
    158.   setcolor(14);
    159.   line(21,40,99,40);
    160.   setfillstyle(1,9);
    161.   bar(21,21,99,39);
    162.   setcolor(5);
    163.   settextjustify(CENTER_TEXT,CENTER_TEXT);
    164.   setcolor(4);
    165.   outtextxy((20+100)/2,(20+40)/2,"VE DO THI");
    166. }
    167. //************************************************************************
    168. void menu_bac1()
    169. {
    170.     int a , b;
    171.     a = 45; b = 65;
    172.     setcolor(15);
    173.     rectangle(20,a,120,b);
    174.     setcolor(11);
    175.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    176.     setcolor(4);
    177.     outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
    178. }
    179.         //**//
    180. void menu_bac10()
    181. {
    182.     int a , b;
    183.     a = 45; b = 65;
    184.     setcolor(12);
    185.     rectangle(20,a,120,b);
    186.     setcolor(11);
    187.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    188.     setcolor(4);
    189.     outtextxy((20+120)/2,(a+b)/2,"Ham Bac 1");
    190. }
    191.         //*****************//
    192.  
    193. void menu_cos()
    194. {
    195.     int a , b;
    196.     a = 45; b = 65;
    197.     setcolor(15);
    198.     rectangle(20,a+20,120,b+20);
    199.     setcolor(11);
    200.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    201.     setcolor(4);
    202.     outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
    203. }
    204.         //**//
    205. void menu_cos0()
    206. {
    207.     int a , b;
    208.     a = 45; b = 65;
    209.     setcolor(12);
    210.     rectangle(20,a+20,120,b+20);
    211.     setcolor(11);
    212.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    213.     setcolor(4);
    214.     outtextxy((20+120)/2,(a+20+b+20)/2,"Ham Cosin");
    215. }
    216.         //******************//
    217.  
    218. void menu_bac4()
    219. {
    220.     int a , b;
    221.     a = 45; b = 65;
    222.     setcolor(15);
    223.     rectangle(20,a+40,120,b+40);
    224.     setcolor(11);
    225.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    226.     setcolor(4);
    227.     outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
    228. }
    229.         //**//
    230. void menu_bac40()
    231. {
    232.     int a , b;
    233.     a = 45; b = 65;
    234.     setcolor(12);
    235.     rectangle(20,a+40,120,b+40);
    236.     setcolor(11);
    237.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    238.     setcolor(4);
    239.     outtextxy((20+120)/2,(a+40+b+40)/2,"Ham TP 4");
    240. }
    241.         //*******************//
    242.  
    243. void menu_exit()
    244. {
    245.     int a , b;
    246.     a = 45; b = 65;
    247.     setcolor(15);
    248.     rectangle(20,a+60,120,b+60);
    249.     setcolor(11);
    250.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    251.     setcolor(4);
    252.     outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
    253. }
    254.         //**//
    255. void menu_exit0()
    256. {
    257.     int a , b;
    258.     a = 45; b = 65;
    259.     setcolor(12);
    260.     rectangle(20,a+60,120,b+60);
    261.     setcolor(11);
    262.     settextjustify(CENTER_TEXT,CENTER_TEXT);
    263.     setcolor(4);
    264.     outtextxy((20+120)/2,(a+60+b+60)/2,"EXIT");
    265. }
    266.         //***//
    267. void x_exit()
    268. {
    269.   int maxx;
    270.   maxx = getmaxx();
    271.   setcolor(15);
    272.   rectangle(maxx-19,1,maxx-3,17);
    273.   setfillstyle(1,4);
    274.   bar(maxx-18,2,maxx-4,16);
    275.   setcolor(15);
    276.   settextjustify(CENTER_TEXT,CENTER_TEXT);
    277.   setcolor(15);
    278.   outtextxy((maxx-18+maxx-3)/2,(18)/2,"X");
    279. }
    280. //************************************************************************
    281.  
    282. //************************************************************************
    283. main()
    284.     {
    285.         int gd=DETECT,gm,maxx,maxy,x,y,button,prevx,prevy;
    286.         initgraph(&gd,&gm,"D:\\tc\\bgi");
    287.         maxx=getmaxx();
    288.         maxy=getmaxy();
    289.         rectangle(0,0,maxx,maxy);
    290.         setviewport(1,0,maxx-1,maxy-1,0);
    291.         tille();
    292.         x_exit();
    293.         menu();
    294.         setbkcolor(2);
    295.         if(initmouse()==0)
    296.         {
    297.             closegraph();
    298.             restorecrtmode();
    299.             printf("Mouse Driver Not Loaded");
    300.             exit(1);
    301.         }
    302.         restrictmouseptr(1,1,maxx-1,maxy-1);
    303.         showmouseptr();
    304.         while(kbhit())  getch();
    305.         while(!kbhit())
    306.         {
    307.             getmousepos(&button,&x,&y);
    308.             if((button&1)==1)
    309.             {
    310.                 hidemouseptr();
    311.                 prevx=x;
    312.                 prevy=y;
    313.                 while((button&1)==1)
    314.                 {
    315.                 setcolor(4);
    316.                 line(prevx,prevy,x,y);
    317.                 prevx=x;
    318.                 prevy=y;
    319.                 getmousepos(&button,&x,&y);
    320.                 }
    321.             showmouseptr();
    322.             }
    323.          while(!kbhit())
    324.          {
    325.             getmousepos(&button,&x,&y);
    326.             if ((button&1)==1)
    327.             {
    328.             if ((x > 20 && x < 100) && (y > 20 && y < 40))
    329.               {
    330.                menu_click();
    331.                menu_hien();
    332.                lable_1:
    333.                while(!kbhit()) // tiep o menu thu 2//**********
    334.                  {
    335.                 getmousepos(&button,&x,&y);
    336.                 if ((button&1)==1)
    337.  
    338.                 {
    339.                
    340.                 if ((x > 20 && x < 120) && (y > 45 && y < 65))
    341.                    {
    342.                     ClearWin(120,42,maxx,maxy,2);
    343.                     menu_cos0();
    344.                     menu_bac40();
    345.                     menu_exit0();
    346.                     menu_bac1();
    347.                    
    348.                    }
    349.                 if ((x > 20 && x < 120) && (y > 65 && y < 85))
    350.                    {
    351.                     ClearWin(120,42,maxx,maxy,2);
    352.                     menu_bac10();
    353.                     menu_bac40();
    354.                     menu_exit0();
    355.                     menu_cos();
    356.                    
    357.                    }
    358.                
    359.                 if ((x > 20 && x < 120) && (y > 85 && y < 105))
    360.                    {
    361.                     ClearWin(120,42,maxx,maxy,2);
    362.                     ClearWin(140,200,maxx-20,maxy-20,7);
    363.                     menu_bac10();
    364.                     menu_cos0();
    365.                     menu_exit0();
    366.                     menu_bac4();
    367.                    
    368.                    }
    369.                
    370.                 if ((x > 20 && x < 120) && (y > 105 && y < 125))
    371.                    {
    372.                     ClearWin(140,200,maxx-20,maxy-20,8);
    373.                     menu_bac10();
    374.                     menu_cos0();
    375.                     menu_bac40();
    376.                     menu_exit();
    377.                     exit(1);
    378.                    }
    379.                
    380.                 if ((x < 20 || x > 120) || (y < 45 || y > 125))
    381.                    {
    382.                     ClearWin(0,42,maxx,maxy,2);
    383.                     menu();
    384.                     break;
    385.                    }
    386.                 }
    387.                  }
    388.                }
    389.               if (((x > 20) || (x < 100)) || ((y > 20) || (y < 40)))
    390.              menu_an();
    391.               if ((x > (maxx-19) && x < (maxx-3))&&(y > 1 && y <17))
    392.                 {
    393.                 exit(1);
    394.                 }
    395.             }
    396.          }
    397.          
    398.         }
    399.     getch();
    400.     return(0);
    401.     }

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Đây là bài thực tập nhỏ của bạn, đáng ra bạn phải tự làm nó nhưng bạn lại đi nhờ, bây giờ có người viết ra cho rồi, bạn lại nhờ để chuyển sang pascal để sẵn nộp bài là sao?
    Không ai giúp bạn được đâu mặc dù là họ có khả năng. Hãy tìm cách tự giúp mình đi bạn!
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

Các đề tài tương tự

  1. Tạo Menu trong asp.net Bằng SiteMap và Menu Mọi người có hay sài ?
    Gửi bởi truongnam0240 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 6
    Bài viết cuối: 01-07-2013, 05:41 AM
  2. Hight light menu trong C như của Menu HirentBoot?
    Gửi bởi manhdt trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 08-09-2011, 09:54 AM
  3. sửa cái menu trong C. giúp em với ..Thank
    Gửi bởi toanpv1989 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 07-05-2010, 10:57 PM
  4. Bài tập MENU động trong C. Giúp em
    Gửi bởi bimhoanhtri trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 7
    Bài viết cuối: 03-12-2009, 07:58 PM
  5. Sử dụng một phần menu chính cho menu ngữ cảnh trong lập trình C#
    Gửi bởi baokhanhk28 trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 30-12-2006, 05:39 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn