latest Post

Program perhitungan kecepatan tamia dengan validasi menggunakan C++


Diketahui sebuah mainan tamia memiliki dinamo yang menghabiskan 0,001 Amper/s. Dengan konsumsi energi sebesar itu, dinamo tadi dapat memutar roda tamia sebanyak 8 kali/detik. Lalu ukuran rodayang beredar hanya 18mm, 21mm, dan 24mm, dimana pada ukuran terkecil dapat menggunakan seluruh kecepatan yang dihasilkan dinamo, dan akan berkurang menjadi 9/10 dari kecepatan semula jika kuran diameter rodanya bertambah sebanyak 3mm. Sehinnga dengan sejumlah daya tertentu yang diberikan untuk tamia, serta setingan ban tertentu, seseorang dapat menghitung berapa kecepatan tamia, kapan tamia tersebut akan mati kehabisan energi, serta jarak tempuhnya Dengan kasus seperti di atas buatlah classnya dalam bahasa C++, tentukan seluruh properti, dan met od atau fungsinya yang harus dimiliki class tamia tersebut untuk memenuhi kasus diatas. implementasikan penggunaan seter dan geter.


#include<iostream>
#include <cstdlib>
#include <cstring>
#include<conio.h>
using namespace std;

int kata;
char val [100];

int validasi()
{
    do
    {
        kata=0;
        cin>>val;
        for(int i=0; i<strlen(val); i++)
        {
            if(isdigit(val[i])==0)
                kata++;
        }
        if(kata !=0)
            cout<<"\t\tInput salah !\n"<<endl;

    }
 while(kata!=0);
    return 0;
}


class Tamia{
 double daya,ban,s,kec,jarak;
 int putarroda;
 
 public :
 
 void hitungJarak(){
  if(getBan()==18)
  putarroda=(getDaya()*1000)*8;
  
  else if(getBan()==21)
  putarroda=((getDaya()*1000)*8)*0.9;
  
  else 
  putarroda=(((getDaya()*1000)*8)*0.9)*0.9;
  
  s=((2*3.14*(getBan()/2)*putarroda));
 }
 
 void showJarak(){
 cout<<"Jarak yang ditempuh : "<<s<<" mm = "<<(s/1000)<<" m"<<endl;
 }

 void hitungKecepatan(){
 int waktu;
 waktu=putarroda/8;
 if(getBan()==18)
  kec=s/waktu;
 else if(getBan()==21)
  kec=(s/waktu)*0.9;
 else
  kec=((s/waktu)*0.9)*0.9;

 }
 
 void showKecepatan(){
 cout<<"Kecepatan Tamia : "<<kec<<" mm/s"<<endl;
 }
 
 public : double showwaktu(){
 int waktu,detik, menit1, menit2, jam1;
 waktu=putarroda/8;
 if(waktu<=60){
  detik=waktu;
 }
 else{
  menit1=waktu/60;
  detik=waktu-(menit1*60);
 }
 if(menit1<=60){
  menit2=menit1;
  jam1=0;
 }
 else{
  jam1=menit1/60;
  menit2=menit1-(jam1*60);
 }
 cout<<"Daya Akan Habis Dalam Waktu : "<<jam1<<"Jam "<<menit2<<"Menit "<<detik<<"Detik "<<endl;
 }
 
 public : double hitungputarroda(){
  return (getDaya()*1000)*8;
 }
 
 void setDaya(double d){
  daya=d;
 }
 
 double getDaya(){
 return daya;
 }
 
 void setBan(double b){
 ban=b;
 }

 double getBan(){
 return ban;
 }
};

int main(){
 awal :
 double d,b;
 int pilihan;
 Tamia mobil;
 cout<<"____________________________________________________"<<endl;
 cout<<"+           Program Perhitungan Tamia              +"<<endl;
 cout<<"----------------------------------------------------"<<endl;
 cout<<endl;
 cout<<"Input Daya : ";
 validasi(); d=atoi(val);
 a:
 cout<<"Input Ban (18,21,24) : ";
 validasi(); b=atoi(val);
 
 if(b==18||b==21||b==24){
  mobil.setDaya(d);
  mobil.setBan(b);
  cout<<"----------------------------------------------------"<<endl;
  cout<<"Besar Daya  : "<<mobil.getDaya()<<" watt"<<endl;
  cout<<"Ukuran Ban  : "<<mobil.getBan()<<" mm"<<endl;
  cout<<"----------------------------------------------------"<<endl<<endl;
  mobil.hitungJarak();
  mobil.hitungKecepatan();
  mobil.showKecepatan();
  mobil.showwaktu();
  mobil.showJarak();
  cout<<"Banyaknya Roda Berputar  : "<<mobil.hitungputarroda()<<" kali";
  
 }
 else{
  cout<<"Ukuran Ban Tidak Tersedia"<<endl;
  goto a;
 }
 cout<<endl;
 system("pause");
 do{
 cout<<"\n\nIngin mencoba lagi ? (1.Ya||2.Tidak) : ";
 validasi(); pilihan=atoi(val);
 if(pilihan==1){
  system("cls");
  goto awal;
 }
 else if(pilihan==2)
  return 0;
 }while(pilihan==3);
 
 }
   




About Unknown

Unknown
Recommended Posts × +

0 comments:

Post a Comment