#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<iomanip.h>
//khai bao cau truc
typedef struct node
{
char mahh[10];
char tenhh[40];
float dongia,namsx,hsd;
int soluong;
float thanhtien, tongtien;
struct node *pPrev;
struct node *pNext;
}DNODE;
//quan ly
typedef struct list
{
DNODE *first;
DNODE *last;
}LIST;
void Init(LIST &l)
{
l.first=l.last=NULL ;
}
DNODE *GetNode(char mahh[],char tenhh[],float dongia,int soluong, float thanhtien,float namsx,float hsd)
{
DNODE *p;
p=new DNODE;
if(p==NULL)
{
exit(1);
}
strcpy(p->mahh,mahh);
strcpy(p->tenhh,tenhh);
p->namsx=namsx;
p->hsd=hsd;
p->dongia=dongia;
p->soluong=soluong;
p->thanhtien=thanhtien;
p->pPrev=p->pNext=NULL;
return p;
}
void Addfirst(LIST &l,DNODE *new_ele)
{
if(l.first==NULL)
{
l.first=new_ele;
l.last=l.first ;
}
else
{
new_ele->pNext=l.first;
l.first->pPrev=new_ele;
l.first=new_ele;
}
}
void Addtail(LIST &l,DNODE *new_ele)
{
if(l.first==NULL)
{
l.first=new_ele;
l.last=l.first ;
}
else
{
l.last->pNext=new_ele;
new_ele->pPrev=l.last;
l.last=new_ele;
}
}
void Taods(LIST &l,int n)
{
char mahh[10],tenhh[40];
float dongia, thanhtien,namsx,hsd;
int soluong;
for(int i=0;i<n;i++)
{
cout<<"\nNhap Ma Hang Hoa: ";cin >>mahh
;fflush
(stdin
);
printf("\nNhap Ten Hang Hoa: ");
gets(tenhh);
cout<<"\nNam San Xuat: "; cout<<"\nNhap So Luong: "; cout<<"\nNhap Don Gia: "; DNODE *new_ele=GetNode(mahh,tenhh,dongia,soluong,thanhtien,namsx,hsd);
Addtail(l,new_ele);
}
}
void Themdsdau(LIST &l,int n)
{
char mahh[10],tenhh[40];
float dongia,thanhtien,namsx,hsd;
int soluong;
{
cout<<"\nNhap Ma Hang Hoa: ";cin >>mahh
;fflush
(stdin
); printf("\nNhap Ten Hang Hoa: ");
gets(tenhh);
cout<<"\nNam San Xuat: "; cout<<"\nNhap So Luong: "; cout<<"\nNhap Don Gia: "; DNODE *new_ele=GetNode(mahh,tenhh,dongia,soluong,thanhtien,namsx,hsd);
Addfirst(l,new_ele);
}
}
void Themdscuoi(LIST &l,int n)
{
char mahh[10],tenhh[40];
float dongia,thanhtien,namsx,hsd;
int soluong;
{
cout<<"\nNhap Ma Hang Hoa: ";cin >>mahh
;fflush
(stdin
); printf("\nNhap Ten Hang Hoa: ");
gets(tenhh);
cout<<"\nNam San Xuat: "; cout<<"\nNhap So Luong: "; cout<<"\nNhap Don Gia: "; DNODE *new_ele=GetNode(mahh,tenhh,dongia,soluong,thanhtien,namsx,hsd);
Addtail(l,new_ele);
}
}
void Inds(LIST l)
{
DNODE *p=l.first;
while(p!=NULL)
{
cout<<endl
<<setw
(8)<<p
->mahh
<<setw
(12)<<p
->tenhh
<<setw
(10)<<p
->namsx
<<setw
(12)<<p
->hsd
<<setw
(9)<<p
->soluong
<<setw
(12)<<p
->dongia
<<setw
(13)<<p
->thanhtien
<<"\n ";
p=p->pNext;
}
}
int menu()
{
int n;
do
{
cout<<"\n *******MENU******* "; cout<<"\n 0 . Nhan 0 de thoat "; cout<<"\n 1 . Danh sach Hang Hoa"; cout<<"\n 2 . Them Hang Hoa vao dau danh sach "; cout<<"\n 3 . Them Hang Hoa vao cuoi danh sach "; cout<<"\n Moi ban chon so: ";cin>>n
; }while(n<0||n>15);
return n;
}
int main()
{
LIST l;
int n;
Init(l);
cout<<"\nSo phan tu duoc tao:"; Taods(l,n);
cout<<"\nDanh sach vua tao: "; cout<<" "<<"\n+---------------------------------------------------------------------------+"; cout<<" "<<"\n| Quan Ly Hang Hoa |"; cout<<" "<<"\n+---------+----------+---------+--------------------+----------+-----------+"; cout<<" "<<"\n| Ma Hang | Ten Hang | Nam Sx | Han SD | Soluong | Don Gia | Thanh tien |"; cout<<" "<<"\n+---------+----------+---------+--------------------+-----------------------+\n"; Inds(l);
cout<<" "<<"\n+---------------------------------------------------------------------------+\n"; int chucnang;
do{
chucnang=menu();
switch(chucnang)
{
case 0:
cout<<" Bam phim so 0 de thoat: "; exit(1);
case 1:
Inds(l);
cout<<"\nDanh sach Hang Hoa : \n";
cout<<" "<<"\n+---------------------------------------------------------------------------+"; cout<<" "<<"\n| Quan Ly Hang Hoa |"; cout<<" "<<"\n+---------+----------+---------+--------------------+----------+-----------+"; cout<<" "<<"\n| Ma Hang | Ten Hang | Nam Sx | Han SD | Soluong | Don Gia | Thanh tien |"; cout<<" "<<"\n+---------+----------+---------+--------------------+-----------------------+\n"; Inds(l);
cout<<" "<<"\n+---------------------------------------------------------------------------+\n";
break;
case 2:
Themdsdau(l,n);
cout<<"Danh Sach Hang Hoa sau khi them Dau:\n"; cout<<" "<<"\n+---------------------------------------------------------------------------+"; cout<<" "<<"\n| Quan Ly Hang Hoa |"; cout<<" "<<"\n+---------+----------+---------+--------------------+----------+-----------+"; cout<<" "<<"\n| Ma Hang | Ten Hang | Nam Sx | Han SD | Soluong | Don Gia | Thanh tien |"; cout<<" "<<"\n+---------+----------+---------+--------------------+-----------------------+\n"; Inds(l);
cout<<" "<<"\n+---------------------------------------------------------------------------+\n"; break;
case 3:
Themdscuoi(l,n);
cout<<"Danh Sach Hang Hoa sau khi them Cuoi:\n"; cout<<" "<<"\n+---------------------------------------------------------------------------+"; cout<<" "<<"\n| Quan Ly Hang Hoa |"; cout<<" "<<"\n+---------+----------+---------+--------------------+----------+-----------+"; cout<<" "<<"\n| Ma Hang | Ten Hang | Nam Sx | Han SD | Soluong | Don Gia | Thanh tien |"; cout<<" "<<"\n+---------+----------+---------+--------------------+-----------------------+\n"; Inds(l);
cout<<" "<<"\n+---------------------------------------------------------------------------+\n"; break;
}
}while(chucnang!=0);
getch();
}