Hỏi về làm 1 menu trong c++

Tính diện tính,chuvi các hình dưới dạng 1 menu.
Code em viết nó bị lỗi, nên sửa lại như nào mới đúng vậy ạ?

#include <math.h>
using namespace std;
void menu ()
{
	int choose;
	cout<<"1.hinhvuong"<<endl;
	cout<<"2.hinhchunhat"<<endl;
	cout<<"3.hinhtron"<<endl;
	cout<<"4.hinhtamgiac"<<endl;
	cin>>choose;
	switch (choose)
	{
		case 1:
			schinhvuong();
		break;
		case 2:
			schinhchunhat();
		break;
		case 3:
			schinhtron();
		break;
		case 4:
			schinhtamgiac();
		break;
		default: cout<<"Nhap 1-4";
	}
}

void schinhchunhat ()
{
	double a,b;
	cout<<"nhap a,b"<<endl;
	cin>>a>>b;
	if (a<0 || b<0)
		cout<<"canh khong duoc <0";
	else
		cout<<"s="<<a*b<<", cv="<< (a+b)*2;
}

void schinhtamgiac ()
{
	double a,b,c,s,p,cv;
	cout<<"nhap a,b,c"<<endl;
	cin>>a>>b>>c;
	if (a<0 || b<0 || c<0)
		cout<<"canh tam giac khong duoc <0";
	else
	{
	  	if (a>=b+c || b>=a+c || c>=a+b)
			cout<<"khong thanh tam giac";
		else
		{
			p=(a+b+c)/2;
			cv=p*2;
			s=sqrt(p*(p-a)*(p-b)*(p-c));
			cout<<"chu vi la:"<<cv<<endl;
			cout<<"dien tich la:"<<s<<endl;
			if (a==b==c)
				cout<<"tam giac deu";
			else
	 			if (a==b || a==c || b==c)
					cout<<"tam giac can";
				else 
					if ((a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b))
						cout<<"Tam giac vuong!";
					else
						cout<<"tam giac thuong!";
		}
 	}
}

void schinhvuong ()
{
	int a,b;
	cout<<"nhap a,b"<<endl;
	cin>>a>>b;
	if (a<0)
		cout<<"canh phai >=0";
	else
		cout<<"s="<<a*a<<", cv="<<4*a;
}

void schinhtron ()
{
	double r;
	cout<<"Nhap r"<<endl;
	cin>>r;
	if (r<0)
		cout<<"r phai >=0";
	else
		cout<<"s="<<3.14*r*r<<", cv="<<2*3.14*r;
}

int main()
{
	menu();
	return 0;
}

Mấy cái function kia chưa có định nghĩa nên k dùng được trong menu().

Do nó được định nghĩa sau menu().

:point_right: Sửa:

  • đặt lại theo đúng thứ tự.
  • dùng prototype.
5 Likes

nghĩa là mình đưa hết tất cả các hàm lên trên, rồi sau đó là void menu() và rồi tới int main() đúng không ạ?

Đúng rồi. :slight_smile:

4 Likes

Yeah! Tuyệt vời, code chạy rồi!!! Cảm ơn ạ!

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?