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

Đề tài: tăng/giảm giá trị bằng phím mũi tên?

  1. #1
    Ngày gia nhập
    11 2010
    Bài viết
    54

    Mặc định tăng/giảm giá trị bằng phím mũi tên?

    ---------------------------------------
    | ĐÃ XONG :X ThANK CÁC HUYNH NHIỀU|
    ---------------------------------------




    hihi, lâu rồi ko vào 4rum vì bận bịu việc làm parttime, hôm nay em giở sách ra làm vài bài thì có bài không biết làm mong anh chị giúp phần code...

    Đề bài dài nhưng có mỗi phần này là em không biết làm nên đơn giản nó thành như thế này để anh chị giúp : Nhập 1 một số nguyên, dùng phím mũi tên lên/xuống để tăng giảm giá trị rồi in ra màn hình, yêu câu là mỗi lần tăng giảm nó lại hiện ra kết quả trên màn hình. ấn phím bất kì ngoài 2 phím mũi tên sẽ kết thúc chương trình.

    Thân
    Đã được chỉnh sửa lần cuối bởi lamrung : 28-07-2011 lúc 11:17 PM.
    90% thành viên vào chỉ để hỏi một câu sau đó té luôn
    5% thành viên vào chỉ để hỏi không để chia sẻ
    3% có tinh thần chia sẻ
    2% còn lại là BQT

  2. #2
    Ngày gia nhập
    10 2009
    Nơi ở
    ThăngLong.delay(1000);
    Bài viết
    312

    Bạn phải biết mã của các phím ấy, xong tìm cách bắt phím ấy thôi.

    Nếu console C++ thì dùng hàm getch() chẳng hạn, code demo:

    Code:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    void catch_keys(){
    	char c;
    	while(1){
    	    c=getch();
    	    if (c==-32)    c=getch();
    	    else break;
    	    switch (c)
    	    {
    	        case 72 : cout << "len tren\n"; break;
    	        case 77 : cout << "sang phai\n"; break;
    	        case 80 : cout << "xuong duoi\n"; break;
    	        case 75 : cout << "sang trai\n"; break; 
    		}
    	}
    }
    
    
    int main(){
    	
    	catch_keys();
    	
    	system("pause");
    	
    	return 0;
    	
    }

  3. #3
    Ngày gia nhập
    11 2010
    Bài viết
    54

    Trích dẫn Nguyên bản được gửi bởi vietduc Xem bài viết
    Bạn phải biết mã của các phím ấy, xong tìm cách bắt phím ấy thôi.

    Nếu console C++ thì dùng hàm getch() chẳng hạn, code demo:

    Code:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    void catch_keys(){
    	char c;
    	while(1){
    	    c=getch();
    	    if (c==-32)    c=getch(); //em chưa hiểu đoạn này lắm, ai vào giải thích đc ko ?
    	    else break;
    	    switch (c)
    	    {
    	        case 72 : cout << "len tren\n"; break;
    	        case 77 : cout << "sang phai\n"; break;
    	        case 80 : cout << "xuong duoi\n"; break;
    	        case 75 : cout << "sang trai\n"; break; 
    		}
    	}
    }
    
    
    int main(){
    	
    	catch_keys();
    	
    	system("pause");
    	
    	return 0;
    	
    }


    Bài viết của bạn đã nhập quá ngắn. Vui lòng làm cho bài viết của bạn dài hơn ít nhất là 16 ký tự.
    90% thành viên vào chỉ để hỏi một câu sau đó té luôn
    5% thành viên vào chỉ để hỏi không để chia sẻ
    3% có tinh thần chia sẻ
    2% còn lại là BQT

  4. #4
    Ngày gia nhập
    10 2009
    Nơi ở
    ThăngLong.delay(1000);
    Bài viết
    312

    Mình test và chạy code này thì thấy ấn mũi tên nó ra 2 số, -32 và 1 số nữa.
    Thế là mong muốn rằng loại số -32 kia đi và đọc mã ở phía sau để kiểm tra là mũi tên nào.
    Tại sao thế thì mình không tìm hiểu.
    Code:
    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    void catch_keys(){
    	char c;
    	while(1){
    	    c=getch();
    	    cout << "->" << (int) c << endl;
    	}
    }
    
    
    int main(){
    	
    	catch_keys();
    	
    	system("pause");
    	
    	return 0;
    	
    }

  5. #5
    Ngày gia nhập
    11 2010
    Bài viết
    54

    Theo gợi ý của anh em đã bước đầu chuyển nó thành 2 phím khác để thử đã, nhưng khi sử dụng 2 phím đó ( cụ thể là 'n' để giảm, 'm' để tăng) nhưng giảm thì được, tăng thì bị lỗi... ai giúp em với ạ

    C Code:
    1.  #include<stdio.h>
    2.  #include<conio.h>
    3.  
    4.  void main()
    5.  {
    6.     clrscr();
    7.     char c;
    8.     int n;
    9.     printf("Hay nhap n:");  scanf("%d",&n);
    10.     while(1)
    11.     {
    12.         c=getch();
    13.         if((c==109)||(c==110))
    14.             switch(c)
    15.             {
    16.                 case 109 : {clrscr(); n++; printf("\n%d",n);}
    17.                 case 110 : {clrscr(); n--; printf("\n%d",n);}
    18.             }
    19.         else break;
    20.     }
    21.     getch();
    22.  }
    90% thành viên vào chỉ để hỏi một câu sau đó té luôn
    5% thành viên vào chỉ để hỏi không để chia sẻ
    3% có tinh thần chia sẻ
    2% còn lại là BQT

  6. #6
    Ngày gia nhập
    07 2011
    Bài viết
    160

    Mặc định tăng/giảm giá trị bằng phím mũi tên?

    Sau mỗi case phải có break bạn à. Tham khảo cách viết switch-case của bạn bên trên nhé
    (Sau case cuối cùng không cần break cũng ko sao nhưng nên có)

  7. #7
    Ngày gia nhập
    11 2010
    Bài viết
    54

    à quên, trời ạ cái lỗi này mắc vài lần rồi mà lâu lâu ko viết lại quên ) thank you ^.^ mà ai giúp em chuyển cái #5 về dạng xài cho 2 phím mũi tên lên xuống đc không ? ... Trên C nhé :(( đứng lên C++
    90% thành viên vào chỉ để hỏi một câu sau đó té luôn
    5% thành viên vào chỉ để hỏi không để chia sẻ
    3% có tinh thần chia sẻ
    2% còn lại là BQT

  8. #8
    Ngày gia nhập
    12 2010
    Nơi ở
    Cần thơ
    Bài viết
    273

    C Code:
    1. #include <stdio.h>
    2. #include <conio.h>
    3.  
    4. void catch_keys(int r)
    5. {
    6.     char c;
    7.     while(1)
    8.         {
    9.         c=getch();
    10.         if (!c)    c=getch();//Các phím điều khiển có mã dạng là 0 xx (xx là mã)
    11.         else break;
    12.         switch (c)
    13.         {
    14.             case 72 : r++;
    15.                               printf("Tang len    :%d\n",r);
    16.                               break;
    17.             case 80 : r--;
    18.                               printf("Giam xuong: %d\n",r);
    19.                               break;
    20.          }
    21.     }
    22. }
    23. int main()
    24. {
    25.     int Inp;
    26.     printf("\nNhap gia tri khoi tao: ");
    27.     scanf("%d",&Inp);
    28.     catch_keys(Inp);
    29.     getch();
    30.     return 0;  
    31. }
    Ai bất tài, tôi nhìn hoài chẳng thấy,
    Đi khắp phòng tôi lấy 1 tấm gương,
    Khẽ đặt lên một góc phía bức tường,
    Nhìn vào đó, tôi tận tường kẻ đó.

  9. #9
    Ngày gia nhập
    03 2009
    Bài viết
    45

    Bạn dùng chính C mà hiển thị mã ASCII của kí tự rồi nhớ lấy mà thay thế vào code là xong mà. Với lại các code trên viết = C rồi.

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

  1. Cơ sở làm huy hiệu, bảng tên nhân viên, bảng tên mica, bảng tên ăn mòn, bảng tên thay tên
    Gửi bởi tranngocson186 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 25-05-2013, 08:37 AM
  2. Lập trình C [Help] Giải bài Tách tên ra khỏi họ tên và sắp xếp theo từ điển của n người chuổi Ký tự
    Gửi bởi ngoctu_93 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 28-02-2013, 04:29 PM
  3. Lập trình C struct , mảng : sắp xếp tên theo thứ tự tăng dần
    Gửi bởi dth.212 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: 27-05-2011, 04:38 PM
  4. Sắp xếp danh sách sinh vien tăng dần theo họ tên
    Gửi bởi teotoni trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 14
    Bài viết cuối: 27-04-2011, 10:06 PM
  5. Xuất danh sách tăng dần theo Tên Sinh Viên
    Gửi bởi binhkokomiA18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 24-12-2008, 02:09 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