#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>
#include <conio.h>
struct mhs{
char name[100];
char id_mhs[10];
char kelas[10];
char semester[10];
struct mhs *next;
};
struct mhs *first=NULL,*last=NULL,*k;
struct perpus{
char id_mhs[10];
char judul[100];
char waktu[10];
char jumlah[10];
struct perpus *next;
};
struct perpus *first2=NULL,*last2=NULL,*P;
void create(int n)
{
int i;
first=(struct mhs*)malloc(sizeof(struct mhs));
printf("\nMasukan ID : ");scanf("%s",first->id_mhs);
printf("Masukan Nama : ");scanf("%s",first->name);
printf("Masukan Kelas : ");scanf("%s",first->kelas);
printf("Masukan Semester : ");scanf("%s",first->semester);
first->next=NULL;
last=first;
for(i=1;i<n;i++) {
k=(struct mhs*)malloc(sizeof(struct mhs));
printf("\nMasukan ID : ");scanf("%s",k->id_mhs);
printf("Masukan nama : ");scanf("%s",k->name);
printf("Masukan Kelas : ");scanf("%s",k->kelas);
printf("Masukan Semester : ");scanf("%s",k->semester);
k->next=NULL;
last->next=k;
last=k;
}
}
void create2(int n)
{
char r[10];
int flag=0;
printf("\nMasukan ID Yang Mau di Tambahkan:");scanf("%s",r);
struct mhs *t;
t=first;
while(t!=NULL)
{
if(strcmpi(r,t->id_mhs)==0)
{
first2=(struct perpus*)malloc(sizeof(struct perpus));
printf("Masukan ID Kembali : ");scanf("%s",first2->id_mhs);
printf("Masukan Judul Buku : ");scanf("%s",first2->judul);
printf("Masukan Tanggal Pinjam : ");scanf("%s",first2->waktu);
printf("Masukan Jumlah Pinjam : ");scanf("%s",first2->jumlah);
first2->next=NULL;
last2=first2;
flag=1;
break;
}t=t->next;
}
if(flag==0){
printf("\nId Mahasiswa tersebut tidak ada dalam database!\n");
}
int i;
for(i=1;i<n;i++) {
printf("\nMasukan ID Yang Mau di Tambahkan:");scanf("%s",r);
struct mhs *t;
t=first;
while(t!=NULL)
{
if(strcmpi(r,t->id_mhs)==0)
{
P=(struct perpus*)malloc(sizeof(struct perpus));
printf("Masukan ID Kembali : ");scanf("%s",P->id_mhs);
printf("Masukan Judul Buku : ");scanf("%s",P->judul);
printf("Masukan Tanggal Pinjam : ");scanf("%s",P->waktu);
printf("Masukan Jumlah Pinjam : ");scanf("%s",P->jumlah);
P->next=NULL;
last2->next=P;
last2=P;
flag=0;
}t=t->next;
}
if(flag==1){
printf("\nId Mahasiswa tersebut tidak ada dalam database!\n");
}
}
}
void del()
{
struct perpus *back,*t,*P;
char r[10];
int flag=0;
printf("\nMasukan ID Yang Ingin Di Hapus : ");scanf("%s",r);
if(strcmpi(r,first2->id_mhs)==0)
{
first2=first2->next;
flag=1;
}
else
{
back=first2;
P=first2->next;
while(P!=NULL)
{
if(strcmpi(r,P->id_mhs)==0)
{
back->next=P->next;
flag=1;
break;
}
}
}
if(flag==0){
printf("\nData Tidak Di Temukan!\n");
}else{
printf("\nBerhasil Hapus Data!\n");
}
}
void display()
{
struct mhs *t;
int flag=0;
t=first;
while(t!=NULL)
{
printf("\nID :%s",t->id_mhs);
printf("\nNama :%s",t->name);
printf("\nKelas :%s",t->kelas);
printf("\nSemester :%s\n",t->semester);
t=t->next;
flag=1;
}
if(flag==0){
printf("\nData Kosong!\n");
}
}
void display2()
{
struct perpus *q;
int flag=0;
q=first2;
while(q!=NULL)
{
printf("\nID : %s",q->id_mhs);
printf("\nJudul : %s",q->judul);
printf("\nWaktu : %s",q->waktu);
printf("\nJumlah : %s\n",q->jumlah);
q=q->next;
flag=1;
}
if(flag==0){
printf("\nData Tidak Kosong!\n");
}
}
int main()
{
int n,o;
while(o!=0)
{
int ibarcode[11];int qty[11];int tot[11];
int j,i,k,grand,no;
char a;
int x; double y;
char salam[]= "=============PROGRAM PERPUS=============\n";//membuat teks bergerak
for(x=0; salam[x]!=NULL; x++)
{
printf("%c",salam[x]);
for(y=0; y<=9999999; y++)
{
}
}
printf("==================MENU==================\n");
printf("\n1. Insert Data Maseter (Insert Data Mahasiswa)");
printf("\n2. Insert Data Transaksi (Insert Data Peminjaman Perpustakaan)");
printf("\n3. Delet Data Transaksi Berdasarkan ID");
printf("\n4. Show All Data Master");
printf("\n5. Show All Data Transaksi");
printf("\n0. Exit");
printf("\nMasuka Pilihan : ");scanf("%d",&o);
printf("---------------------------------------------\n");
switch(o)
{
case 1:printf("Masukan Berapa Data Yang Mau Di Masukan : ");scanf("%d",&n);
create(n);break;
case 2:printf("Masukan Berapa Data Yang Mau Di Masukan : ");scanf("%d",&n);
create2(n);break;
case 3:del();break;
case 4:display();break;
case 5:display2();break;
default:printf("\nPilihan Salah!\n");
}
}
getche();
}
Next
« Prev Post
« Prev Post
Previous
Next Post »
Next Post »
0 Komentar untuk "Script UAS Struktur Data Membuat Linked List Dengan Inputan Array"