Sabtu, 22 Desember 2012

Praktikum 15 Arsip Beruntun versi 2

Praktikum 15 Arsip Beruntun versi 2(better than before)

you can modify it as your opinion.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{int NIM; char nama[25]; char Program_Study[25]; char Alamat[50];}DataMhs;
DataMhs Msiswa;
FILE *Mhs;
FILE *Mhs2;

void RekamFile(FILE *Mhs);
void AmbilData (FILE *Mhs);
void SalinFile(FILE *Mhs);
void AmbilDataBaru (FILE *Mhs);

int main()
{
    int i;
    char y;

    while (y!='n')
    {
        system("CLS");
        printf("Menu yang kami sediakan : ");
        printf("\n1. Rekam Data Mahasiswa ");
        printf("\n2. Tampil Isi Arsip ");
        printf("\n3. Salin Data ");
        printf("\n4. Tampil Hasil Penyalinan ");
        printf("\n5. Keluar Program ");
        printf("\n\nMasukkan nomor pilihan menu anda :");scanf("%d", &i);

        switch(i)
        {
            case 1 : RekamFile(Mhs); break;
            case 2 : AmbilData(Mhs); break;
            case 3 : SalinFile(Mhs); break;
            case 4 : AmbilDataBaru(Mhs); break;
            default: break;
        }

        if (i==5) break;
            printf("\nApakah anda ingin mengulang transaksi y/n : "); scanf("%c", &y); fflush(stdin);
    }
return 0;
}

//rekam file
void RekamFile(FILE *Mhs)
{
    DataMhs Msiswa;
    char x;
    int cek;
    printf("Anda ingin menambah (1) atau buat baru (0) :"); scanf("%d", &cek);

    if (cek == 1)
        {Mhs=fopen("DtMhs.txt","ab");fflush(stdin);}
    else
        Mhs=fopen("DtMhs.txt","wb");

    printf("NIM           :");scanf("%d%c",&Msiswa.NIM,&x);
    while(Msiswa.NIM != 9999)
    {
        printf("Nama          :");gets(Msiswa.nama); fflush(stdin);
        printf("Program Study :");gets(Msiswa.Program_Study); fflush(stdin);
        printf("Alamat        :");gets(Msiswa.Alamat ); fflush(stdin);
        fwrite(&Msiswa, sizeof(Msiswa),1,Mhs); fflush(stdin);
        printf("\n");
        printf("NIM           :");scanf("%d%c",&Msiswa.NIM,&x); fflush(stdin);
    }
        fclose(Mhs);
}

//Ambil data dari arsip
void AmbilData (FILE *Mhs)
{
    Mhs=fopen("DtMhs.txt","rb");
    fread(&Msiswa, sizeof(Msiswa), 1, Mhs);
        printf("\n===================================================\n");
        printf("NIM\tNama\t\tProgram_Study\tAlamat\n");
        printf("===================================================\n");
    while(!feof(Mhs))
    {
        printf("%d\t", Msiswa.NIM);
        printf("%s\t\t", Msiswa.nama);
        printf("%s\t", Msiswa.Program_Study);
        printf("%s\t", Msiswa.Alamat);
        printf("\n");
        fread(&Msiswa, sizeof(Msiswa), 1, Mhs);
    }
    fclose(Mhs);
    fflush(stdin);
        printf("===================================================\n");
}

void SalinFile(FILE *Mhs)
{
    int m, cek;
    char cari[100];
    fflush(stdin);
    printf("Anda ingin menambah (1) atau buat baru (0) :"); scanf("%d", &cek);     fflush(stdin);
    printf("Alamat yang akan disorting :"); gets(cari);

    Mhs=fopen("DtMhs.txt","rb");
    fread(&Msiswa, sizeof(Msiswa), 1, Mhs);
if (cek==1) Mhs2=fopen("DtMhsBatamCenter.txt","ab");
            else Mhs2=fopen("DtMhsBatamCenter.txt","wb");

    m=0;
    while(!feof(Mhs))
    {
        if(strcmp(Msiswa.Alamat, cari)==0)
        {
           
            fwrite(&Msiswa, sizeof(Msiswa), 1, Mhs2);  m++;
        }
        fread(&Msiswa, sizeof(Msiswa), 1, Mhs);
    }
    fclose(Mhs); fclose(Mhs2); fflush(stdin);

    printf("\n===================================================\n");
    if (m==0)printf("Data Tak ada yang sesuai\n");
    else printf("Sukses %d data telah di transfer\n", m);
    printf("===================================================\n");
}

void AmbilDataBaru (FILE *Mhs)
{
    Mhs=fopen("DtMhsBatamCenter.txt","rb");
    if(Mhs==NULL){printf("Data Tak ada : ");}
    else
    {
        fread(&Msiswa, sizeof(Msiswa), 1, Mhs);
            printf("\n===================================================\n");
            printf("NIM\tNama\t\tProgram_Study\tAlamat\n");
            printf("===================================================\n");
        while(!feof(Mhs))
        {
            printf("%d\t", Msiswa.NIM);
            printf("%s\t\t", Msiswa.nama);
            printf("%s\t", Msiswa.Program_Study);
            printf("%s\t", Msiswa.Alamat);
            printf("\n");
            fread(&Msiswa, sizeof(Msiswa), 1, Mhs);
        }
            printf("===================================================\n");
    }
    fclose(Mhs);
    fflush(stdin);
}

Tidak ada komentar:

Posting Komentar