You are on page 1of 3

#include<conio.

h>
#include<stdlib.h>
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
typedef struct
{
char tens[30];
char tentg[30];
char ma[10];
int sl;
float dg;
} dausach;
dausach *ds;
void nhap(int n,dausach *ds)
{
int i;
for(i=0;i<n;i++)
{
cout << "\n nhap ten sach:";
fflush(stdin);cin.getline(ds[i].tens,30);
cout <<"\n nhap ten tac gia:";
fflush(stdin);cin.getline(ds[i].tentg,30);
cout << "\n nhap ma sach";
fflush(stdin);cin >> ds[i].ma;
cout <<"\n nhap so luong sach:";
fflush(stdin);cin >> ds[i].sl;
cout <<"\n nhap don gia cua sach:";
fflush(stdin);cin >>ds[i].dg;
}
}
void inra(int n,dausach *ds)
{
int i;
for(i=0;i<n;i++)
{
cout << "ten sach:"<<ds[i].tens<<setw(15)<<"\n";
cout << "ten tg:"<<ds[i].tentg<<setw(15)<<"\n";
cout << "ma sach:"<<ds[i].ma<<setw(10)<<"\n";
cout << "so luong:"<<ds[i].sl<<setw(15)<<"\n";
cout << "don gia:"<<ds[i].dg <<setw(10)<<"\n";
//ds++;
}
}
void timmax(int n,dausach *ds)
{
int i;
int max=ds[1].sl;
for (i=0;i<n;i++)
if(max<ds[i].sl)
max=ds[i].sl;
for(i=0;i<n;i++)
if(max==ds[i].sl)
{
cout << "ten sach:"<<ds[i].tens<<setw(15)<<"\n";
cout << "ten tg:"<<ds[i].tentg<<setw(15)<<"\n";
cout << "ma sach:"<<ds[i].ma<<setw(10)<<"\n";
cout << "so luong:"<<ds[i].sl<<setw(15)<<"\n";
cout << "don gia:"<<ds[i].dg <<setw(10)<<"\n";
}
}
void timtg(int n,dausach *ds)
{
int i;
int kt=0;
for(i=0;i<n;i++)
if(strcmp(ds[i].tentg,"quach tuan ngoc")==0)
{
cout << "ten sach:"<<ds[i].tens<<setw(15)<<"\n";
cout << "ten tg:"<<ds[i].tentg<<setw(15)<<"\n";
cout << "ma sach:"<<ds[i].ma<<setw(10)<<"\n";
cout << "so luong:"<<ds[i].sl<<setw(15)<<"\n";
cout << "don gia:"<<ds[i].dg <<setw(10)<<"\n";
kt=1;
}
if (kt==0)
cout<<"\n khong co cuon sach cua tac gia nguyen tuan ngoc";
}
void doicho(dausach *a,dausach *b)
{
dausach tg;
tg=*a;
*a=*b;
*b=tg;
}
void timkiem(int n,dausach *ds)
{
int i;
int kt=0;
char x[30];
cout << "\n nhap ten cuon sach can tim x=";
fflush(stdin);cin.getline(x,30);
for(i=0;i<n;i++)
if(strcmp(ds[i].tens,x)==0)
{
cout << "ten sach:"<<ds[i].tens<<setw(15)<<"\n";
cout << "ten tg:"<<ds[i].tentg<<setw(15)<<"\n";
cout << "ma sach:"<<ds[i].ma<<setw(10)<<"\n";
cout << "so luong:"<<ds[i].sl<<setw(15)<<"\n";
cout << "don gia:"<<ds[i].dg <<setw(10)<<"\n";
kt=1;
}
if(kt==0)
cout << "\n khong co trong danh sach";

}
main()
{
int i,j;
char x[30];
dausach ds[30];
int n;
cout << "\n nhap so phan tu n=";
cin >> n;
//ds=(dausach *)calloc(n,sizeof(dausach));
cout << "\n nhap thuoc tinh cua cac dau sach";
cout <<"\n";
nhap(n,ds);
cout <<"\n in ra danh sach cac dau sach";
cout <<"\n";
inra(n,ds);
cout<<"\n dau sach co co luong *** nhat la\n";
timmax(n,ds);
cout <<"\n danh sach cac dau sach cua tg la\n";
timtg(n,ds);
cout<<"\n danh sach dau sach sau khi duoc sap xep la\n";
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(ds[i].dg < ds[j].dg)
doicho(&ds[i],&ds[j]);
for(i=0;i<n;i++)
{ cout << "ten sach:"<<ds[i].tens<<setw(15)<<"\n";
cout << "ten tg:"<<ds[i].tentg<<setw(15)<<"\n";
cout << "ma sach:"<<ds[i].ma<<setw(10)<<"\n";
cout << "so luong:"<<ds[i].sl<<setw(15)<<"\n";
cout << "don gia:"<<ds[i].dg <<setw(10)<<"\n";
}
timkiem(n,ds);
getch();
}

You might also like