Algoritma
1.
Memulai program.
2.
Inputkan menu pilihan.
Antara lain: 1. Membuat data
2. Membuka data
3. Exit
3. Jika memilih
menu pilihan nomer satu, akan ada pilihan inputan nim, atau ketik 0 untuk
kembali ke menu.
4.
Jika nim sudah di masukkan, akan ada inputan nama.
5.
Jika nama sudah di masukkan, selanjutnya akan ada
inputan nilai pertama.
6.
Jika nilai pertama sudah di masukkan, akan ada
inputan nilai kedua.
7.
Jika nilai kedua sudah di masukkan, akan ada inputan
nilai ketiga.
8.
Jika nilai ketiga sudah di masukkan, akan ada
inputan nilai keempat.
9. Jika nilai
keempat sudah di masukkan, akan kembali ke menu utama, yaitu akan ada pilihan inputan
nim, atau ketik 0 untuk kembali ke menu.
10. Jika angka 0 yang di inputkan, maka menu
pilihan akan muncul lagi.
11. Jika memilih
menu pilihan nomer dua, cetak data nilai mahasiswa.
12. Selesai
Listing Program
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define EoF 0
FILE *F;
typedef
struct{
int
NIM;
char
Nama[20];
char
Nilai1[10];
char
Nilai2[10];
char
Nilai3[10];
char
Nilai4[10];
}
Mhs;
Mhs
dataMhs;
void buatData(int N) {
F=fopen("TEST.DAT","w");
if(F==NULL)
{
printf("FILE
TEST.DAT tidak dapat dibuat!");
exit(1);
}
else {
printf("\n");
printf("Masukan
NIM (atau ketik 0 untuk kembali ke Menu): ");
scanf("%d",&dataMhs.NIM);
while
(dataMhs.NIM!=EoF) {
printf("Masukan
Nama : ");
scanf("%s",dataMhs.Nama);
printf("Masukan
Nilai-1 : ");
scanf("%s",dataMhs.Nilai1);
printf("Masukan
Nilai-2 : ");
scanf("%s",dataMhs.Nilai2);
printf("Masukan
Nilai-3 : ");
scanf("%s",dataMhs.Nilai3);
printf("Masukan
Nilai-4 : ");
scanf("%s",dataMhs.Nilai4);
fwrite(&dataMhs,sizeof(dataMhs),1,F);printf("\n");
printf("Masukan
NIM (atau ketik 0 untuk kembali ke Menu): ");
scanf("%d",&dataMhs.NIM);
}
strcpy(dataMhs.Nama,"XXX");
fwrite(&dataMhs,sizeof(dataMhs),1,F);
}
fclose(F);
}
void bukaData(int N){
F=fopen("TEST.DAT","r");
if(F==NULL){
printf("file
TEST.DAT tidak dapat dibuka !");
exit(1);
}
else
{
fread(&dataMhs,sizeof(dataMhs),1,F);
if
(dataMhs.NIM==EoF) printf("data kosong!");
else
{
printf("
NIM NAMA NILAI-1 NILAI-2
NILAI-3 NILAI-4\n");
printf("==================================================================\n");
while(dataMhs.NIM!=EoF){
printf(" %d",dataMhs.NIM);
printf(" %5s",dataMhs.Nama);
printf(" %15s",dataMhs.Nilai1);
printf(" %9s",dataMhs.Nilai2);
printf("
%9s",dataMhs.Nilai3);
printf(" %9s\n",dataMhs.Nilai4);
fread(&dataMhs,sizeof(dataMhs),1,F);
}
}
}
}
main(){
int
N = 5;
int
pil = 1;
while(pil!=3)
{
printf("\nProgram
Penampungan Nilai Mahasiswa"); printf("\n");
printf(" =========== MENU =========== \n");
printf(" 1. Membuat Data\n");
printf(" 2. Membuka Data\n");
printf(" 3. Exit\n");
printf(" ============================ \n");printf("\n");
printf("Masukan
menu pilihan Anda (1-3): ");
scanf("%d",&pil);
switch(pil)
{
case 1 : buatData(N); break;
case 2 : bukaData(N);break;
}
}
}
Tampilan Program