Postingan lainnya
Bagaimana cara mencari kontak dalam buku telfon berdasarkan nomor telfon
// Phonebook project
//===============================
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
//prototypes
void printline(char, int);
bool name_valid(string);
bool mob_valid(string);
class contact
{
string name;
string mob;
public:
//Initialize the contact by a default value
contact(): name(""), mob("")
{}
// Shows all contacts
bool show()
{
if(name != "")
{
cout << name << "\t" << mob << endl;
return 1; //Indicates success
}
else
return 0; //Indicates failure
}
//Search
bool show(string search_term)
{
if(search_term == name)
{
cout << name << "\t" << mob << endl;
return 1;
}
else
return 0;
}
//Checks whether the name exists or not
bool name_exists(string tname)
{
if(tname == name)
return 1;
else
return 0;
}
//The contact object is initialized by valid values
bool add(string new_name, string new_mob)
{
if(name=="")
{
name = new_name;
mob = new_mob;
return 1; // Success
}
else
return 0; // Failure
}
};
int main()
{
contact person[100];
string temp_name, temp_mob;
int choice, i, counter;
bool flag;
bool cancel_flag;
cout << "**** PHONEBOOK ******" << endl;
do
{
cout << "\n\n\n";
printline('-', 20);
cout << "1. Memasukkan Data" << endl
<< "2. Menampilkan Data" << endl
<< "3. Mencari Data Berdasar Nama" << endl
<< "4. Mencari Data Berdasar No. Telfon" << endl
<< "5. Keluar" << endl
<< "Masukkan Pilihan Anda : ";
cin >> choice;
system("cls");
printline('-', 20);
cancel_flag = 0;
flag = 0;
counter = 0;
switch (choice)
{
case 1:
cout << "Add New Contact\t\t\t\tpress $ to cancel" << endl;
printline('-', 20);
counter = 0;
//Berulang hingga nama dan no benar
do
{
flag = 0;
if (counter)
cout << "Try again\t\t\t\tpress $ to cancel"
<< endl;
//counts how many times the do-while loop executes
counter++;
cout << "Name: "; cin >> temp_name;
//Cancel operation
if (temp_name == "$")
{
cancel_flag = 1;
break;
}
cout << "Mobile No.: "; cin >> temp_mob;
//Cancel operation
if (temp_mob == "$")
{
cancel_flag = 1;
break;
}
//Check whether name exists
for (i = 0; i<100; i++)
if (person[i].name_exists(temp_name))
{
cout << "Kontak sudah ada!"
"Masukkan nama lain."
<< endl;
flag = 1;
break;
}
} while (!name_valid(temp_name) ||
flag ||
!mob_valid(temp_mob));
if (cancel_flag)
{
system("cls");
break;
}
//Memasukkan kontak ke buku telfon
for (i = 0; i<100; i++)
if (person[i].add(temp_name, temp_mob))
{
cout << "Berhasil Menambah Kontak" << endl;
flag = 1;
break;
}
if (!flag)
cout << "Memory Kontak Penuh! Hapus Beberapa Kontak."
<< endl;
break;
case 2:
cout << "Menampilkan Kontak" << endl;
printline('-', 20);
for (i = 0; i<100; i++)
if (person[i].show())
flag = 1;
if (!flag)
cout << "Tidak ada kontak yang ditemukan!" << endl;
break;
case 3: //search contact by name
do
{
if (counter)
cout << "Coba lagi" << endl;
counter++;
cout << "Cari Nama : \t\t\t\tpress $ to cancel\n";
cin >> temp_name;
//Cancel Operation
if (temp_name == "$")
{
system("cls");
break;
}
for (i = 0; i<100; i++)
if (person[i].show(temp_name))
{
flag = 1;
break;
}
if (!flag)
cout << "Kontak tidak ditemukan" << endl;
} while (!flag);
break;
case 4: //search contact by number
do
{
if (counter)
cout << "Coba lagi" << endl;
counter++;
cout << "Cari Nomor : \t\t\t\tpress $ to cancel\n";
cin >> temp_mob;
//Cancel Operation
if (temp_mob == "$")
{
system("cls");
break;
}
for (i = 0; i<100; i++)
if (person[i].show(temp_name))
{
flag = 1;
break;
}
if (!flag)
cout << "Kontak tidak ditemukan" << endl;
} while (!flag);
break;
case 5:
return 0;
break;
}
} while (1);
_getch();
return 0;
}
//prints a line
void printline(char ch, int size)
{
for (int i = 0; i<size; i++)
cout << ch;
cout << "\n";
}
//Contact name validation
bool name_valid(string tname)
{
if (tname.size()>20)
{
cout << "Nama Salah!\nMasukkan Maks 20 Karakter dan Tanpa Spasi!"
<< endl;
return 0;
}
else if (tname == "")
{
cout << "Nama Salah!\nNama tidak boleh kosong!" << endl;
return 0;
}
else
return 1;
}
//mobile number validation
bool mob_valid(string tmob)
{
if (tmob.size()>13 || tmob.size()<10)
{
cout << "Nomor salah\n"
"Masukkan Nomor Antara 10 - 13 digit" << endl;
return 0;
}
else if (tmob == "")
{
cout << "No salah\n"
"Nomor tidak boleh kosong" << endl;
return 0;
}
else
return 1;
}
Case nomor 3 adalah untuk mencari kontak berdasarkan Nama, berjalan baik, tapi untuk Case nomor 4 yang merupakan program untuk mencari kontak berdasarkan Nomor Telfon tidak bisa, ada yang bisa bantu? Tolong berikan contoh program untuk Case 4 yang bisa, terimakasih
0
Belum ada Jawaban. Jadi yang pertama Jawaban
Login untuk ikut Jawaban