Mã:
Program HappySoftGroup_diendantinhoc;
Uses Crt, Dos;
Const Menu : Array[1..5] Of String = ('Tao Co So Du Lieu ',
'Nhap Them HS Moi ',
'Tim Kiem, Sua Ho So',
'In Danh Sach HS ',
'Ket Thuc Cong Viec ');
Type Nguoi = Record
HoTen : String[25];
Diem : Array[1..4] Of Real;
Vt : Byte;
End;
Var HS : Array[1..100] Of Nguoi;
i, j, N : Byte;
D : Real;
F : File Of Nguoi;
Hocsinh : Nguoi;
Kt, Chon : Char;
Procedure Setcusor(bot, top : Byte);
Var regs : Registers;
Begin
regs.AH := 1;
regs.CH := bot;
regs.CL := top;
Intr($10, regs);
End;
Procedure WriteXY(x, y, MauC, MauN : Byte; ST : String);
Var Maucu : Byte;
Begin
Maucu := TextAttr;
TextColor(MauC);
TextBackground(MauN);
GotoXY(x, y);
Write(ST);
TextAttr := Maucu;
End;
Procedure DoubleBox(x1, y1, x2, y2 : Byte);
Var i : Byte;
Begin
GotoXY(x1, y1); Write(#201);
For i := x1+1 To x2-1 Do Write(#205);
GotoXY(x1, y2); Write(#200);
For i := x1+1 To x2-1 Do Write(#205);
GotoXY(x2, y1); Write(#187);
GotoXY(x2, y2); Write(#188);
For i := y1+1 To y2-1 Do
Begin
GotoXY(x1, i); Write(#186);
GotoXY(x2, i); Write(#186);
End;
End;
Procedure OpenFile;
Begin
Assign(F, 'HOSO.DAT');
{$I-} Reset(F); {$I+}
If IOResult <> 0 Then
Begin
Writeln('Khong co CSDL tren dia');
Exit;
End;
End;
Procedure Input;
Begin
Repeat
N := FileSize(F);
Write('Nhap HO TEN HS thu ',N+1,' : ');
With HocSinh Do
Begin
Readln(HoTen);
While Length(HoTen) < 20 Do HoTen := HoTen + ' ';
D := 0;
For j := 1 To 3 Do
Begin
Write('Diem mon ',j,': ');
Readln(Diem[j]);
D := D + Diem[j];
End;
D := D/3;
Diem[4] := D;
Vt := 1;
End;
Seek(F, FileSize(F));
Write(F, HocSinh);
Write('Co tiep tuc khong (C/K)? ');
Readln(Kt);
Until UpCase(Kt) = 'K';
End;
Procedure Sort;
Begin
OpenFile;
i := 0;
While Not EOF(F) Do
Begin
Read(F, HocSinh);
Inc(i);
HS[i] := HocSinh;
End;
N := i;
For i := 1 To N Do HS[i].VT := 1;
For i := 1 To N Do
For j := 1 To N Do
If HS[i].Diem[4] < HS[j].Diem[4] Then Inc(HS[i].VT);
For i := 1 To N Do
Begin
Seek(F, i-1);
Write(F, HS[i]);
End;
Close(F);
End;
Procedure NewFile;
Begin
Assign(F, 'HOSO.DAT');
{$I-} Reset(F); {$I+}
If IOResult = 0 Then
Begin
Write('CSDL se bi xoa. Co tiep tuc khong (C/K)? ');
Readln(Kt);
If UpCase(Kt) = 'K' Then
Begin
Close(F);
Exit;
End;
End;
ReWrite(F);
Input;
Close(F);
End;
Procedure AppendFile;
Begin
OpenFile;
Input;
Close(F);
End;
Procedure Print;
Begin
Sort;
OpenFile;
Clrscr;
Writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
Writeln('º DANH SACH HOC SINH º');
Writeln('ÌÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍ͹');
Writeln('º STT º Ho & Ten º Van º Toan º Eng º DTB º VT º');
Writeln('ÌÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍ͹');
i := 0;
Repeat
Begin
Read(F, HocSinh);
Inc(i);
With HocSinh Do
Begin
Write('º',i:3,' ³ ',HoTen,' ³');
For j := 1 To 4 Do Write(Diem[j]:5:1,' ³');
Writeln(Vt:3,' º');
End;
If not EOF(F) Then Writeln('Ç-Ä---Å----------------------Å------Å------Å------Å------Å------¶');
End;
Until EOF(F);
Writeln('ÈÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍͼ');
Writeln('Danh Sach nay co ',i,' hoc sinh');
Close(F);
Readln;
End;
Procedure Fix;
Begin
OpenFile;
Repeat
Write('+ Nhap so thu tu: ');
Readln(i);
Dec(i);
If i >= FileSize(F) Then
Begin
Write('=> Tap tin nay chi co ',FileSize(F),' record.');
Readln;
Close(F);
Exit;
End;
Writeln('ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»');
Writeln('º HOC SINH BAN CAN TIM º');
Writeln('ÌÍÍÍÍÍËÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍÍËÍÍÍÍÍ͹');
Writeln('º STT º Ho & Ten º Van º Toan º Eng º DTB º VT º');
Writeln('ÌÍÍÍÍÍÎÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍÍÎÍÍÍÍÍ͹');
Seek(F, i);
Read(F, HocSinh);
With HocSinh Do
Begin
Write('º',i:3,' º ',HoTen,' º');
For j := 1 To 4 Do Write(Diem[j]:5:1,' º');
Writeln(Vt:3,' º');
Write('ÈÍÍÍÍÍÊÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍÍÊÍÍÍÍÍͼ');
Writeln;
Writeln('+ Ban hay chon muc can sua: ');
Writeln(' 1. Sua Ho va Ten.');
Writeln(' 2. Sua Diem mon hoc.');
Write('=> Chon 1 hoac 2: ');
Readln(Chon);
Case Chon Of
'1' : Begin
Write(' + Nhap Ho va Ten: ');
Readln(HoTen);
While Length(HoTen) < 20 Do HoTen := HoTen + ' ';
End;
'2' : Begin
D := 0;
For j := 1 To 3 Do
Begin
Write(' + Diem mon ',j,': ');
Readln(Diem[j]);
D := D + Diem[j];
End;
D := D/3;
Diem[4] := D;
End;
End;
End;
If (Chon = '1') Or (Chon = '2') Then
Begin
Seek(F, i);
Write(F, HocSinh);
End;
Write('Co tiep tuc khong (C/K)? ');
Readln(Kt);
Clrscr;
Until UpCase(Kt) = 'K';
Close(F);
End;
Procedure Menu1(cd, dd, SoMenu : Byte);
Var chon, tam, i : Byte;
Kt : Char;
Begin
TextAttr := 16*Blue+Yellow;
chon := 1;
tam := 1;
Repeat
SetCusor(32,3);
ClrScr;
DoubleBox(cd-1, dd, cd+Length(Menu[1]), dd+1+SoMenu);
WriteXY(cd, dd-1, White, Red, 'Hay chon cac muc sau');
For i := 1 To SoMenu Do
WriteXY(cd, dd+i, Black, LightCyan, Menu[i]);
WriteXY(cd, dd+chon, White, Red, Menu[chon]);
tam := chon;
Kt := ReadKey;
If Kt = #13 Then
Begin
ClrScr;
SetCusor(9,10);
Case chon Of
1 : NewFile;
2 : AppendFile;
3 : Fix;
4 : Print;
5 : Exit;
End;
End;
If Kt = #0 Then Kt := ReadKey;
Case Kt Of
#72 : If chon > 1 Then Dec(chon) Else chon := SoMenu;
#80 : If chon < SoMenu Then Inc(chon) Else chon := 1;
End;
Until Kt = #27;
End;
BEGIN
Menu1(32,10,5);
END.
Chắc em sẽ thắc mắc các kí tự lạ kia là gì. Em yên tâm, nó là những ký tự trong bảng mã ascii thôi. Cứ copy rồi dán vào file .txt sau đó đổi đuôi thành .pas mở lên là sẽ biết rõ.
Xe nâng người Boom lift được Công Ty TNHH Trung thành phân phối chính hãng tại khu vực phía Bắc. Với chi phí đầu tư ban đầu thấp hơn rất nhiều so với các loại xe nâng dầu , xe nâng động cơ loại...
Xe nâng người được trung thành nhập khẩu giá tốt