01/10/2018, 08:29

Lỗi bài sinh viên c++ mn giúp với

mọi người giúp em với k hiểu sao chỗ xuất điểm hệ 4
nếu như điểm A B C D F thì ko sao NẾU B+ C+ D+ thì chỉ xuất mỗi dấu +
e nát óc rồi

#include <iostream>
#include <iomanip>
using namespace std;
class sinhvien
{ private:
	char ten[20];
	float diemtoan;
	float diemly;
	float diemhoa;
	float dtb;
	char mssv[20];
 public:
 	void nhap();
 	void xuat();
 	string hebon(float dtb);
};
void sinhvien::nhap()

{
sinhvien sv;
cout<<" nhap ten sv :";
    cin.ignore(1);
    cin.get(ten,20);
cout<<"Nnhap MSSV     :";
    cin>>mssv;
cout<<"nhap diem toan:";
	cin>>diemtoan;
cout<<"nhap diem ly  :";
	cin>>diemly;
cout<<"nhap diem hoa :";
	cin>>diemhoa;
	dtb=(diemtoan+diemly+diemhoa)/3.0;

}
void sinhvien::xuat()

{   cout<<setw(15)<<ten;
    cout<<setw(15)<<mssv<<setw(12)<<diemtoan;
    cout<<setw(12)<<diemly<<setw(12)<<diemhoa;
    cout<<setw(12)<<dtb;
    cout<<setw(12)<<hebon(dtb)<<endl;
	
}
string sinhvien::hebon(float dtb)
{
	if(dtb==10)             return 'A';
	if((dtb>=8.5&&dtb<10))  return 'B+';
    if((dtb>=7.5&&dtb<8.5)) return 'B';
	if((dtb>=6.5&&dtb<7.5)) return 'C+';
	if((dtb>=5.5&&dtb<6.5)) return 'C';
	if((dtb>=4.5&&dtb<5.5)) return 'D+';
	if((dtb>=3.5&&dtb<4.5)) return 'D';
	if(dtb<3.5) return 'F';
		
}
int main()
{       cout<<setiosflags(ios::showpoint)<<setprecision(2);
        sinhvien sv[100];
        int n;
		cout<<"nhap so sinh vien:";
		cin>>n;
		for(int i=0;i<n;i++)
	    { 
		sv[i].nhap();
	    }
	    cout<<"      hOTEN        MA SV     DIEMTOAN      DIEMLY       HE 10     DIEM HE 4 SO      DIEM HE 4 CHU  "<<endl;
		for(int i=0;i<n;i++)
		{ 
	    sv[i].xuat();
		cout<<endl;}
	
return 0;
}
Nguyễn Tấn Phát viết 10:44 ngày 01/10/2018

thử dùng return “C+”; chưa

rogp10 viết 10:38 ngày 01/10/2018

Bạn sai ở chỗ dùng nháy đơn (dành cho kí tự). Bài này phải dùng nháy kép.

tô đình duy viết 10:45 ngày 01/10/2018

Thầy mình bảo dùng nháy đơn ạ =))) mấy bác sửa xong chạy đc thì coppy lên júp với

HelloWorld viết 10:41 ngày 01/10/2018

có thể thầy nhầm, C+ là 2 kí tự , là 1 xâu rồi , phải dùng hằng " " chứ k thể dùng ’ ’

Trần Hoàn viết 10:42 ngày 01/10/2018

'...' là kiểu char, trong nháy đơn thì chỉ được có 1 ký tự thôi. Hàm của bạn là string mà return 'C' thì tức là return (string)'C' ấy, và kết quả thu được là "C"

Bài liên quan
0