Pascal | Viết chương trình thao tác trên danh sách sinh viên (có các thông tin Hoten, Maso, Loai, Toan, Ly, DTB)

Pascal | Viết chương trình thao tác trên danh sách sinh viên (có các thông tin Hoten, Maso, Loai, Toan, Ly, DTB)

Viết chương trình thao tác trên danh sách sinh viên (có các thông tin Hoten, Maso, Loai, Toan, Ly, DTB) :

+ Nhập / In danh sách sinh viên.

+ Sắp xếp danh sách sinh viên theo thứ tự tăng dần của điểm trung bình

+ Tìm điểm toán cao nhất trong danh sách, Số sinh viên có điểm toán = Max, Điểm bình quân môn toán của cả danh sách?

Hướng dẫn:

-          Xây dựng thủ tục nhập thông tin của danh sách sinh viên, trong đó sử dụng vòng lặp để nhập các thông tin của từng sinh viên thứ i.

Sử dụng Câu lệnh With để truy xuất đến thành phần của cấu trúc KSVIEN.

-          Quá trình sắp xếp bằng thuật toán sắp xếp đổi chổ trực tiếp. Xem bài hướng dẫn 3.4. Thuộc tính so sánh là dssv[i].DTB và dssv[j].DTB.

Không sử dụng phép gán thông thường mà phải sử dụng memcpy để tiến hành copy hai vùng nhớ  của các biến.

Source code chương trình:

{ 1. Khai bao cac kieu du lieu va bien can thiet }

PROGRAM Quan_Ly_SV;

Uses CRT;

Type    KSVIEN = RECORD

Hoten : String[18];

Maso, Loai: String[8];

Toan, Ly, DTB: Real;

End;

KDSSVIEN = Array[1..50] of KSVIEN;

Var

DS: KDSSVIEN;

N: Integer;


{ 2. Thu tuc nhap du lieu cho danh sach sinh vien }

Procedure NhapDSSV( Var dssv : KDSSVIEN; Var N:Integer);

Var i:Integer;

Begin

Repeat

Write(‘Nhap so sinh vien N= ‘);

Readln(N);

Until ( N>0) and ( N < 51);


      For i:=1 to N do 

With dssv[i] do

Begin

Write(‘Nhap ho ten :’);     Readln(Hoten);

Write(‘Ma so sv :’);           Readln(Maso);

Write(‘Toan, Ly :’);           Readln(Toan, Ly);

DTB := (Toan + Ly) / 2;

If DTB >=9 then

Loai:=‘Gioi’

Else if DTB >=7 then

Loai:=‘Kha’

Else if DTB >=5 then

Loai:=‘Binh’

Else

Loai:=‘Kem’;

 End;

      End;

     

{ 3. Thu tuc sap xep danh sach sinh vien tang dan theo diem trung binh  }

Procedure SapXepDSSV( Var dssv : KDSSVIEN; N : Integer);

Var i, j : Integer;

       Z : KSVIEN;

Begin

For i:=1 to N-1 do

For j:=i+1 to N do

     If dssv[i].DTB < dssv[j].DTB Then

     Begin

Z:= dssv [i];

dssv[i]:= dssv[j];

dssv[j]:=Z;

     End;

End;


{ 4. Thu tuc in danh sach sinh vien }

Procedure InDSSV( Var dssv : KDSSVIEN; N : Integer);

Var i : Integer;

Begin

      Writeln(‘In danh sach len man hinh ‘);

      Writeln(‘STT         HO VA TEN  MASO',

‘TOAN  LY  DTBLOAI’);

For i:=1 to N do

    With dssv[i] do

    Writeln(i:2, #32, Hoten, #32:19-Length(Hoten),

           Maso:8, Toan:4:1, Ly:4:1, DTB:4:1, Loai:5);

      End;


{ 5. Cac bai toan nho lien quan danh sach sinh vien }

Procedure  CacBaiToan (dssv : KDSSVIEN; N : Integer);

Var      i , Dem: Integer;

TBToan, Max: Real;

Begin

{ Tim diem toan cao nhat}

      Max:=dssv[1].Toan;

      For i:=1 to N do

if Max< dssv[i].Toan then

Max:=dssv[i].Toan;

Writeln( ‘Diem Toan cao nhat =’, Max:4:1);

     

{ Dem so sv co diem Toan =Max}

      Dem:=0;

      For i:=1 to N do

if dssv[i].Toan =Max then

Dem := Dem+1;

Writeln(‘Co ‘, Dem, ‘em co diem Toan = ‘, Max:4:1);


      { Tinh diem binh quan mon Toan cua ca danh sach }

      TBToan:=0;

      For i:=1 to N do

TBToan := TBToan + dssv[i].Toan;

TBToan:=TBToan/N;

Writeln(‘Diem binh quan mon Toan= ‘, TBToan:6:2);

      End;


{    Chương trình chính;      }

BEGIN

Clrscr;

NhapDSSV( ds, N );

SapXepDSSV( ds, N );

InDSSV( ds, N );

CacBaiToan( ds, N );

Readln;

END.
Bạn thấy bài viết này như thế nào?: 
Average: 10 (1 vote)
Ảnh của Tommy Tran

Tommy owner Express Magazine

Drupal Developer having 9+ year experience, implementation and having strong knowledge of technical specifications, workflow development. Ability to perform effectively and efficiently in team and individually. Always enthusiastic and interseted to study new technologies

  • Skype ID: tthanhthuy

Advertisement

 

jobsora

Dich vu khu trung tphcm

Dich vu diet chuot tphcm

Dich vu diet con trung

Quảng Cáo Bài Viết

 
Symantec Connect - Social Business Software powered by Drupal

Symantec Connect là 1 Social Business Software phát triển bằng Drupal

Symantec Connect is an enterprise class, community-driven, social business support and information portal for Symantec products, offering users of Symantec’s deep catalog of applications

Chức năng và cách hoạt động của ví điện tử

Chức năng và cách hoạt động của ví điện tử

Hiên nay, khi lướt net các bạn thấy cụm tù "Ví điện tử" xuất hiện nhiều trên mạng đặc biệt là các trang mua bán hàng trực tuyến, vậy "Ví điện tử" là gì ?

Cách Viết Nội Dung Hấp Dẫn Cho Landing Page Để Tối Ưu Tỷ Lệ Chuyển Đổi

Cách Viết Nội Dung Hấp Dẫn Cho Landing Page Để Tối Ưu Tỷ Lệ Chuyển Đổi

Landing page là một trang web đơn giản (một trang đơn), nhằm mục đích tránh sự lan man & tăng sự tập trung của người dùng truy cập web.

Công ty diệt chuột T&C

 

Diet con trung