1. Trang chủ
  2. » Công Nghệ Thông Tin

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

16 275 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 17,59 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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;

Trang 1

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#define MAXQUEUE 100

#define TRUE 1

#define FALSE 0

//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;

Trang 2

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;

}

Trang 3

//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

Trang 4

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;

}

Trang 5

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 ", >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 ", >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)

{

Trang 6

}

//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

Trang 7

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

Trang 8

}

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//

Trang 9

void bansp(struct QueueA *a, struct QueueB *b)

{

remove(b);

remove(a);

if(>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;

Trang 10

khoitao(&b);

do

{

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:

{

Trang 11

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;

}

Trang 12

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)) {

Trang 13

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:

Trang 14

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);

}

Trang 15

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

🧩 Sản phẩm bạn có thể quan tâm

w