// Hang Doi Mua Ve.cpp : Defines the entry point for the console application.
// So nguoi mua ve duoc bieu dien ban ky tu A B C D ...
// Nguoi dau tien la A, sau moi 1s thi ban ve duoc 1 nguoi
#include "stdafx.h"
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<dos.h>
#include <windows.h>
// Ham gotoxy (lenh:gotoxy(x,y), thu vien:windows.h)
void gotoxy(short x, short y)
{
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
COORD pos;
pos.X=x-1;
pos.Y=y-1;
SetConsoleCursorPosition(hCon, pos);
}
void sleep( clock_t wait )
{
clock_t goal;
goal = wait + clock();
while( goal > clock() )
;
}
//KHOI TAO DSLK QUEUE
struct tagnode{
char Data;
struct tagnode *next;
};
typedef tagnode *node;
typedef struct taglist{
node head;
node tail;
}linkedlist;
typedef linkedlist Queue;
void initQueue(Queue &q){
q.head=q.tail=NULL;
}
int isempty(Queue q) //kiem tra q rong hay khong
{
return(q.head==NULL);
}
void enQueue(Queue &q,char x) //them x vao cuoi q
{ node p= new tagnode;
if(p==NULL) return;
p->Data=x;
p->next=NULL;
if(isempty(q)){
q.head=q.tail=p;
}
else
{ q.tail->next=p;
q.tail=p;
}
}
void deQueue(Queue &q) //xoa phan tu dau cua q
{ node p=q.head;
if(isempty(q))
return;
q.head=p->next;
if(q.head==NULL)
q.tail=NULL;
p->next=NULL;
delete p;
}
void insertQueue(Queue &q,int n) //nhap phan tu cua q(nhap nguoi mua ve)
{ char j=65;
initQueue(q);
for(int i=0;i<n;i++)
enQueue(q,j++);
}
void drawQueue(int x,int y) //ve phong cho mua ve
{ int i,j;
for(i=0;i<4;i++)
if(i==0 || i==3)
for(j=0;j<16;j++)
{ gotoxy(x+j,y+i);
putchar(196);
}
else
for(j=0;j<17;j+=3)
{ gotoxy(x+j,y+i);
putchar(221);
}
}
void putoutQueue(Queue q,int x,int y) //in hang doi mua ve xem phim ra man hinh
{ node p=q.head;
int i=1;
gotoxy(20,1);
printf(" \n MO PHONG HANG DOI MUA VE XEM PHIM \n");
drawQueue(x,y);
if(isempty(q))
return;
else
while(p)
{ gotoxy(x+i,y+2);
putchar(p->Data);
p=p->next;
i+=3;
}
}
void out_Queue(Queue q,int n) //quan ly so nguoi cho mua ve
{ int x=29,y=4;
insertQueue(q,n);
putoutQueue(q,x,y);
gotoxy(25,10);
sleep(4000);
for(int i=0;i<n;i++)
{ deQueue(q);
putoutQueue(q,x,y);
if(i!=(n-1))
{ gotoxy(25,10);
printf("\n Con %d nguoi cho mua ve",((n-1)-i));
}
else
{ gotoxy(33,10);
}
sleep(2000);
}
}
//HAM MAIN
void main()
{ Queue q;int n, m ,k;
printf("\n Nhap so nguoi muon mua ve: ");
scanf("%d",&m);
printf("\n Nhap so ve: ");
scanf("%d",&k);
if(k<=m)
{
n=k;
printf("\n Ban het ve");
out_Queue(q,n);
printf("\n Con %d nguoi chua co ve", m-k);
}
else
{
n=m;
printf("\n Tat ca deu co ve !");
out_Queue(q,n);
printf("\n Con thua %d ve :",k-m );
}
getch();
}
Home
»
»Unlabelled
» Hang Doi Mua Ve
Chủ Nhật, 20 tháng 5, 2012
Đăng ký:
Đăng Nhận xét (Atom)
Popular Posts
-
Trong số các chương trình viết nhạc, Encore là chương trình có tính năng trình diễn rất tiện lợi, với 11 thanh công cụ trong Palette để soạn...
-
Như tiêu đề, qua tham khảo thông tin trên forum, thấy nhiều bạn than vãn về vấn đề chia ổ bằng acronis diskdirector mà chưa có lời giải đáp ...
-
Easy DriverPack liên tục ra phiên bản mới đến nay chúng ta đã có một sự cải tiến vượt bậc về giao diện và cải tiến về phương pháp nhận biết ...
-
Nhập 1 chuỗi, sau đó bỏ khoảng trắng ở đầu và cuối, khoảng trắng ở giữa 2 từ. var s:string; begin readln(s); while s[1]=#32 do delete(s,1,1)...
-
Trong cuộc sống, có những hoạt động chỉ được thực hiện khi một điều kiện cụ thể được xảy ra. Điều kiện thường là một sự kiện được mô tả sau ...
-
Bạn đang phân vân vì không thể chạy Turbo Pascal trên win 7? Bài viết sau sẽ tư vấn giúp bạn. Turbo Pascal 7.0 with DOSBox là những phần mềm...
-
Tam giác Pascal là gì? Quy luật của Tam giác Pascal rất đơn giản : bắt đầu từ hàng thứ ba, mỗi số bên trong là tổng của hai số ngay phía trê...
-
Viết chương trình Pascal in mã ASCII của các ký tự. Khá đơn giản chỉ với 1 lệnh for. Program Mang_Ky_Tu; Var a:Array[Char] Of Integ...
-
Popup 1 lần / 1 ngày / 1 ip nhưng mở ra new windows mới có vẻ vẫn chưa được thích hợp lắm, nó vẫn gây ảnh hưởng nhiều đến lượt ghé thăm Webs...

0 nhận xét:
Đăng nhận xét