30/09/2018, 19:09

Tiếp tục là bài tập cũ chưa làm xong C++

#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 << "
Nhap ngay:";
	cin >> a.ngay;
	cout << "
Nhap thang:";
	cin >> a.thang;
	cout << "
Nhap nam:";
	cin >> a.nam;
}
void xuatngay(date a){
	cout << a.ngay << "/" << a.thang
		<< "/" << a.nam;
}
void nhapsiso(int &s){
	cout << "
Nhap si so:";
	cin >> s;
	cout << s;
}

void xuatsiso(int s){
	
	cout << s;
}
void nhapthongtin(thongtin &lophoc){
	int s;
	cout << "
Nhap ma lop hoc:";
	fflush(stdin);
	cin.getline(lophoc.malophoc, 6);
	cout << "
Nhap chude:";
	fflush(stdin);
	cin.getline(lophoc.chude, 31);
	cout << "
Nhap ho va ten giao vien:";
	fflush(stdin);
	cin.getline(lophoc.hotengiaovien, 31);
	cout << "
Ngay bat dau:";
		nhapngay(lophoc.ngaybatdau);
	cout << "
Ngay ket thuc:";
		nhapngay(lophoc.ngayketthuc);
	nhapsiso(s);
}
void xuatthongtin(thongtin lophoc){
	cout << "
Ma lop hoc:" << lophoc.malophoc;
	cout << "
Che de:" << lophoc.chude;
	cout << "
Ho va ten giao vien:" << lophoc.hotengiaovien;
	xuatngay(lophoc.ngaybatdau);
	xuatngay(lophoc.ngayketthuc);
	xuatsiso(lophoc.siso);
}
void nhapsolophoc(lophoc &danhsachlophoc){
	int count;
	cout << "
Nhap 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");
}

Nguyễn Minh Hải viết 21:13 ngày 30/09/2018

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 !

BX136 viết 21:14 ngày 30/09/2018

R.I.P
.
lười lắm ko đọc code đâu
bug lỗi như nào thì nói thôi

thanh viết 21:12 ngày 30/09/2018

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

Liêu Đức Mạnh viết 21:22 ngày 30/09/2018

cho xin cái test nào, lười nhập mấy cái này lắm @@

thanh viết 21:11 ngày 30/09/2018

test là gì dạ anh em mới học cntt nên không biết

thanh viết 21:13 ngày 30/09/2018

đây là sao khi em chạy trương trình

Toàn Trần viết 21:09 ngày 30/09/2018

đề bài là gì vậy bạn
mình chưa thực sự hiểu n

thanh viết 21:23 ngày 30/09/2018

tạo 1 danh sách thông tin các lớp học bạn ạ.

Ngô Doãn Tuấn viết 21:22 ngày 30/09/2018

Bạn xem cách dùng biến const trong struc lớp học lại xem @@

Ngô Doãn Tuấn viết 21:20 ngày 30/09/2018

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];
Ngô Doãn Tuấn viết 21:14 ngày 30/09/2018

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]);
}

Phần này mình debug thì nó báo giá trị danhsachlophoc.count không được trả về giá trị cụ thể

Ngô Doãn Tuấn viết 21:15 ngày 30/09/2018
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

Ngô Doãn Tuấn viết 21:16 ngày 30/09/2018

//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;
}
Bài liên quan
0