#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define NEW_LINE printf("\n");
#define CLS system("cls");
#define PAUSE system("pause");
#define GETCHAR getchar();
int main()
{
FILE *fout;
FILE *fin;
struct Mahasiswa {
char NPM[10], Nama[256], Fakultas[64], Jurusan[64];
float Nilai;
};
struct block {
struct Mahasiswa Mhs;
char *getNPM() {
return Mhs.NPM;
}
char *getNama() {
return Mhs.Nama;
}
char *getFakultas() {
return Mhs.Fakultas;
}
char *getJurusan() {
return Mhs.Jurusan;
}
void setNPM(char value[10]) {
strcpy(Mhs.NPM, value);
}
void setNama(char value[256]) {
strcpy(Mhs.Nama, value);
}
void setFakultas(char value[64]) {
strcpy(Mhs.Fakultas, value);
}
void setJurusan(char value[64]) {
strcpy(Mhs.Jurusan, value);
}
void setNilai(float value) {
Mhs.Nilai = value;
};
float getNilai() {
return Mhs.Nilai;
};
void setMhs(char npm[10], char nama[256], char fakultas[64], char jurusan[64], float nilai) {
setNPM(npm);
setNama(nama);
setFakultas(fakultas);
setJurusan(jurusan);
setNilai(nilai);
}
} block;
char input;
int pilihan;
char npm[10], nama[255], fakultas[64], jurusan[64];
float nilai;
do {
NEW_LINE; CLS;
printf("1. Input Data\n");
printf("2. Lihat Data\n");
printf("0. Keluar\n");
printf("\nMasukan pilihan Anda : ");
scanf("%d", &pilihan);
switch (pilihan) {
case 1:
input = 'y';
while (input == 'y' || input == 'Y') {
NEW_LINE; CLS; GETCHAR;
printf("NPM : "); scanf("%[^\n]", npm); GETCHAR;
printf("Nama : "); scanf("%[^\n]", nama); GETCHAR;
printf("Fakultas : "); scanf("%[^\n]", fakultas); GETCHAR;
printf("Jurusan : "); scanf("%[^\n]", jurusan); GETCHAR;
printf("Nilai : "); scanf("%f", &nilai);
block.setMhs(npm, nama, fakultas, jurusan, nilai);
fout = fopen("database.adb", "ab");
if (fout == NULL) {
fprintf(stderr, "\nError!. Tidak dapat mengakses file database.adb\n");
exit(1);
}
fwrite((struct Mahasiswa *)&block.Mhs, sizeof(struct Mahasiswa), 1, fout);
fclose(fout);
printf("\nIngin menginputkan lagi (y/n): ");
scanf("%s", &input);
}
break;
case 2:
fin = fopen("database.adb", "rb");
if (fin == NULL) {
fprintf(stderr, "\nError!. Tidak dapat mengakses file database.adb\n");
exit(1);
}
NEW_LINE; CLS;
while (!feof(fin)) {
fread((struct Mahasiswa *)&block.Mhs, sizeof(struct Mahasiswa), 1, fin);
if (feof(fin)) break;
printf(
"%s %s %s %s %f",
block.getNPM(), block.getNama(), block.getFakultas(),
block.getJurusan(), block.getNilai()
);
NEW_LINE;
}
fclose(fin);
NEW_LINE; PAUSE;
break;
case 0: break;
default:
printf("\nPilihan salah !\n");
break;
}
} while (pilihan != 0);
return 0;
}
Monday 19 November 2012
file read & write (example) pada c++
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment