#include <iostream>
using namespace std;
struct diem
{
string name;
float diemso;
};
struct infor_sv
{
int stt;
int msv;
string name;
diem diem[4];
string h_kiem[5];
};
int so_sv;
void in_1sv(infor_sv &sv1);
//void in_all_sv(infor_sv &all_sv);
int main ()
{
cout << "================================\nCHuong trinh quan li du lieu cua sinh vien";
//cap phat bo nho dong cho ho so
cout << "Nhap so luong sinh vien muon khai bao:";
cin >> so_sv;
infor_sv *danh_sach = new infor_sv[so_sv];
//menu thao tac
int t;
cout<< "----------------------------------------------"<<endl;
cout<< "Chon 1- Nhap du lieu cho sinh vien"<<endl;
cout<< "Chon 2- Xuat danh sach sinh vien"<<endl;
cout<< "Chon 3- Hien diem tich luy"<<endl;
cout<< "Chon 4- Sap xep theo tang dan diem tich luy"<<endl;
cout<< "Chon 5- Hien xep loai "<<endl;
cout<< "Chon 0- Thoat chuong trinh va luu du lieu vao file"<<endl;
cin>> t;
//dieu huong xu li
switch(t)
{
case 1:
for (int i=0;i<so_sv;i++)
{
cout << "Sinh vien thu "<< i << endl;
in_1sv(*danh_sach[i]);
}
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 0:
break;
}
}
void in_1sv(infor_sv &sv1)
{
cout << "Nhap ma sinh vien:";
cin >> sv1.msv;
cout << "Nhap ho va ten sinh vien:";
getline(cin,sv1.name);cout << endl;
//gan ten cho cac dau diem
sv1.diem[0].name= "THCS 4";
sv1.diem[1].name= "Dai so";
sv1.diem[2].name= "Giai tich";
sv1.diem[3].name= "Diem tich luy";
// nhap cac dau diem co sinh vien 1
for (int i=0;i<4;i++)
{
do
{
cout <<"Nhap diem mon" << sv1.diem[i].name <<":";
cin >> sv1.diem[i].diemso;
if (sv1.diem[i].diemso >=10 or sv1.diem[i].diemso <=0)
cout << "Phai nhap dau diem trong khoang 0 den 10";
}
while(sv1.diem[i].diemso >=10 or sv1.diem[i].diemso <=0);
}
}
Mọi người cho em hỏi sao đoạn cuối này em không thể sử dụng con trỏ *danh_sach
với qua khai báo struct infor_sv
vậy ạ. Em đã cấp phát mảng động cho nó ở phía trên rồi nhưng mang xuống dưới khi gán nó vào hàm in_1sv
ở case 1 trong main
thì nó báo lỗi [Error] no match for 'operator*' (operand type is 'infor_sv')
em nghĩ nó không dùng được dưới dạng mảng có chỉ số [i]
đằng sau.