Xây dựng menu chương trình thực hiện những công việc sau: “Bài toán với dữ liệu kiểu bản ghi”. Viết chương trình quản lý điểm thi đại học của thí sinh bao gồm các trường sau: Số báo danh, họ tên, ngày sinh, giới tính, điểm toán, văn, tiếng anh, tổng điểm, xếp loại. Thực hiện các công việc sau: Nhập vào danh sách N thí sinh (không quá 30 người), bao gồm: Số báo danh, họ tên, ngày sinh, giới tính, điểm toán, văn, tiếng anh. Tính tổng điểm (=toán + văn + tiếng anh) và xếp loại cho từng thí sinh (nếu tổng điểm >=29, “thủ khoa”, tổng điểm >=25 ,“xuất sắc”, tổng điểm >=20, “có cơ hội đậu”, còn lại là “ôn lại năm sau”). 1. In ra danh sách thí sinh. 2. Đưa ra danh sách thí sinh có tổng điểm cao nhất. 3. Sắp xếp các bản ghi theo tổng điểm tăng dần. 4. Đưa ra danh sách thí sinh xếp loại xuất sắc. 5. Đưa ra danh sách thí sinh nam có điểm trung bình 2 môn toán, văn trên 7.5 6. Viết chức năng tra cứu theo số báo danh của thí sinh. Ví dụ: Khi nhập vào số báo danh X thì chương trình sẽ tìm và in ra màn hình thông tin đầy đủ của thí sinh đó.

1 câu trả lời

uses crt;
type hs=record
        sbd:longint;
        hoten,gtinh,nsinh:string;
        toan,van,anh:extended;
end;
var a:array[0..50]of hs;
    i,n,s,j:longint;
    max:extended;
    tg:hs;
begin
        clrscr;
        write('so hoc sih:');readln(n); max:=0;
        for i:=1 to n do
                begin
                        write('sbd:'); readln(a[i].sbd);
                        write('ho ten:'); readln(a[i].hoten);
                        write('ngay sinh:'); readln(a[i].nsinh);
                        write('gioi tinh:'); readln(a[i].gtinh);
                        write('diem toan:'); readln(a[i].toan);
                        write('diem van:'); readln(a[i].van);
                        write('diem anh:'); readln(a[i].anh);
                        if ((a[i].toan)+(a[i].van)+(a[i].anh))>max then
                        max:=((a[i].toan)+(a[i].van)+(a[i].anh));
                end;
        for i:=1 to n do
             begin
                        writeln('sbd: ',a[i].sbd:0);
                        writeln('ho ten: ',a[i].hoten);
                        writeln('ngay sinh: ',a[i].nsinh);
                        writeln('gioi tinh: ',a[i].gtinh);
                        writeln('diem toan: ',a[i].toan:1:1);
                        writeln('diem van: ',a[i].van:1:1);
                        writeln('diem anh: ',a[i].anh:1:1);
             end;
        for i:=1 to n do
                if ((a[i].toan)+(a[i].van)+(a[i].anh))=max then
                begin
                        writeln('sbd: ',a[i].sbd:0);
                        writeln('ho ten: ',a[i].hoten);
                        writeln('ngay sinh: ',a[i].nsinh);
                        writeln('gioi tinh: ',a[i].gtinh);
                        writeln('diem toan: ',a[i].toan:1:1);
                        writeln('diem van: ',a[i].van:1:1);
                        writeln('diem anh: ',a[i].anh:1:1);
                end;
        for i:=1 to n-1 do
                for j:=i+1 to n do
                        if ((a[i].toan)+(a[i].van)+(a[i].anh))>((a[j].toan)+(a[j].van)+(a[j].anh)) then
                        begin
                                tg:=a[i]; a[i]:=a[j]; a[j]:=tg;
                        end;
        for i:=1 to n do
                begin
                        writeln('sbd: ',a[i].sbd:0);
                        writeln('ho ten: ',a[i].hoten);
                        writeln('ngay sinh: ',a[i].nsinh);
                        writeln('gioi tinh: ',a[i].gtinh);
                        writeln('diem toan: ',a[i].toan:1:1);
                        writeln('diem van: ',a[i].van:1:1);
                        writeln('diem anh: ',a[i].anh:1:1);
                end;
        for i:=1 to n do
                begin
                        if (((a[i].toan)+(a[i].van)+(a[i].anh))>=25) and
                        (((a[i].toan)+(a[i].van)+(a[i].anh))<29) then
                             begin
                                writeln('sbd: ',a[i].sbd:0);
                                writeln('ho ten: ',a[i].hoten);
                                writeln('ngay sinh: ',a[i].nsinh);
                                writeln('gioi tinh: ',a[i].gtinh);
                                writeln('diem toan: ',a[i].toan:1:1);
                                writeln('diem van: ',a[i].van:1:1);
                                writeln('diem anh: ',a[i].anh:1:1);
                             end;
                end;
        for i:=1 to n do
                begin
                        if (((a[i].van)+(a[i].toan))/2)>7.5 then begin
                                writeln('sbd: ',a[i].sbd:0);
                                writeln('ho ten: ',a[i].hoten);
                                writeln('ngay sinh: ',a[i].nsinh);
                                writeln('gioi tinh: ',a[i].gtinh);
                                writeln('diem toan: ',a[i].toan:1:1);
                                writeln('diem van: ',a[i].van:1:1);
                                writeln('diem anh: ',a[i].anh:1:1);
                        end;
                end;
        write('tra sbd:');readln(s);
        for i:=1 to n do
                if a[i].sbd = s then begin
                        writeln('sbd: ',a[i].sbd:0);
                        writeln('ho ten: ',a[i].hoten);
                        writeln('ngay sinh: ',a[i].nsinh);
                        writeln('gioi tinh: ',a[i].gtinh);
                        writeln('diem toan: ',a[i].toan:1:1);
                        writeln('diem van: ',a[i].van:1:1);
                        writeln('diem anh: ',a[i].anh:1:1);
                end;
        readln;
        readln;
end.

Câu hỏi trong lớp Xem thêm