Разработка информационно-поисковой системы "Картотека больных" на языке программирования Паскаль
Совместимость и преобразование типов данных. Создание информационно-поисковой системы на языке программирования Паскаль. Описание интерфейса, каждого блока программы "Картотека больных". Рассмотрение результатов работы программы, сортирования данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.05.2015 |
Размер файла | 368,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство сельского хозяйства и продовольствия
Республики Беларусь
УО "Гомельский государственный аграрно-экономический колледж"
Специальность 2-40 01 01
"Программное обеспечение информационных технологий"
Курсовой проект
Разработка информационно-поисковой системы "Картотека больных" на языке программирования Паскаль
Разработал
Казак В.Н.
Руководитель
Короткова А.В.
Содержание
поисковый программа картотека паскаль
Введение
1. Совместимость и преобразование типов данных
1.1 Совместимость типов данных
1.2 Преобразование типов данных
2. Разработка информационно-поисковой системы "Картотека больных"
2.1 Постановка задачи
2.2 Описание алгоритмов задачи
2.3 Описание исходных данных
3. Практическая часть выполнения задачи
3.1 Описание интерфейса
3.2 Описание каждого блока программы
4. Результаты работы программы
Заключение
Список использованных источников
Приложения
Введение
Информационно-поисковая система (ИПС) - это система, обеспечивающая поиск и отбор необходимых данных в специальной базе с описаниями источников информации на основе информационно-поискового языка и соответствующих правил поиска.
Главной задачей любой информационно-поисковой системы является поиск информации, релевантной информационным потребностям пользователя.
Очень важно в результате поиска ничего не потерять, то есть найти всё, что относится к запросу, и не найти ничего ему не соответствующее.
В данной работе представлена программа создания информационно-поисковой системы на языке программирования Паскаль "Картотека больных". Результатом проделанной работы станет таблица, содержащая следующие сведения: ФИО, день рождение, вес, группа крови, состоит ли на учете, место работы. Данная программа создаст возможность добавлять новые и удалять ненужные сведения в системе.
В программе будут реализованы процедуры, позволяющие сортировать данные по критерию, заменять одни сведения, представленные в базе, на другие, искать информацию по введенным данным, удаление записей.
1. Совместимость и преобразование типов данных
1.1 Совместимость типов данных
Турбо-Паскаль - типизированный язык, следовательно, все применяемые операции определены только над операндами совместимых типов.
Два типа считаются совместимыми, если
- оба они есть один и тот же тип.
- один тип есть тип-диапазон второго типа.
- оба они являются типами-диапазонами одного и того же базового типа.
- один тип есть строка, а другой - строка или символ.
- оба они есть процедурные типы с одинаковым типом результата (для - типа-функции), одинаковым количеством параметров и одинаковым типом взаимно соответствующих параметров.
Когда в тех или иных операциях или операторах присутствуют данные, относящиеся к различным типам, возникает вопрос о совместимости типов. В связи с этим говорят об идентичности типов, совместимости типов и совместимости типов для присваивания. Когда возникают проблемы с соответствием типов данных, можно осуществить преобразование тех или иных типов.
Идентичность типов.
Идентичность типов требуется от формальных параметров процедур и функций и соответствующих им фактических параметров во время вызова. Два типа Т1 и Т2 идентичны в следующих случаях:
T1 и Т2 - один и тот же идентификатор типа (integer; real и т.д. и т.п.);
Один тип объявляется эквивалентным другому.
type T1 = boolean; T2 = T1; T3 = boolean; M1 = array [1 5] of integer; M2 = array [1 5] of integer; var V1, V2 = array [1 10] of integer;
Так, типы Т1, Т2, Т3 и boolean - идентичны, а М1 и М2 - не идентичные типы, но тем не менее, переменные V1 и V2 - переменные идентичных типов.
Совместимость типов.
Совместимость типов требуется в выражениях (в том числе и в операциях отношения). Два типа Т1 и Т2 идентичны в следующих случаях:
Т1 и Т2 - один и тот же тип или они идентичны;
Т1 и Т2 - вещественные типы;
Т1 и Т2 - целые типы;
Один тип - вещественный, а другой - целый;
Один тип представляет собой тип - диапазон другого;
Оба типа являются типами - диапазонами какого-то одного типа;
Оба типа являются типами - множествами с совместимыми базовыми типами;
Один тип является строкой, а другой - символом или строкой.
Совместимость для присваивания.
Эта совместимость необходима, когда значение какого-то выражения присваивается переменной, типизированной константе или функции. Если значение объекта типа Т2 присваивается объекту типа Т1, то это возможно в следующих случаях:
Т1 и Т2 - идентичные типы и не являются файловыми типами или структурированными типами, содержащими компоненты файлового типа на любом уровне структурированности;
Т1 и Т2 - совместимые порядковые типы и значение типа Т2 находится в границах возможных значений объекта типа Т1;
Т1 и Т2 - вещественные типы и значение типа Т2 находится в границах возможных значений объекта типа Т1;
Т1 - вещественный тип, а Т2 - целый;
Т1 и Т2 - строки;
Т1 - строка, а Т2 - символ;
Т1 и Т2 - совместимые типы - множества и все компоненты значения типа Т2 находятся в множестве Т1.
1.2 Преобразование типов данных
Преобразование типов в Паскале может быть явным и неявным. При явном преобразовании типов используются вызовы специальных функций Ord, Trunc, Round, Chr, Ptr (преобразует четырёхбайтный целочисленный аргумент к типу-указателю), аргументы которых принадлежат одному типу, а результат другому.
Преобразование может достигаться применением идентификатора (имени) стандартного типа, или определённого пользователем типа, в качестве идентификатора функции преобразования к выражению преобразуемого типа (так называемое автоопределённое преобразование типов). Например, допустимы следующие вызовы функций:
Type Mytype = (A, B, C, D);
. . . . . . . . . . . . . . . . .
Mytype (2);
Integer (D);
Pointer (Longint (A) + $FF);
Char (127 Mod C);
Byte (K);
При автоопределённом преобразовании типа выражения может произойти изменение длины его внутреннего представления (уменьшение или увеличение).
В Турбо-Паскале есть ещё один явный способ: в ту область памяти, которую занимает переменная некоторого типа, можно поместить значение выражения другого типа, если только длина внутреннего представления вновь размещаемого значения в точности равна длине внутреннего представления переменной. С этой целью вновь используется автоопределённая функция преобразования типов, но уже в левой части оператора присваивания:
Type
Byt = Array [1 2] Of Byte;
Int = Array [1 2] Of Integer;
Rec = Record
X: Integer;
Y: Integer;
End;
Var
VByt: Byt;
VInt: Int;
VRec: Rec;
Begin
Byt (VInt[1])[2]:= 0;
Int (VRec)[1]:= 256;
End.
Данные одного типа могут автоматически (неявно) преобразовываться в данные другого типа перед выполнением операций выражений.
Неявное преобразование типов возможно только в двух случаях:
· выражение из целых и вещественных приводится к вещественным
· одна и та же область памяти трактуется попеременно как содержащая данные то одного, то другого типа.
Совмещение данных может произойти при использовании записей с вариантами, типизированных указателей, содержащих одинаковый адрес, а также при явном размещении данных разного типа в одной области памяти (используется Absolute - за ним помещается либо абсолютный адрес, либо идентификатор ранее определённой переменной).
2. Разработка информационно-поисковой системы "Картотека больных"
2.1 Постановка задачи
В данном проекте необходимо разработать информационно-поисковую систему "Картотека больных".
Создаваемая база данных должна храниться в типизированных файлах. Записи базы данных формируются и выводятся на экран в виде таблицы.
Данная программа должна содержать в себе информацию о фамилии больного, дата его рождения, вес больного, группа крови больного, состоит ли на учете больной, место работы больного.
Программа будет иметь возможность выполнять следующие функции: добавление записей в файл, вывод записей из файла на экран в виде таблицы, удаление записей по указанным атрибутам, сортировка записей, замена записей, а так же дополнительные основные функции, согласно теме курсового проекта.
2.2 Описание алгоритмов задачи
Для разработки информационно-поисковой системы используется язык программирования Паскаль. Выбор действия над файлом в меню осуществляется выбором определенного пункта с помощью клавиатуры.
В программе содержатся процедуры.
1) procedure dobavlenie - процедура создания нового файла с информацией о результатах соревнований. Для начала нам необходимо ввести количество записей в таблице, а потом заполнить информацию. После окончания ввода данных процедура сама выходит в главное меню. Алгоритм описывающий данную процедуру реализован в виде блок-схемы 1 (рисунок 2.2.1).
2) procedure vivod - эта процедура предназначена для вывода на экран информации о результатах соревнований в виде таблицы. Алгоритм описывающий данную процедуру реализован в виде блок-схемы 2 (рисунок 2.2.2).
3) procedure dobavlenie - процедура добавления. Предназначена для добавления новых записей в таблицу. Процедура добавляет новые записи в конец файла. По окончании ввода процедура выходит в главное меню.
4) procedure poisk - процедура поиска предназначенная для поиска нужных записей в нужном поле таблицы. Перед нами появляется меню поиска, где мы выбираем нужный нам критерий поиска.
5) procedure sortirovka - процедура сортировки. Позволяет отсортировать нужное поле по возрастанию. Перед нами появляется меню в котором мы можем выбрать необходимое поле для сортировки.
6) procedure udalenie - процедура удаления. Предназначена для удаления необходимой нам строки. Перед нами появится меню, в котором мы должны ввести нужный номер строки для удаления.
7) procedure zamena - процедура замена. Предназначена для замены необходимой нам строки. Перед нами появится меню в котором мы должны ввести нужный номер строки для замены.
В программе использовались переменные
fio, ves, data, grkr, uchet, mesrab-строкового типа
2.3 Описание исходных данных
К основным данным формирующим таблицу, находящуюся в базе данных, относятся:
- ФИО больного;
- Дата рождения больного;
- Вес больного;
- Группа крови больного;
- Состоит ли больно на учете;
- Место работы больного;
Каждому полю было присвоено свое имя и тип.
Так для полей ФИО больного(fio), дата рождения больного(data), вес больного(ves), группа крови больного(grkr), состоит ли на учете больной(uchet), место работы больного(mesrab).
3. Практическая часть выполнения задачи
3.1 Описание интерфейса
Интерфейс - это совокупность средств и методов, при помощи которых пользователь взаимодействует с программой, компьютером, сайтами и т.д. Окно интерфейса программы служит для выбора пользователем необходимых действий. Меню информационно-поисковой системы состоит из 7 пунктов:
1) Добавление больного;
2) Удаление больного;
3) Поиск больного;
4) Сортировка больного;
5) Вывод больного;
6) Замена больного;
7) Выход.
При запуске программа отображается в окне Pascal ABC, в нем находится меню, состоящее из 7 пунктов, при нажатии на которые будут осуществляться следующие действия.
При выборе первого пункта происходит запись введенных данных в файл.
Второй пункт отвечает за удаление записи по указанному больному.
При выборе четвертого пункта появляется меню, позволяющее указать критерии, по которому будет производиться поиск данных.
При выборе четвертого пункта появляется меню, позволяющее указать критерии, по которому будет производиться сортировка данных.
Пятый пункт производит вывод данных из файла в виде таблицы.
При выборе шестого пункта появляются определенные критерии, по которым будет производиться замена данных в файле.
При выборе седьмого пункта осуществляется выход из программы.
3.2 Описание каждого блока программы
Процедуры вызываются через меню основной программы, выбирая соответствующие пункты.
Программа содержит процедуры.
1) Menu - процедура для отображения главного меню. Результатом работы является вывод на экран "Главного меню", в котором можно выбирать нужные процедуры.
2) dobavlenie - процедура создания таблицы. В ходе выполнения процедуры указывается количество записываемых полей, а затем заполняем их соответствующей информацией.
3) Udal - процедура удаления записей. Процедура осуществляет удаление записи из таблицы по указанному номеру строки.
4) Poisk - процедура поиска данных. Процедура выполняет поиск записей в файле базы данных по определенному атрибуту.
5) Sorti - процедура сортировки записей. Данная процедура осуществляет сортировку все записей, хранящихся в файле по возрастанию по указанному атрибуту.
4. Результаты работы программы
После запуска программы появляется меню информационно-поисковой системы. Меню представлено на рисунке 4.1.
Рисунок 4.1. - Меню информационно-поисковой системы
При выборе первого пункта программа запрашивает количество добавляемых записей. Запрос представлен на рисунке 4.2.
Рисунок 4.2. - Запрос количества добавляемых записей
После этого запроса происходит добавление записей. Этот процесс представлен на рисунке 4.3.
Рисунок 4.3. - Добавление записей
После завершения добавления записей программа возвращается в меню.
При выборе шестого пункта осуществляется вывод добавленных записей на экран в виде таблицы. Этот процесс представлен на рисунке 4.4.
Рисунок 4.4. - Вывод таблицы на экран
При выборе второго пункта осуществляется удаление записи по введенному больному. Ввод больного, по которому будет производиться удаление, представлен на рисунке 4.5. результат удаления показан на рисунке 4.6.
Рисунок 4.5. - ввод определенного критерия, по которому будет производиться удаление
Рисунок 4.6. - Результат удаления
При выборе третьего пункта появляется меню, позволяющие выбрать критерии поиска. Данное меню представлено на рисунке 4.7.
Рисунок 4.7. - Меню позволяющее выбрать критерии поиска
После ввода данных на экран выводиться результат поиска. Результат поиска представлен на рисунке 4.8.
Рисунок 4.8. - Вывод результата поиска
При выборе четвертого пункта так же появится меню, позволяющее выбрать критерии сортировки. Данное меню представлено на рисунке 4.9.
Рисунок 4.9. - Меню позволяющее выбрать критерии сортировки
После того, как критерий выбран, выводится результат сортировки. Результат представлен на рисунке 4.10.
Рисунок 4.10. - Результат сортировки
При выборе пятого пункта осуществляется замена по определенным критериям. Данный процесс представлен на рисунке 4.11. Результат замены представлен на рисунке 4.12.
Рисунок 4.11. - Ввод данных, которые нужно заменить
Рисунок 4.12. Результат замены
При выборе седьмого пункта осуществляется выход из программы.
Заключение
В курсовой работе необходимо было разработать информационно-поисковую систему "Картотека больных" на языке программирования паскаль. Результатом проделанной стала таблица, содержащая следующие сведения: ФИО, Дата рождения, Вес, Группа крови, Состоит ли на учете, Место работы.
В программе были реализованы процедуры, позволяющие сортировать данные по критерию, заменять одни сведения на другие, искать информацию по введенным данным, удаление записей с указанием определенного критерия.
Была изучена теоретическая часть задания на тему "Совместимость и преобразование типов данных".
Для удобства и простоты использования, программа была реализована в виде меню. Я постаралась сделать так, чтобы любому пользователю было удобно и практично использовать мою программу.
Ее можно использовать для записей картотеки больных, которые будут храниться в файлах. Пользователь сможет легко заносить данные в таблицы, заменять содержимое, удалять не нужные записи, искать и сортировать по необходимому полю.
Список использованных источников
1. Алиев Ю.А. Практикум по алгоритмизации и программированию на языке Паскаль / Ю.А. Алиев. - В. - Питер: 2007. - 527 с.
2. Аронов В.В. TurboPascal / В.В. Аронов. - БХВ - Петербург, 2004 . - 156 с.
3. Алексеев Е.Р. Турбо Паскаль 7.0 / Е.Р. Алексеев, О.В. Чесноков а.- М.: НТ Пресс, 2007. - 83 с.
4. Павловская Т.А. Паскаль. Программирование на языке высокого уровня: учебник / Павловская Т.А. - СПб. : Питер, 2007. - 140с.
5. [Электронный ресурс]. - Электронные данные. - Совместимость и преобразование типов данных. - Режим доступа: http://www.km.ru/referats/D89A32EFE4274401B164B7A7C4C12CD9# - Дата доступа 13.06.2014
6. [Электронный ресурс].- Электронные данные. - Совместимость и преобразование типов данных. - Режим доступа: http://tarefer.ru/works/69/100473/index.html#Toc64728292 - Дата доступа 13.06.2014
7. [Электронный ресурс].- Электронные данные. - Типы данных в Паскале. - Режим доступа: http://pas1.ru/data - Дата доступа 13.06.2014
8. Меженный О.А. Турбо паскаль. Самоучитель / О.А. Меженный. - Москва: 2008. - 336 с.
Приложения
Приложение А
(обязательное)
Листинг программы
program kartoteka;
uses crt;
type Data=Record
fio,ves,data,grkr,uchet,mesrab:STRING;
END;
VAR
i,k,j,fc:INTEGER;
g:ARRAY[1..200] of DATA;
f:text;
n,s:string;
f1,f2:file of string;
procedure yd;
var d,q,i:integer;
s:string;
br:boolean;
begin
writeln('Введите по какому критерию удалить');
writeln('1 - по ФИО');
writeln('2 - по Дате рождения');
writeln('3 - по Весу');
writeln('4 - по Группе крови');
writeln('5 - по Состоит ли на учете');
writeln('6 - по Месту работы');
readln(d);
br:=false;
case d of
1:begin
writeln('Введите ФИО больного');
readln(s);
for i:=1 to j do begin
if g[i].fio=s then begin
writeln('Удалено',g[i].fio);
br:=true;
for q:=i to j-1 do begin
g[q].data:=g[q+1].data;
g[q].ves:=g[q+1].ves;
g[q].grkr:=g[q+1].grkr;
g[q].uchet:=g[q+1].uchet;
g[q].mesrab:=g[q+1].mesrab;
g[q].fio:=g[q+1].fio;
end;
j:=j-1;
end;
end;
if br=false then writeln('Данной фамилии нет в списке');
end;
2:begin
writeln('Введите дату рождения больного');
readln(s);
for i:=1 to j do begin
if g[i].data=s then begin
writeln('Удалено',g[i].fio);
br:=true;
for q:=i to j-1 do begin
g[q].data:=g[q+1].data;
g[q].ves:=g[q+1].ves;
g[q].grkr:=g[q+1].grkr;
g[q].uchet:=g[q+1].uchet;
g[q].mesrab:=g[q+1].mesrab;
g[q].fio:=g[q+1].fio;
end;
j:=j-1;
end;
end;
if br=false then writeln('Данной даты рождения нет в списке');
end;
3:begin
writeln('Введите вес больного');
readln(s);
for i:=1 to j do begin
if g[i].ves=s then begin
writeln('Удалено',g[i].fio);
br:=true;
for q:=i to j-1 do begin
g[q].data:=g[q+1].data;
g[q].ves:=g[q+1].ves;
g[q].grkr:=g[q+1].grkr;
g[q].uchet:=g[q+1].uchet;
g[q].mesrab:=g[q+1].mesrab;
g[q].fio:=g[q+1].fio;
end;
j:=j-1;
end;
end;
if br=false then writeln('Данного веса нет в списке');
end;
4:begin
writeln('Введите крупу крови больного');
readln(s);
for i:=1 to j do begin
if g[i].grkr=s then begin
writeln('Удалено',g[i].fio);
br:=true;
for q:=i to j-1 do begin
g[q].data:=g[q+1].data;
g[q].ves:=g[q+1].ves;
g[q].grkr:=g[q+1].grkr;
g[q].uchet:=g[q+1].uchet;
g[q].mesrab:=g[q+1].mesrab;
g[q].fio:=g[q+1].fio;
end;
j:=j-1;
end;
end;
if br=false then writeln('Данной группы крови нет в списке');
end;
5:begin
writeln('Введите состоит ли на учете больной');
readln(s);
for i:=1 to j do begin
if g[i].uchet=s then begin
writeln('Удалено',g[i].fio);
br:=true;
for q:=i to j-1 do begin
g[q].data:=g[q+1].data;
g[q].ves:=g[q+1].ves;
g[q].grkr:=g[q+1].grkr;
g[q].uchet:=g[q+1].uchet;
g[q].mesrab:=g[q+1].mesrab;
g[q].fio:=g[q+1].fio;
end;
j:=j-1;
end;
end;
if br=false then writeln('Данные о учете нет в списке');
end;
6:begin
writeln('Введите место работы больного');
readln(s);
for i:=1 to j do begin
if g[i].mesrab=s then begin
writeln('Удалено ',g[i].fio);
br:=true;
for q:=i to j-1 do begin
g[q].data:=g[q+1].data;
g[q].ves:=g[q+1].ves;
g[q].grkr:=g[q+1].grkr;
g[q].uchet:=g[q+1].uchet;
g[q].mesrab:=g[q+1].mesrab;
g[q].fio:=g[q+1].fio;
end;
j:=j-1;
end;
end;
if br=false then writeln('Данного места работы нет в списке');
end;
end;
end;
procedure menu;
begin
writeln('-----------------------------------');
writeln('| Главное меню |');
writeln('|-----------------------------------|');
writeln('|1 - Добавление записей |');
writeln('|2 - Удаление записей |');
writeln('|3 - Поиск записей |');
writeln('|4 - Сортировка записей |');
writeln('|5 - Замена записей |');
writeln('|6 - Вывод записей |');
writeln('|7 - выход |');
writeln('------------------------------------');
end;
procedure dob;
var
h,i:integer;
begin
{gotoxy(110,10);
window(110,10,210,100);
}writeln('Введите количество добавляемых записей');
readln(h);
for i:=j+1 to h+j do begin
writeln('Введите ФИО добавляемого больного');
readln(g[i].fio);
writeln('Введите дату рождения добавляемого больного');
readln(g[i].data);
writeln('Введите вес добавляемого больного');
readln(g[i].ves);
writeln('Введите группу крови добавляемого больного');
readln(g[i].grkr);
writeln('Введите состоит ли на учете добавляемый больной');
readln(g[i].uchet);
writeln('Введите место работы больного');
readln(g[i].mesrab);
end;
j:=j+h;
end;
procedure wr;
var i,t,v:integer;
s:string;
begin
writeln('_______________________________________________________________________________');
write(chr(5),' ФИО ',chr(5),'Вес ',chr(5),'Дата рождения',chr(5),'Группа крови',chr(5),'Состоит ли на учете',chr(5),'Место работы',chr(5));
writeln;
for i:=1 to j do begin
v:=(12-length(g[i].fio));
for t:=1 to v do g[i].fio:=g[i].fio+' ';
v:=(4-length(g[i].ves));
for t:=1 to v do g[i].ves:=g[i].ves + ' ';
v:=(13-length(g[i].data));
for t:=1 to v do g[i].data:=g[i].data + ' ';
v:=(12-length(g[i].grkr));
for t:=1 to v do g[i].grkr:=g[i].grkr + ' ';
v:=(19-length(g[i].uchet));
for t:=1 to v do g[i].uchet:=g[i].uchet+ ' ';
v:=(12-length(g[i].mesrab));
for t:=1 to v do g[i].mesrab:=g[i].mesrab + ' ';
g[i].fio:=g[i].fio+chr(5);
g[i].ves:=g[i].ves+chr(5);
g[i].data:=g[i].data + chr(5);
g[i].mesrab:=g[i].mesrab + chr(5);
g[i].uchet:=g[i].uchet + chr(5);
g[i].grkr:=g[i].grkr + chr(5);
write(chr(5),g[i].fio:12,g[i].ves:4,g[i].data:13,g[i].grkr:12,g[i].uchet:19,g[i].mesrab:12);writeln;
end;
writeln('_______________________________________________________________________________');
s:='_';
for i:=1 to j do begin
for v:=1 to length(g[i].fio) do if g[i].fio[v]=s then delete(g[i].fio,v,1);
for v:=1 to length(g[i].ves) do if g[i].ves[v]=s then delete(g[i].ves,v,1);
for v:=1 to length(g[i].data) do if g[i].data[v]=s then delete(g[i].data,v,1);
for v:=1 to length(g[i].grkr) do if g[i].grkr[v]=s then delete(g[i].grkr,v,1);
for v:=1 to length(g[i].uchet) do if g[i].uchet[v]=s then delete(g[i].uchet,v,1);
for v:=1 to length(g[i].mesrab) do if g[i].mesrab[v]=s then delete(g[i].mesrab,v,1);
end;
s:='';
for i:=1 to j do begin
for v:=1 to length(g[i].fio) do if g[i].fio[v]<>' ' then s:=s+g[i].fio[v];
g[i].fio:=s;
s:='';
for v:=1 to length(g[i].ves) do if g[i].ves[v]<>' ' then s:=s+g[i].ves[v];
g[i].ves:=s;
s:='';
for v:=1 to length(g[i].data) do if g[i].data[v]<>' ' then s:=s+g[i].data[v];
g[i].data:=s;
s:='';
for v:=1 to length(g[i].grkr) do if g[i].grkr[v]<>' ' then s:=s+g[i].grkr[v];
g[i].grkr:=s;
s:='';
for v:=1 to length(g[i].uchet) do if g[i].uchet[v]<>' ' then s:=s+g[i].uchet[v];
g[i].uchet:=s;
s:='';
for v:=1 to length(g[i].mesrab) do if g[i].mesrab[v]<>' ' then s:=s+g[i].mesrab[v];
g[i].mesrab:=s;
s:='';
end;
end;
procedure sort;
var i,d,u,v,p1,p2,code,o,q,n1,n2,l:integer;
a,s,w,a1,s1:string;
begin
writeln('Введите по какому критерию сортировать');
writeln('1 - по ФИО');
writeln('2 - по Дате рождения');
writeln('3 - по Весу');
writeln('4 - по Группе крови');
writeln('5 - по Состоит ли на учете');
writeln('6 - по Месту работы');
readln(d);
case d of
1:begin
for i:=1 to j do begin
s:=g[i].fio;
for v:=1 to j do begin
a:=g[v].fio;
for u:=1 to j do begin
if ord(a[u])<ord(s[u]) then begin
w:=g[v].fio;
g[v].fio:=g[i].fio;
g[i].fio:=w;
w:=g[v].grkr;
g[v].grkr:=g[i].grkr;
g[i].grkr:=w;
w:=g[v].data;
g[v].data:=g[i].data;
g[i].data:=w;
w:=g[v].ves;
g[v].ves:=g[i].ves;
g[i].ves:=w;
w:=g[v].uchet;
g[v].uchet:=g[i].uchet;
g[i].uchet:=w;
w:=g[v].mesrab;
g[v].mesrab:=g[i].mesrab;
g[i].mesrab:=w;
break;
end;
end;
end;
end;
end;
2:begin
for i:=1 to j do begin
s:=g[i].data;
val(s,p1,code);
for v:=1 to j do begin
a:=g[v].data;
val(a,p2,code);
if p1>p2 then begin
w:=g[v].fio;
g[v].fio:=g[i].fio;
g[i].fio:=w;
w:=g[v].grkr;
g[v].grkr:=g[i].grkr;
g[i].grkr:=w;
w:=g[v].ves;
g[v].ves:=g[i].ves;
g[i].ves:=w;
w:=g[v].data;
g[v].data:=g[i].data;
g[i].data:=w;
w:=g[v].uchet;
g[v].uchet:=g[i].uchet;
g[i].uchet:=w;
w:=g[v].mesrab;
g[v].mesrab:=g[i].mesrab;
g[i].mesrab:=w;
end;
end;
end;
end;
3:begin
for i:=1 to j do begin
s:=g[i].fio;
for v:=1 to j do begin
a:=g[v].fio;
for u:=1 to j do begin
if ord(a[u])>ord(s[u]) then begin
w:=g[v].fio;
g[v].fio:=g[i].fio;
w:=g[v].grkr;
g[v].grkr:=g[i].grkr;
g[i].grkr:=w;
w:=g[v].ves;
g[v].ves:=g[i].ves;
g[i].ves:=w;
w:=g[v].data;
g[v].data:=g[i].data;
g[i].data:=w;
w:=g[v].uchet;
g[v].uchet:=g[i].uchet;
g[i].uchet:=w;
w:=g[v].mesrab;
g[v].mesrab:=g[i].mesrab;
g[i].mesrab:=w;
break;
end;
end;
end;
end;
end;
4:begin
s:='';
a:='';
for i:=1 to j do begin
n1:=pos('.',g[i].grkr);
for q:=1 to n1 do s:=s+g[i].grkr[q];
val(s,p1,code);
for v:=1 to j do begin
n2:=pos('.',g[v].grkr);
for q:=1 to n2 do a:=a+g[v].grkr[q];
val(a,p2,code);
a:='';
s:='';
if p1<p2 then begin
w:=g[v].fio;
g[v].fio:=g[i].fio;
g[i].fio:=w;
w:=g[v].grkr;
g[v].grkr:=g[i].grkr;
g[i].grkr:=w;
w:=g[v].ves;
g[v].ves:=g[i].ves;
g[i].ves:=w;
w:=g[v].data;
g[v].data:=g[i].data;
g[i].data:=w;
w:=g[v].uchet;
g[v].uchet:=g[i].uchet;
g[i].uchet:=w;
w:=g[v].mesrab;
g[v].mesrab:=g[i].mesrab;
g[i].mesrab:=w;
end;
end;
end;
s:='';
a:='';
for i:=1 to j do begin
n1:=pos('.',g[i].grkr);
for q:=1 to n1 do s:=s+g[i].grkr[q];
val(s,p1,code);
for v:=1 to j do begin
n2:=pos('.',g[v].grkr);
for q:=1 to n2 do a:=a+g[v].grkr[q];
val(a,p2,code);
a:='';
s:='';
if p1=p2 then begin
l:=i;
o:=v;
for q:=length(g[l].grkr) downto n1 do s:=s+g[l].grkr[q];
val(s,p1,code);
for q:=length(g[o].grkr) downto n2 do a:=a+g[o].grkr[q];
val(s,p2,code);
if p1<p2 then begin
w:=g[v].fio;
g[v].fio:=g[i].fio;
g[i].fio:=w;
w:=g[v].grkr;
g[v].grkr:=g[i].grkr;
g[i].grkr:=w;
w:=g[v].ves;
g[v].ves:=g[i].ves;
g[i].ves:=w;
w:=g[v].data;
g[v].data:=g[i].data;
g[i].data:=w;
w:=g[v].uchet;
g[v].uchet:=g[i].uchet;
g[i].uchet:=w;
w:=g[v].mesrab;
g[v].mesrab:=g[i].mesrab;
g[i].mesrab:=w;
end;
end;
end;
end;
end;
5:begin
for i:=1 to j do begin
s:=g[i].uchet;
for v:=1 to j do begin
a:=g[v].uchet;
for u:=1 to j do begin
if ord(a[u])>ord(s[u]) then begin
w:=g[v].fio;
g[v].fio:=g[i].fio;
g[i].fio:=w;
w:=g[v].grkr;
g[v].grkr:=g[i].grkr;
g[i].grkr:=w;
w:=g[v].ves;
g[v].ves:=g[i].ves;
g[i].ves:=w;
w:=g[v].data;
g[v].data:=g[i].data;
g[i].data:=w;
w:=g[v].uchet;
g[v].uchet:=g[i].uchet;
g[i].uchet:=w;
w:=g[v].mesrab;
g[v].mesrab:=g[i].mesrab;
g[i].mesrab:=w;
break;
end;
end;
end;
end;
end;
6:begin
for i:=1 to j do begin
s:=g[i].mesrab;
val(s,p1,code);
for v:=1 to j do begin
a:=g[v].mesrab;
val(a,p2,code);
if p1>p2 then begin
w:=g[v].fio;
g[v].fio:=g[i].fio;
g[i].fio:=w;
w:=g[v].grkr;
g[v].grkr:=g[i].grkr;
g[i].grkr:=w;
w:=g[v].ves;
g[v].ves:=g[i].ves;
g[i].ves:=w;
w:=g[v].data;
g[v].data:=g[i].data;
g[i].data:=w;
w:=g[v].uchet;
g[v].uchet:=g[i].uchet;
g[i].uchet:=w;
w:=g[v].mesrab;
g[v].mesrab:=g[i].mesrab;
g[i].mesrab:=w;
end;
end;
end;
end;
end;
end;
procedure find;
var e,k,n:integer;
s,a:string;
begin
writeln('Введите по какому критерию искать');
writeln('1 - по ФИО');
writeln('2 - по Дате рождения');
writeln('3 - по Весу');
writeln('4 - по Группе крови');
writeln('5 - по Состоит ли на учете');
writeln('6 - по Месту работы');
readln(e);
case e of
1:begin
writeln('Введите ФИО больного');
readln(s);
n:=length(s);
for i:=1 to j do if g[i].fio=s then writeln('Данная фамилия присутствует в списке');
end;
2:begin
writeln('Введите дату рождения больного');
readln(s);
for i:=1 to j do if s=g[i].data then begin
writeln('Данная дата рождения присутствует в списке');
end;
end;
3:begin
writeln('Введите вес больного');
readln(s);
for i:=1 to j do if s=g[i].ves then begin
writeln('Данный вес присутствует в списке');
end;
end;
4:begin
writeln('Введите группу крови');
readln(s);
for i:=1 to j do if s=g[i].grkr then begin
writeln('Данная группа крови присутствует в списке');
end;
end;
5:begin
writeln('Введите состоит ли на учете больной');
readln(s);
for i:=1 to j do if s=g[i].uchet then begin
writeln('Данные о учете присутствуют в списке');
end;
end;
6:begin
writeln('Введите место работы больного');
readln(s);
for i:=1 to j do if s=g[i].mesrab then begin
writeln('Данное место работы присутствует в списке');
end;
end;
end;
end;
procedure zamena;
var vesa1,vesa2,gruppa1,gruppa2:string;
z,x:integer;
begin
i:=1;
k:=0;
begin
inc(i);
inc(k);
end;
writeln;
write('Укажите вес больного, который нужно заменить');
readln(vesa1);
write('Укажите вес больного на который нужно заменить);
readln(vesa2);
z:=0;
write('Укажите группу крови больного, которую нужно заменить);
readln(gruppa1);
write(' Укажите группу крови больного на которую нужно заменить ');
readln(gruppa2);
x:=0;
for i:=1 to k do
begin
if g[i].ves=vesa1 then
begin
g[i].ves:=vesa2;
z:=1;
end;
if g[i].grkr=gruppa1 then
begin
g[i].grkr:=gruppa2;
x:=1;
end;
end;
if z=0 then
begin
writeln;
writeln(' больных с весом',vesa1,' не найдено' );
readln;
end;
if x=0 then
begin
writeln;
writeln(' больных с группой крови',gruppa1,' не найдено' );
readln;
end;
end;
{procedure diz(x1,y1,x2,y2:integer;bcl,tcl:integer);
begin
window(x1,y1,x2,y2);
textbackground(bcl);
textcolor(tcl);
end;}
begin
{clrscr;}
assign(f,'1.txt');reset(f);
readln(f,j);
for i:=1 to j do begin
readln(f,g[i].fio);
readln(f,g[i].ves);
readln(f,g[i].data);
readln(f,g[i].grkr);
readln(f,g[i].uchet);
readln(f,g[i].mesrab);
k:=j;
end;
{clrscr;}
while fc<6 do begin
{ window(1,1,90,35);
diz(1,1,30,15,red,black);
}menu;
readln(fc);
case fc of
1:begin
{window(1,1,90,35);
diz(30,1,60,15,green,black);
}dob;
{clrscr;}
end;
2:begin
{window(1,1,90,35);
diz(30,1,60,15,green,black);
}yd;
end;
3:begin
{window(1,1,90,35);
diz(30,1,60,15,green,black);
}find;
end;
4:begin
{window(1,1,90,35);
diz(30,1,60,15,green,black);
}sort;
end;
6:begin
{window(1,1,90,35);
diz(30,1,60,15,green,black);
}wr;
end;
5: begin {window(1,1,90,35);
diz(30,1,60,15,green,black);
}
zamena;
end;
7:begin
close(f);
assign(f1,'1.txt');reset(f1);
seek(f1,0);
truncate(f1);
close(f1);
assign(f,'1.txt');rewrite(f);
writeln(f,j);
for i:=1 to j do begin
writeln(f,g[i].fio);
writeln(f,g[i].ves);
writeln(f,g[i].data);
writeln(f,g[i].grkr);
writeln(f,g[i].uchet);
writeln(f,g[i].mesrab);
end;
close(f); close(f1);
end;
end;
end;
end.
Приложение Б
(обязательное)
Блок-схема программы
Рисунок Б.1 - Общая блок-схема программы
Приложение В
(обязательное)
Пример оформления подписи электронного носителя
Размещено на Allbest.ru
Подобные документы
Изучение символьных и строковых типов данных, алгоритма задачи на языке программирования Паскаль. Описания получения и установки отдельного символа строки, изменения регистра символов. Анализ создания и просмотра файла, поиска и сортировки информации.
курсовая работа [440,7 K], добавлен 13.06.2011Разработка база данных в виде таблицы, включающей поля: ФИО, адрес, номер телефона, наименование услуги, сумма оплаты, срок выполнения. Процедуры программы и соответствующие им пункты в меню. Описание исходных данных, интерфейса и работы каждой процедуры.
курсовая работа [997,3 K], добавлен 08.06.2014Сравнительный анализ языков программирования высокого уровня Си и Паскаль. Реализация алгоритма обработки данных. Тестирование и отладка программы или пакета программ. Структура программы на языке Турбо Паскаль. Указатели и векторные типы данных.
курсовая работа [233,5 K], добавлен 14.12.2012Разработка информационной системы на языке программирования С++ в среде С++Builder. Схема базы данных. Характеристика энергосберегающих режимов операционной системы. Интерфейс программы, ее установка на компьютер, выполнение, средства и порядок испытания.
отчет по практике [986,2 K], добавлен 06.02.2016Создание транслятора, обрабатывающего код программы на языке Паскаль и за счет эквивалентных операторов генерирующего программу на Си. Особенности внешней спецификации и работы лексического анализатора. Структура программы, вывод результатов на экран.
курсовая работа [254,0 K], добавлен 02.07.2011Приобретение теоретических и практических навыков программирования на языке Паскаль. Математическая формулировка задачи и выбор метода обработки информации. Разработка алгоритма и его описание. Описание программы. Форма представления исходных данных.
курсовая работа [224,3 K], добавлен 11.02.2016Язык программирования Турбо Паскаль. Запись алгоритма на языке программирования и отладка программы. Правила записи арифметических выражений. Стандартное расширение имени файла, созданного системным редактором. Составной оператор и вложенные условия.
курсовая работа [75,0 K], добавлен 21.03.2013Рассмотрение особенностей языка программирования С++. Пример составления программы - информационно-поискового справочника. Описание алгоритмов коррекции данных, введённых пользователем. Тестирование полученной программы, предусмотрение ее защиты.
курсовая работа [20,0 K], добавлен 05.03.2015Программирование на языке Паскаль: алфавит, решение задач, простейшие программы, разветвляющие программы, циклические программы, ввод-вывод, массивы, подпрограммы, строковые данные, записи, файлы, использование библиотеки CRT, графика в Паскале.
учебное пособие [211,1 K], добавлен 30.03.2008Выбор метода проектирования транслятора с языка Паскаль на язык Си, разработка и кодирование алгоритма программы. Использование допустимых операторов в исходном тексте, определение типов переменных и синтаксиса логических и арифметических выражений.
курсовая работа [1,0 M], добавлен 03.07.2011