01/10/2018, 00:09
Cần mọi người tư vấn giúp về đoạn mã có liên quan đến Struct và Enum
#include <iostream>
using namespace std;
// Khai bao cau truc
struct SV
{
char *ten;
char ten[50];
struct
{
char tenMon[50];
float diem;
} mon1, mon2, mon3;
float diemTB;
enum loai
{
XUAT_SAC,
GIOI,
KHA,
TRUNG_BINH,
YEU
} xepLoai;//bien kieu enum
} sinhVien;
int main()
{
cout << " Ho va ten Sinh Vien: ";
cin >> sinhVien.ten;
sinhVien.(*ten) = sinhVien.ten;
cout << endl;
cout << *(sinhVien.(*ten));
cout << "Mon 1 la: ";
cin >> sinhVien.mon1.tenMon;
cout << endl;
cout << "Diem Mon 1 la: ";
cin >> sinhVien.mon1.diem;
cout << endl;
cout << "Mon 2 la: ";
cin >> sinhVien.mon2.tenMon;
cout << endl;
cout << "Diem Mon 2 la: ";
cin >> sinhVien.mon2.diem;
cout << endl;
cout << "Mon 3 la: ";
cin >> sinhVien.mon3.tenMon;
cout << endl;
cout << "Diem Mon 3 la: ";
cin >> sinhVien.mon3.diem;
cout << endl;
sinhVien.diemTB = (sinhVien.mon1.diem + sinhVien.mon2.diem +
sinhVien.mon3.diem)/3.0;
cout << "*******************************************" << endl;
cout << "SINH VIEN: " << sinhVien.ten << endl;
cout << "DIEM TRUNG BINH 3 MON " << sinhVien.mon1.tenMon <<
", " << sinhVien.mon2.tenMon << ", " << sinhVien.mon3.tenMon <<
": " << sinhVien.diemTB << endl;
(sinhVien.diemTB < 5.0) ? sinhVien.xepLoai = sinhVien.xepLoai.YEU : cout << "";
(sinhVien.diemTB < 6.5) ? sinhVien.xepLoai = sinhVien.xepLoai.TRUNG_BINH : cout << "";
(sinhVien.diemTB < 8.0) ? sinhVien.xepLoai = sinhVien.xepLoai.KHA : cout << "";
(sinhVien.diemTB < 9.0) ? sinhVien.xepLoai = sinhVien.xepLoai.GIOI : cout << "";
(sinhVien.diemTB <= 10.0) ? sinhVien.xepLoai = sinhVien.xepLoai.XUAT_SAC : cout << "";
(sinhVien.xepLoai == YEU) ? cout << "XEP LOAI YEU" : cout << "";
(sinhVien.xepLoai == TRUNG_BINH) ? cout << "XEP LOAI TRUNG BINH" : cout << "";
(sinhVien.xepLoai == KHA) ? cout << "XEP LOAI KHA" : cout << "";
(sinhVien.xepLoai == GIOI) ? cout << "XEP LOAI GIOI" : cout << "";
(sinhVien.xepLoai == XUAT_SAC) ? cout << "XEP LOAI XUAT SAC" : cout << "";
return 0;
}
Bài liên quan
struct
có 2tên
giống nhauenum
trongstruct
thì dùngSV::loai::TRUNG_BINH ...
? :
thì...? <a> : <b>
thì<a>,<b>
phải cùng kiểu, tốt nhất cứ dùng if elseBản thân cực ghét kiểu long hai struct thế này, bạn nên đem cái struct MONHOC riêng ra ngoài.
Toán tử ba ngôi bạn xài cũng vậy, đừng ham code ngắn mà viết đại vào khi không hiểu.
Code ngắn hơn không giúp bạn đẳng cấp hơn đâu!
nhưng SV không phải là 1 class bạn à
Chi nên khi sử dụng SV::loai thì nó lại báo lỗi, đây là chỗ mình thấy thắc mắc, mong bạn có thể chỉ giáo
Uhm , cảm ơn bạn đã góp ý
Nhưng đây là mình viết chương trình dựa theo yêu cầu của thầy mình thôi
À, bạn có thể giúp mình trả lời câu hỏi mà mình đã hỏi bạn Gió ở trên không, nếu được thì mình cảm ơn bạn rất nhiều
Kiểu như thế này:
sinhVien.xepLoai = sinhVien.loai::GIOI;