2.5 Состав и порядок испытаний

Структура и оформление документа устанавливается в соответствии с ГОСТ 19.105-78.

Для проведения испытаний (запуск, отладка, останов) программы был задействован ПК типа Pentium VI с операционной системой Windows XP.


3. Листинг прикладной программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, ValEdit, CheckLst;

type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

const filename = 'students.txt'; {файл с исходными данными}

type

student_record = record {структура для хранения данных о студенте}

name: ShortString; {ФИО}

examen1: ShortString; {Балл за первый экзамен}

examen2: ShortString; {Балл за второй}

zachet: ShortString; {1- сдан зачет, 0-не сдан}

faculty: ShortString; {факультет}

profession: ShortString; {специальность}

end;

plan = record {структура для хранения данных о плане приема на специальности}

name: ShortString; {наименование специальности}

ball: word; {проходной балл на специальность}

students: array of student_record; {студенты, зачисленные на специальность}

end;

var

Form1: TForm1;

f: textfile;

student_kniga: array of student_record; {массив студентов(данные из файла)}

plans: array of plan;{план приема и зачисленные студенты}

implementation

{$R *.dfm}

{открытие и чтение файла данных}

procedure open_file;

var i, ii, t: word;

s: ShortString;

begin

AssignFile(f, filename);

Reset(f);

i:=1;

SetLength(student_kniga,0);

while not eof(f) do {в цикле считываем данные из файла в переменные}

begin

t:=0;

SetLength(student_kniga,i);

readln(f, s); {читаем построчно}

for ii:=1 to Length(s) do {перебираем посимвольно строку}

begin

if (s[ii] = '+') then t:=t+1{если встречаем символ-разделитель данных, переходим к считыванию следующей переменной}

else

if t=0 then

student_kniga[i-1].name:= student_kniga[i-1].name + s[ii] {запоминаем фамилию}

else

if t=1 then

student_kniga[i-1].examen1:= student_kniga[i-1].examen1 + s[ii] {запоминаем балл первого экзамена}

else

if t=2 then

student_kniga[i-1].examen2:= student_kniga[i-1].examen2 + s[ii] {запоминаем балл второго экзамена}

else

if t=3 then

student_kniga[i-1].zachet:= student_kniga[i-1].zachet + s[ii] {запоминаем результат зачета}

else

if t=4 then

student_kniga[i-1].faculty:= student_kniga[i-1].faculty + s[ii] {запоминаем факультет}

else

if t=5 then

student_kniga[i-1].profession:= student_kniga[i-1].profession + s[ii]; {запоминаем специальность}

end;

i:= i+1;

end;

closefile(f); {закрываем файл данных}

end;

{процедура отображения загруженных данных на форме}

procedure display;

var i: word;

begin

form1.Memo1.Clear; {очищаем окно вывода данных}

for i:=0 to length(student_kniga)-1 do {цикл по студентам}

begin

form1.Memo1.Lines.add(student_kniga[i].name {заносим данные о студенте в окно вывода}

+ #09 + student_kniga[i].examen1

+ #09 + student_kniga[i].examen2

+ #09 + student_kniga[i].zachet

+ #09 + student_kniga[i].faculty

+ #09 + student_kniga[i].profession);

end;

end;

{сохранение результатов вычислений}

procedure save_file;

var i, ii: word;

begin

for i:=0 to length(plans)-1 do {цикл по всем специальностям}

begin

if plans[i].name <> '' then

AssignFile(f, plans[i].name+'.txt'); {создаем файл с названием специальности}

reWrite(f);//открываем файл на перезапись

if length(plans[i].students) >0 then

begin

form1.Memo1.Lines.add('Студенты зачисленные на специальность '+plans[i].name+': ');

for ii:=0 to length(plans[i].students)-1 do {цикл по зачисленным студентам на данную специальность}

begin

writeln(f, plans[i].students[ii].name); {записываем имя студента в файл}

end;

end

else

writeln(f, 'Студенты не зачислены'); {сообщаем, если нет зачисленных студентов на данную специальность}

closefile(f); {закрываем файл}

end;

end;

{процедура загрузки данных (кнопка "Загрузка")}

procedure TForm1.Button1Click(Sender: TObject);

begin

open_file; {открытие и чтение файла данных}

display; {процедура отображения данных на форме}

end;

{процедура обработки данных (кнопка "Зачислить студентов")}

procedure TForm1.Button2Click(Sender: TObject);

var sname: shortstring;

i, ii, iii, ball: word;

popal: boolean;

begin

for i:=0 to length(student_kniga)-1 do {строим массив специальностей.}

begin

setlength(plans,i+1); {увеличиваем размерность массива на единицу}

plans[i].name:= student_kniga[i].profession; {запоминаем специальность}

end;

end;

for i:=0 to length(plans)-1 do {удаляем повторяющиеся специальности}

begin

sname:= plans[i].name; {запоминаем первую специальность для сравнения с последующими}

for ii:=i+1 to length(plans)-1 do

begin

if sname = plans[ii].name then plans[ii].name:= ''; {если специальность повторяется обнуляем элемент массива спец}

end;

end;

for i:=0 to length(plans)-1 do {цикл по специальностям чтобы определить проходной балл для каждой}

begin

{если название спец-ти не пустое, выводим окно ввода данных о проходном балле на данную специальность}

if plans[i].name <> '' then plans[i].ball:= strtoint(InputBox('Введите проходной балл','Проходной балл для '+plans[i].name+': ',''));

end;

{в цикле определяется прошел студент на свою специальность или нет(по проходному баллу}

for i:=0 to length(student_kniga)-1 do

begin

ball:= {вычисляем набранный балл студентом}

strtoint(student_kniga[i].examen1) +

strtoint(student_kniga[i].examen2) +

strtoint(student_kniga[i].zachet);

for ii:=0 to length(plans)-1 do

begin

{проверка на соответствие текущей спец-ти и выбранной студентом}

if plans[ii].name = student_kniga[i].profession then {если совпадает, смотрим проходит студент по набранному баллу или нет}

if plans[ii].ball<=ball then

begin

setlength(plans[ii].students, length(plans[ii].students)+1); {увеличиваем размерность массива студентов на 1}

plans[ii].students[length(plans[ii].students)-1].name:= student_kniga[i].name; {добавляем студента в список зачисленных}

popal:=true; {запоминаем в переменную, что студент проходит}

end

else

popal:=false; {иначе смотрим на какую специальность может быть зачислен}

end;

if not(popal) then

begin

for iii:=0 to length(plans)-1 do {смотрим проходные баллы по специальностям и определяем куда можно зачислить студента}

begin

if (plans[iii].ball <= ball) and (plans[iii].name<>'') then {если набранный студентом балл больше проходного}

begin

setlength(plans[iii].students, length(plans[iii].students)+1); {увеличиваем размерность массива студентов на 1}

plans[iii].students[length(plans[iii].students)-1].name:= student_kniga[i].name; {добавляем студента в список зачисленных}

break; {прерываем цикл}

end;

end;

end;

end;

save_file; //сохраняем данные в файл

end;

end.

Пример ввода исходных данных



4. Описание программы

Приведенный алгоритм, на основе текстового задания.


5. Руководство системного программиста

5.1 Общие сведения о программе

Данная программа предназначена для выполнения таких функций как:

Загрузка в СУБД (форму) информации о студентах – ФИО, количество балов, наименование факультета (сокр.), номер специальности.

После введения количества баллов, показ результат прохождения по той или иной специальности (номер специальности), т. е. прошел тот или иной студент или нет.

Вывод на дисплей информации о студентах, которые получили проходной балл и зачислены на факультеты.


Информация о работе «Разработка и стандартизация программных средств информационных технологий»
Раздел: Информатика, программирование
Количество знаков с пробелами: 16864
Количество таблиц: 1
Количество изображений: 7

Похожие работы

Скачать
344008
16
23

... назначение, содержание и описание функциональных характеристик, субхарактеристик и атрибутов, определяющих специфические особенности целей, задач, свойств и сферы применения конкретного программного средства – его функциональную пригодность; ·           конструктивные характеристики качества, способствующие улучшению и совершенствованию назначения, функций и возможностей применения ПС; ...

Скачать
22830
0
0

... к пропуску при испытаниях. В связи с этим стратегической задачей в жизненном цикле современных информационных систем стало обеспечение требуемого качества программных средств и баз данных.   1. Схема характеристик оценки качества ПС За последние несколько лет создано множество международных стандартов, регламентирующих процессы и продукты жизненного цикла программных средств и баз данных. ...

Скачать
32702
1
2

... и социально-экономических процессов в области в реальном времени во взаимосвязи с внешними факторами на базе современных информационных технологий. Для решения этой задачи предназначен программно-аналитический комплекс "Анализ и прогноз бюджетных и социально-экономических процессов региона". Основной целью комплекса является создание единой системы контроля, анализа и прогноза бюджетных и ...

Скачать
37928
0
0

... системы. Основными нормативными документами, регламентирующими процесс создания любого проекта ИС и ИТ, являются ГОСТы и их комплексы на создание и документальное оформление информационной технологии, автоматизированных систем, программных средств, организации и обработки данных, а также руководящие документы Гостехкомиссии России по разработке, изготовлению и эксплуатации программных и ...

0 комментариев


Наверх