#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
struct dtnilai{
char nrp[12],nama[20],alamat[30];
float ip[5];
struct dtnilai *next;
};
struct dtnilai *ujung;
//////////////////////////////////INPUT DATA///////////////////////////////////
int input_data(){
struct dtnilai *tampung, *awal;
int j=0;char jawab[2];
while (1){
awal=(struct dtnilai*)malloc(sizeof(struct dtnilai));
fflush(stdin);
printf("NRP :");gets(awal->nrp);
printf("NAMA :");gets(awal->nama);
printf("ALAMAT :");gets(awal->alamat);
printf("IP :");scanf("%f",&awal->ip);
awal->next=NULL;
if(j==0){
ujung=awal;
tampung=ujung;
}else{
tampung->next=awal;
tampung=tampung->next;
}
printf("Ada data lagi (y/t) :");scanf("%s",&jawab);
if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0)){
j++;continue;
}else if((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))
break;
}
}
//////////////////////////////////////////TAMPIL LIST/////////////////////////////
int tampil_list(){
struct dtnilai *tampil,*awal;
printf("\tNRP\t\tNAMA\t\tALAMAT\t\tIP\n");
tampil=ujung;
while(tampil!=NULL){
printf("%s\t\t%s\t\%s\t\t%1.2f\n",tampil->nrp, tampil->nama,tampil->alamat,*tampil->ip);
tampil=tampil->next;
}
return 0;
}
///////////////////////////////////////HAPUS AKHIR/////////////////////////////
int hapus_akhir(){
struct dtnilai *hapus, *sblhapus;
hapus=ujung;
while(hapus->next!=NULL){
sblhapus=hapus;
hapus=hapus->next;
}
free(hapus);
sblhapus->next=NULL;
}
////////////////////////////////////SISIP AWAL//////////////////////////////////
int sisip_awal(){
struct dtnilai *tampung,*awal;
char jawab[2];
int j=0;
tampung=ujung;
while (1){
awal=(struct dtnilai*)malloc(sizeof(struct dtnilai));
fflush(stdin);
printf("NRP :");gets(awal->nrp);
printf("NAMA :");gets(awal->nama);
printf("ALAMAT :");gets(awal->alamat);
printf("IP :");scanf("%f",&awal->ip);
awal->next=tampung;
if(j==0||j!=0){
ujung=awal;
tampung=ujung;
}
printf("Ada data lagi (y/t) :");scanf("%s",&jawab);
if((strcmp(jawab,"Y")==0)||(strcmp(jawab,"y")==0)){
j++;continue;
}else if((strcmp(jawab,"T")==0)||(strcmp(jawab,"t")==0))
break;
}
}
////////////////////////////////////////////////HAPUS LIST TERDEPAN//////////////////////////////////////
int hapus_awal(){
struct dtnilai *hapus, *stlhapus;
hapus=ujung;
stlhapus=hapus->next;
ujung=stlhapus;
free(hapus);
}
///////////////////////////////////////////////HAPUS ELEMEN KE-N/////////////////////////////////////////
int hapus_n(){
struct dtnilai *hapus, *sblhapus;
int cari;;
fflush(stdin);
printf("Data yang akan dihapus ? (data ke-) :");scanf("%d",&cari);
hapus=ujung;
for(int i=1;i<cari;i++){
sblhapus=hapus;
hapus=hapus->next;
}
sblhapus->next=hapus->next;
free(hapus);
}
/////////////////////////////////////////////HITUNG RERATA///////////////////////////////////////////////
int jumlah(){
struct dtnilai *hitung;
float hasil=0;
hitung=ujung;
while(hitung!=NULL){
hitung=hitung->next;
hasil=hasil+*hitung->ip;
}
return(hasil);
}
//////////////////////////////////////////////HITUNG NILAI///////////////////////////////////////////////
int banyak_data(){
struct dtnilai *hitung;
float n=0;
hitung=ujung;
while(hitung!=NULL){
hitung=hitung->next;
n++;
}
return(n);
}
////////////////////////////////////////////////BADAN PROGRAM////////////////////////////////////////////
int main(){
int a;
char b[2];
ulang :
puts("--------------------------------------------------------------------------------");
puts(" STRUKTUR DATA ");
puts(" RIZKI TAUFIK ULIL A (2210131040) ");
puts(" 1 D4 TEKNIK KOMPUTER ");
puts(" POLITEKNIK ELEKTRONIKA NEGERI SURABAYA - 2014 ");
puts("================================================================================");
puts(" MENU ");
puts(" (1) input data (2) hapus akhir (3) sisip awal (4) hapus awal (5) hapus ke-n");
puts(" (6) tampil data (7) rata-rata (8) exit");
puts("================================================================================");
printf("Pilih menu :");scanf("%d",&a);
switch (a) {
case 1 :input_data();puts("");break;
case 2 :tampil_list();puts("");goto hapus;break;
case 3 :tampil_list();puts("");sisip_awal();puts("");break;
case 4 :tampil_list();puts("");hapus_awal();puts("");break;
case 5 :tampil_list();puts("");hapus_n();puts("");break;
case 6 :goto tampil;break;
case 7 :goto rata2;break;
case 8 :goto exit;break;
default :break;
}
goto ulang;
rata2 :
printf("Rata- rata IP dari data adalah %1.2f",jumlah()/banyak_data());
goto tampil;
hapus :
puts("Apakah ingin menghapus data akhir ? (y/t)");fflush(stdin);scanf("%s",&b);
if((strcmp(b,"Y")==0)||(strcmp(b,"y")==0)){
hapus_akhir();
goto tampil;
}
tampil :
tampil_list();
puts("Apakah ingin mengolah data ? (y/t)");fflush(stdin);scanf("%s",&b);
if((strcmp(b,"Y")==0)||(strcmp(b,"y")==0)){
goto ulang;
}
exit:
puts(" Anda akan keluar dari program ");
puts(" Silakan pencet tombol enter pada keyboard");
getch();
return 0;
}
Langganan:
Posting Komentar (Atom)
Arsip Blog
-
▼
2015
(12)
-
▼
Juni
(10)
- Download Structur Data
- Code C : Single Link List
- Code C : Single Link List
- Code C : Single link list
- Code C : Sequantial and Binary (SEARCHING)
- Code C ; (Straigh/Binary)Insertion and Selection (...
- Code C : Quick and Marge (SORTING)
- Code C : Bubble and Shell (SORTING)
- Code C : Progressive Oferflow
- Code C : batu kertas gunting
-
▼
Juni
(10)
Me
- Achmad Rahman Mawardi
- I'm 18 year old I'm ugly I'm lazy I do what I want I'm poor I want to learn and I want make money
Tidak ada komentar:
Posting Komentar