Cấu trúc dữ liệu và giải thuât Hàng Đợi trong C

16 273 0
Cấu trúc dữ liệu và giải thuât  Hàng Đợi trong C

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

#include #include #include #define MAXQUEUE 100 #define TRUE #define FALSE //khai bao cau truc khach hang typedef struct khachhang{ char hoten[50]; int sdt; char diachi[100]; int masp; char tensanpham[50]; }kh; //khai bao cau truc ve san pham typedef struct sanpham{ int Masp; char Tensanpham[50]; int soluong; int gia; }sp; //khai bao hang doi luu thong tin dat ve struct QueueA { int headA, tailA; kh data[MAXQUEUE]; }; //khai bao hang doi luu thong tin ve de ban struct QueueB { int headB,tailB; sp data[MAXQUEUE]; }; //khoi tao hang doi void khoitao(struct QueueA *a) { a->headA=a->tailA=NULL; } //kiem tra hang doi rong - chua co don dat hang int empty(struct QueueA *a) { if(a->headA==a->tailA) return TRUE; else return FALSE; } //them mot don hang void insert(struct QueueA *a, kh x) { if(a->tailA == MAXQUEUE-1) a->tailA = 0; else (a->tailA)++; if(a->headA==a->tailA) printf("\n don dat ve toi da khong the them"); else a->data[a->tailA] = x; } //xuat mot don hang kh remove(struct QueueA *a) { if(empty(a)) printf("\nkhong co don dat hang"); else { if(a->headA == MAXQUEUE-1) a->headA=0; else (a->headA)++; return(a->data[a->headA]); } } //duyet don hang void indonhang(struct QueueA *a) { int i; if(empty(a)) { printf("\nkhong co don hang"); return; } if(a->tailA == MAXQUEUE-1) i = 0; else i = a->tailA+1; while(i!=a->tailA) { printf("\nKhach hang co ten:%s co so dien thoai:%d va co dia chi:%s dat san pham co ma san pham:%d ten san pham:%s ", a->data[i].hoten, a>data[i].sdt,a->data[i].diachi,a->data[i].masp,a->data[i].tensanpham); if(i == MAXQUEUE-1) i = 0; else i++; } printf("\nKhach hang co ten:%s co so dien thoai:%d va co dia chi:%s dat san pham co ma san pham:%d ten san pham:%s ", a->data[i].hoten, a>data[i].sdt,a->data[i].diachi,a->data[i].masp,a->data[i].tensanpham);//nut cuoi } //Cac thao tac tren hang doi luu thong tin ve de ban// //khoi tao hang doi void khoitao(struct QueueB *b) { b->headB=b->tailB=NULL; } //Kiem tra hang doi rong - khong co ve de ban int empty(struct QueueB *b) { if(b->headB==b->tailB) return TRUE; else return FALSE; } //Them mot sp de ban void insert(struct QueueB *b, sp y) { if(b->tailB == MAXQUEUE-1) b->tailB = 0; else (b->tailB)++; if(b->headB==b->tailB) printf("\nsp de ban toi da khong the them"); else b->data[b->tailB] = y; } //In danh sach san pham de ban void inve(struct QueueB *b) { int i; if(empty(b)) { printf("\nkhong co sp de ban"); return; } if(b->tailB == MAXQUEUE-1) i = 0; else i = b->tailB+1; while(i!=b->tailB) { printf("\nSan pham co ma:%d Ten san pham:%s So luong:%d voi gia: %d",b->data[i].Masp, b->data[i].Tensanpham, ,b->data[i].soluong,b->data[i].gia); if(i == MAXQUEUE-1) i = 0; else i++; } printf("\nSan pham co ma:%d Ten san pham:%s So luong:%d voi gia: %d",b->data[i].Masp, b->data[i].Tensanpham, ,b->data[i].soluong,b>data[i].gia);//nut cuoi } //Xuat mot san pham de ban cho khach vt remove(struct QueueB *b) { if(empty(b)) printf("\nkhong co don dat hang"); else { if(b->headB == MAXQUEUE-1) b->headB=0; else (b->headB)++; return(b->data[b->headB]); } } //co che khop lenh giua hai hang doi// void bansp(struct QueueA *a, struct QueueB *b) { remove(b); remove(a); if(a->data[a->headA].masp!=b->data[b->headB].Masp && a->data[a>headA].tensanpham!=b->data[b->headB].Tensanpham) { printf("\nkhach hang chua mua duoc sp"); } else printf("\nkhach hang da mua duoc sp"); } int main() { struct QueueA a; struct QueueB b; int chucnang, head1, head2; char c; khachhang kh; sanpham sp; khoitao(&a); khoitao(&b); { printf("\n Cac chuc nang cua chuong trinh:"); printf("\n1: Nhap mot don hang"); printf("\n2: In danh sach cac don hang"); printf("\n3: Xem don hang chuan bi xuat"); printf("\n4: Xem don hang moi nhap"); printf("\n5: Xuat mot don hang"); printf("\n6: Nhap sp de ban"); printf("\n7: In danh sach sp de ban"); printf("\n8: Xem sp chuan bi ban cho khach"); printf("\n9: Xuat sp ban cho khach hang"); printf("\n10: Khach hang mua sp"); printf("\n0: Ket thuc chuong trinh"); printf("\nChuc nang ban chon:"); scanf("%d",&chucnang); switch(chucnang) { case 1: { printf("\nTen khach hang:"); fflush(stdin); scanf("%s",&kh.hoten); printf("\nSo dien thoai khach hang:"); scanf("%d",&kh.sdt); printf("\nDia chi:"); fflush(stdin); scanf("%d",&kh.diachi); printf("\nMa san pham:"); scanf("%d",&kh.masp); printf("\nTen san pham:"); fflush(stdin); scanf("%d",&kh.tensanpham); insert(&a,kh); break; } case 2: { printf("\Danh sach don hang:"); printf("\n Ten kh:%s So dien thoai:%d dia chi:%s ma sp: %d Ten san pham:%s"); indonhang(&a); break; } case 3: { if(a.headA == MAXQUEUE-1) a.headA=a.headA+1; printf("\nDon hang chuan bi xuat: Tenkh:%s Sodt:%d Dia chi:%s Ma sp:%d Ten sp:%s" ,kh.hoten,kh.sdt,kh.diachi,kh.masp,kh.tensanpham); break; } case 4: { printf("\nDon hang chuan bi xuat: Tenkh:%s Sodt:%d Dia chi:%s Ma sp:%d Ten sp:%s" ,kh.hoten,kh.sdt,kh.diachi,kh.masp,kh.tensanpham); break; } case 5: { if(!empty(&a)) { kh = remove(&a); printf("\nDon hang xuat:Ten:%s ",kh.hoten); } else printf("\nChua co don dat hang"); break; } case 6: { printf("\nMa sp:"); scanf("%d",&sp.Masp); printf("\nTen san pham:"); scanf("%s",&sp.Tensanpham); printf("\nso luong:"); scanf("%d",&sp.soluong); printf("\nGia sp:"); scanf("%d",&sp.gia); insert(&b,sp); break; } case 7: { printf("\nDanh sach sp de ban:"); inve(&b); break; } case 8: { if(b.headB == MAXQUEUE-1) b.headB=b.headB+1; printf("\nSan pham chuan bi ban cho khach hang: Ma sp: %d Ten sp:%s So luong:%d Gia:%d ",sp.Masp,sp.Tensanpham,sp.soluong,sp.giave); break; } case 9: { if(!empty(&b)) { vt = remove(&b); printf("\nsp ban xuat de ban cho khach hang: Ma sp:%d Ten sp:%s", sp.Masp, sp.Tensanpham); } else printf("\nKhong sp"); break; } case 10: { printf("\Ban sp"); banve(&a,&b); break; } } }while(chucnang != 0); return 0; } [...]... khach hang:"); fflush(stdin); scanf("%s",&kh.hoten); printf("\nSo dien thoai khach hang:"); scanf("%d",&kh.sdt); printf("\nDia chi:"); fflush(stdin); scanf("%d",&kh.diachi); printf("\nMa san pham:"); scanf("%d",&kh.masp); printf("\nTen san pham:"); fflush(stdin); scanf("%d",&kh.tensanpham); insert(&a,kh); break; } case 2: { printf("\Danh sach don hang:"); printf("\n Ten kh:%s So dien thoai:%d dia chi:%s... printf("\nChua co don dat hang"); break; } case 6: { printf("\nMa sp:"); scanf("%d",&sp.Masp); printf("\nTen san pham:"); scanf("%s",&sp.Tensanpham); printf("\nso luong:"); scanf("%d",&sp.soluong); printf("\nGia sp:"); scanf("%d",&sp.gia); insert(&b,sp); break; } case 7: { printf("\nDanh sach sp de ban:"); inve(&b); break; } case 8: { if(b.headB == MAXQUEUE-1) b.headB=b.headB+1; printf("\nSan pham chuan... pham:%s"); indonhang(&a); break; } case 3: { if(a.headA == MAXQUEUE-1) a.headA=a.headA+1; printf("\nDon hang chuan bi xuat: Tenkh:%s Sodt:%d Dia chi:%s Ma sp:%d Ten sp:%s" ,kh.hoten,kh.sdt,kh.diachi,kh.masp,kh.tensanpham); break; } case 4: { printf("\nDon hang chuan bi xuat: Tenkh:%s Sodt:%d Dia chi:%s Ma sp:%d Ten sp:%s" ,kh.hoten,kh.sdt,kh.diachi,kh.masp,kh.tensanpham); break; } case 5: { if(!empty(&a)) {... printf("\nSan pham chuan bi ban cho khach hang: Ma sp: %d Ten sp:%s So luong:%d Gia:%d ",sp.Masp,sp.Tensanpham,sp.soluong,sp.giave); break; } case 9: { if(!empty(&b)) { vt = remove(&b); printf("\nsp ban xuat de ban cho khach hang: Ma sp:%d Ten sp:%s", sp.Masp, sp.Tensanpham); } else printf("\nKhong con sp"); break; } case 10: { printf("\Ban sp"); banve(&a,&b); break; } } }while(chucnang != 0); return 0; }

Ngày đăng: 08/05/2016, 22:15

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan