N/x: Bài quản lí phòng máy đơn giản
code
#include<stdio.h>
typedef struct com_type
{
int number;
int free;
time_t begin;
time_t end;
long fee;
int time_used;
} computer;
typedef struct times
{
int hour;
int min;
} time_t;
computer com[8];
void khoi_tao(computer com[])
{
int i;
printf("STT status begin end fee time_used");
for(i=0;i<8;i++)
{
com[i].number=i+1;
com[i].free=1;
com[i].fee=0;
com[i].time_used=0;
com[i].begin.hour=0;
com[i].begin.min=0;
com[i].end.hour=0;
com[i].end.min=0;
printf("%-4d",com[i].number);
if(com[i].free=1) printf("free");
else printf("unfree");
printf("%2d:%2d %2d:%2d %4d %4d\n",com[i].begin.hour,com[i].begin.min,com[i].end.hour,com[i].end.min,com[i].fee,com[i].time_used);
}
}
void dung_may(computer com[])
{
do
{
int i,x=0,dk=0;
int a[8]=;
printf("Nhap so hieu may muon dung:");
scanf("%d",&i);
i--;
if(com[i].free==1)
{
com[i].free=0;
do
{
printf("nhap thoi gian bat dau(hh:mm):");
scanf("%d%*c%d",com[i].begin.hour,com[i].begin.min);
}while(invalidtime(com[i].begin));
}
else
{
printf("May %d dang ban\n",i);
for(i=0;i<8;i++)
if(com[i].free!=1)
{
a[x]=com[i].number;
dk=1;
x++;
}
if(x!=0)
{
printf("Cac may dang trong:");
for(;x>=0;x--) printf("%d--",a[x]);
printf("\n");
}
if(x=0)
{
printf("khong con may trong\n");
return;
}
}
}while(dk=1);
}
int invalidtime(time_t a)
{
if(a.hour>24||a.hour<0||a.min>60||a.min<0)
return 1;
return 0;
}
void nghi(computer com[])
{
int i,phut;
long tien;
printf("nhap so hieu may:");
scanf("%d",i);
i--;
if(com[i].free=0)
{
do
{
printf("nhap thoi gian ket thuc:");
scanf("%d%*c%d",com[i].end.hour,com[i].end.min);
}while(timecompare(com[i].begin,com[i].end)!=-1);
printf("HOA DON THANH TOAN");
printf("Thoi gian bat dau:%d:%d",com[i].begin.hour,com[i].begin.min);
printf("Thoi gian ket thuc: %d:%d",com[i].end.hour,com[i].end.min);
phut=(com[i].begin.hour-com[i].end.hour)*60+com[i].begin.min-com[i].end.min;
printf("So phut dung dich vu:%d",phut);
tien=phut*100;
print("So tien phai tra:%d",tien);
com[i].free=1;
com[i].time_used+=phut;
com[i].fee+=tien;
}
else printf("ban nham may roi :)");
}
void chuyen_may(computer com[])
{
int i,y;
printf("nhap so hieu may hien tai:");
scanf("%d",&i);
i--;
printf("nhap so hieu may moi:");
scanf("%d",&y);
y--;
if(com[y].free==1&&com[i].free==0)
{
com[y].begin=com[i].begin;
com[y].free=0;
com[i].free=1;
com[i].begin.hour=0;
com[i].begin.min=0;
}
else
{
if(com[i].free==1) printf("may ban ngoi ma cung nham ==\"");
if(com[y].free==0) printf("may moi dang ban");
}
}
void trang_thai(computer com[])
{
int i;
printf("STT status begin end fee time_used");
for(i=0;i<8;i++)
{
printf("%-4d",com[i].number);
if(com[i].free=1) printf("free");
else printf("unfree");
printf("%2d:%2d %2d:%2d %4d %4d\n",com[i].begin.hour,com[i].begin.min,com[i].end.hour,com[i].end.min,com[i].fee,com[i].time_used);
}
}
void thong_tin(computer com[])
{
int i,y;
computer tmp;
for(i=0;i<8;i++)
for(y=i+1;y<8;y++)
if(com[i].fee<com[y].fee)
{
tmp=com[i];
com[i]=com[y];
com[y]=com[i];
}
trang_thai (computer com[]);
}
void goi_y(computer com[])
{
int i,a;
computer min;
min.time_used=com[0].time_used;
for(i=0;i<8;i++)
if(com[i].free==1)
if(min.time_used>com[i].used)
{
min.time_used=com[i].time_used;
min.number=com[i].number;
}
if(min.number==0) printf("khong co may trong");
else printf("May so %d rat phu hop voi ban:)",min.number);
}
void main()
{
int x,out=1;
computer com[8];
do
{
printf("Day la chuong trinh EasyCafe :D\n");
printf("1.khoi tao du lieu.\n");
printf("2.dung may.\n");
printf("3.nghi choi.\n");
printf("4.chuyen may.\n");
printf("5.Trang thai he thong.\n");
printf("6.thong tin doanh thu.\n");
printf("7.goi y dung may.\n");
printf("8.Thoat.\n");
printf("Nhap lua chon cua ban.\n");
scanf("%d",&x);
switch(x)
{
case 1:khoi_tao(com[]); break;
case 2:dung_may(com[]); break;
case 3:nghi(com[]); break;
case 4:chuyen_may(com[]); break;
case 5:trang_thai(com[]);break;
case 6:thong_tin(com[]);break;
case 7:goi_y(com[]);break;
case 8:out=0;break;
}
}while(out);
}