Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #include <windows.h>
- #include<conio.h>
- #include <iostream>
- typedef struct mhs{
- char nama[100];
- char NRP[100];
- float EAS;
- float ETS;
- float rata;
- struct mhs* kepala ;
- struct mhs *ekor;
- }mhs;
- mhs *baru; // untuk naruh data sementara khusus ADD
- mhs *palkon; // data utama
- mhs *temp; // untuk naruh data sementara
- mhs *joko;
- int tot=1;
- void awali();
- void input();
- void tampil();
- void simpan();
- void file();
- void masukin(struct mhs keluari);
- int main(){
- awali();
- return 0;
- }
- void input()
- {
- system("cls");
- printf("DATA NO. %d\n",tot);
- baru =(mhs*) malloc(sizeof(mhs));
- printf("Nama Mahasiswa\t: ") ;gets(baru->nama);
- printf("NRP Mahasiswa\t: ") ;gets(baru->NRP);
- printf("Nilai ETS\t: ") ;scanf("%f",&baru->ETS);
- printf("Nilai EAS\t: ") ;scanf("%f",&baru->EAS);
- baru->rata= (baru->ETS + baru->EAS)/2;
- tot++;
- temp = palkon;
- baru->ekor = NULL;
- if (palkon == NULL) {
- baru->ekor = NULL;
- palkon = baru;
- // printf("ok");
- } else
- {
- while (temp->ekor != NULL)
- temp = temp->ekor;
- temp->ekor = baru;
- baru->kepala = temp;
- }
- system("pause");
- awali();
- }
- void tampil()
- { system("cls");
- joko= palkon;
- int i=1;
- if(joko==NULL)
- {
- printf("DATA KOSONG, POK!\n\n"); system("pause");awali();
- }
- while (joko!= NULL) {
- printf("DATA NO. %d\n",i);
- printf("Nama Mahasiswa\t: %s\n",joko->nama);
- printf("NRP Mahasiswa\t: %s\n",joko->NRP);
- printf("Nilai ETS\t: %.0f\n",joko->ETS);
- printf("Nilai EAS\t: %.0f\n",joko->EAS);
- printf("Nilai Rata-Rata\t: %.2f\n",joko->rata);
- printf("------------------------------\n");
- joko=joko->ekor;i++;
- } system("pause");//awali();
- }
- void hapus()
- {
- system("cls");
- tampil();
- int target;
- printf("\nMASUKKAN NOMOR DATA YANG AKAN DI HAPUS : ") ;scanf("%d",&target);
- temp=palkon; //sebelum
- joko=palkon; // sekarang
- if(target==1)
- {
- if(joko->ekor==NULL) // baru 1 data aja
- {
- palkon=NULL;
- tampil();awali();
- }else // kalo udah ada data setelahnya
- {
- palkon=joko->ekor;
- palkon->kepala=NULL;
- }
- }else {
- //ini untuk data ke-n,n!=1
- while(target!=1)
- {
- temp=joko;
- joko=joko->ekor;
- target--;
- }
- temp->ekor=joko->ekor;
- joko->ekor=NULL;
- delete joko;
- }
- tampil(); system("pause"); awali();
- }
- void file()
- { system("cls");
- FILE *daleman;
- daleman = fopen("data.bin","rb");
- if(daleman!=NULL)
- {
- fseek(daleman,0,SEEK_END); //buat ngeliat file dari awal ampe akhir
- //rewind(daleman);// untuk ngebuat filenya dibaca dari awal
- tot=(int)(ftell(daleman)/sizeof(mhs));
- printf("total data %d\n",tot);
- int cari;
- for(cari=0;cari<tot;++cari)
- {
- fseek(daleman,(sizeof(mhs)*cari),SEEK_SET); // ngefokusin start read file dari ke n
- if(palkon==NULL)
- {
- palkon= new mhs();
- fread(palkon,sizeof (mhs),1,daleman);
- palkon->ekor=NULL;
- }
- else
- {
- joko = palkon;
- mhs *maba = new mhs();
- while(joko->ekor!=NULL)
- {
- ///printf("*-");
- joko=joko->ekor;
- }
- fread(maba,sizeof(mhs),1,daleman);
- joko->ekor=maba;
- maba->ekor=NULL;
- maba->kepala=joko;
- }
- }
- system("pause");
- }
- else{
- printf("Data Masih kosong\n");system("pause"); awali();
- }
- tampil();awali();
- }
- void awali()
- {system("cls");
- int n;
- printf("--------------------------------------\n\nD A T A B A S E - D A T A B A S E A N\n\n--------------------------------------\n\n");
- printf("1. Input Data\n2. Hapus Data\n3. Tampilkan Data\n4. Load file\n5. Keluar dan Simpan\n\n");\
- printf("Masukkan Nomor perintah : ");
- scanf("%d",&n);getchar();
- switch(n)
- {
- case 1 : input(); break;
- case 2 : hapus(); break;
- case 3 : tampil();awali(); break;
- case 4 : file(); break;
- default : system("cls");simpan();printf("T E R I M A K A S I H"); break;
- }
- }
- void simpan()
- {
- FILE *daleman;
- daleman= fopen("data.bin","wb");
- joko= palkon;
- while(joko!=NULL)
- {
- fwrite(joko,sizeof(mhs),1,daleman);
- joko=joko->ekor;
- }
- fclose(daleman);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement