Code bài toán quản li,sắp xếp, tìm kiếm sử dụng Liên kết kép trong C Khai bao cau truc du lieu 2 khoi tao nut moi 3 tao list 3 khoi tao dia chi daucuoi 3 tao nut moi 3 Insert the first 4 Insert the last 5 huy 1 phan tu o dau 5 Nhap danh sach 1 khach hang 6 Nhap danh sach n khach hang 6 Hien danh sach ds vua nhap 7 Dem so khach hang 7 Tim ma khach hang k trong danh sach 8 Sap xep khach hang theo tuoi 9 Nhap danh sach 1 nhan vien 9 Nhap danh sach n nhan vien 10 Hien danh sach ds vua nhap 10 Tinh tong luong cua nhan vien 11 Tim ma nhan vien k trong danh sach 11 Sap xep nhan vien theo luong 12 Nhap thong tin mot hang hoa 13 Ham in thong tin cua 1 hh 13 Nhap danh sach hang hoa 13 in danh sach hang hoa 14 Tinh tong tien cac hh 14
Trang 1M c l c ụ ụ Code bài toán quản li,sắp xếp, tìm kiếm sử dụng Liên kết kép trong C
//Khai bao cau truc du lieu 2
//khoi tao nut moi 3
//tao list 3
//khoi tao dia chi dau-cuoi 3
// tao nut moi 3
/// -Insert the first - 4
/// -Insert the last - 5
/// - huy 1 phan tu o dau -///// 5
/// -Nhap danh sach 1 khach hang - 6
/// -Nhap danh sach n khach hang - 6
/// -Hien danh sach ds vua nhap - 7
/// -Dem so khach hang - 7
/// -Tim ma khach hang k trong danh sach - 8
/// -Sap xep khach hang theo tuoi - 9
/// -Nhap danh sach 1 nhan vien - 9
/// -Nhap danh sach n nhan vien - 10
/// -Hien danh sach ds vua nhap - 10
/// -Tinh tong luong cua nhan vien - 11
/// -Tim ma nhan vien k trong danh sach - 11
/// -Sap xep nhan vien theo luong - 12
// Nhap thong tin mot hang hoa 13
// Ham in thong tin cua 1 hh 13
// Nhap danh sach hang hoa 13
// in danh sach hang hoa 14
// Tinh tong tien cac hh 14
Trang 2//tim kiem mot hang hoa co ma x nao do 15
// sap xep DSHH tang dan theo so luong 15
// in danh sach hang hoa co so luong lon hon 10 16
///Menu 1 17
//Menu 2 17
//Menu 3 18
//chuong trinh chinh 19
Trang 4//khoi tao nut moi
//khoi tao dia chi dau-cuoi
void init(dlist &DQ){
DQ.head=NULL;DQ.tail=NULL;}
// tao nut moi
dnode* get_node(data x)
Trang 5dnode *p;
p=(dnode*)malloc(sizeof(dnode));if(p==NULL)
{
printf("Khong du bo nho!");exit(1);
/// -Insert the
first -void insert_first(dlist &DQ,data x){ dnode *p= get_node(x);
Trang 6/// -Insert the
last -void insert_last(dlist &DQ,data x){ dnode *p= get_node(x);
/// - huy 1 phan tu o dau -/////
void removehead(dlist &DQ)
Trang 7if (DQ.head == NULL)
DQ.tail = NULL;
}
/// -Nhap danh sach 1 khach
hang -void input_1ds(data &x){
printf("\nNhap ma khach hang: "); scanf("%d",&x.makh);
/// -Nhap danh sach n khach
hang -void input_ds(dlist &DQ){
dnode *p;
p=DQ.head;
data x;
for(i=1;i<=n;i++){
Trang 8printf("\n khach hang thu %d: \n",i);
input_1ds(x);
insert_first(DQ,x);
}
}
/// -Hien danh sach ds vua
nhap -void output_ds(dlist &DQ){
///-Dem so khach hang
-int demkh(dlist &DQ){
dnode *p;
p=DQ.head;
int dem=0;
while(p!=NULL){
Trang 9/// -Tim ma khach hang k trong danh
sach -void find_makh(dlist &DQ,int k){
Trang 10/// -Sap xep khach hang theo
tuoi -void sapxep(dlist &DQ){
/// -Nhap danh sach 1 nhan
vien -void input_nv(data &x){
printf("\nNhap ma nhan vien: ");
scanf("%d",&x.manv);
fflush(stdin);
printf("\nNhap ho ten: ");
gets(x.hoten); fflush(stdin);
Trang 11/// -Nhap danh sach n nhan
vien -void input_dsnv(dlist &DQ){
/// -Hien danh sach ds vua
nhap -void output_dsnv(dlist &DQ){
Trang 12printf(" %-15d %-15s %-15d %-15.0f %-15.0f \n",>infor.manv,
p->infor.hoten, p->infor.tuoi, p->infor.luong, p->infor.phucap);
p=p->next;
printf(" -\n"); }
}
/// -Tinh tong luong cua nhan
vien -int total(dlist &DQ){
/// -Tim ma nhan vien k trong danh
sach -void find_manv(dlist &DQ,int k){
Trang 13/// -Sap xep nhan vien theo
luong -void sapxepluong(dlist &DQ){
Trang 14// Nhap thong tin mot hang hoa
void nhaphh(data &x)
{
printf("\n Nhap ma hang hoa: "); scanf("%d",&x.mahh);printf(" Nhap ten hang hoa: ");
fflush(stdin); gets(x.tenhh);
printf(" Nhap so luong: "); scanf("%d",&x.sl);
printf(" Nhap don gia: "); scanf("%d",&x.dg);
// Nhap danh sach hang hoa
void nhapdshh(dlist &DQ)
{
data x;
dnode *p;
Trang 15// Tinh tong tien cac hh
int tongtien(dlist &DQ)
{
dnode *p;
int tt;
tt=0;
Trang 16for(p=DQ.head; p!=NULL; p=p->next)
tt=tt + (p->infor.sl*p->infor.dg);
printf("\n Tong tien hang hoa la : %d",tt);}
//tim kiem mot hang hoa co ma x nao do
dnode *timhhma(dlist DQ, int x)
Trang 17p->infor=q->infor;
q->infor=tg;
}for(p=DQ.head; p!=NULL; p=p->next)
Trang 18int menu1(int &chon1)
{ printf("\n Moi ban chon thao tac thuc hien:"); printf("\n 0 Thoat");
printf("\n 1 Nhap danh sach Khach Hang");
printf("\n 2 Hien danh sach Khach Hang");
printf("\n 3 Dem so Khach Hang");
printf("\n 4 Tim Ma Khach Hang k trong danh sach"); printf("\n 5 Sap xep danh sach khach hang theo tuoi"); printf("\n 6 Them 1 khach hang vao dau danh sach"); printf("\n 7 Them 1 khach hang vao cuoi danh sach"); printf("\n Chon chuc nang: ");
scanf("%d",&chon1);
}
//Menu 2
int menu2(int &chon2)
{ printf("\n Moi ban chon thao tac thuc hien:"); printf("\n 0 Thoat");
Trang 19printf("\n 1 Nhap danh sach Nhan Vien");
printf("\n 2 Hien danh sach Nhan Vien");
printf("\n 3 Tinh Tong Luong Nhan Vien");
printf("\n 4 Tim Ma Nhan Vien k trong danh sach");
printf("\n 5 Sap xep danh sach khach hang theo luong"); printf("\n Chon chuc nang: ");
scanf("%d",&chon2);
}
//Menu 3
int menu3(int &chon3)
{ printf("\n Moi ban chon thao tac thuc hien:");
printf("\n 0 Thoat");
printf("\n 1 Nhap danh sach Hang Hoa");
printf("\n 2 Hien danh sach Hang Hoa");
printf("\n 3 Tinh Tong tien Hang Hoa");
printf("\n 4 Tim Ma Hang Hoa k trong danh sach");
printf("\n 5 Sap xep danh sach khach hang theo so luong"); printf("\n 6 IN DSHH co SL > 10");
printf("\n Chon chuc nang: ");
scanf("%d",&chon3);
}
Trang 20//chuong trinh chinh
printf("\n 1 Quan Li Khach Hang");
printf("\n 2 Quan Li Nhan Vien");
printf("\n 3 Quan Li Hang Hoa");
printf("\n Chon chuc nang: ");
menu1(chon1);
//Menu 1switch (chon1)
Trang 21case 0: ///thoat return 0;
case 1: ///Nhap danh sach khach hang
printf("\n Moi nhap so khach hang n= ");
scanf("%d",&n);
input_ds(quanli);
break;
case 2: ///Hien danh sach khach hang vua nhap
printf("\n-> Danh sach ban vua nhap la: \n\n");
output_ds(quanli);
break;
case 3: ///Dem tong so khach hang
printf("\n -> Tong so khach hang la: %d \n",demkh(quanli)); break;
case 4: ///Tim ma khach hang k
printf("\n -> Moi nhap Ma khach hang muon tim: k= "); scanf("%d",&k);
printf("\n -> Ma khach hang k= %d: ",k);
find_makh(quanli,k);
break;
case 5: ///Sap xep danh sach theo tuoi
printf("\n -> Danh sach sau khi sap xep theo tuoi la: \n\n"); sapxep(quanli);
output_ds(quanli);
Trang 22break;
case 6: ///Them 1 nhan vien vao dau ds
printf("\n -> Nhap khach hang muon them vao dau danh sach: \n\n"); input_1ds(x);
insert_first(quanli,x);
break;
case 7: ///Them 1 nhan vien vao cuoi ds
printf("\n -> Nhap khach hang muon them vao cuoi danh sach: \n\n"); input_1ds(x);
insert_last(quanli,x);
break;
default: ///Tra ve gia tri mac dinh neu chon sai
printf("\n -> Chon sai! Moi ban chon lai!");
menu2(chon2);
//Menu 1switch (chon2){
case 0: ///thoat
Trang 23return 0;
case 1: ///Nhap danh sach nhan vien
printf("\n Moi nhap so nhan vien n= ");
scanf("%d",&n);
input_dsnv(quanli);
break;
case 2: ///Hien danh sach vua nhap
printf("\n-> Danh sach ban vua nhap la: \n\n");
output_dsnv(quanli);
break;
case 3: ///Dem tong so luong
printf("\n -> Tong luong nhan vien la: %d \n",total(quanli)); break;
case 4: ///Tim ma khach hang k
printf("\n -> Moi nhap Ma nhan vien muon tim: k= ");
scanf("%d",&k);
printf("\n -> Ma nhan vien k= %d: ",k);
find_manv(quanli,k);
break;
case 5: ///Sap xep danh sach theo luong
printf("\n -> Danh sach sau khi sap xep theo luong la: \n\n"); sapxepluong(quanli);
output_dsnv(quanli);
break;
default: ///Tra ve gia tri mac dinh neu chon sai
Trang 24printf("\n -> Chon sai! Moi ban chon lai!");
menu3(chon3);
//Menu 1switch (chon3){
case 0: ///thoat return 0;
case 1: ///Nhap danh sach hang hoa
printf("\n Moi nhap so hang hoa n= ");
scanf("%d",&n);
nhapdshh(quanli);
break;
case 2: ///Hien danh sach vua nhap
printf("\n-> Danh sach ban vua nhap la: \n\n"); indshh(quanli);
break;
case 3: ///Tinh tong tien hang hoa
tongtien(quanli);
Trang 25break;
case 4: ///Tim ma hang hoa k
printf("\n -> Moi nhap Ma Hang Hoa muon tim: k= ");
scanf("%d",&k);
printf("\n -> Ma Hang Hoa k= %d: ",k);
timhhma(quanli,k);
break;
case 5: ///Sap xep danh sach theo so luong
printf("\n -> Danh sach sau khi sap xep theo so luong la: \n\n"); sapxepsl(quanli);
default: ///Tra ve gia tri mac dinh neu chon sai
printf("\n -> Chon sai! Moi ban chon lai!");