- •«Тюменский государственный нефтегазовый университет»
- •Курсовая работа
- •Оглавление.
- •Тема 1. «Основные стили и парадигмы программирования».
- •1.1. Стили программирования.
- •1.2. Понятие парадигмы программирования.
- •1.3. Основные виды парадигм.
- •Тема 2. «Разработка приложения для Windows, представляющего собой модель базы данных по успеваемости студентов».
- •2.1. Введение.
- •2.2. Назначение и область применения.
- •2.3. Технические характеристики.
- •Р 1. 2. Азработка программы.
- •3.2. Спецификация программы.
- •3.3. Текст программы.
Тема 2. «Разработка приложения для Windows, представляющего собой модель базы данных по успеваемости студентов».
2.1. Введение.
Задание на курсовую работу по дисциплине «Программирование и основы алгоритмизации».
Студент группы УТСб-11-1 Городилов Антон Павлович.
Направление «Управление в технических системах»
Тема: Разработка приложения для Windows, представляющего собой модель базы данных по успеваемости студентов.
Условие задачи: Описать структуру с именем STUDENT с полями: NAME – фамилия и инициалы; GROUP – номер группы; SES – успеваемость (массив из 5 элементов). Написать программу, выполняющую следующие действия:
ввод с клавиатуры данных в массив STUD1, состоящий из 10 структур типа STUDENT; записи упорядочиваются по алфавиту;
вывод фамилий и номеров групп студентов, имеющих хотя бы одну оценку 2;
вывод соответствующего сообщения, если таковых студентов нет.
Задание выдано: Мосягина Н.А. « » ________ 2012 года. Подпись ______.
2.2. Назначение и область применения.
Данная программа может быть использована для создания базы данных в типизированном файле, а также является примером использования записей и типизированных файлов.
2.3. Технические характеристики.
Составить программу эмулирующую базу данных по успеваемости студентов, с возможностью добавления, выводе студентов с «двойками» и выводе соответствующего сообщения, если таковых нет.
Программа в основном состоит из процедур: процедура добавления данных, процедура вывода, процедура сортировки, процедура вывода студентов имеющих «двойки».
Входные данные находятся в файле, также их можно добавить в файл из клавиатуры, выход идет на окно модуля CRT.
Программа работает на любой ОС, на которой работает pascal abc, например windows 7 x64, среда разработки – pascal abc.
Р 1. 2. Азработка программы.
1. Заголовок окна модуля crt.
2. Рабочая область, на которой выводится и вводится вся необходимая информация.
3.2. Спецификация программы.
Обозначение |
Наименование |
Примечание |
Student'S.pas |
Файл проекта |
Основная программа, написанная с помощью процедур |
Module.pas |
Модуль с процедурами |
Находится в той же папке, что и программа |
CRT |
Библиотечный файл |
Обеспечивает работу с экраном |
3.3. Текст программы.
Файл Student'S.pas.
uses crt,module;
var base:file of student; filename:string[30]; a:string; //объявляем файл, имя файла и переменную в которой будет храниться ответ пользователя
begin
filename:='students.txt';
writeln('Записать заново базу данных?(да/нет)');
read(a);
if a='да' then Bvod(base,filename); //проверяем ответ пользователя, если согласен то запускается процедура ввода данных
sortirovka(base,filename); //сортировка записей в файле
Byvod(base,filename); //процедура вывода всего списка
Byvod2(base,filename); //процедура вывода студентов с "двойками"
end.
Модуль Module.pas
unit module;
interface
uses crt;
type student=record
name:string; //поле с именем
group:integer; //поле с номером группы
ses:array[1..5] of integer; //после с массивом, в котором хранятся 5 оценок
end;
procedure Bvod(var x:file of student;xfilename:string); //процедура ввода
procedure Byvod(x:file of student;xfilename:string); //процедура вывода
procedure sortirovka(var x:file of student;xfilename:string); //процедура сортировки
procedure Byvod2(x:file of student;xfilename:string); //процедура вывода "двоечников"
implementation
{Ввод 10 студентов}
procedure Bvod(var x:file of student;xfilename:string);
var buffer:student; i,j:integer; //объявляем буффер, и две целые переменные для цикла
begin
assign(x,xfilename);
rewrite(x);
for i:=1 to 10 do
begin
writeln('#',i,' Введи имя');
read(buffer.name); //ввод имени
writeln('Группа');
read(buffer.group); //ввод группы
writeln('Введите 5 оценок');
for j:=1 to 5 do //цикл ввода оценок
read(buffer.ses[j]); //ввод оценки
write(x,buffer); //добаление введенного элемента в файл
end;
close(x);
end;
{Вывод списка студентов}
procedure Byvod(x:file of student;xfilename:string);
var buffer:student; i:integer; //объявляем буффер и целую для цикла
begin
writeln('Все студенты');
assign(x,xfilename);
reset(x);
while not eof(x) do
begin
read(x,buffer); //чтение одного элемента о студенте
write('Имя: ',buffer.name); //вывод на экран имени
write(' Группа: ',buffer.group); //вывод на экран группы
write(' Оценки: '); //цикл вывода оценок
for i:=1 to 5 do
write(' ',buffer.ses[i],' '); //вывод оценки и пробела после нее
writeln();
end;
close(x);
end;
{Сортировка элементов по именам}
procedure sortirovka(var x:file of student;xfilename:string);
var a: array[1..10] of student; i,j:integer; buffer:student; buf:string; //объявляем массив типа student для проведения в нем сортировки, две целые для циклов, буффер и строку для чтения имени
begin
assign(x,xfilename);
reset(x);
for i:=1 to 10 do //цикл заполения массива элементами из файла
begin
read(x,buffer); //чтение элемента файла
a[i]:=buffer; //присваивание элементу массива значение элемента файла
end;
close(x);
{сортировка пузырьком по записи "name"}
for i:=1 to 9 do
for j:=i+1 to 10 do
if a[i].name>a[j].name then
begin
buffer:=a[i];
a[i]:=a[j];
a[j]:=buffer;
end;
{перезапись файла отсортированными элементами}
rewrite(x);
for i:=1 to 10 do
write(x,a[i]);
close(x);
end;
{Процедура вывода "двоечников"}
procedure Byvod2(x:file of student;xfilename:string);
var proverka:boolean; buf:student; i,j:integer; //объявляем флажок, буффер и дфе целые для циклов
begin
proverka:=true; //флаг изначально равен истине, что значит "двоечников не было найдено"
writeln('Студенты с двойками:');
assign(x,xfilename);
reset(x);
for i:=1 to 10 do //цикл перебора всех записей в файле
begin
read(x,buf); //чтение в буффер
for j:=1 to 5 do //цикл перебора оценок
begin
if buf.ses[j]= 2 then //если найдена двойка, то выводится имя и группа
begin
write(buf.name);
write(' группа:',buf.group);
writeln(); //перенос строки (формирует список)
proverka:=false; //флаг "ложь", что значит двоечник был
break;
end;
end;
end;
if proverka then writeln('Таких студентов нет!'); //если флаг истина (что значит "двоечников" нет), то выводится соответствующая запись
close(x);
end;
end.
3.4. Описание программы.
3.4.1.Общие сведения.
Название программы – «Student'S». Для нормального функционирования программы требуется Pascal abc. Программа написана на языке программирования pascal.
3.4.2. Функциональное назначение.
Данная программа может быть использована для создания базы данных в файл, также является примером создания типизированного файла.
3.4.3. Описание логической структуры.
В программе используется один тип – student, состоящий из полей: name – Ф.И.О. Студента, group – группа, массив ses (5 элементов) — 5 оценок. В программе есть также процедуры: Bvod (переписывает базу данных), Byvod (выводит на экран список с записями), sortirovka (сортирует записи в файле по именам студентов), Byvod2 (выводит на экран записи, у которых есть двойки).
3.4.4. Используемые технические средства.
Для создания программы был использован компьютер на базе процессора Intel i7-2600K, RAM DDR-3 4096Mb, HDD 500Gb (SATA-2), NVIDIA GeForce GTX 580 1284 Mb с ОС Windows 7 x64 Ultimate.
Минимальные системные требования: процессор не ниже Pentium MMX(266MHz), 64Mb RAM, 1 Mb Видеопамяти, около 10 Mb свободного места на диске с установленным pascal abc.
3.4.5. Вызов и загрузка.
Для запуска программы необходимо запустить файл Student'S.pas с помощью pascal abc.
3.4.6. Входные данные.
В окне CRT при появлении соответствующего сообщения вводятся соответствующая информация. Также из файла считывается база данных.
3.4.7. Выходные данные.
Список с записями, а также студенты с двойками выводятся на окно CRT. Также информация сохраняется в файл students.txt.
3.5. Тестирование программы.
1. При открытии файла программа выдает запрос о перезаписи базы данных:
1.1. Если ответить нет, то будет выведена база студентов и выведены двоечники:
П рограмма завершается.
1.2. Если ответить да, то начнется процедура ввода данных о студентах:
И так далее пока не будет введено 10 записей:
1.2.1 Если среди студентов были двоечники, то программа выведет их на экран:
П рограмма завершается.
1.2.2. Если среди студентов нет двоечников, то программа напишет об этом:
П рограмма завершается.
Литература.
1.http://forexaw.com/TERMs
2. Лекции по программированию и основам алгоритмизации, Мосягина Н. А. 2012 г.
2. Встроенный справочник в pascal abc.
3. Раздел помощи «примеры» в pascal abc.