30/09/2018, 19:20

Có chút thắc mắc lớn

em gặp 1 số lỗi như sau ạ.
khi em thêm lớp (3) khi nhập số lớp học cần thêm nó lại tính luôn số lớp học em nhập ở (1) VD: (1) em nhập là 1 (3) em nhập là 2 thì khi chạy nó chạy tới 3 lần để em thêm mới lớp học.
Còn khi xuất ra em nếu em không thêm mới lớp học (3) thì nó xuất bình thường còn khi em thêm mới lớp học (3) thì nó chỉ xuất ra cái thêm mới không xuất ra lớp học em nhập ban đầu (1).
Em viết có hơi khó hiểu mong mọi người chỉ bảo.

#include<iostream>
#include<iomanip>
using namespace std;
#define Max 100
struct date{
	int ngay;
	int thang;
	int nam;
};
struct thongtinlophoc{
	char malophoc[5];
	char chude[30];
	char hotengv[30];
	int siso;
	date ngaybatdau;
	date ngayketthuc;
};
struct danhsach{
	int solophoc;
	thongtinlophoc danhsachlophoc[Max];
};
void nhapthongtin(thongtinlophoc &lh){
	cout << "
Nhap ma so lop hoc:";
	fflush(stdin);
	cin.getline(lh.malophoc, 6);
	cout << "
Nhap chu de:";
	fflush(stdin);
	cin.getline(lh.chude, 31);
	cout << "
Nhap ho va ten giao vien:";
	fflush(stdin);
	cin.getline(lh.hotengv, 31);
	cout << "
Nhap si so:";
	cin >> lh.siso;
	cout << "
Nhap ngay/thang/nam bat dau:";
	cin >> lh.ngaybatdau.ngay;
	cin >> lh.ngaybatdau.thang;
	cin >> lh.ngaybatdau.nam;
	cout << "
Nhap ngay/thang/nam ketthuc:";
	cin >> lh.ngayketthuc.ngay;
	cin >> lh.ngayketthuc.thang;
	cin >> lh.ngayketthuc.nam;
}
void xuatthongtin(thongtinlophoc lh){
	cout << "
Ma so lop hoc: "<<lh.malophoc;
	cout << "
Chu de: "<<lh.chude;
	cout << "
Ho va ten giao vien:"<<lh.hotengv;
	cout << "
Si so:"<< lh.siso;
	cout << "
Ngay/thang/nam bat dau: "<<lh.ngaybatdau.ngay<<"/"<<lh.ngaybatdau.thang<<"/"<< lh.ngaybatdau.nam;
	cout << "
Nhap ngay/thang/nam ketthuc: " << lh.ngayketthuc.ngay << "/" << lh.ngayketthuc.thang << "/" << lh.ngayketthuc.nam;
}
void nhaplophoc(danhsach &list)
{
	cout << "
Nhap so lop hoc: ";
	cin >> list.solophoc;
	for (int i = 0; i < list.solophoc; i++){
		cout << "
Nhap lop hoc thu " << i + 1;
		nhapthongtin(list.danhsachlophoc[i]);
	}
}
void xuatlophoc(danhsach n)
{
	
	for (int i = 0; i < n.solophoc; i++){
		cout << "
 lop hoc thu " << i + 1;
		xuatthongtin(n.danhsachlophoc[i]);
		
	}
}
void themlophoc(danhsach &them){
	cout << "
*************Them*************";
	int n;
	cout << "
Nhap so lop hoc can them:";
	cin >> n;
	int t = them.solophoc;
	them.solophoc += n;
	for (int i = 0; i < them.solophoc; i++){
		cout << "
Nhap lop hoc thu " << i + 1;
		nhapthongtin(them.danhsachlophoc[i]);
	}
}
/*void timkiemthongtin(danhsach list){
	int h, l;
	do{

	}
}*/
void main(){
	danhsach list;
	list.solophoc = 0;
	int n;
	do{
	do{
		cout << "
*****************MENU******************";
		cout << "
0. Thoat.";
		cout << "
1. Nhap danh sach lop hoc.";
		cout << "
2. Xuat danh sach lop hoc.";
		cout << "
3. Them lop hoc.";
		cout << "
4. Tim kiem thong tin lop hoc.";
		cout << "
5. Cap nhap thong tin lop hoc.";
		cout << "
6. Xoa lop hoc.";
		cout << "
7. Tim so lop hoc dong nhat.";
		cout << "
Nhap lua chon:";
		cin >> n;
	} while (n < 0 && n > 8);
		switch (n)
		{
		case 1:
			nhaplophoc(list);
			break;
		case 2:
			if (list.solophoc > 0)
				xuatlophoc(list);
			else
				cout << "
Ban phai nhap danh sach lop hoc truoc khi xuat.";
			break;
		case 3:
			if (list.solophoc > 0)
			{
				themlophoc(list);
				xuatlophoc(list);
			}
			else
				cout << "
Ban phai nhap danh sach truoc khi them.";
			break;
		}
	} while (true);
	system("pause");
}
IDL viết 21:24 ngày 30/09/2018

bạn quăng 1 đống code mình lười đọc lắm @.@ bạn có thể phát thảo bản mô tả code của bạn làm cái gì được không?

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

Nhập

  1. Thêm lớp học
  2. Xuất danh sách lớp học
  3. Thêm mới lớp học
thanh viết 21:23 ngày 30/09/2018

mà khi mình nhập 3 thì nó cứ cộng thằng sô lượng của thằng 1 vô luôn
rồi khi xuất ra thì nó chỉ xuất thằng 3

Bài liên quan
0