Консультация № 198593
16.05.2020, 11:14
0.00 руб.
0 8 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
На делфи написать программу: Описать переменную Экзаменационная ведомость (предмет, № группы, № зачетной книжки, фамилия, имя, отчество студента, его оценки по итогам текущей сессии). Определить отличников, хорошистов, троечников и двоечников.

Обсуждение

давно
Старший Модератор
31795
6196
16.05.2020, 21:43
общий
Адресаты:
Задавая вопрос, у Вас перед глазами была памятка:
Информация от Администратора рассылки:
Две чрезвычайно популярные IDE для визуального программирования с помощью Object Pascal.
Delphi - коммерческая.
Lazaus - OpenSource, бесплатная.
В разных версиях различаются кодировки русского языка:
Delphi 2007 и ниже - Windows1251
Delphi2009 и выше - UTF-16
Lazarus 0.9.26 и выше - UTF-8
Внимание! При подаче вопроса в данную рассылку, не забывайте указывать требуемую среду разработки, [b]вид приложения (консоль, окно), [/b]при необходимости - операционную систему. Если данные параметры не указаны, эксперты оставляют за собой право выбирать их на своё усмотрение(по умолчанию - стандарт языка Pascal).
ps: Если вопрос задает эксперт раздела, на такой вопрос нужно отвечать рекомендациями, а не полным решением.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
403976
5
16.05.2020, 21:50
общий
Адресаты:
Приношу свои извинения, что нет указания по поводу версии делфи.
давно
Старший Модератор
31795
6196
16.05.2020, 22:02
общий
Адресаты:
Я Вам специально выделил: [b]консоль, окно[/b] .
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
403976
5
16.05.2020, 22:21
общий
Адресаты:
А, тогда ещё раз прошу прощения
давно
Старший Модератор
31795
6196
16.05.2020, 22:31
общий
Адресаты:
Я Вас, уже дважды простил, Но вопрос остается: Вам нужен код Delphi - консоль или окно.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Посетитель
403976
5
16.05.2020, 22:36
общий
Адресаты:
Ну как говорится: " Бог любит троицу ". А в принципе нужна консоль.
давно
Старший Модератор
31795
6196
26.05.2020, 00:51
общий
это ответ
Здравствуйте, CTRL+ALT+DEL!

Вот Вам код генератора списка студентов:
[code lang=pascal h=400]program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,Classes;
const
n=15;{размер записи}
m=5;{колво оценок}
k=50;{колво студентов}
function SetName(a,b:string):string;
begin
if a[length(a)]='й' then a[length(a)]:='е'
else a:=a+'о';
SetName:=a+b;
end;
function SetFormat(a:string;b:integer):string;
begin
while length(a)<b do a:=a+' ';
SetFormat:=a;
end;
var
a,b,c,d:string;
FileOut:TextFile;
FemaleName,{}
MaleName,{}
CardNumber,{}
GroupNumber,{}
Subject,{}
Students:TStringList;{}
indexCardNumber,indexSubject:integer;
x,y,z:integer;{}
begin{TODO -oUser -cConsole Main : Insert code here }
{формируем список предметов}
Subject:=TStringList.Create;
Subject.Sorted:=True;
Subject.Add('Алгебра');
Subject.Add('Геометрия');
Subject.Add('Физика');
Subject.Add('Химия');
Subject.Add('Биология');
Subject.Add('География');
Subject.Add('Астрология');
Subject.Add('Литература');
Subject.Add('Право');
Subject.Add('История');
Subject.Add('Экономика');
Subject.Add('Искуство');
Subject.Add('Психология');
Subject.Add('Археология');
Subject.SaveToFile('SubjectList.txt');
{формируем список имен студентов}
MaleName:=TStringList.Create;
MaleName.Sorted:=True;
MaleName.Add('Андрей');
MaleName.Add('Антон');
MaleName.Add('Василий');
MaleName.Add('Владимир');
MaleName.Add('Георгий');
MaleName.Add('Дмитрий');
MaleName.Add('Захар');
MaleName.Add('Иван');
MaleName.Add('Константин');
MaleName.Add('Михаил');
MaleName.Add('Николай');
MaleName.Add('Федор');
MaleName.Add('Харитон');
MaleName.Add('Эдуард');
{формируем список имен студенток}
FemaleName:=TStringList.Create;
FemaleName.Sorted:=True;
FemaleName.Add('Анна');
FemaleName.Add('Алина');
FemaleName.Add('Василиса');
FemaleName.Add('Дарья');
FemaleName.Add('Марья');
FemaleName.Add('Наташа');
FemaleName.Add('Катерина');
FemaleName.Add('Людмила');
FemaleName.Add('Оксана');
FemaleName.Add('Янна');
FemaleName.Add('Маргарита');
FemaleName.Add('Ирина');
{формирование уникального списка номеров зачеток}
CardNumber:=TStringList.Create;
CardNumber.Sorted:=True;
Randomize;
a:='AA'+chr(ord('0')+random(10))+
chr(ord('0')+random(10))+
chr(ord('0')+random(10));{}
for indexCardNumber:=0 to k do
begin
repeat
b:=a+chr(ord('0')+random(10))+chr(ord('0')+random(10))+
chr(ord('0')+random(10))+chr(ord('0')+random(10));{}
until not CardNumber.Find(b,y);
CardNumber.Add(b);
end;
CardNumber.SaveToFile('NameCardList.txt');
{формирование группы}
GroupNumber:=TStringList.Create;
GroupNumber.Sorted:=True;
a:='Group';
for x:=0 to m do
begin{}
repeat
b:=a+chr(ord('0')+random(10))+
chr(ord('0')+random(10));
until not GroupNumber.Find(b,y);
GroupNumber.Add(b);
end;{}
{формирование оценок}
d:='2';
c:='2';
x:=2;
z:=CardNumber.Count*Subject.Count*m+100;
while(z>0)and(c<'6') do
begin
y:=random(length(d));
insert(c,d,y);
if length(d)>=x then
begin
x:=x*x*5;
c:=chr(ord(c[1])+1);
end;
dec(z);
end;
c:='5';
while z>0 do
begin
y:=random(length(d));
insert(c,d,y);
dec(z);
end;
{}
Students:=TStringList.Create;
for indexCardNumber:=0 to CardNumber.Count-1 do
begin
z:=random(1000);
if odd(z) then
begin{male}
a:=MaleName[random(MaleName.Count)];
b:=SetName(MaleName[random(MaleName.Count)],'в');
c:=SetName(MaleName[random(MaleName.Count)],'вич');
end
else
begin{female}
a:=FemaleName[random(FemaleName.Count)];
b:=SetName(MaleName[random(MaleName.Count)],'ва');
c:=SetName(MaleName[random(MaleName.Count)],'вна');
end;
a:=SetFormat(GroupNumber[random(GroupNumber.Count)],n)+
SetFormat(CardNumber[indexCardNumber],n)+
SetFormat(b,n)+SetFormat(a,n)+SetFormat(c,n);
Students.Add(a);
end;
Students.SaveToFile('StudentsList.txt');
{извлечение случайных оценок}
AssignFile(FileOut,'StudentsBase.txt');
Rewrite(FileOut);
for indexSubject:=0 to Subject.Count-1 do
for indexCardNumber:=0 to Students.Count-1 do
begin
a:='';
for x:=1 to m do
begin
y:=random(length(d)+1);
a:=a+d[y];
delete(d,y,1);
end;
Writeln(FileOut,SetFormat(Subject[indexSubject],n)+Students[indexCardNumber]+a);
end;
CloseFile(FileOut);
end.[/code]
Он создает ведомость:
Алгебра Group14 AA7200007 Федоров Федор Константинович 44545
Алгебра Group44 AA7200057 Антонов Владимир Владимирович 44554
Алгебра Group51 AA7200516 Владимирова Алина Федоровна 55444
Алгебра Group16 AA7200944 Иванов Михаил Иванович 54545
Алгебра Group70 AA7201338 Андреев Дмитрий Василиевич 55445
Алгебра Group70 AA7201471 Владимиров Владимир Андреевич 54444
Алгебра Group14 AA7201626 Владимиров Харитон Захарович 55544
Алгебра Group44 AA7201655 Николаева Янна Ивановна 44455
Алгебра Group16 AA7201881 Михаилова Алина Георгиевна 54455
Алгебра Group16 AA7202106 Эдуардов Эдуард Василиевич 44454
Алгебра Group16 AA7202522 Василиев Иван Антонович 55455
Алгебра Group14 AA7202978 Иванова Василиса Харитоновна 44555
Алгебра Group70 AA7202980 Федорова Катерина Василиевна 44454
Алгебра Group49 AA7203032 Захаров Василий Георгиевич 44444
Алгебра Group16 AA7203290 Иванова Оксана Федоровна 45554
Алгебра Group14 AA7203331 Антонова Оксана Эдуардовна 45445
Алгебра Group51 AA7203617 Харитонов Константин Николаевич 44445
Алгебра Group16 AA7203675 Георгиева Анна Николаевна 45455
Алгебра Group44 AA7203806 Владимиров Харитон Дмитриевич 45544
Алгебра Group70 AA7203905 Федорова Дарья Захаровна 54454
Алгебра Group51 AA7204093 Эдуардова Маргарита Эдуардовна 45545
Алгебра Group51 AA7204335 Константинов Василий Константинович 54455
Алгебра Group14 AA7204391 Эдуардова Наташа Эдуардовна 45554
Алгебра Group16 AA7204640 Захарова Янна Михаиловна 54455
Алгебра Group14 AA7204702 Антонов Владимир Андреевич 55544
Алгебра Group70 AA7204838 Эдуардова Алина Федоровна 45554
Алгебра Group44 AA7205292 Дмитриев Николай Антонович 44555
Алгебра Group44 AA7205397 Андреева Ирина Дмитриевна 44555
Алгебра Group44 AA7205677 Василиев Харитон Михаилович 45444
Алгебра Group16 AA7205701 Харитонов Василий Харитонович 54545
Алгебра Group16 AA7205820 Захаров Василий Харитонович 44555
Алгебра Group16 AA7205960 Андреева Оксана Ивановна 44544
Алгебра Group70 AA7206240 Константинова Наташа Константиновна 54555
Алгебра Group16 AA7206412 Михаилова Оксана Владимировна 44444
Алгебра Group16 AA7206468 Василиев Михаил Эдуардович 54545
Алгебра Group14 AA7206496 Федоров Эдуард Владимирович 45445
Алгебра Group16 AA7207037 Иванова Наташа Федоровна 44444
Алгебра Group14 AA7207097 Константинова Людмила Федоровна 34545
Алгебра Group14 AA7207601 Михаилов Иван Георгиевич 45555
Алгебра Group49 AA7207753 Захаров Константин Захарович 44545
Алгебра Group51 AA7207764 Михаилова Василиса Владимировна 44455
Алгебра Group16 AA7208173 Николаев Харитон Эдуардович 54454
Алгебра Group16 AA7208179 Антонов Харитон Дмитриевич 45544
Алгебра Group51 AA7208287 Антонов Федор Георгиевич 44454
Алгебра Group14 AA7208547 Михаилов Захар Захарович 44555
Алгебра Group51 AA7208707 Георгиев Захар Эдуардович 54444
Алгебра Group16 AA7208900 Иванова Ирина Эдуардовна 55455
Алгебра Group44 AA7208993 Харитонов Антон Михаилович 44454
Алгебра Group51 AA7209192 Харитонова Ирина Федоровна 55554
Алгебра Group44 AA7209545 Владимирова Василиса Дмитриевна 45444
Алгебра Group51 AA7209844 Иванов Василий Василиевич 55444
Археология Group14 AA7200007 Федоров Федор Константинович 54554
Археология Group44 AA7200057 Антонов Владимир Владимирович 54444
Археология Group51 AA7200516 Владимирова Алина Федоровна 44444
Археология Group16 AA7200944 Иванов Михаил Иванович 44455
Археология Group70 AA7201338 Андреев Дмитрий Василиевич 55545
Археология Group70 AA7201471 Владимиров Владимир Андреевич 54444
Археология Group14 AA7201626 Владимиров Харитон Захарович 45455
Археология Group44 AA7201655 Николаева Янна Ивановна 34444
Археология Group16 AA7201881 Михаилова Алина Георгиевна 45555
Археология Group16 AA7202106 Эдуардов Эдуард Василиевич 55445
Археология Group16 AA7202522 Василиев Иван Антонович 45455
Археология Group14 AA7202978 Иванова Василиса Харитоновна 54454
Археология Group70 AA7202980 Федорова Катерина Василиевна 35554
Археология Group49 AA7203032 Захаров Василий Георгиевич 44444
Археология Group16 AA7203290 Иванова Оксана Федоровна 44445
Археология Group14 AA7203331 Антонова Оксана Эдуардовна 45455
Археология Group51 AA7203617 Харитонов Константин Николаевич 55555
Археология Group16 AA7203675 Георгиева Анна Николаевна 55444
Археология Group44 AA7203806 Владимиров Харитон Дмитриевич 54554
Археология Group70 AA7203905 Федорова Дарья Захаровна 45554
Археология Group51 AA7204093 Эдуардова Маргарита Эдуардовна 45445
Археология Group51 AA7204335 Константинов Василий Константинович 54445
Археология Group14 AA7204391 Эдуардова Наташа Эдуардовна 55554
Археология Group16 AA7204640 Захарова Янна Михаиловна 45454
Археология Group14 AA7204702 Антонов Владимир Андреевич 54544
Археология Group70 AA7204838 Эдуардова Алина Федоровна 54455
Археология Group44 AA7205292 Дмитриев Николай Антонович 54454
Археология Group44 AA7205397 Андреева Ирина Дмитриевна 44544
Археология Group44 AA7205677 Василиев Харитон Михаилович 45544
Археология Group16 AA7205701 Харитонов Василий Харитонович 55455
Археология Group16 AA7205820 Захаров Василий Харитонович 45454
Археология Group16 AA7205960 Андреева Оксана Ивановна 55455
Археология Group70 AA7206240 Константинова Наташа Константиновна 44555
Археология Group16 AA7206412 Михаилова Оксана Владимировна 54445
Археология Group16 AA7206468 Василиев Михаил Эдуардович 44555
Археология Group14 AA7206496 Федоров Эдуард Владимирович 54544
Археология Group16 AA7207037 Иванова Наташа Федоровна 44455
Археология Group14 AA7207097 Константинова Людмила Федоровна 45454
Археология Group14 AA7207601 Михаилов Иван Георгиевич 45555
Археология Group49 AA7207753 Захаров Константин Захарович 55555
Археология Group51 AA7207764 Михаилова Василиса Владимировна 44544
Археология Group16 AA7208173 Николаев Харитон Эдуардович 44455
Археология Group16 AA7208179 Антонов Харитон Дмитриевич 55444
Археология Group51 AA7208287 Антонов Федор Георгиевич 45544
Археология Group14 AA7208547 Михаилов Захар Захарович 55454
Археология Group51 AA7208707 Георгиев Захар Эдуардович 54445
Археология Group16 AA7208900 Иванова Ирина Эдуардовна 44454
Археология Group44 AA7208993 Харитонов Антон Михаилович 44554
Археология Group51 AA7209192 Харитонова Ирина Федоровна 55445
Археология Group44 AA7209545 Владимирова Василиса Дмитриевна 44455
Археология Group51 AA7209844 Иванов Василий Василиевич 55455
Астрология Group14 AA7200007 Федоров Федор Константинович 45445
Астрология Group44 AA7200057 Антонов Владимир Владимирович 44455
Астрология Group51 AA7200516 Владимирова Алина Федоровна 45445
Астрология Group16 AA7200944 Иванов Михаил Иванович 55544
Астрология Group70 AA7201338 Андреев Дмитрий Василиевич 55554
Астрология Group70 AA7201471 Владимиров Владимир Андреевич 55454
Астрология Group14 AA7201626 Владимиров Харитон Захарович 54555
Астрология Group44 AA7201655 Николаева Янна Ивановна 45445
Астрология Group16 AA7201881 Михаилова Алина Георгиевна 54444
Астрология Group16 AA7202106 Эдуардов Эдуард Василиевич 45544
Астрология Group16 AA7202522 Василиев Иван Антонович 44444
Астрология Group14 AA7202978 Иванова Василиса Харитоновна 54544
Астрология Group70 AA7202980 Федорова Катерина Василиевна 55445
Астрология Group49 AA7203032 Захаров Василий Георгиевич 45445
Астрология Group16 AA7203290 Иванова Оксана Федоровна 55545
Астрология Group14 AA7203331 Антонова Оксана Эдуардовна 55455
Астрология Group51 AA7203617 Харитонов Константин Николаевич 45544
Астрология Group16 AA7203675 Георгиева Анна Николаевна 44554
Астрология Group44 AA7203806 Владимиров Харитон Дмитриевич 54455
Астрология Group70 AA7203905 Федорова Дарья Захаровна 45454
Астрология Group51 AA7204093 Эдуардова Маргарита Эдуардовна 44555
Астрология Group51 AA7204335 Константинов Василий Константинович 45444
Астрология Group14 AA7204391 Эдуардова Наташа Эдуардовна 44545
Астрология Group16 AA7204640 Захарова Янна Михаиловна 45445
Астрология Group14 AA7204702 Антонов Владимир Андреевич 54444
Астрология Group70 AA7204838 Эдуардова Алина Федоровна 54454
Астрология Group44 AA7205292 Дмитриев Николай Антонович 45554
Астрология Group44 AA7205397 Андреева Ирина Дмитриевна 54554
Астрология Group44 AA7205677 Василиев Харитон Михаилович 54545
Астрология Group16 AA7205701 Харитонов Василий Харитонович 44445
Астрология Group16 AA7205820 Захаров Василий Харитонович 45554
Астрология Group16 AA7205960 Андреева Оксана Ивановна 44554
Астрология Group70 AA7206240 Константинова Наташа Константиновна 45555
Астрология Group16 AA7206412 Михаилова Оксана Владимировна 45444
Астрология Group16 AA7206468 Василиев Михаил Эдуардович 44445
Астрология Group14 AA7206496 Федоров Эдуард Владимирович 44454
Астрология Group16 AA7207037 Иванова Наташа Федоровна 54445
Астрология Group14 AA7207097 Константинова Людмила Федоровна 44445
Астрология Group14 AA7207601 Михаилов Иван Георгиевич 44455
Астрология Group49 AA7207753 Захаров Константин Захарович 44555
Астрология Group51 AA7207764 Михаилова Василиса Владимировна 45554
Астрология Group16 AA7208173 Николаев Харитон Эдуардович 54545
Астрология Group16 AA7208179 Антонов Харитон Дмитриевич 55454
Астрология Group51 AA7208287 Антонов Федор Георгиевич 45554
Астрология Group14 AA7208547 Михаилов Захар Захарович 54444
Астрология Group51 AA7208707 Георгиев Захар Эдуардович 44554
Астрология Group16 AA7208900 Иванова Ирина Эдуардовна 44545
Астрология Group44 AA7208993 Харитонов Антон Михаилович 45445
Астрология Group51 AA7209192 Харитонова Ирина Федоровна 55445
Астрология Group44 AA7209545 Владимирова Василиса Дмитриевна 45444
Астрология Group51 AA7209844 Иванов Василий Василиевич 54544
Биология Group14 AA7200007 Федоров Федор Константинович 54455
Биология Group44 AA7200057 Антонов Владимир Владимирович 55545
Биология Group51 AA7200516 Владимирова Алина Федоровна 44444
Биология Group16 AA7200944 Иванов Михаил Иванович 55544
Биология Group70 AA7201338 Андреев Дмитрий Василиевич 54554
Биология Group70 AA7201471 Владимиров Владимир Андреевич 55455
Биология Group14 AA7201626 Владимиров Харитон Захарович 54455
Биология Group44 AA7201655 Николаева Янна Ивановна 44454
Биология Group16 AA7201881 Михаилова Алина Георгиевна 55445
Биология Group16 AA7202106 Эдуардов Эдуард Василиевич 54444
Биология Group16 AA7202522 Василиев Иван Антонович 44554
Биология Group14 AA7202978 Иванова Василиса Харитоновна 55545
Биология Group70 AA7202980 Федорова Катерина Василиевна 45545
Биология Group49 AA7203032 Захаров Василий Георгиевич 44544
Биология Group16 AA7203290 Иванова Оксана Федоровна 55555
Биология Group14 AA7203331 Антонова Оксана Эдуардовна 54545
Биология Group51 AA7203617 Харитонов Константин Николаевич 45545
Биология Group16 AA7203675 Георгиева Анна Николаевна 44444
Биология Group44 AA7203806 Владимиров Харитон Дмитриевич 45444
Биология Group70 AA7203905 Федорова Дарья Захаровна 44554
Биология Group51 AA7204093 Эдуардова Маргарита Эдуардовна 45455
Биология Group51 AA7204335 Константинов Василий Константинович 44555
Биология Group14 AA7204391 Эдуардова Наташа Эдуардовна 44554
Биология Group16 AA7204640 Захарова Янна Михаиловна 45454
Биология Group14 AA7204702 Антонов Владимир Андреевич 44454
Биология Group70 AA7204838 Эдуардова Алина Федоровна 54454
Биология Group44 AA7205292 Дмитриев Николай Антонович 45545
Биология Group44 AA7205397 Андреева Ирина Дмитриевна 45544
Биология Group44 AA7205677 Василиев Харитон Михаилович 54444
Биология Group16 AA7205701 Харитонов Василий Харитонович 44444
Биология Group16 AA7205820 Захаров Василий Харитонович 44544
Биология Group16 AA7205960 Андреева Оксана Ивановна 55555
Биология Group70 AA7206240 Константинова Наташа Константиновна 44454
Биология Group16 AA7206412 Михаилова Оксана Владимировна 44555
Биология Group16 AA7206468 Василиев Михаил Эдуардович 44444
Биология Group14 AA7206496 Федоров Эдуард Владимирович 43455
Биология Group16 AA7207037 Иванова Наташа Федоровна 54555
Биология Group14 AA7207097 Константинова Людмила Федоровна 55555
Биология Group14 AA7207601 Михаилов Иван Георгиевич 44554
Биология Group49 AA7207753 Захаров Константин Захарович 54444
Биология Group51 AA7207764 Михаилова Василиса Владимировна 45545
Биология Group16 AA7208173 Николаев Харитон Эдуардович 45444
Биология Group16 AA7208179 Антонов Харитон Дмитриевич 45544
Биология Group51 AA7208287 Антонов Федор Георгиевич 45545
Биология Group14 AA7208547 Михаилов Захар Захарович 44454
Биология Group51 AA7208707 Георгиев Захар Эдуардович 55544
Биология Group16 AA7208900 Иванова Ирина Эдуардовна 55444
Биология Group44 AA7208993 Харитонов Антон Михаилович 44444
Биология Group51 AA7209192 Харитонова Ирина Федоровна 54544
Биология Group44 AA7209545 Владимирова Василиса Дмитриевна 54554
Биология Group51 AA7209844 Иванов Василий Василиевич 45455

при разных вариантах формирования оценок: он делает всех либо отличниками, либо хорошистами, либо троишниками.
ps: пару дней выложу анализатор+равномерное распределение оценок.
Удачи!
5
Спасибо большое!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Старший Модератор
31795
6196
29.05.2020, 23:16
общий
Адресаты:
[code lang=pascal]unit myType;
interface
const
n=15;
type
tStr=string[n];
tStudent=record
Subject,{предмет}
Group,{группа}
Card,{номер зачетки}
SurName,{фамилия}
Name,{имя}
MiddleName:tStr;{отчество}
Grade:char;{оценка}
end;
FileType=file of tStudent;
implementation
end.[/code]
анализатор:
[code lang=pascal]program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
Classes,
myType in 'myType.pas';
var
FileInput:FileType;
GradeList,
StudentList,{card,group,surname,name,middlename}
ShowList{}:TStringList;
StudentItem:tStudent;
a:string;
i,j,g:integer;
h:char;
function SpaceFree(a:string):string;
begin
while pos(' ',a)>0 do delete(a,pos(' ',a),1);
SpaceFree:=a;
end;
begin
{ TODO -oUser -cConsole Main : Insert code here }
{}
GradeList:=TStringList.Create;
ShowList:=TStringList.Create;
StudentList:=TStringList.Create;
{}
GradeList.Sorted:=False;
ShowList.Sorted:=True;
StudentList.Sorted:=True;
{}
GradeList.Add('Двоешники');
GradeList.Add('Троешники');
GradeList.Add('Хорошисты');
Gradelist.Add('Отличники');
{}
AssignFile(FileInput,'StudentsBase.txt');
Reset(FileInput);
while not Eof(FileInput)do
begin
read(FileInput,StudentItem);
StudentList.Add(StudentItem.Grade+
StudentItem.Card+
StudentItem.SurName+
StudentItem.Name+
StudentItem.MiddleName);
end;
{}
CloseFile(FileInput);
StudentList.SaveToFile('StudentList-1.txt');
{}
g:=0;
h:='2';
while g<GradeList.Count do
begin
Writeln(GradeList[g]:n);
for i:=0 to StudentList.Count-1 do
begin
a:=StudentList[i];
if a[1]=h then
begin
j:=0;
while(j<ShowList.Count)and(pos(ShowList[j],a)=0)do inc(j);
if j=ShowList.Count then
begin
Writeln(copy(a,2,length(a)));
ShowList.Add(SpaceFree(copy(a,2,n)));
end;
end;
end;
h:=chr(ord(h)+1);
inc(g);
end;
{}
GradeList.Free;
ShowList.Free;
StudentList.Free;
readln;
end.[/code]

генератор:
[code lang=pascal]program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
Classes,
myType in 'myType.pas';
const
k=50;{колво студентов}
function SetName(a,b:string):string;
begin
if a[length(a)]='й' then a[length(a)]:='е'
else a:=a+'о';
SetName:=a+b;
end;
function SetFormat(a:string;b:integer):string;
begin
while length(a)<b do a:=a+' ';
SetFormat:=a;
end;
var
a,b,c,d:string;
FemaleName,{}
MaleName,{}
CardNumber,{}
GroupNumber,{}
Subject,{}
Students:TStringList;{}
StudentItem:tStudent;{}
FileOut:FileType;{}
indexCardNumber,indexSubject:integer;
x,y,z:integer;{}
begin{TODO -oUser -cConsole Main : Insert code here }
{формируем список предметов}
Subject:=TStringList.Create;
Subject.Sorted:=True;
Subject.Add('Алгебра');
Subject.Add('Геометрия');
Subject.Add('Физика');
Subject.Add('Химия');
Subject.Add('Биология');
Subject.Add('География');
Subject.Add('Астрология');
Subject.Add('Литература');
Subject.Add('Право');
Subject.Add('История');
Subject.Add('Экономика');
Subject.Add('Искуство');
Subject.Add('Психология');
Subject.Add('Археология');
{формируем список имен студентов}
MaleName:=TStringList.Create;
MaleName.Sorted:=True;
MaleName.Add('Андрей');
MaleName.Add('Антон');
MaleName.Add('Василий');
MaleName.Add('Владимир');
MaleName.Add('Георгий');
MaleName.Add('Дмитрий');
MaleName.Add('Захар');
MaleName.Add('Иван');
MaleName.Add('Константин');
MaleName.Add('Михаил');
MaleName.Add('Николай');
MaleName.Add('Федор');
MaleName.Add('Харитон');
MaleName.Add('Эдуард');
{формируем список имен студенток}
FemaleName:=TStringList.Create;
FemaleName.Sorted:=True;
FemaleName.Add('Анна');
FemaleName.Add('Алина');
FemaleName.Add('Василиса');
FemaleName.Add('Дарья');
FemaleName.Add('Марья');
FemaleName.Add('Наташа');
FemaleName.Add('Катерина');
FemaleName.Add('Людмила');
FemaleName.Add('Оксана');
FemaleName.Add('Янна');
FemaleName.Add('Маргарита');
FemaleName.Add('Ирина');
{формирование уникального списка номеров зачеток}
CardNumber:=TStringList.Create;
CardNumber.Sorted:=True;
Randomize;
a:='AA'+chr(ord('0')+random(10))+
chr(ord('0')+random(10))+
chr(ord('0')+random(10));{}
for indexCardNumber:=1 to k do
begin
repeat
b:=a+chr(ord('0')+random(10))+chr(ord('0')+random(10))+
chr(ord('0')+random(10))+chr(ord('0')+random(10));{}
until not CardNumber.Find(b,y);
CardNumber.Add(b);
end;
{формирование группы}
GroupNumber:=TStringList.Create;
GroupNumber.Sorted:=True;
a:='Group';
for x:=0 to 5 do
begin{}
repeat
b:=a+chr(ord('0')+random(10))+
chr(ord('0')+random(10));
until not GroupNumber.Find(b,y);
GroupNumber.Add(b);
end;{}
{формирование оценок}
d:='222223333333333';
z:=CardNumber.Count*Subject.Count;
while length(d)<z do
if odd(random(1000))then d:=d+'5555' else d:=d+'4';
{}
Students:=TStringList.Create;
for indexCardNumber:=0 to CardNumber.Count-1 do
begin
z:=random(1000);
if odd(z) then
begin{male}
a:=MaleName[random(MaleName.Count)];
b:=SetName(MaleName[random(MaleName.Count)],'в');
c:=SetName(MaleName[random(MaleName.Count)],'вич');
end
else
begin{female}
a:=FemaleName[random(FemaleName.Count)];
b:=SetName(MaleName[random(MaleName.Count)],'ва');
c:=SetName(MaleName[random(MaleName.Count)],'вна');
end;
a:=SetFormat(GroupNumber[random(GroupNumber.Count)],n)+
SetFormat(CardNumber[indexCardNumber],n)+
SetFormat(b,n)+SetFormat(a,n)+SetFormat(c,n);
Students.Add(a);
end;
{}
AssignFile(FileOut,'StudentsBase.txt');
Rewrite(FileOut);
for indexSubject:=0 to Subject.Count-1 do
for indexCardNumber:=0 to Students.Count-1 do
begin
StudentItem.Subject:=SetFormat(Subject[indexSubject],n);
a:=Students[indexCardNumber];
StudentItem.Group:=copy(a,1,n);
StudentItem.Card:= copy(a,n+1,2*n);
StudentItem.SurName:=copy(a,2*n+1,3*n);
StudentItem.Name:=copy(a,3*n+1,4*n);
StudentItem.MiddleName:=copy(a,4*n+1,5*n);
y:=random(length(d)+1);
StudentItem.Grade:=d[y];
delete(d,y,1);
Write(FileOut,StudentItem);
end;
CloseFile(FileOut);
end.[/code]
Чтобы имена были читаемы в консоли нужно перекодировать кирилицу в ср866.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа