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

Đề tài: Chạy tiếp chương trình trên console có điều kiện chạy? Xin giúp đỡ

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

    Mặc định Chạy tiếp chương trình trên console có điều kiện chạy? Xin giúp đỡ

    Mình mới học C# mong được các pro giúp đỡ.
    Mình muốn chạy tiếp một chương trình console mà có điều kiện chạy. Nhập "Yes" để chạy tiếp chương trình. Nếu nhập "No" thì chương trình thoát. Nếu nhập sai "Yes" hoặc "No" (tức là các kí tự còn lại) thì bắt nhập lại.
    Đây là bài tập: Bài toán tính diện tích hình tròn và vuông. Điều kiện nhập vào phải là một số dương, nếu nhập vào là số âm hoặc chuỗi kí tự thì bắt nhập lại. Nếu nhập đúng đưa ra diện tích các hình. Nhập “Yes” nếu muốn chạy lại chương trình với giá trị nhập vào khác. Nếu ko nhập “No” để thoát.
    Đây là phần mình làm. Các pro sửa giúp mình cái điều kiện chạy tiếp nhá.
    Thanks các pro đã giúp đỡ

    Visual C# Code:
    1. class Numeric
    2. {
    3.     //Phuong thuc xem thu co so khong la day
    4.     public static bool isNumberic(string str)
    5.     {
    6.         try
    7.         {
    8.             str = str.Trim();
    9.             int foo = int.Parse(str);
    10.             return (true);
    11.         }
    12.         catch (FormatException)
    13.         {
    14.             return (false);
    15.         }
    16.     }
    17. }
    18. class tinhtoan
    19. {
    20.     public static float binhphuong(float a)
    21.     {
    22.         return a * a;
    23.     }
    24. }
    25. class tinhtoan1
    26. {
    27.     public static float pi = float.Parse("3.14");//thực hiện ép kiểu float để gán pi=3.14
    28.     public static float tinhpi(float b)
    29.     {
    30.         return b * pi * pi;//hiểu là tinhpi(b*pi*pi)
    31.     }
    32. }
    33. class hinhtron
    34. {
    35.     string r;
    36.     public hinhtron(string gt)
    37.     {
    38.         r = gt;
    39.     }
    40.     public float dientich()
    41.     {
    42.         return tinhtoan1.tinhpi(float.Parse(r));
    43.     }
    44. }
    45. class hinhvuong
    46. {
    47.     string c;
    48.     public hinhvuong(string gt)
    49.     {
    50.         c = gt;
    51.     }
    52.     public float dientich()
    53.     {
    54.         return tinhtoan.binhphuong(float.Parse(c));
    55.     }
    56. }
    57.  
    58. class Program
    59. {
    60.     public Program() { }
    61.  
    62.     public void Yes()
    63.     {
    64.         Console.WriteLine("Ban da nhap dung...");
    65.         Console.WriteLine("------------------------------------");
    66.     }
    67.  
    68.  
    69.  
    70.     static void Main(string[] args)
    71.     {
    72.         Program prg = new Program();
    73.         string choice = "";
    74.  
    75.  
    76.         do
    77.         {
    78.             string r = "";
    79.             string c = "";
    80.             do
    81.             {
    82.  
    83.                 try
    84.                 {
    85.  
    86.                     Console.Write("hay nhap do dai ban kinh: ");
    87.                     r = Console.ReadLine();
    88.                     Console.Write("hay nhap do dai canh hinh vuong: ");
    89.                     c = Console.ReadLine();
    90.                     if (((Numeric.isNumberic(r) == false) || (float.Parse(r) < 0)) || ((Numeric.isNumberic(c) == false) || (float.Parse(c) < 0)))
    91.                     {
    92.                         Console.WriteLine("----------------------------------------------------------------");
    93.                         Console.WriteLine("Ban da nhap mot so am hoac mot chuoi ki tu, moi nhap lai");
    94.                         Console.WriteLine("----------------------------------------------------------------");
    95.                     }
    96.                     else
    97.                     {
    98.  
    99.                         hinhtron h1 = new hinhtron(r);
    100.                         hinhvuong h2 = new hinhvuong(c);
    101.                         Console.WriteLine("");
    102.                         Console.WriteLine("------------Dien tich cac hinh la------------");
    103.                         Console.WriteLine("");
    104.                         Console.WriteLine("||"+"\t"+"Dien tich hinh tron la: {0}", h1.dientich());
    105.                         Console.WriteLine("||"+"\t"+"Dien tich hinh vuong la: {0}", h2.dientich());
    106.                         Console.WriteLine("------------------------------");
    107.                         Console.WriteLine("Ban co muon tiep tuc khong?");
    108.                     }
    109.  
    110.                 }
    111.                 catch (Exception)
    112.                 {
    113.                     break;
    114.                 }
    115.  
    116.             }
    117.             while (((Numeric.isNumberic(r) == false) || (float.Parse(r) < 0)) || ((Numeric.isNumberic(c) == false) || (float.Parse(c) < 0)));
    118.  
    119.             Console.WriteLine("Nhap Yes neu ban muon tiep tuc, neu khong nhap No");
    120.             choice = Console.ReadLine();
    121.             switch (choice)
    122.             {
    123.                 case "Yes":
    124.                     prg.Yes();
    125.                     break;
    126.                 case "No":
    127.                     break;
    128.                 default:
    129.                     Console.WriteLine("Ban nhap sai!");
    130.                     break;
    131.             }
    132.  
    133.         } while (choice != "No");
    134.     }
    135.  
    136. }
    Đã được chỉnh sửa lần cuối bởi Newmember199 : 19-11-2011 lúc 12:21 PM.

  2. #2
    Ngày gia nhập
    08 2011
    Nơi ở
    Yên Bái- Hà Nội
    Bài viết
    961

    Em ơi! dùng hàm TryParse đi cho ngắn gọn:
    cấu trúc: datatype.TryParse( chuoi so, out bien);
    ví dụ:
    int a=0;
    string strNumber="12";
    if(int.TryParse(strNumber,out a)==false)
    {
    //có lỗi chuyển đổi
    ...
    }
    tương tự với float,double,datetime,... dùng kiểu này không cần dùng try-catch nữa. Đồng thời cũng dùng để kiểm tra luôn chuỗi có phải là số hay ko?
    Skype: mrfour.it - Yahoo:mrfour_it
    Gmail: mrfour.it@gmail.com
    Bạn muốn học lập trình? Bạn chưa có kiến thức cơ bản? Bạn muốn học từ cơ bản tới nâng cao?... Bạn muốn có source code để tham khảo? Muốn có người hỗ trợ khi học?....http://www.laptrinh123.com sẽ giúp bạn những điều đó!

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

    Thakiu bạn nhé. Mình mới học nên code còn rối rem lắm . Cái bạn chỉ mình sẽ sửa sau cho ngắn gọn. H mình muốn hỏi làm cái điều kiện chạy tiếp đó. Nhập "Yes" để chạy tiếp. Nhập "No" để thoát. Bạn có thể code demo cho mình một ví dụ được ko.

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

    bạn dùng nhãn nhé (label )
    Visual C# Code:
    1.             ok:
    2.                 Console.WriteLine("OK");
    3.             Console.WriteLine("Nhap");
    4.             int i = Convert.ToInt32(Console.ReadLine());
    5.             if (i == 1)
    6.                 goto ok;
    7.             else
    8.                 Environment.Exit(0);

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

    Thanks bạn nhé. Mình đã ứng dụng được label vào bài dùng kiểu string và bỏ vòng lặp do..while . It's so great!!!! Quan trọng của mình là làm thế nào mà nhập khác "Yes" hoặc "No" thì nó bắt nhập lại. . Nếu chỉ quay lại và thoát thì mình dùng do...while nó cũng chạy mà.
    Visual C# Code:
    1. yes:
    2.         string label = "";
    3.         label = Console.ReadLine();
    4.         if (label == "No")
    5.             Environment.Exit(0);
    6.         if (label == "Yes")
    7.             goto ok;//ok đặt ở trước giá trị nhập vào
    8.         Console.WriteLine("Moi nhap lai lua chon");
    9.         if ((label != "Yes") && (label != "No"))
    10.             goto yes;
    Đã được chỉnh sửa lần cuối bởi Newmember199 : 19-11-2011 lúc 05:29 PM.

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

    Mặc định Chạy tiếp chương trình trên console có điều kiện chạy? Xin giúp đỡ

    Code:
            static void Main(string[] args)
            {
                string cond = "";
                do
                {
                    Console.Write("Nhap dieu kien: ");
                    cond = Console.ReadLine();
                    if (cond.ToUpper() == "NO")
                    {
                        return;
                    }
                }
                while (cond.ToUpper() != "YES");
                //Code trong phương thức Main của bạn ở đây
            }
    Đã được chỉnh sửa lần cuối bởi cuongdoannhat : 19-11-2011 lúc 06:49 PM.

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

    Mình ko chạy được cái đó của bạn. Bạn giải thích cho mình cái ToUpper và cho ví dụ đơn giản ko?

  8. #8
    Ngày gia nhập
    10 2011
    Bài viết
    51

    À, tôi hiểu nhầm ý em rồi. Code như thế này:
    Code:
            static void Main(string[] args)
            {
                string cond = "";
                do
                {
                    //Code của em ở đây
                    string r = "";
                    string c = "";
                    Console.Write("hay nhap do dai ban kinh: ");
                    r = Console.ReadLine();
                    Console.Write("hay nhap do dai canh hinh vuong: ");
                    c = Console.ReadLine();
                    if (((Numeric.isNumberic(r) == false) || (float.Parse(r) < 0)) || ((Numeric.isNumberic(c) == false) || (float.Parse(c) < 0)))
                    {
                        Console.WriteLine("----------------------------------------------------------------");
                        Console.WriteLine("Ban da nhap mot so am hoac mot chuoi ki tu, moi nhap lai");
                        Console.WriteLine("----------------------------------------------------------------");
                    }
                    else
                    {
    
                        hinhtron h1 = new hinhtron(r);
                        hinhvuong h2 = new hinhvuong(c);
                        Console.WriteLine("");
                        Console.WriteLine("------------Dien tich cac hinh la------------");
                        Console.WriteLine("");
                        Console.WriteLine("||" + "\t" + "Dien tich hinh tron la: {0}", h1.dientich());
                        Console.WriteLine("||" + "\t" + "Dien tich hinh vuong la: {0}", h2.dientich());
                        Console.WriteLine("------------------------------");
                    }
                    Console.Write("Ban co muon tiep tuc khong? (yes, no): ");
                    cond = Console.ReadLine(); //Đọc biến điều kiện
                    while (cond.ToUpper() != "YES") //So sánh biến cond (đổi sang chữ hoa) với từ YES
                    {
                        if (cond.ToUpper() == "NO") //So sánh biến cond (đổi sang chữ hoa) với từ NO
                        {
                            return; //Thoát chương trình này
                        }
                        Console.Write("Nhap lai. Ban co muon tiep tuc khong? (yes, no): ");
                        cond = Console.ReadLine();
                    }            }
                while (cond.ToUpper() == "YES");
            }
    Đã được chỉnh sửa lần cuối bởi cuongdoannhat : 19-11-2011 lúc 08:57 PM.

  9. #9
    Ngày gia nhập
    11 2011
    Bài viết
    10

    Cảm ơn anh nhé. Thế là e lại có thêm cách nữa. Cách này thật hay và dễ sử dụng.
    --------------------------------
    Gud luck for u !!!!!!!!!!!!!!!!!!!

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

  1. cách chạy 1 file âm thanh song song với 1 dòng chữ chạy trên Console
    Gửi bởi tan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 31-12-2011, 07:15 PM
  2. Trả lời: 6
    Bài viết cuối: 08-12-2011, 10:02 PM
  3. làm thế nào để viết chữ chạy trên console bằng c# ?
    Gửi bởi tan trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 7
    Bài viết cuối: 05-12-2011, 08:31 AM
  4. Close console trên C# | Giúp mình về Console Application trên C# với?
    Gửi bởi letheson trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 9
    Bài viết cuối: 15-05-2009, 12:28 AM

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