Code danh sách quản lý thiết bị chạy sai

Mình chạy chương trình nhưng

  • cột chất lượng chỉ xuất ra 1
  • phần case 6 là thêm thiết bị vào danh sách thì xuất ra bị lỗi
  • phần case 8 là lưu danh sách ra tệp thì bị lỗi không thể tạo được tệp để lưu

ai giúp mình với!!!

#include<iostream>
#include<string>
#include<iomanip>
#include<math.h>
#include<fstream>
using namespace std;

struct laptop {
	char malap[20];
	char tenlap[30];
	int soluong, chatluong;
	long dongia;
	long long VAT, tongtien;	
};

void nhap(laptop lt[], int n);
void thue(laptop lt[], int n);
void tong(laptop lt[], int n);
void tieude();
void xuat(laptop lt[], int n);
void loai1(laptop lt[], int n);
void sapxep(laptop lt[], int n);
void them(laptop lt[], int n, int ttb, laptop F);
void xoa(laptop lt[], int n);
void luu(laptop lt[], int n);
void docin(laptop lt[], int n);


void nhap(laptop lt[], int n) {
	for(int i=1; i<=n; i++){
		cout << "Laptop so " << i << endl;
		cout << "Ma hieu: ";
		cin >> lt[i].malap;
		cout << "Ten: ";
		cin >> lt[i].tenlap;
		cout << "Don gia = ";
		cin >> lt[i].dongia;
		cout << "So luong = ";
		cin >> lt[i].soluong;
		cout << "Chat luong loai ";
		cin >> lt[i].chatluong; 
		cout << endl;
	}
}

void thue(laptop lt[], int n){
	for(int i=1; i<=n; i++){
		if(lt[i].chatluong = 1) {
			(lt[i].VAT) = (lt[i].dongia * lt[i].soluong * 30)/100;
		}else{
			if(lt[i].chatluong = 2){
				(lt[i].VAT) = (lt[i].dongia * lt[i].soluong * 10)/100;
			}
		}
	}	
}

void tong(laptop lt[], int n) {
	for(int i=1; i<=n; i++){
		lt[i].tongtien = lt[i].dongia * lt[i].soluong + lt[i].VAT;	
	}	
}

void tieude(){
	cout << setw(20) << left << "Ma laptop"
		 << setw(25) << left << "Ten laptop"
		 << setw(25) << left << "Don gia "
		 << setw(25) << left << "So luong"
		 << setw(25) << left << "Chat luong loai"
		 << setw(25) << left << "VAT"
		 << setw(25) << left << "Tong tien" << endl;
}

void xuat(laptop lt[], int n){
	for (int i=1; i<=n; i++){
		cout << setw(20) << left << lt[i].malap
			 << setw(25) << left << lt[i].tenlap
			 << setw(25) << left << lt[i].dongia
			 << setw(25) << left << lt[i].soluong
			 << setw(25) << left << lt[i].chatluong
			 << setw(25) << left << lt[i].VAT
			 << setw(25) << left << lt[i].tongtien << endl;
	}
}

void loai1(laptop lt[], int n){
	cout << "________________________Danh sach cac thiet bi thuoc chat luong loai 1__________________________\n";
	for(int i = 1; i <= n; i++){
		if(lt[i].chatluong  = 1){
			cout << setw(5)  << lt[i].malap
				 << setw(20) << lt[i].tenlap
				 << setw(20) << lt[i].dongia
				 << setw(20) << lt[i].soluong
				 << setw(20) << lt[i].chatluong
				 << setw(20) << lt[i].VAT
				 << setw(20) << lt[i].tongtien << endl;
		}else{
			cout << " ==> Khong co thiet bi nao thuoc chat luong loai 1.";
		}
	}
}

void sapxep(laptop lt[], int n){
	cout << setw(20) << left << "Ma laptop"
		 << setw(25) << left << "Ten laptop"
		 << setw(25) << left << "Don gia "
		 << setw(25) << left << "So luong"
		 << setw(25) << left << "Chat luong loai"
		 << setw(25) << left << "VAT"
		 << setw(25) << left << "Tong tien" << endl;
	for(int i = 1;i <= n;i++){
		for(int j=i+1;j<n;j++){
			if(lt[i].tongtien < lt[j].tongtien){
				laptop td=lt[i];
				lt[i]=lt[j];
				lt[j]=td;
				}
			}
		
		}
	for(int i = 1; i <= n; i++){
		cout << setw(20) << left << lt[i].malap
		 	 << setw(25) << left << lt[i].tenlap
		 	 << setw(25) << left << lt[i].dongia
		 	 << setw(25) << left << lt[i].soluong
		 	 << setw(25) << left << lt[i].chatluong
		 	 << setw(25) << left << lt[i].VAT
		 	 << setw(25) << left << lt[i].tongtien << endl;
	}	
}

void nhaptiep(laptop F){
	cout << endl;
		cout << "Ma hieu: ";
		cin >> F.malap;
		cout << "Ten: ";
		cin >> F.tenlap;
		cout << "Don gia = ";
		cin >> F.dongia;
		cout << "So luong = ";
		cin >> F.soluong;
		cout << "Chat luong loai ";
		cin >> F.chatluong; 
		cout << endl;
		if(F.chatluong = 1) {
			(F.VAT) = (F.dongia * F.soluong * 30)/100;
		}else{
			if(F.chatluong = 2){
				(F.VAT) = (F.dongia * F.soluong * 10)/100;
			}
		}
		F.tongtien = F.dongia * F.soluong + F.VAT;
}


void them(laptop lt[], int n, int ttb, laptop F ){
	cout<<"Vi tri can them: ";
	cin>>ttb;
	nhaptiep(F);
	for (int i = n - 1; i >= ttb; i--)
	{
		lt[i + 1] = lt[i];
	}
	lt[ttb] = F;
	n++;
	cout << ".........Da them thiet bi vao danh sach.........\n";
	tieude();
	xuat(lt,n);
	
}

void xoa(laptop lt[], int n)
{
    int vat;
    cout << "Nhap vat: " ;
    cin >> vat;
	for(int i=1;i<=n;i++)
        if(lt[i].VAT > vat)
        {
            for(int t=i;t<n-1;t++)
                lt[t] = lt[t+1] ;
				n-- ;    
        }
    cout << "__________________________________Danh sach sau khi xoa________________________________________\n";
    tieude();
    for(int i = 1; i <= n; i++){
		cout << setw(20) << left << lt[i].malap
		 	 << setw(25) << left << lt[i].tenlap
		 	 << setw(25) << left << lt[i].dongia
		 	 << setw(25) << left << lt[i].soluong
		 	 << setw(25) << left << lt[i].chatluong
		 	 << setw(25) << left << lt[i].VAT
		 	 << setw(25) << left << lt[i].tongtien << endl;
	}
}

void luu(laptop lt[], int n){
	ofstream f1;
	f1.open("IT:\\lap.dat");
	if(!f1)
	{
		cout<<"**  Loi khong tao duoc tep tin.......................";
		exit(1);
	}else{
		tieude();
		for(int i=1; i<=n; i++){
			f1 <<setw(10)<<lt[i].malap
			   <<setw(20)<<lt[i].tenlap
			   <<setw(20)<<lt[i].dongia
			   <<setw(10)<<lt[i].soluong
		       <<setw(10)<<lt[i].chatluong
			   <<setw(20)<<lt[i].VAT
			   <<setw(20)<<lt[i].tongtien << endl;
		}
		cout<<"_____________________LUU TEP THANH CONG____________________\n";
	}
	f1.close();
}

void docin(laptop lt[], int n){
	char lap[200];
	int a;
	ifstream f;
	f.open("IT:\\lap.dat");
	if(!f){
		cout<<"Loi khong mo duoc tep tin";
		exit(1);
	}else{
		cout<<"Ban muon xuat xu lieu:";
		cin>>n;
		cout << setw(20) << left << "Ma laptop"
		 	 << setw(25) << left << "Ten laptop"
		 	 << setw(25) << left << "Don gia "
		 	 << setw(25) << left << "So luong"
		 	 << setw(25) << left << "Chat luong loai"
		 	 << setw(25) << left << "VAT"
		 	 << setw(25) << left << "Tong tien" << endl;
		for(int i=1;i<n;i++){
			f >> lap;
			cout << setw(20) << left << lap;
			f >> lap;
			cout << setw(25) << lap;
			f >> a;
			cout << setw(25) << a;
			f >> a; 
			cout << setw(25) << a;
			f >> a;
			cout << setw(25) << a;
			f >> a;
			cout << setw(25) << a;
			f >> a;
			cout << setw(25) << a << endl;
		}	
	}
	f.close();		
}



int main(){
	int n, so;
	laptop lt[50];
	laptop F;
	int ttb;
	cout  << "_______________________________________MENU____________________________________________" << "\n"
		  << "|1. Nhap danh sach thiet bi...........................................................|" << "\n"
		  << "|2. Tinh VAT va tong so tien..........................................................|" << "\n"
		  << "|3. In danh sach duoi dang bang.......................................................|" << "\n"
		  << "|4. In ra nhung thiet bi co chat luong loai 1.........................................|" << "\n"
		  << "|5. Sap xep cac thiet bi theo thu tu giam dan cua tong tien...........................|" << "\n"
		  << "|6. Them thiet bi vao danh sach.......................................................|" << "\n"
		  << "|7. Xoa nhung thiet bi co VAT > vat...................................................|" << "\n"
		  << "|8. Luu danh sach thiet bi ra tep (lap.dat)...........................................|" << "\n"
		  << "|9. Doc danh sach tu tep va ket xuat ra man hinh......................................|" << "\n"
		  << "---------------------------------------------------------------------------------------" << "\n";	
	cout << endl;
	do{
		repeat:
		cout << "**Lua chon cua ban: ";
		cin >> so;
		switch(so){
			case 1:
				cout << "So thiet bi: ";
				cin  >> n;
				cout << endl;
				cout << "Nhap danh sach thiet bi: " << endl;
				nhap(lt,n);	
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			case 2:
				thue(lt,n);
				tong(lt,n);
				cout << "Tinh VAT va Tong tien thanh cong! " << "\n";
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			case 3:
				cout << "______________________________________DANH SACH THIET BI_______________________________________\n";
				tieude();
				thue(lt,n);
				tong(lt,n);
				xuat(lt,n);
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			case 4:
				loai1(lt,n);
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			case 5:
				cout << "______________________________Danh sach giam dan theo Tong tien________________________________\n";
				sapxep(lt,n);
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			case 6:
				cout << "Nhap thiet bi bo sung: \n";
				them(lt,n,ttb,F);
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			case 7:
				xoa(lt,n);
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			case 8: 
				luu(lt,n);
				cout << "-----------** LUU THANH CONG **-------------";
				break;
			case 9:
				docin(lt,n);
				cout << "-----------------------------------------------------------------------------------------------\n";
				break;
			default:{
				cout << "==> Nhap sai! Vui long nhap lai................\n";
			goto repeat;	
			}
		}
	}while(so != 0);
cout << "                    **    HOAN THANH CHUONG TRINH    **                ";
return 0;		
}

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?