АЛТЫНОРДА
Новости Казахстана

Реферат. ГАИ

Казахский Экономический Университет

им. Турара Рыскулова

 

 

 

 

 

 

 

Курсовая работа:

 

«ГАИ»

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                                                             Выполнила: Ни Роза

                                                                                                  107гр., ИЭФ-05

 

 

 

 

 

 

 

 

 

 

  Алматы 2005

Содержание

Введение————————————————————————————3

Задача—————————————————————————————-3

Алгоритмы решения задачи————————————————————-4

Инструкция пользователя—————————————————————4

Исходный код программы—————————————————————5

Блок-схема———————————————————————————-7

Список использованной литературы—————————————————8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

      Тема курсовой работы – «ГАИ». Самая актуальная тема на мой взгляд J.

В наше время тяжело себе представить местное отделение милиции без компьютеров, они были в первую очередь переведены на автоматизированные системы сбора и хранения информации, но до сих пор о том, чтобы как-то помочь доблестным блюстителям порядка никто не задумывался, а ведь хранение базы данных по автомобилям – это дело нелегкое. Чем иметь дело с огромными кипами бумаг и папок, лучше воспользоваться одной единственной программой, которая сочетает в себе все вышеперечисленное. Именно такую программу я и хочу предложить вам сегодня.

Постановка задачи

Автоматизировать процесс записи и выдачи информации об имеющихся в базе автомобилях: по модели, цвету, году выпуска, ФИО водилы-хозяина. В базе все должно храниться отдельно по своим местам, и выдаваться по требованию пользователя. Программа написана на языке Turbo Pascal 7.0 eng. Принцип работы программы: после запуска на экран выводится меню выбора последующих действий, оно состоит из 6 элементов-команд, которые будут описаны позже в разделе «Алгоритм решения задачи». Сейчас мы их просто назовем: 1. Добавить автомобиль; 2. Поиск по цвету машины; 3. Поиск по модели автомашины; 4. Поиск по году выпуска; 5. Поиск по ФИО владельца; 6. Выход;

Программа загрузилась. После ввода пользователем с клавиатуры номера команды (1,2,3,4,5,6), значение записывается в переменную «а» — она у нас будет типа integer (т.е. целочисленная). Затем идет проверка значения «а» в операторе CASE, а точнее идет сравнение значения «а» с уже предустановленными возможными путями дальнейших действий. А эти последующие шаги представлены как процедуры – PROCEDURE. Таких вот процедур у нас в программе всего 6. Процедура Add отвечает за внесение информации (данных) по ячейкам массива (у нас массив записей, т.е. массив типов RECORD). На экран выводятся так сказать поля, которые нужно заполнить пользователю, чтобы добавить машину. Процедура by_color – это выдача всех книг по тематике, выбранной пользователем. Выбор тематики книг во всех процедурах происходит путем вывода на экран все имеющихся, а затем пользователь уже выбирает сам. Процедуры by_model, by_year, by_fio аналогичны друг другу. Просто в каждой из них меняются записи, по которым идет поиск (они ясны из названий). А шестая – это выход из программы (собственно это стандартная процедура языка Turbo Pascal). Она имеет обозначение EXIT, можно было еще использовать HALT, но я делал программу для наглядности и ясности.

Используемые переменные:

a,i,temp,b – типа BYTE;

tmp – типа STRING;

Значение каждой из переменных пояснять не буду, т.к. по исходному коду программы и так все видно.

Алгоритм решения задачи

      При написании программы были использованы раличные типы данных, а также целая куча стандартных процедур Turbo Pascal’я. Сейчас мы их перечислим:

  • Массив одномерный «m»(50 элементов);
  • Переменные типа Integer (a,b,temp,I) и String (tmp);

   Использовались следующие стандартные процедуры и функции:

  • Procedure (подпрограммы, созданные пользователем)
  • Record (тип записи для внедрения в массивы)
  • Write, writeln (для вывода на экран данных)
  • Read, readln (для считывания данных, вводимых клавиатуры)
  • If ___ then ____ else ____ (операторы условия)
  • For __:=_ to _ do (циклические операторы)
  • Begin, end (операторные скобки)
  • Var (раздел описания переменных)
  • Label (раздел меток и их описания)
  • Program _____ (название программы)

      Вначале на экран выводятся типы возможных последующих команд для пользователя: 1. Добавить автомобиль; 2. Поиск по цвету машины; 3. Поиск по модели автомашины; 4. Поиск по году выпуска; 5. Поиск по ФИО владельца; 6. Выход;

   Пользователь же в свою очередь, выбрав нужную команду, набирает ее номер на клавиатуре. А затем программа сама предоставит ему список возможных последующих действий. Опишем работу каждой из процедур:

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

   Команда 2: поиск соответствий по цвету. Используя цикл, мы пробегаемся по всем записанным элементам (мы знаем их количество из переменной temp), попутно сверяя запись color с введенным критерием поиска.

   Команда 3,4,5: идентичны второй команде, различия только в «месте» поиска, а точнее в записи: model, fio, year. Все делается также через цикл.

   Команда 6: представляет собой выход из программы, используя процедуру Pascal’я «EXIT».

 

Инструкция пользователю

   Программа написана на английском языке. Поясню: master или owner– это переводится как «хозяин, владелец», theme – это «тематика, тема». При вводе (в меню) вместо правильной команды (1,2,3,4,5,6) другой тип (Char String) программа выдаст ошибку и «вылетет». Поэтому прошу быть внимательными при выборе нужных опций. При добавлении нового авто в базу данных никаких ограничений нет. Насчет выдачи то же самое.

 

ИСХОДНЫЙ КОД

 

program gai;

type auto=record nomer,model,color,year,fio:string; end;

label a1;

var a,i,temp,b:byte;tmp:string;

m:array[1..50]of auto;

 

procedure add;

begin temp:=temp+1;

write(‘ Number of auto: ‘);readln(m[temp].nomer);write(‘ Model: ‘);readln(m[temp].model);

write(‘ Color: ‘);readln(m[temp].color);write(‘ Year: ‘);readln(m[temp].year);

write(‘ Master(driver) name: ‘);readln(m[temp].fio);writeln(‘<<<<Added new car ‘,m[temp].nomer,’>>>>’);

end;

 

procedure by_color;

begin

write(‘ Enter color of the car: ‘);readln(tmp);

for i:=1 to temp do begin

b:=pos(tmp,m[i].color);

if b>=1 then writeln(‘ ‘,i,’.’,’ ‘,m[i].nomer,’ — ‘,m[i].model,’; ‘,m[i].year,'(‘,m[i].fio,’)’);

end;

end;

 

procedure by_model;

begin

write(‘ Enter model of the car: ‘);readln(tmp);

for i:=1 to temp do begin

b:=pos(tmp,m[i].model);

if b>=1 then writeln(‘ ‘,i,’.’,’ ‘,m[i].nomer,’ — ‘,m[i].model,’; ‘,m[i].year,'(‘,m[i].fio,’)’);

end;

end;

 

procedure by_year;

begin

write(‘ Enter year of the car: ‘);readln(tmp);

for i:=1 to temp do begin

b:=pos(tmp,m[i].year);

if b>=1 then writeln(‘ ‘,i,’.’,’ ‘,m[i].nomer,’ — ‘,m[i].model,’; ‘,m[i].year,'(‘,m[i].fio,’)’);

end;

end;

 

procedure by_fio;

begin

write(‘ Enter owner name(driver) of the car: ‘);readln(tmp);

for i:=1 to temp do begin

b:=pos(tmp,m[i].fio);

if b>=1 then writeln(‘ ‘,i,’.’,’ ‘,m[i].nomer,’ — ‘,m[i].model,’; ‘,m[i].year,'(‘,m[i].fio,’)’);

end;

end;

 

begin

a1:writeln(»);

writeln(‘Select your comman:’);

writeln(‘1.Add new car’);

writeln(‘2.Search by color’);

writeln(‘3.Search by model’);

writeln(‘4.Search by year’);

writeln(‘5.Search by master(driver)’);

writeln(‘6.Exit’);

readln(a);

case a of

1:begin add; goto a1; end;

2:begin by_color; goto a1; end;

3:begin by_model; goto a1; end;

4:begin by_year; goto a1; end;

5:begin by_fio; goto a1; end;

6:begin exit; end;

end;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список литературы

 

  1. Фаронов В.В. Основы Турбо-Паскаля 6.0. — М.: МВТУ — ФЕСТО ДИДАКТИК, 2000. — 304 с.
  2. Мирзохи С.В. Turbo-Pascal и объектно-ориентированное программирование.- М.: Финансы и статистика, 1992.- 192 с.