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 *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