01/10/2018, 12:26
Khi gặp phải lỗi này thì phải sửa sao ạ?
#include<iostream>
#include<string>
#include<string.h>
#include<Windows.h>
using namespace std;
//==============================================================
struct sinhvien
{
string HoTen;
string MSSV;
float DiemTB;
};
typedef struct sinhvien SinhVien;
struct danhsach
{
int a[100];
SinhVien arr[100];
int n;
};
typedef struct danhsach DanhSach;
//=================================================================
void NhapThongTinSV(SinhVien &sv)
{
do{
fflush(stdin);
cout << "
Nhap ho ten sinh vien: ";
getline(cin, sv.HoTen);
if (sv.HoTen.length() > 30){
cout << "
Ho ten toi da 30 ki tu vui long nhap lai
";
}
} while (sv.HoTen.length() > 30);
do{
fflush(stdin);
cout << "
Nhap ma so sinh vien: ";
getline(cin, sv.MSSV);
if (sv.MSSV.length() > 10){
cout << "
Ho ten toi da 30 ki tu vui long nhap lai
";
}
} while (sv.MSSV.length() > 10);
do{
cout << "
Nhap diem trung binh cua sinh vien: ";
cin >> sv.DiemTB;
if (sv.DiemTB<0 || sv.DiemTB>10){
cout << "
Diem trung binh phai lon hon 0 va nho hon 10";
}
} while (sv.DiemTB<0 || sv.DiemTB>10);
}
void ChuanHoaHoTen(char a[])
{
int length = strlen(a);
char *b = new char(length);
int k = 0;
bool flag = 0;
for (int i = 0; i < length; i++)
{
if (a[i] != ' '&& flag == 0)
{
b[k++] = toupper(a[i]);
flag = 1;
}
else if (a[i] = ' ' && flag == 1)
{
flag = 0;
b[k++] = a[i];
}
else{
b[k++] = tolower(a[i]);
}
}
b[k] = ' ';
strcpy(a, b);
}
void XuatThongTinSinhVien(SinhVien sv)
{
cout << "
Ho ten Sinh Vien: " << sv.HoTen << endl;
cout << "
Ma so sinh vien: " << sv.MSSV << endl;
cout << "
Diem trung binh cua sinh vien:
" << sv.DiemTB << endl;
}
void NhapDanhSachSinhVien(DanhSach &ds)
{
for (int i = 0; i < ds.n; i++)
{
cout << "
NHAP THONG TIN SINH VIEN THU " << i + 1 << endl;
ChuanHoaHoTen(ds.arr.HoTen);
NhapThongTinSV(ds.arr[i]);
}
}
void XuatDanhSachSinhVien(DanhSach ds)
{
for (int i = 0; i < ds.n; i++)
{
cout << "
XUAT THONG TIN SINH VIEN THU " << i + 1 << endl;
XuatThongTinSinhVien(ds.arr[i]);
}
}
float DiemTrungBinhCaoNhat(DanhSach ds)
{
float Max = ds.arr[0].DiemTB;
for (int i = 0; i < ds.n; i++)
{
if (ds.arr[i].DiemTB>Max)
{
Max = ds.arr[i].DiemTB;
}
}
return Max;
}
int main()
{
DanhSach ds;
cout << "Nhap so luong sinh vien: ";
cin >> ds.n;
cout << "
============= NHAP DANH SACH SINH VIEN =============
";
NhapDanhSachSinhVien(ds);
cout << "
============= XUAT DANH SACH SINH VIEN =============
";
XuatDanhSachSinhVien(ds);
cout << "
Diem trung binh cao nhat : " << DiemTrungBinhCaoNhat(ds) << endl;
return 0;
}
Bài liên quan
Bạn gặp lỗi ở đâu? Đưa lỗi lên, không phải ai cũng đọc hết được cái code dài thế này.
lỗi vậy đó anh
Error 2 error C2228: left of ‘.HoTen’ must have class/struct/union c:\users\administrator\documents\visual studio 2013\projects\hamstruct\xulyttsv\01.cpp 90 1 XuLyTTSV
Dòng 90
Bạn nhìn cho kĩ.
P/s: Lần sau bạn nên tự debug, chứ không phải cứ mỗi khi compile error là quăng code lên đây hỏi.
giờ mình phải sửa sao ạ
Kèm luôn dòng 90 + 91 cho bạn:
Đây là code của bạn chứ không phải code của mình nên bạn cần có trách nhiệm với nó 1 tí. Đọc kĩ rồi sửa nha.