code quan lý khách sạn hơi dở
lúc mới bắt đầu học C còn luu nè!!
Tinh nang chinh
int menu()//menu phan giao dien
{
int chon;
cout<<"\n\t+*******************************+";
cout<<"\n\t+ An phim 1. NHAP thong tin kh. +";
cout<<"\n\t+ An phim 2. TIM khach hang +";
cout<<"\n\t+ An phim 3. SUA thong tin. +";
cout<<"\n\t+ An phim 4. XOA khach hang. +";
cout<<"\n\t+ An phim 5. THEM khach hang. +";
cout<<"\n\t*===============================*";
cout<<"\n\t+ An phim 6. DOC du lieu. +";
cout<<"\n\t+ An phim 7. Luu du lieu. +";
cout<<"\n\t+ An phim 8. Tac gia +";
cout<<"\n\t+-------------------------------+";
cout<<"\n\t+ An phim 0. THOAT. +";
cout<<"\n\t*********************************";
cout<<"\n\nChon: ";
cin>>chon;
return chon;
}
- Code:
#include<conio.h>
#include<stdio.h>
#include<iomanip.h>
#include<string.h>
#define max 50
typedef struct{
int ngay,thang,nam;
}date;
typedef struct{
int STT,tgt;
char cmnd[10];
char hoten[35];
char msp[4];
date ngayden;
date sinh;
int tienphong,loaiphong;
}ks;
int hople(date a);
void nhap(ks kh[], int &n);
void nhap1kh(ks &kh, int i);
void xuat(ks kh[], int n);
void thanhtien(ks kh[], int n);
int menu();
int menuTim();
void tim(ks kh[], int n);
void Timcmnd(ks kh[], int n);
void TimHoTen(ks kh[], int n);
void Timmsp(ks kh[], int n);
void TimSinh(ks kh[], int n);
void sua(ks kh[], int n);
int sapxep(int n);
void hoanvi(ks &x, ks &y);
void xoa(ks kh[], int &n);
void them(ks kh[], int &n);
void doc(ks kh[], int &n);
void ghi(ks kh[], int n);
void nhap(ks kh[], int &n)//nhap nhieu kh
{
do{
cout<<"Nhap so luong khach hang : ";
cin>>n;
}while(n<0||n>100);
for(int i=0; i<n; i++) //su dung vong lap
nhap1kh(kh[i],i);
cout<<"\nDanh sach da nhap la: ";
xuat(kh,n);
}
void nhap1kh(ks &kh, int i)//nhap 1 khach hang
{
char tamthoi[30];
int dodai;
float danhdau;
date a; kh.STT=i+1;
cout<<"\n";
do{
printf("Nhap CMND:");
gets(tamthoi);
dodai=strlen(tamthoi);
}while(dodai==0||dodai>9);
strcpy(kh.cmnd,tamthoi);
do{
printf("Nhap Ten:");
gets(tamthoi);
dodai=strlen(tamthoi);
}while(dodai==0||dodai>25);
strcpy(kh.hoten,tamthoi);
do{
printf("Ngay sinh (dd mm yyyy): ");
cin>>a.ngay>>a.thang>>a.nam;
}while(hople(a)==0||a.nam>9999);
kh.sinh=a;
do{
printf("Nhap MSP");
gets(tamthoi);
dodai=strlen(tamthoi);
}while(dodai==0||dodai>7);
strcpy(kh.msp,tamthoi);
printf("Loai 1 100 ngan - Loai 2 80 - Loai 3 70 ngan Loai 4 50 ngan");
printf("\n Chon loai");
scanf("%d",&kh.loaiphong);
switch(kh.loaiphong)
{
case 1: kh.loaiphong=100; break;
case 2: kh.loaiphong=80; break;
case 3: kh.loaiphong=70; break;
case 4: kh.loaiphong=50; break;
}
printf("Nhap thoi gian thue vui long nhap so gio: ");
scanf("%d",&kh.tgt);
kh.tienphong=kh.loaiphong*kh.tgt;
}
void xuat(ks kh[], int n) //ham xuat kq.su dung cout xuat ra
{
cout<<"\n+===+=========+=========================+==========+====+====+==+==============+";
cout<<"\n|STT| CMND | Ho va ten | Sinh |Loai|MaPh|Tg|Tien phong |";
cout<<"\n+===+=========+=========================+==========+====+====+==+==============+";
for(int i=0; i<n; i++)
{
cout<<"\n|"<<setw(3)<<kh[i].STT<<"|"<<setw(9)<<kh[i].cmnd<<"|"<<setw(25)<<kh[i].hoten<<"|"<<setw(2)<<kh[i].sinh.ngay<<"/"<<setw(2)<<kh[i].sinh.thang<<"/"<<setw(4)<<kh[i].sinh.nam ;
cout<<"|"<<setw(4)<<kh[i].loaiphong;
cout<<"|"<<setw(4)<<kh[i].msp;
cout<<"|"<<setw(2)<<kh[i].tgt<<"H";
cout<<"|";
cout<<"|"<<setw(9)<<kh[i].tienphong;
cout<<("VND|");
cout<<"\n+---+--------+--------------------------+-----------+----+----+--+------------+";
}
}
int menu()//menu phan giao dien
{
int chon;
cout<<"\n\t+*******************************+";
cout<<"\n\t+ An phim 1. NHAP thong tin kh. +";
cout<<"\n\t+ An phim 2. TIM khach hang +";
cout<<"\n\t+ An phim 3. SUA thong tin. +";
cout<<"\n\t+ An phim 4. XOA khach hang. +";
cout<<"\n\t+ An phim 5. THEM khach hang. +";
cout<<"\n\t*===============================*";
cout<<"\n\t+ An phim 6. DOC du lieu. +";
cout<<"\n\t+ An phim 7. Luu du lieu. +";
cout<<"\n\t+ An phim 8. Tac gia +";
cout<<"\n\t+-------------------------------+";
cout<<"\n\t+ An phim 0. THOAT. +";
cout<<"\n\t*********************************";
cout<<"\n\nChon: ";
cin>>chon;
return chon;
}
void Timcmnd(ks kh[], int n) //ham tim theo cmnd
{
ks kh2[max];
int dem=0;
char tamthoi[8];
do{
cout<<"Tim: ";
gets(tamthoi);
}while(strlen(tamthoi)==0||strlen(tamthoi)>8);
for(int i=0; i<n; i++)
if(strcmp(kh[i].cmnd,tamthoi)==0)
kh2[dem++]=kh[i];
if(dem)
{
cout<<"\nTim thay thoa yeu cau la:";
xuat(kh2,dem);
}
else
cout<<"\nKHONG TIM THAY.";
}
void TimHoTen(ks kh[], int n)//tim theo ten
{
ks kh2[max];
int dem=0;
char tamthoi[25];
do{
cout<<"Tim: ";
gets(tamthoi);
}while(strlen(tamthoi)==0||strlen(tamthoi)>25);
for(int i=0; i<n; i++)
if(strcmp(kh[i].hoten,tamthoi)==0)
kh2[dem++]=kh[i];
if(dem)
{
cout<<"\nTim thay thoa yeu cau la:";
xuat(kh2,dem);
}
else
cout<<"\nKHONG TIM THAY.";
}
void Timmsp(ks kh[], int n)
{
ks kh2[max];
int dem=0;
char tamthoi[8];
do{
cout<<"Tim: ";
gets(tamthoi);
}while(strlen(tamthoi)==0||strlen(tamthoi)>8);
for(int i=0; i<n; i++)
if(strcmp(kh[i].msp,tamthoi)==0)
kh2[dem++]=kh[i];
if(dem)
{
cout<<"\nTim thay thoa yeu cau la:";
xuat(kh2,dem);
}
else
cout<<"\nKHONG TIM THAY.";
}
void TimSinh(ks kh[], int n)
{
ks kh2[max];
int dem=0;
date a;
do{
cout<<"Tim: ";
cin>>a.ngay>>a.thang>>a.nam;
}while(hople(a)==0||a.nam>9999);
for(int i=0; i<n; i++)
if(kh[i].sinh.ngay==a.ngay&&kh[i].sinh.thang==a.thang&&kh[i].sinh.nam==a.nam)
kh2[dem++]=kh[i];
if(dem)
{
cout<<"Tim thay thoa yeu cau la:";
xuat(kh2,dem);
}
else
cout<<"KHONG TIM THAY.";
}
int menuTim()
{
int chon;
cout<<"\n\n2.1 Tim theo MSkh.";
cout<<"\n2.2 Tim theo TEN.";
cout<<"\n2.3 Tim theo LOP.";
cout<<"\n2.4 Tim theo SINH NHAT.";
cout<<"\n\nChon: ";
cin>>chon;
return chon;
}
void tim(ks kh[], int n)
{
int chon;
if(n==0)
{
cout<<"Danh sach dang rong.";
return;
}
chon=menuTim();
switch(chon)
{
case 1: Timcmnd(kh,n); break;
case 2: TimHoTen(kh,n); break;
case 3: Timmsp(kh,n); break;
case 4: TimSinh(kh,n); break;
}
}
void them(ks kh[], int &n) //them kh
{
if(n==0)
cout<<"Ban dang them vao danh sach rong.";
n++;
nhap1kh(kh[n-1],n-1);
cout<<"\nDanh sach hien tai la: ";
xuat(kh,n);
}
int hople(date a) //xet ngay thang nam hop le
{
int maxngay;
if(a.ngay<=0 || a.ngay>31 || a.thang<=0 || a.thang>12 || a.nam<=0)
return 0;
else
{
switch(a.thang)
{
case 2:
if((a.nam%100>0&&a.nam%4==0)||a.nam%400==0)
maxngay=29;
else
maxngay=28;
break;
case 4:
case 6:
case 9:
case 11: maxngay=30; break;
default: maxngay=31;
}
if(a.ngay>maxngay)
return 0;
}
return 1;
}
int sapxep(int n) //sep xep theo thu tu
{
int khac;
do{
cout<<"\nSinh vien thu: ";
cin>>khac;
}while(khac<=0||khac>n);
return khac;
}
void sua(ks kh[], int n) //su thong tin sv
{
int khac;
if(n==0)
{
cout<<"Danh sach dang rong.";
return;
}
khac=sapxep(n);
nhap1kh(kh[khac-1],khac-1);
cout<<"\nDanh sach da duoc sua: ";
xuat(kh,n);
}
void hoanvi(ks &x, ks &y)
{
ks tamthoi;
tamthoi=x;
x=y;
y=tamthoi;
}
void xoa(ks kh[], int &n) //ham xoa
{
int khac;
if(n==0)
{
cout<<"Danh sach dang rong.";
return;
}
khac=sapxep(n);
for(int i=khac-1; i<n; i++)
{
hoanvi(kh[i],kh[i+1]);
kh[i].STT--;
}
n--;
cout<<"\nDanh sach hien tai: ";
xuat(kh,n);
}
//Phan mo rong them doc va luu
void doc(ks kh[], int &n)
{
char get;
char path[50];
FILE *mo;
long length;
do{
cout<<"\nDuong dan: ";
cin>>path;
}while(path==NULL);
mo=fopen(path, "rb");//vi du Khachhang.dat"
if(mo==NULL)
cout<<"\nKhong mo duoc tap tin.";
else
{
fseek(mo, 0, 2);
length=ftell(mo);
rewind(mo);
n=length/sizeof(ks);
fread(kh,sizeof(ks),n,mo);
fclose(mo);
cout<<"\nDoc duoc "<<n<<" khach hang.";
xuat(kh,n);
}
}
void ghi(ks kh[], int n)
{
FILE *luu;
char path[50];
long length;
do{
cout<<"\nDuong dan: ";//Khachhang.dat
cin>>path;
}while(path==NULL);
luu=fopen(path, "wb");
fwrite(kh,sizeof(ks),n,luu);
cout<<"\nGhi hoan tat.";
fclose(luu);
}
void tacgia()
{
cout<<"\n******************************";
cout<<"\n* Nguyen Minh Nhat *";
cout<<"\n******************************";
}
void main()
{
ks kh[max];
int n=0, chon;
do{
chon=menu();
if(chon==0)
break;
switch(chon)
{
case 1: nhap(kh,n); break;
case 2: tim(kh,n); break;
case 3: sua(kh,n); break;
case 4: xoa(kh,n); break;
case 5: them(kh,n); break;
case 6: doc(kh,n); break;
case 7: ghi(kh,n); break;
case 8: tacgia(); break;
default:
printf("KHONG HOP LE.");
}
}while(1);
}