mình thấy có nhiều bạn vào diễn đàn chỉ để hỏi có code hay không,hoặc làm hộ mai thi rồi,những bài dạng như thế nhiều vô kể trong diễn đàn
mình nghĩ phải lập topic này để những bạn nào xác định học C++ như 1 môn học qua chuyện tự tìm hiểu chứ post bài tùm lum thía này thì
Đề 1

bài giải
đầu tiên các bạn phải thiết kế mấy cái class đã nha
Sau đó sử lý đến :
Code:
void nhaphang()
{
cout<<"NHAP MA HANG: ";
cin>>mahang;cin.ignore();
cout<<"NHAP TEN HANG:";
cin.getline(tenhang,10);cin.ignore();
}
void inhang()
{
cout<<"\nMA HANG: "<<mahang<<" TEN HANG: "<<tenhang;
}
Và
Code:
void nhaphangban()
{
cout<<"\nNHAP GIA BAN:";
cin>>giaban;
cout<<"\nNHAP GIA MUA:";
cin>>giamua;
}
Code:
void inhangban()
{
cout<<"\nGIA BAN"<<giaban<<" GIA MUA: "<<giamua;
}
Bước 2
Code:
void luufilehang(char tenfile[20] )
{
fstream file;
file.open(tenfile,ios::out|ios::app);
if(!file)
{
cout<<"\nKO THE TAO DUOC TAP TIN HANG:";
return ;
}
file<<mahang<<" "<<tenhang<<" ";
file.close();
}
Và hàm
Code:
void luufilehangban(char tenfile[20])
{
fstream file;
file.open(tenfile,ios::out|ios::app);
if(!file)
{
cout<<"\nKO THE TAO DUOC TAP TIN HANG BAN:";
return ;
}
file<<giaban<<" "<<giamua<<"\n";
file.close();
}
Bước thứ 3
Code:
void nhap(char tenfile[20],int n,int m)
{
int mahang[10];
char tenhang[100][100];
int giamua[10];
int giaban[10];
fstream file;
file.open(tenfile,ios::in);
if(!file)
{
cout<<"\nKO MO DUOC FILE "<<"tenfile";
return ;
}
cout<<"NHAP KHUYEN MAI:";
cin>>khuyenmai;
soluongmua = m+n;
cout<<".....................................................";
cout<<"\n\n BANG THONG KE LOI NHUAN: \n";
for(int i=1;i<= m+n;i++)
{
file>>mahang[i];
file>>tenhang[i];
file>>giaban[i];
file>>giamua[i];
loinhuan[i]= (( giaban[i] - giamua[i] ) * soluongmua ) - (khuyenmai * giaban[i] * soluongmua);
cout<<"\n HANG THU "<<i;
cout<<"\n MA HANG "<<mahang[i]<<"\nTEN HANG : "<<tenhang[i]<<"\n GIA BAN "<<giaban<<"\nGIA MUA: "<<giamua<<"\n LOI NHUAN "<<loinhuan[i];
}
int temp;
for(int i=1;i<=m+n;i++)
{
for(int j=i+1;j<= m+n;j++)
{
if(loinhuan[i]<=loinhuan[j])
{
loinhuan[i] = temp;
temp = loinhuan[j];
loinhuan[j] = temp;
}
}
}
cout<<"\nXAP XEP LOI NHUAN\n";
for (int i=1;i<=m+n;i++)
{
cout<<loinhuan[i];
}
file.close();
}
cuối cùng
Code:
void timkiemtrongfile(char tenfile[10],int m,int n)
{
fstream file;
int *a;
file.open(tenfile,ios::in);
int timkiem;
cout<<"NHAP MA HANG CAN TIM KIEM:";
cin>>timkiem;
a= new int[m+n];
for(int i=0;i<(m+n)*4;i++)
{
file>>a[i];
}
for(int i=0;i<(m+n)*4;i++)
{
if(i%4==0&&a[i] == timkiem)
{
cout<<"MA HANG: "<<a[i]<<"TEN HANG: "<<a[i+1]<<"GIA MUA: "<<a[i+2]<<"GIA BAN:"<<a[i+3];
}
}
delete [] a;
}
Hàm này mình viết là hàm ngoài không lien quan gì đến class
bài hoàn chỉnh ( chạy trên VC++ ,CFREE,TC đều được nhé )
PHP Code:
#include<iostream.h>
#include<stdlib.h>
#include <fstream.h>
class hang
{
private:
int mahang;
char tenhang[50];
public:
void nhaphang()
{
cout<<"NHAP MA HANG: ";
cin>>mahang;cin.ignore();
cout<<"NHAP TEN HANG:";
cin.getline(tenhang,10);
}
void inhang()
{
cout<<"\nMA HANG: "<<mahang<<" TEN HANG: "<<tenhang;
}
void luufilehang(char tenfile[20] )
{
fstream file;
file.open(tenfile,ios::out|ios::app);
if(!file)
{
cout<<"\nKO THE TAO DUOC TAP TIN HANG:";
return ;
}
file<<mahang<<" "<<tenhang<<" ";
file.close();
}
};
class hangban: public hang
{
private:
int giamua;
int giaban;
public:
void nhaphangban()
{
cout<<"\nNHAP GIA BAN:";
cin>>giaban;
cout<<"\nNHAP GIA MUA:";
cin>>giamua;
}
void inhangban()
{
cout<<"\nGIA BAN"<<giaban<<" GIA MUA: "<<giamua;
}
void luufilehangban(char tenfile[20])
{
fstream file;
file.open(tenfile,ios::out|ios::app);
if(!file)
{
cout<<"\nKO THE TAO DUOC TAP TIN HANG BAN:";
return ;
}
file<<giaban<<" "<<giamua<<"\n";
file.close();
}
friend class thongke;
};
class thongke
{
private:
int soluongmua[10];
int khuyenmai;
int loinhuan[10];
public:
void nhap(char tenfile[20],int n,int m)
{
int mahang[10];
char tenhang[100][100];
int giamua[10];
int giaban[10],i;
fstream file;
file.open(tenfile,ios::in);
if(!file)
{
cout<<"\nKO MO DUOC FILE "<<"tenfile";
return ;
}
cout<<"\nNHAP KHUYEN MAI ( tinh theo phan tram % ):";
cin>>khuyenmai;
cout<<".....................................................";
cout<<"\n\n BANG THONG KE LOI NHUAN: \n";
for(i=1;i<=m+n;i++)
{
cout<<"\nNHAP SO LUONG MUA: ";
cin>>soluongmua[i];
file>>mahang[i];
file>>tenhang[i];
file>>giaban[i];
file>>giamua[i];
loinhuan[i]= (( giaban[i] - giamua[i] ) * soluongmua[i] ) - (khuyenmai * giaban[i] * soluongmua[i]) /100;
cout<<"\n HANG THU "<<i;
cout<<"\n MA HANG "<<mahang[i]<<"\nTEN HANG : "<<tenhang[i]<<"\n GIA BAN "<<giaban[i]<<"\nGIA MUA: "<<giamua[i]<<"\n LOI NHUAN \n"<<loinhuan[i];
}
int temp;
for(i=1;i<=m+n;i++)
{
for(int j=i+1;j<= m+n;j++)
{
if(loinhuan[i]<=loinhuan[j])
{
loinhuan[i] = temp;
temp = loinhuan[j];
loinhuan[j] = temp;
}
}
}
cout<<"\nXAP XEP LOI NHUAN\n\n";
for (i=1;i<=m+n;i++)
{
cout<<loinhuan[i]<<" ";
}
file.close();
}
};
void timkiemtrongfile(char tenfile[10],int m,int n)
{
fstream file;
int *a;
int i;
file.open(tenfile,ios::in);
int timkiem;
cout<<"\n\nNHAP MA HANG CAN TIM KIEM:";
cin>>timkiem;
a= new int[m+n];
for( i=0;i<=(m+n)*4;i++)
{
file>>a[i];
}
for( i=0;i<=(m+n)*4;i++)
{
if(i%4==0&&a[i] == timkiem)
{
cout<<"\nMA HANG: "<<a[i]<<" TEN HANG: "<<a[i+1]<<" GIA MUA: "<<a[i+2]<<"GIA BAN:"<<a[i+3];
}
}
delete [] a;
}
int main()
{
hangban A[20];
thongke B;
int m;
int n;//so mat hang
char tenfile[20];
cout<<"NHAP TEN FILE:";
cin.getline(tenfile,20);
cout<<"\nNHAP SO MAT HANG: ";
cin>>n;
for(int i=1;i<=n;i++)
{
cout<<"\n HANG BAN "<<i<<": \n";
A[i].nhaphang();
A[i].nhaphangban();
A[i].luufilehang(tenfile);
A[i].luufilehangban(tenfile);
}
cout<<" NHAP THEM HANG \n NEU KHONG NHAP THI M<=0\nM=";
cin>>m;
if(m>0)
{
for(int i=n+1;i<=m+n;i++)
{
cout<<"\n HANG BAN "<<i<<": \n";
A[i].nhaphang();
A[i].nhaphangban();
A[i].luufilehang(tenfile);
A[i].luufilehangban(tenfile);
}
}
B.nhap(tenfile,n,m);
timkiemtrongfile(tenfile,m,n);
system("pause");
return 0;
}
Bài hơi dài mình ngịa debult nên không dung cấp phát động cho một số trường hợp,các cậu có thể cấp phát động cho các mảng class và mảng trong file,nhưng chắc chắn sẽ mất thời gian them,điều đó e hơi mệt với 45 phút để hoàn thành bài này