高分求助。pascal 题目

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:12:22
读取文本文档
内容是学生姓名、语文、数学、英语、成绩
要求是 读取后计算总分 并按总分排序 标明名次 写入新的文本文档
先谢谢啦 要代码 最好能有解释

费了九牛二虎之力才写好,一定要选我啊!
program xxx(input,output);
type
rec=record
xm:string;
yw:integer;
sx:integer;
yu:integer;
cj:integer;
end;{定义一个记录类型,含名、语、数、外、总五项}
var
xs:array[1..100] of rec;{设最多100人,可改}
p,n:integer;
ch:char;
f:text;

procedure sort(l,r:integer);{快排,把整个记录按总成绩排一下}
var
i,j:integer;
x:integer;
y:rec;
begin
i:=l;
j:=r;
repeat
while xs[i].cj<x do inc(i);
while x<xs[j].cj do dec(j);
if i<=j then begin
y:=xs[i];
xs[i]:=xs[j];
xs[j]:=y;
inc(i);
dec(j);
end;
until i>j;
if i<r then sort(i,r);
if l<j then sort(l,j);
end;

begin
assign(f,'input.in');
reset(f);
read(n);
for p:=1 to n do begin
read(ch);
while not(eoln(f)) do xs[p]