Senin, 16 Maret 2015

PROGRAM KARTU HASIL STUDI MAHASISWA



uses crt;

type Tmatkul = record
  kode:string;
  matkul : string;
  sks:byte;
end;

type mhs=record
  nama :string;
  nim  : string;
  kode1 : string;
  mk:string;
  grade: char;
end;



var  arrmk:array [1..10] of tmatkul;
     arrmhs:array[1..10] of mhs;

  n, i, m:integer;
  p, nim1:string;


function menu(var pil:string):string;
  begin
  writeln('Menu');
  writeln('1. Input MatKul');
  writeln('2. Input Nilai Mahasiswa');
  writeln('3. Cetak MatKul');
  writeln('4. Cetak Rekap Nilai');
  writeln('5. Cetak KHS');
  writeln('6. Exit');
  write('Pilihan: ');readln(pil);
  end;


procedure cetakmk;
begin
  gotoxy(12,1);writeln('Daftar Mata Kuliah');
  gotoxy(12,2);writeln('__________________');
  writeln('|======================================|');
  writeln('|  Kode MK  |  Nama Mata kuliah  | SKS |');
  writeln('|======================================|');

for i:=1 to n do
   begin
     gotoxy(1,i+6);write('|           |                    |     |');
     gotoxy(4,i+6);write(arrmk[i].kode);
     gotoxy(16,i+6);write(arrmk[i].matkul);
     gotoxy(37,i+6);write(arrmk[i].sks);
   end;
    writeln('|======================================|');
  end;

procedure cetakrekap;
  begin
    gotoxy(25,1);writeln('Rekap Nilai Mahasiswa');
    gotoxy(25,2);writeln('_____________________');
    gotoxy(1,3);write('|   NIM   |      Nama      | Kode MK | Nama mata kuliah | Grade |');
    gotoxy(1,4);write('|=========|================|=========|==================|=======|');
    for i:=1  to m do
    begin
    gotoxy(1,4+i);write('|         |                |         |                  |       |');
    gotoxy(3,i+4);write(arrmhs[i].nim);
    gotoxy(13,i+4);write(arrmhs[i].nama);
    gotoxy(30,i+4);write(arrmhs[i].kode1);
    gotoxy(40,i+4);write(arrmhs[i].mk);
    gotoxy(62,i+4);write(arrmhs[i].grade);
    end;
    gotoxy(1,5+i);write('|===============================================================|');
    end;

procedure cetakkhs;
  begin
  write('NIM  :  ');readln(nim1);

    gotoxy(1,3);write('| Kode MK | Nama Mata Kuliah | Grade |');
    gotoxy(1,4);write('|=========|==================|=======|');
  for i:=1 to n do
  begin
  if nim1=arrmhs[i].nim then
    begin
    gotoxy(1,i+4);write('|         |                  |       |');
    gotoxy(1,2);write('Nama  : ',arrmhs[i].nama);
    gotoxy(3,i+4);write(arrmhs[i].kode1);
    gotoxy(13,i+4);write(arrmhs[i].mk);
    gotoxy(33,i+4);write(arrmhs[i].grade);
    gotoxy(1,i+4);write('|=========|==================|=======|');
    end;
  end;

end;

procedure inputmk;
begin
   write('Jumlah Mata Kuliah : ');readln(n);
  for i:=1 to n do
    begin
    writeln('Mata Kuliah [',i,']');
    write('Kode              : ');readln(arrmk[i].kode);
    write('Nama MatKul       : ');readln(arrmk[i].matkul);
    write('SKS               : ');readln(arrmk[i].sks);
    writeln;
    end;
end;

procedure  nilaimhs;
var x:integer;
  begin
  write('Masukkan jumlah mahasiswa: ');readln(m);

  for i:=1 to m do
  begin
  write('NIM  : ');readln(arrmhs[i].nim);
  write('Nama : ');readln(arrmhs[i].nama);
  write('Kode : ');readln(arrmhs[i].kode1);
   for x:=1 to n do
   begin
    if arrmhs[i].kode1<>arrmk[x].kode then arrmhs[i].mk:='Kode MK invalid'
   end;
   for x:=1 to n do
   begin
    if arrmhs[i].kode1=arrmk[x].kode then arrmhs[i].mk:=arrmk[x].matkul
   end;
  write('Nama MatKul : ',arrmhs[i].mk);
  writeln;
  write('Grade: ');readln(arrmhs[i].grade);
  writeln;
  end;
  end;




begin
repeat
clrscr;
menu(p);

case p of

'1' :  begin
        clrscr;
        inputmk;
       end;

'2' :  begin
        clrscr;
        nilaimhs;
       end;

'3' :  begin
        clrscr;
        cetakmk;
        readkey;
       end;

'4' :  begin
        clrscr;
        cetakrekap;
        readkey;
       end;

'5' :  begin
        clrscr;
        cetakkhs;
        readln;
       end;

'6' : exit;
end;

until p='6';

end.

Tidak ada komentar:

Posting Komentar