Chương trình không dừng lại khi ấn phím 'k' trong menu lựa chọn

Em mới học về c++. E có làm 1 cái ct menu như dưới ạ. Ở đoạn cuối ở phần tiếp tục chương trình chọn c/k lúc em bấm k thì không dừng chương trình lại ạ.
Anh chị nào pro về code C++ giúp em với.
Many thanks.

Đoạn code của em ạ:

#include <iostream>
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string>



using namespace std;
void CT1 ()
{
    double x;
    cout <<"Day la chuong trinh tinh sin, cos, tan cua X";
    cout <<"\nMoi ban nhap so X :";
    cin >>x;
    double GTS=sin(x);
    double GTC=cos(x);
    double GTT=tan(x);
    cout <<"sinX="<<GTS;
    cout <<"\ncosX="<<GTC;
    cout <<"\ntanX="<<GTT;
    _getch() ;


}
void CT2()
{
    cout <<"Chao mung ban den voi CT in ra bang cuu chuong ";
    for (int a=1;a<10;++a)
    {
        cout <<endl;
        int b;
        for (b=1;b<=10;++b)

        {


            cout <<a<<"x"<<b<<"="<<a*b<<endl;

        }

    }
    _getch();

}
void CT3()
{
    cout <<"Chao mung ban den voi CT giai phuong trinh bac 2";
    int a,b,c;
    cout <<"\nNhap lan luot 3 he so :";
    cin >>a>>b>>c;
    double delta;
    delta =b*b-4*a*c;
    if (delta<0)
    {
        cout <<"Phuong trinh vo nghiem.";

    }
    else if (delta==0)
    {
        double x=-b/(2*a);
        cout <<"Phuong trinh co nghiem kep la :"<<x;

    }
    else
    {
        double x1,x2;
    x1=(-b+sqrt(delta))/(2*a);
    x2=(-b-sqrt(delta))/(2*a);
    cout <<"\tPhuong trinh co hai nghiem :"<<endl;
    cout <<"\tx1="<<x1<<endl;
    cout <<"\tx2="<<x2;
    }
    _getch();

}
void menu()
{

 cout <<"\t\t|__________________________________________________|"<<endl;
 cout <<"\t\t|        Chuong trinh cua Hieu dep trai.           |"<<endl;
 cout <<"\t\t|--------------------------------------------------|"<<endl;
 cout <<"\t\t|  DS Chuong trinh cong cu :                       |"<<endl;
 cout <<"\t\t|  1. Chuong trinh tinh sin, cos, tan cua 1 so X   |"<<endl;
 cout <<"\t\t|  2. Chuong trinh in ra bang cuu chuong           |"<<endl;
 cout <<"\t\t|  3. Chuong trinh tinh phuong trinh bac 2         |"<<endl;
 cout <<"\t\t|__________________________________________________|"<<endl;



}
int ChonMenu()
{
    int n;
    cout <<"\nMoi nhap chuong trinh ban muon dung :";
    cin>>n;
    if (n>=1||n<=3)
    {
        return n;
    }
    else
    {
        return ChonMenu();
    }

}
int XulyCT()
{
    int chon=ChonMenu();
    switch (chon)
    {
    case 1:
        CT1();
        break;
    case 2:
        CT2();
        break;
    case 3:
        CT3();
        break;
    default :
        return ChonMenu();


    }
}
int main()
{

char ck ;

    menu();
    while (1)
    {
        XulyCT();

        cout <<"\nBan co muon tiep tuc CT nay khong (c,k) :";
        cin >>ck;
        switch (ck)
{   case 'c':
        system("cls");
        menu();

        XulyCT();


    case '!c':
    break ;
}
    }
    }

Chép mã lên thay cho đăng hình!

4 Likes

rồi a ơi mong a giúp em với :wink:

Mình không biết cú pháp này luôn đấy:

Sao ở hàm XulyCT() viết switch - case “ngon lành” lắm mà.

switch(){
    case 'c':

    break; // break sau mỗi case có xử lý riêng biệt
    default: // các trường hợp còn lại
    
    break;
}
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?