#include<iostream.h>
#include<conio.h>
#include<fstream.h>
#include<iomanip.h>
#include<dos.h>
#include<stdio.h>
const Nmaks=100;
struct data_waktu
{int jam;
int menit;
int detik;};
struct data_tanggal
{int tahun;
int bulan;
int tanggal;};
struct{double harga;
char kd_brg[5];
char nm_brg[20];
int qty;
double total; }
data[Nmaks];
int k,N,pil;
char nama_file[12];
double ttl=0;
data_tanggal tg;
void rekam_data();
void baca_data();
void tambah_data();
void main()
{
clrscr();
pil=1;
while(pil!=4){
cout<<”";
cout<<setw(10)<<”================================”<<endl;
cout<<setw(20)<<”MENU UTAMA”<<endl;
cout<<setw(10)<<”================================”<<endl;
cout<<setw(10)<<”1. Isi Data Belanja”<<endl;
cout<<setw(10)<<”2. Tambah Data Belanja”<<endl;
cout<<setw(10)<<”3. Rekap Belanja”<<endl;
cout<<setw(10)<<”4. Keluar program”<<endl;
cout<<setw(10)<<”================================”<<endl;
cout<<setw(10)<<”Pilih nomor menu (1/2/3/4): “;cin >>pil;
if(pil==4)
break;
clrscr();
switch(pil)
{
case 1 :
rekam_data();
cout<<”Tekan Enter untuk kembali ke MENU”;
getch();
clrscr();
continue;
case 2 : tambah_data();
cout<<”Tekan Enter untuk kembali ke MENU”;
getch();
clrscr();
continue;
case 3 :
clrscr();
baca_data();
cout<<”Tekan Enter untuk kembali ke MENU”;
getch();
clrscr();
continue;
}
}
}
void rekam_data()
{
clrscr();
date dt;
data_tanggal tg;
getdate(&dt);
tg.tanggal = dt.da_day;
tg.bulan = dt.da_mon;
tg.tahun = dt.da_year;
time tm;
data_waktu jm;
gettime(&tm);
jm.jam = tm.ti_hour;
jm.menit = tm.ti_min;
jm.detik = tm.ti_sec;
cout<<”Nama file : “;cin>>nama_file;
clrscr();
cout<<”Jumlah Barang Belanja : “;cin>>N;
clrscr();
//masukkan data belanja menggunakan konsep larik
for(k=0;k<N;k++)
{
cout<<”Kode Barang : “;cin>>data[k].kd_brg;
cout<<”Nama Barang : “;cin>>data[k].nm_brg;
cout<<”Harga Satuan : “;cin>>data[k].harga;
cout<<”Quantity : “;cin>>data[k].qty;
data[k].total=data[k].harga*data[k].qty;
cout<<”Total : “<<data[k].total;
clrscr();
}
//buka file untuk merekam data-data belanja
ofstream fdata(nama_file); /* fdata merupakan objek file dimana */
/* data-data belanja direkam */
fdata<<setw(10)<<”"<<”DAFTAR BELANJA”<<endl;
fdata<<setw(11)<<”"<<”Supermarket STT-PLN”<<endl;
fdata<<endl;
fdata<<”Tanggal : “<<tg.tanggal <<’-'<< tg.bulan <<’-'<<tg.tahun<<endl;
fdata<<”Pukul :” <<jm.jam<<”-”<<jm.menit<<”-”<<jm.detik<<endl;
fdata<<”======================================================”<<endl;
fdata<<”NO.”<<setw(5)<<”Kd_Brg”<<setw(10)<<”Nama Brg”<<setw(8)<<”Harga”<<setw(5)<<”Qty”<<setw(8)<<”Total”<<endl;
fdata<<”======================================================”<<endl;
for(k=0;k<N;k++)
{
fdata<<setiosflags(ios::right)<<(k+1);
fdata<<setiosflags(ios::left)<<setw(10)<<data[k].kd_brg;
fdata<<setiosflags(ios::left)<<setw(15)<<data[k].nm_brg ;
fdata<<setiosflags(ios::right)<<setw(8)<<data[k].harga;
fdata<<setiosflags(ios::right)<<setw(5)<<data[k].qty;
fdata<<setiosflags(ios::right)<<setw(8)<<data[k].total<<endl;
ttl+=data[k].total;
}
fdata<<”\n====================================================”<<endl;
fdata<<”Total Bayar = Rp. “<<ttl<<endl;
//tutup file
fdata.close();
}
void baca_data()
{
clrscr();
const int MAKS=80;
char penyangga[MAKS];
char nama_file[12];
cout<<”Nama file : “;cin>>nama_file;
clrscr();
ifstream fdata(nama_file);
if(fdata.good())
{
while(!fdata.eof()) //baca seluruh data
{
fdata.getline(penyangga,MAKS);
cout<<penyangga<<endl<<endl;
}
}
else
cout<<”Maaf file dengan nama “<<nama_file<<” tidak ada”<<endl;
fdata.close();
}
void tambah_data()
{ clrscr();
cout<<”Jumlah Barang Belanja : “;cin>>N;
clrscr();
//masukkan data belanja menggunakan konsep larik
for(k=0;k<N;k++){
cout<<”Kode Barang : “;cin>>data[k].kd_brg;
cout<<”Nama Barang : “;cin>>data[k].nm_brg;
cout<<”Harga Satuan : “;cin>>data[k].harga;
cout<<”Quantity : “;cin>>data[k].qty;
data[k].total=data[k].harga*data[k].qty;
cout<<”Total : “<<data[k].total;
clrscr();
}
ofstream fdata(nama_file,ios::app); /* menambah arsip dari */
/* pemasukan data */
for(k=0;k<N;k++)
{
fdata<<setiosflags(ios::right)<<setw(3)<<(k+1);
fdata<<setiosflags(ios::left)<<setw(8)<<data[k].kd_brg;
fdata<<setiosflags(ios::left)<<setw(15)<<data[k].nm_brg ;
fdata<<setiosflags(ios::right)<<setw(8)<<data[k].harga;
fdata<<setiosflags(ios::right)<<setw(3)<<data[k].qty;
fdata<<setiosflags(ios::right)<<setw(8)<<data[k].total;
ttl+=data[k].total;
}
fdata.close(); }