#include<iostream>
Anh chị chạy thử dùm em chứ em chạy toàn ra kí tự lạ gì đâu không. Với góp ý cho em nếu chỗ nào còn thiếu xót ạ.
#include<iostream>
using namespace std;
#define max 50
struct date{
int ngay;
int thang;
int nam;
};
struct thongtin{
char malophoc[5];
char chude[30];
char hotengiaovien[30];
int siso;
date ngaybatdau;
date ngayketthuc;
};
struct lophoc{
int count = 0;
thongtin listlophoc[max];
};
void nhapngay(date &a){
cout << "\nNhap ngay:";
cin >> a.ngay;
cout << "\nNhap thang:";
cin >> a.thang;
cout << "\nNhap nam:";
cin >> a.nam;
}
void xuatngay(date a){
cout << a.ngay << "/" << a.thang
<< "/" << a.nam;
}
void nhapsiso(int &s){
cout << "\nNhap si so:";
cin >> s;
cout << s;
}
void xuatsiso(int s){
cout << s;
}
void nhapthongtin(thongtin &lophoc){
int s;
cout << "\nNhap ma lop hoc:";
fflush(stdin);
cin.getline(lophoc.malophoc, 6);
cout << "\nNhap chude:";
fflush(stdin);
cin.getline(lophoc.chude, 31);
cout << "\nNhap ho va ten giao vien:";
fflush(stdin);
cin.getline(lophoc.hotengiaovien, 31);
cout << "\nNgay bat dau:";
nhapngay(lophoc.ngaybatdau);
cout << "\nNgay ket thuc:";
nhapngay(lophoc.ngayketthuc);
nhapsiso(s);
}
void xuatthongtin(thongtin lophoc){
cout << "\nMa lop hoc:" << lophoc.malophoc;
cout << "\nChe de:" << lophoc.chude;
cout << "\nHo va ten giao vien:" << lophoc.hotengiaovien;
xuatngay(lophoc.ngaybatdau);
xuatngay(lophoc.ngayketthuc);
xuatsiso(lophoc.siso);
}
void nhapsolophoc(lophoc &danhsachlophoc){
int count;
cout << "\nNhap so luong lop hoc:";
cin >> count;
for (int i = danhsachlophoc.count; i < danhsachlophoc.count+count; i++)
{
nhapthongtin(danhsachlophoc.listlophoc[i]);
}
danhsachlophoc.count += count;
for (int i = danhsachlophoc.count; i < danhsachlophoc.count + count; i++)
{
xuatthongtin(danhsachlophoc.listlophoc[i]);
}
}
void main() {
lophoc danhsachlophoc;
nhapsolophoc(danhsachlophoc);
system("pause");
}
Tiếp tục là bài tập cũ chưa làm xong C++
Mình nói thật, bạn gặp khó khăn đoạn nào thì cứ đưa log và code đoạn đó xong rồi! Mọi người cùng thảo luận sửa chứ không phải là đưa bài tập lên là sửa đâu!.
Thân !
R.I.P
.
lười lắm ko đọc code đâu
bug lỗi như nào thì nói thôi
Mình làm xing hết rồi chạy trương trình thì nó ko xuất ra màn hình zuất toàn kí tự lạ. Bài mình ko có lỗi luôn
cho xin cái test nào, lười nhập mấy cái này lắm @@
test là gì dạ anh em mới học cntt nên không biết
đề bài là gì vậy bạn
mình chưa thực sự hiểu n
tạo 1 danh sách thông tin các lớp học bạn ạ.
Bạn xem cách dùng biến const trong struc lớp học lại xem @@
Mình đã run thử nhưng vẫn chưa hiểu cách bạn sử dụng
struct lophoc {
**int count;**
thongtin listlophoc[max];
Phần này mình debug thì nó báo giá trị danhsachlophoc.count không được trả về giá trị cụ thể
for (int i = 0; i < solop; i++) {
nhapthongtin(danhsachlophoc.listlophoc[i]);
}
for (int i = 0; i < solop; i++) {
xuatthongtin(danhsachlophoc.listlophoc[i]);
}
}
Bạn thử thay bằng cái này xem đi. Mình fix được rồi
//Anh ch? ch?y th? dùm em ch? em ch?y toàn ra kí t? l? gì ?âu không.V?i góp ý cho em n?u ch? nào còn thi?u xót ?.
#include<iostream>
using namespace std;
const int MAX = 50 ;
bool kiemtranamnhuan(int x) {
if (((x % 4 == 0) && (x % 100 != 0)) || (x % 400 == 0)) {
return true;
}
else
{
return false;
}
}
struct date {
int ngay;
int thang;
int nam;
};
struct thongtin {
char malophoc[50];
char chude[50];
char hotengiaovien[50];
int siso;
date ngaybatdau;
date ngayketthuc;
};
struct lophoc {
thongtin listlophoc[MAX];
};
void nhapngay(date &a) {
// Nh?p n?m sinh
do {
cout << "\n Nhap Nam sinh : ";
cin >> a.nam;
if (a.nam < 1985) {
cout << " \n Nam sinh khong hop le, Vui long kiem tra lai : ";
}
} while (a.nam < 1985);
// Nh?p vào tháng sinh
do {
cout << " \n Nhap vao thang sinh : ";
cin >> a.thang;
if ((a.thang < 0) || (a.thang>12)) {
cout << " \n Thang sinh khong hop le vui long kiem tra lai : ";
}
} while ((a.thang < 0) || (a.thang>12));
// NH?P NGÀY SINH : TAO M?T BI?N CHECKNGAY VÀ 1 HÀM KI?M TRA N?M NHU?N
bool Checkngay;
do {
Checkngay = true;
cout << " \n Nhap ngay sinh : ";
cin >> a.ngay;
if ((a.ngay < 1) || (a.ngay > 31)) {
Checkngay = false;
}
else
{
if ((a.thang == 1) || (a.thang == 3) || (a.thang == 5) || (a.thang == 7) || (a.thang == 8) || (a.thang == 9) || (thang == 11)) {
if (a.ngay > 31) {
Checkngay = false;
}
}
else
{
if ((a.thang == 4) || (a.thang == 6) || (a.thang == 10) || (a.thang == 12)) {
if (a.ngay > 30) {
Checkngay = false;
}
}
else
{
if ((a.thang == 2)) {
if (kiemtranamnhuan(a.nam)) {
if (a.ngay > 29) {
Checkngay = false;
}
}
else
{
if (a.ngay > 28) {
Checkngay = false;
}
}
}
}
}
}
if (!Checkngay) {
cout << "\n Ngay sinh khong hop le. Vui long kiem tra lai : ";
}
} while (!Checkngay);
fflush(stdin);
}
void xuatngay(date &a) {
cout << " \n Ngay "
<< a.ngay
<< "\n Thang "
<< a.thang
<< "\n Nam"
<< a.nam;
}
void nhapthongtin(thongtin &lop) {
cout << "\nNhap ma lop hoc:";
fflush(stdin);
cin.getline(lop.malophoc,50);
cout << "\nNhap chude:";
fflush(stdin);
cin.getline(lop.chude,31);
cout << "\nNhap ho va ten giao vien:";
fflush(stdin);
cin.getline(lop.hotengiaovien, 31);
cout << " \n Nhap si so : ";
cin >> lop.siso;
cout << "\nNgay bat dau:";
nhapngay(lop.ngaybatdau);
cout << "\nNgay ket thuc:";
nhapngay(lop.ngayketthuc);
}
void xuatthongtin(thongtin lop) {
cout << "\nMa lop hoc : " << lop.malophoc;
cout << "\nChu de : " << lop.chude;
cout << "\nHo va Ten Giao Vien:" << lop.hotengiaovien;
cout << " \n Si So : " << lop.siso;
cout << " \n Ngay Bat Dau : ";
xuatngay(lop.ngaybatdau);
cout << " \n Ngay Ket Thuc : ";
xuatngay(lop.ngayketthuc);
}
void nhapsolophoc(lophoc &danhsachlophoc) {
int solop;
cout << "\nNhap so luong lop hoc:";
cin >> solop;
//for (int i = danhsachlophoc.count; i < danhsachlophoc.count + solop; i++)
//{
// nhapthongtin(danhsachlophoc.listlophoc[i]);
//}
//danhsachlophoc.count += solop;
//for (int i = danhsachlophoc.count; i < danhsachlophoc.count + solop; i++)
//{
// xuatthongtin(danhsachlophoc.listlophoc[i]);
//}
for (int i = 0; i < solop; i++) {
nhapthongtin(danhsachlophoc.listlophoc[i]);
}
for (int i = 0; i < solop; i++) {
xuatthongtin(danhsachlophoc.listlophoc[i]);
}
}
int main() {
lophoc danhsach;
nhapsolophoc(danhsach);
system("pause");
return 0;
}