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