01/10/2018, 08:19
Hỏi về visual studio 2015
Mọi người chạy thử giúp mình đoạn code này cái. Mình viết ra sao nó ko nhập được tên sinh viên. Máy mình win 10 , viết trên visual studio 2015.
CODE :
#include<iostream>
using namespace std;
#include<string>
struct sinhvien
{
string hoten;
string mssv;
float diemtb;
};
typedef struct sinhvien SinhVien;
struct danhsach
{
SinhVien arr[100];
int n;
};
typedef struct danhsach DanhSach;
//=============================================================
// hàm nhập thông tin 1 thằng sinh viên
void Nhap_Thong_Tin_1_Thang_Sinh_Vien(SinhVien &sv)
{
// vòng lặp nhập họ tên sinh viên
do{
fflush(stdin); // xóa bộ đệm
cout << "
Nhap ho ten sinh vien: ";
getline(cin, sv.hoten);
if (sv.hoten.length() > 30){
cout << "
Ho ten toi da 30 ki tu. Xin kiem tra lai";
}
} while (sv.hoten.length() > 30);
// vòng lặp nhập mã số sinh viên
do
{
fflush(stdin); // xóa bộ đệm
cout << "
Nhap ma so sinh vien: ";
getline(cin, sv.mssv);
if (sv.mssv.length() > 10){
cout << "
Ma so sinh vien toi da 10 ki tu. Xin kiem tra lai";
}
} while (sv.mssv.length() > 10);
do{
// nhập điểm cho sinh viên
cout << "
Nhap diem trung binh sinh vien: ";
cin >> sv.diemtb;
if (sv.diemtb < 0 || sv.diemtb > 10)
{
cout << "
Diem trung binh khong duoc < 0 hay > 10";
}
} while (sv.diemtb < 0 || sv.diemtb > 10);
}
// hàm xuất thông tin 1 thằng sinh viên
void Xuat_Thong_Tin_1_Thang_Sinh_Vien(SinhVien sv)
{
// xuất họ tên sinh viên
cout << "
Ho ten sinh vien: " << sv.hoten;
// xuất mã số sinh viên
cout << "
Ma so sinh vien: " << sv.mssv;
// xuất điểm sinh viên
cout << "
Diem trung binh sinh vien: " << sv.diemtb;
}
// hàm nhập danh sách sinh viên
void Nhap_Danh_Sach_Sinh_Vien(DanhSach &ds)
{
// vòng lặp nhập nhiều thằng sinh viên
for (int i = 0; i < ds.n; i++)
{
cout << "
NHAP THONG TIN SINH VIEN THU " << i + 1 << endl;
Nhap_Thong_Tin_1_Thang_Sinh_Vien(ds.arr[i]);
}
}
// hàm xuất danh sách sinh viên
void Xuat_Danh_Sach_Sinh_Vien(DanhSach ds)
{
// vòng lặp xuất ra nhiều thằng sinh viên
for (int i = 0; i < ds.n; i++)
{
cout << "
THONG TIN SINH VIEN THU " << i + 1 << endl;
Xuat_Thong_Tin_1_Thang_Sinh_Vien(ds.arr[i]);
}
}
float Tim_Diem_Trung_Binh_Cao_Nhat(DanhSach ds)
{
int max = ds.arr[0].diemtb;
for (int i = 1; i < ds.n; i++)
{
if (ds.arr[i].diemtb > max)
{
max = ds.arr[i].diemtb;
}
}
return max;
}
void Tim_Sinh_Vien_Diem_Trung_Binh_Thap_Nhat(DanhSach ds)
{
int min = ds.arr[0].diemtb;
for (int i = 1; i < ds.n; i++)
{
if (ds.arr[i].diemtb < min)
{
min = ds.arr[i].diemtb;
}
}
for (int i = 0; i < ds.n; i++)
{
if (ds.arr[i].diemtb == min)
{
Xuat_Thong_Tin_1_Thang_Sinh_Vien(ds.arr[i]);
}
}
}
int main()
{
DanhSach ds;
cout << "
Nhap so luong sinh vien: ";
cin >> ds.n; // nhập giá trị cho biến n
cout << "
NHAP DANH SACH SINH VIEN
";
Nhap_Danh_Sach_Sinh_Vien(ds); // nhập danh sách sinh viên
cout << "
XUAT DANH SACH SINH VIEN";
Xuat_Danh_Sach_Sinh_Vien(ds);
float max = Tim_Diem_Trung_Binh_Cao_Nhat(ds);
cout << "
Diem trung binh cao nhat la: " << max;
cout << "
DANH SACH SINH VIEN CO DIEM TRUNG BINH THAP NHAT
";
Tim_Sinh_Vien_Diem_Trung_Binh_Thap_Nhat(ds);
system("pause");
return 0;
}
Bài liên quan
Bạn thử thay
fflush(stdin);
thànhwhile (getchar() != '\n' && getchar() != EOF) {}
thử xem, vì mình nhớ man mánfflush(stdin);
không hoạt động trong VS 2013 trở lên.