30/09/2018, 20:04
E mới học class nên code k biết lỗi gì mà k nhập tên đc, giúp e sửa lỗi với ạ?
Phần main:
#include "ThiSinh.h"
#include <iostream>
using namespace std;
void main()
{
int n;
ThiSinh a[100];
cout << "Nhap So sinh vien : ";
cin >> n;
for (int i = 0; i < n; i++)
{
a[i].Nhap();
}
cout << "Danh sach sinh vien diem > 15 la: " << endl;
for (int i = 0; i < n; i++)
{
float kq = a[i].Tong();
if (kq > 15)
a[i].Xuat();
}
}
Phần class:
#include <iostream>
#include <string.h>
using namespace std;
#pragma once
class ThiSinh
{
private:
char Ma[20];
string HoTen;
int Ngay;
int Thang;
int Nam;
float Toan;
float Van;
float Anh;
public:
void Nhap();
float Tong();
void Xuat();
};
**
phần khai báo hàm:
**
#include <iostream>
#include <stdio.h>
#include <string>
#include "ThiSinh.h"
using namespace std;
void ThiSinh::Nhap()
{
cout << "Nhap ma thi sinh: " << endl;
cin >> Ma;
cout << "Nhap ho ten thi sinh: " << endl;
getline(cin, HoTen);
cout << "Nhap ngay Thang nam sinh: " << endl;
cin >> Ngay >> Thang >> Nam;
cout << "Nhap diem toan, van, anh: " << endl;
cin >> Toan >> Van >> Anh;
}
float ThiSinh::Tong()
{
return Toan + Van + Anh;
}
void ThiSinh::Xuat()
{
cout << "Ho Ten thi sinh: " << HoTen << endl;
cout << "MSSV: " << Ma << endl;
}
Bài liên quan
Bạn dùng hàm lệnh
cin.ignore(100, '\n');
trước lệnh nhận họ tên. Vì sao thì bạn đọc theo bên dướibạn thêm
fflush(stdin);
saucin >> Ma;
và trướcgetline(cin, HoTen);
nhéNó báo lỗi bạn ơi @@
fflush()
có 2 chữf
nhé bạn, sơ riCam ơn bạn nhiều nha ^^
Sang c++ Thì bạn nên dùng cin.igrone()
Để xóa bỏ bộ nhớ đệm
mình tưởng cái này ở java hóa ra là C++ cũng có.