Latihan Soal SINGLE LINKED LIST C++
Written By Unknown on Monday, 7 April 2014 | 21:43
Buatlah sebuah aplikasi yang dapat mengelola data sewa mobil di sebuah rental mobil dengan mengimplementasikan single linked list. Data sewa mobil yang akan dikelola terdiri dari nomor sewa, nama penyewa, jenis mobil, lama sewa, dan total biaya sewa. Data-data tersebut didapatkan berdasarkan input dari user. Definisikan ADT-nya, dimana dalam ADT tersebut setidaknya berisi primitif-primitif berikut ini:
- bool listEmpty(list L);
Primitif untuk melakukan pengecekan apakah sebuah list kosong atau tidak.
- void createEmpty(list *l);
Primitif untuk membuat sebuah list kosong.
- address searchData(list l, int noSewa);
Primitif untuk melakukan pencarian di dalam list berdasarkan nomor sewa.
- void insertFirst(list *l, address p);
Primitif untuk menambahkan data sewa pada awal list.
- void insertLast(list *l, address p);
Primitif untuk menambahkan data sewa pada akhir list.
- void deleteFirst(list *l, address *p);
Primitif untuk menghapus elemen pertama list.
- void deleteAfter(address q, address *p);
Primitif untuk menghapus elemen p after q dari list.
- void delP (list *l, int noSewa);
Primitif untuk menghapus data sewa dengan alamat P, dimana jika info(P).noSewa = noSewa, maka P dihapus.
- void updateData(list l);
Primitif untuk mengubah data sewa. Data sewa yang dapat diubah adalah lama sewa. Perubahan pada lama sewa maka secara otomatis akan mengubah total biaya sewa.
- void printAllInfo(list l);
Primitif untuk menampilkan semua data sewa, termasuk jumlah pemasukan, dan statistik jumlah mobil yang disewakan.
- void printInfoJenis(list l, char jenisMobil[20])
Primitif untuk menampilkan data sewa berdasarkan jenis mobil.
- void printInfoPemilik(list l, char namaPemilik[50])
Primitif untuk menampilkan data sewa berdasarkan nama penyewa.
- void dealokasi(address p);
Primitif untuk men-dealokasikan memori.
- address alokasi(infotype x);
Primitif untuk mengalokasikan memori.
Ketentuan:
1. Asumsi hanya ada 3 jenis mobil yang disewakan, yaitu: kijang, avanza, dan xenia.
2. Biaya sewa:
kijang = 500.000/hari
avanza = 400.000/hari
xenia = 300.000/hari
Total biaya sewa = lama sewa*biaya sewa
3. Jika list masih kosong, lakukan insertFirst.
Jika list sudah terisi, lakukan insertLast.
4. Fungsionalitas yang dapat ditangani aplikasi ini:
a. Input data sewa mobil
b. Pengembalian mobil
c. Perpanjangan waktu sewa mobil
d. Lihat data sewa, terdiri dari:
1) Lihat semua data sewa
2) Lihat data sewa berdasarkan jenis mobil
3) Lihat data sewa berdasarkan nama penyewa
0 komentar:
Post a Comment