30/09/2018, 18:52
Hỏi đáp Bài tập struct c++
Mọi người giúp e sửa bài tập struct này với , khi e nhập thông tin một bộ phim thì xuất được nhưng khi mình nhập danh sách các bộ phim thì bị báo lỗi , lỗi runtime chứ ko phải lỗi cú pháp mà mình không biết nhầm chỗ nào ? help ! cảm ơn
#include<iostream>
#include<conio.h>
using namespace std ;
const int KT=100 ;
// Dinh nghia cau truc cua DIENVIEN
struct DIENVIEN
{
char MSDV[100] ;
char TenDienVien[100] ;
int SDT ;
};
struct DS_DIENVIEN
{
DIENVIEN list_dv[100] ;
int so_dv ;
};
// Dinh nghia cau truc cua HANGSANXUAT
struct HANGSANXUAT
{
char MaSanXuat[100];
char TenSanXuat[100] ;
char DiaChi[100] ;
int SDT ;
char Email[100] ;
};
// Dinh nghia cau truc cua mot bo phim
struct PHIM
{
char MaSoPhim[100] ;
char TenPhim[100] ;
char TheLoai[100] ;
char TenDaoDien[100] ;
DS_DIENVIEN DanhSachDienVien ;
int NamSanXuat ;
HANGSANXUAT HangSanXuat ;
};
// Dinh nghia cau truc cua danh sach cac bo phim
struct DS_PHIM
{
int so_phim ;
PHIM list_phim[100] ;
};
// Ham nhap thong tin cua mot hang san xuat
void NhapHangSX(HANGSANXUAT &hsx)
{
fflush(stdin);
cout<<"
Moi nhap ma hang san xuat :";
cin.getline(hsx.MaSanXuat , 100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap ten san xuat : ";
cin.getline(hsx.TenSanXuat , 100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap dia chi : ";
cin.getline(hsx.DiaChi ,100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap so dien thoai : ";
cin>>hsx.SDT ;
fflush(stdin) ;
cout<<"
Moi nhap Email : ";
cin.getline(hsx.Email,100 ) ;
}
// Ham xuat thong tin cua mot hang san xuat
void XuatHangSX(HANGSANXUAT hsx )
{
cout<<"
****---- Thong Tin Hang San Xuat Bo Phim ----**** " ;
cout<<"
Ma hang san xuat : "<<hsx.MaSanXuat ;
cout<<"
Ten san xuat : "<<hsx.TenSanXuat ;
cout<<"
Dia chi : "<<hsx.DiaChi ;
cout<<"
SDT: "<<hsx.SDT ;
cout<<"
Email : "<<hsx.Email ;
}
void Nhap1DV(DIENVIEN &dv )
{
fflush(stdin) ;
cout<<"
Moi nhap ma so dien vien : ";
cin.getline(dv.MSDV , 100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap ten dien vien :" ;
cin.getline(dv.TenDienVien, 100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap so dien thoai : " ;
cin>>dv.SDT ;
}
// Ham xuat mot dien vien
void Xuat1DV(DIENVIEN dv )
{
cout<<"
Ma so dien vien : "<<dv.MSDV ;
cout<<"
Ten dien vien : "<<dv.TenDienVien ;
cout<<"
So dien thoai : "<<dv.SDT ;
cout<<"
";
}
// Ham nhap DS cac dien vien
void NhapDSDV(DS_DIENVIEN &dsdv )
{
do
{
cout<<"
Moi nhap so dien vien : " ;
cin>>dsdv.so_dv ;
if(dsdv.so_dv < 0 || dsdv.so_dv >KT )
cout<<"
So dien vien khong hop le !Hay nhap lai! " ;
}while(dsdv.so_dv < 0 || dsdv.so_dv >KT ) ;
for(int i = 0 ; i< dsdv.so_dv ;i++ )
{
cout<<"
Nhap thong tin dien vien thu "<<i+1<<" " ;
Nhap1DV(dsdv.list_dv[i]) ;
}
}
// Ham xuat thong tin cua cac dien vien
void XuatDSDV(DS_DIENVIEN dsdv)
{
cout<<"
****Thong Tin Cua Cac Dien Vien *****";
for(int i= 0 ; i< dsdv.so_dv ;i++ )
{
cout<<"
Thong tin cua dien vien thu " <<i+1<<" la :" ;
Xuat1DV(dsdv.list_dv[i] );
}
}
// Ham nhap thong tin cau mot bo phim
void Nhap1BoPhim(PHIM &phim )
{
fflush(stdin) ;
cout<<"
Moi nhap ma so phim : ";
cin.getline(phim.MaSoPhim ,100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap ten phim : ";
cin.getline(phim.TenPhim, 100 ) ;
fflush(stdin);
cout<<"
Moi nhap the loai 'co 3 the loai: hinh su , tinh cam , hai ' : ";
cin.getline(phim.TheLoai , 100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap ten dao dien : ";
cin.getline(phim.TenDaoDien , 100 ) ;
fflush(stdin) ;
cout<<"
Moi nhap danh sach cac dien vien tham gia :";
NhapDSDV(phim.DanhSachDienVien) ;
fflush(stdin) ;
cout<<"
Moi nhap nam san xuat : ";
cin>>phim.NamSanXuat ;
fflush(stdin) ;
cout<<"
Moi nhap hang san xuat : ";
NhapHangSX(phim.HangSanXuat) ;
}
// Ham xuat thong tin cua mot bo phim
void Xuat1BoPhim(PHIM phim )
{
cout<<"
Ma so phim : "<<phim.MaSoPhim ;
cout<<"
Ten phim :" <<phim.TenPhim ;
cout<<"
The loai : "<<phim.TheLoai ;
cout<<"
Ten dao dien :"<<phim.TenDaoDien ;
XuatDSDV(phim.DanhSachDienVien) ;
cout<<"
Nam san xuat : "<<phim.NamSanXuat ;
XuatHangSX(phim.HangSanXuat) ;
}
// Ham nhap DS cac bo phim
void NhapDSPHIM(DS_PHIM &dsp )
{
do
{
cout<<"
Moi nhap so bo phim : ";
cin>>dsp.so_phim;
if(dsp.so_phim < 0 || dsp.so_phim > KT )
cout<<"
So bo phim khong hop le ! Kiem tra va nhap lai ! ";
}while(dsp.so_phim < 0 || dsp.so_phim >KT ) ;
cout<<"
THONG TIN CHI TIET VE CAC BO PHIM VUA NHAP ";
for(int i = 0 ; i< dsp.so_phim ;i++ )
{
cout<<"
Moi nhap thong tin cua bo phim thu : "<<i+1;
Nhap1BoPhim(dsp.list_phim[i] ) ;
}
}
// Ham xuat thong tin cua cac bo phim
void XuatDSPHIM (DS_PHIM dsp)
{
cout<<"
THONG TIN CAC BO PHIM BAN VUA NHAP " ;
for(int i = 0 ; i< dsp.so_phim; i++ )
{
cout<<"
Thong Tin bo phim thu " << i+1 ;
Xuat1BoPhim(dsp.list_phim[i] ) ;
}
}
void main()
{
/*DIENVIEN DV ;
Nhap1DV(DV);
Xuat1DV(DV) ;*/
/*DS_DIENVIEN DSDV ;
NhapDSDV(DSDV);
XuatDSDV(DSDV) ;*/
/*HANGSANXUAT HSX ;
NhapHangSX(HSX);
XuatHangSX(HSX) ;*/
/*PHIM phim ;
Nhap1BoPhim(phim) ;
Xuat1BoPhim(phim) ;
*/
DS_PHIM DSP;
NhapDSPHIM( DSP );
XuatDSPHIM(DSP) ;
_getch() ;
}
Bài liên quan
Thay char TenDienVien[100] bằng char *TenDienVien; là hết.
Còn vì sao mình không tìm ra.
Và khi thay bằng con trỏ thì nhớ cấp phát trước khi nhập tên diễn viên là ok nhé.
Có thể quá bộ nhớ thay 100= 20 hoặc ít hơn thử xem