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