Компьютерное проектирование интерфейса пользователя

Тип работы:
Методичка
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

КРИВОРІЗЬКИЙ ІНСТИТУТ

ПВНЗ «Кременчуцький університет економіки, інформаційних технологій та управління»

Методичні вказівки

до виконання контрольних робіт

«Комп'ютерне проектування інтерфейсу користувача»

для студентів денної та заочної форм навчання

спеціальності 7. 901 402

«Гнучкі комп’ютеризовані системи та робототехніка»

Факультет — інженерний

Кафедра — технічної кібернетики

Кривий Ріг 2007

Розповсюдження і тиражування без офіційного дозволу офіційного дозволу КІ ПВНЗ «КУЕІТУ» та укладача заборонено.

Методичні вказівки до виконання контрольних робіт з дисципліни «Комп'ютерне проектування інтерфейсу користувача» містять варіанти контрольних завдань, опис послідовності та техніки виконання поставленого завдання, вимоги до оформлення звітів та перелік рекомендованої літератури.

Призначені для студентів денної та заочної форм навчання інженерного факультету спеціальності 7. 901 402 «Гнучкі комп’ютеризовані системи та робототехніка».

Укладач: ст. викл. Супрунова Ю. А.

Методичні вказівки розглянуті та рекомендовані до видання на засіданні кафедри технічної кібернетики

«30"_серпня_2007 р., протокол №_1_

Затверджено методичною радою

Криворізького інституту ПВНЗ КУЕІТУ

«13» вересня 2007 р., протокол № 1

Наклад згідно замовленню

Комп’ютерний набір: Супрунова Ю. А.

СОДЕРЖАНИЕ

Введение.

Задание № 1. Тема: Создание тестирующих программ

Задание № 2. Тема: Создание игровых программ.

Задание № 3. Тема: Проектирование СУБД в среде DELPHI.

Список рекомендуемой литературы.

Введение

Данное методическое пособие предназначено для самостоятельной работы студентов специальности «Гибкие компьютеризированные системы и робототехника» дневной и заочной формы обучения при решении контрольных заданий по дисциплине «Компьютерное проектирование интерфейса пользователя».

Методическое пособие содержит варианты контрольных заданий, требования к их оформлению, а также примеры решения типовых заданий.

Варианты выбираются студентами согласно номеру в журнале. Варианты после 20 выбираются следующим образом 21 — 1, 22 — 2 и т. д.

Задание № 1

Тема: Создание тестирующих программ

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

Создать программу-тест произвольного содержания (программа может являться как средством контроля знаний, так и психологическим тестом).

Программа должна удовлетворять следующим требованиям:

1. выводить не менее 10 вопросов и предлагать на каждый из них не менее 4 вариантов ответов.

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

Примеры выполнения и оформления контрольного задания

Пример№ 1.

В качестве примера рассмотрим процесс написания тестирующей программы контроля знаний по дисциплине «Теория электрических и магнитных цепей». Программы выдает на экран 10 вариантов вопросов, на каждый из которых предлагается 5 вариантов ответов. После завершения тестирования на экран выводится сообщение о количестве правильных ответов и окно программы закрывается.

1. Создадим новое приложение и сохраним его в своей папке.

2. Зададим свойства главной формы программы следующим образом:

Captions — Теория электрических и магнитных цепей (заголовок окна).

BorderStyle — bsSingle

(окно, размер которого пользователь не может изменять, потянув курсором за край окна, но может менять кнопками в полосе заголовка)

Исключим из числа доступных кнопок Развернуть:

BordersIcons. byMaximize — false.

3. Поместим на форму 10 компонентов Image (вкладка Aditional) и расположим их таким образом, чтобы они накладывались друг на друга. Для копирования компонентов можно воспользоваться буфером обмена. Для выравнивания компонентов необходимо их выделить и выбрать в контекстном меню Позиция — Выровнять

4. Зададим каждому из компонентов Image заранее заготовленные изображения в формате jpg. Для этого необходимо щелкнуть мышкой по свойству Picture. Откроется Редактор Картинки, в котором можно указать путь к необходимому изображению.

5. Подобным образом поместим на форму 10 компонентов Memo (вкладка Standard). Для каждого из компонентов поместим в свойство Lines тестовый вопрос. Для всех компонентов Memo установим свойство ReadOnly — True (запретим изменение текста)

6. Поместим на форму компонент RadioGroup. В свойстве Captions элемента напишем Выберите ответ. В свойстве Items компонента создадим пять пустых строк (они нам понадобятся для вывода вариантов ответа).

7. В разделе var модуля опишем переменные:

kol_v, kol_pr: integer;

8. Напишем в обработчике события OnShow для Form1 код:

procedure TForm1. FormShow (Sender: TObject);

begin

kol_v: =kol_v+1; //счетчик количества заданных вопросов

radioGroup1. ItemIndex:=-1; //флажок ответа не выбран

// делаем компоненты невидимыми

image1. Visible:=false;

image10. Visible:=false;

memo1. Visible:=false;

memo5. Visible:=false;

case kol_v of

1: begin

Image1. Visible:=true;

Memo1. Visible:=true;

Radiogroup1. Items[0]:='20 B'; //варианты выводимых ответов

Radiogroup1. Items[1]:='5 B';

Radiogroup1. Items[2]:='1 B';

Radiogroup1. Items[3]:='10 B';

Radiogroup1. Items[4]:='2 B';

end;

10: begin

Image10. Visible:=true;

Memo10. Visible:=true;

Radiogroup1. Items[0]:='20 B';

Radiogroup1. Items[1]:='5 B';

Radiogroup1. Items[2]:='1 B';

Radiogroup1. Items[3]:='10 B';

Radiogroup1. Items[4]:='2 B';

end;

end; //конец структуры Case

if kol_v> 10 then //если заданы все вопросы, на экран выводится сообщение о количестве правильных ответов и форма закрывается

begin

showmessage ('Правильных ответов -'+IntToStr (kol_pr));

form1. Close

end;

end;

9. В обработчике события OnClick для RadioGroup1 напишем код:

procedure TForm1. RadioGroup1Click (Sender: TObject);

begin

case kol_v of

1: if radiogroup1. ItemIndex=0 then kol_pr: =kol_pr+1;

2: if radiogroup1. ItemIndex=3 then kol_pr: =kol_pr+1;

3: if radiogroup1. ItemIndex=4 then kol_pr: =kol_pr+1;

4: if radiogroup1. ItemIndex=1 then kol_pr: =kol_pr+1;

5: if radiogroup1. ItemIndex=0 then kol_pr: =kol_pr+1;

end;

end;

Здесь в зависимости от номера вопроса и выбранного флажка подсчитывается количество правильных ответов. Radiogroup1. ItemIndex=0 — номер флажка, содержащего правильный ответ (в данном случае — 1-й флажок)

10. Последний штрих программы — поместим на форму компонент BitBtn. В свойстве Caption запишем Следующий вопрос. В свойстве Glyph можно задать картинку на кнопке.

Для события OnClick кнопки выберем из списка FormShow.

Один из вариантов рабочего окна программы:

Пример № 2

Рассмотрим еще один пример — тест по Информатике. В отличие от предыдущей программы, текст теста, а также номер правильного ответа будет содержаться в файле формата rtf. Файл test. rtf с текстом будет располагаться в той же папке, что и исполнимый файл, в подкаталоге text и иметь следующую структуру:

В электронной таблице знак «$» перед номером строки в обозначении ячейки указывает на:

1) денежный формат;

2) начало формулы;

3) абсолютную адресацию;

4) начало выделения блока ячеек;

5) пересчет номера строки, начиная с текущего.

Элементарная единица измерения количества информации — это:

1) Байт;

2) Кбайт;

3) Мбайт;

4) Бит;

5) Восемь бит.

4

Компакт-диск (CD) — это:

1) диск малого размера;

2) магнитный диск с высокой плотностью записи информации;

3) оптический диск, информация с которого считывается лазером;

4) диск после выполнения операции сжатия информации

5) сменный магнитный диск малого размера.

Конец теста

Количество вопросов может быть любым.

1. Зададим свойства форме программы как в предыдущем случае и поместим на нее следующие компоненты: RichEdit1, Memo1, BitBtn1, RadioGroup1, Label1.

Разместим компоненты на форме, как это представлено на рисунке ниже, и зададим им свойства:

RichEdit1:

Visible — false. Данный компонент предназначен для хранения текста, считанного из файла и он должен быть невидимым в процессе выполнения программы.

WordWrap — false. Перенос строк запрещен.

Memo1:

ReadOnly — true. Компонент предназначен для вывода на экран вопроса и доступен только для чтения.

RadioGroup1

В свойстве Captions элемента напишем Выберите правильный ответ. В свойстве Items компонента создадим пять пустых строк (они нам понадобятся для вывода вариантов ответа).

Label1 — очистим свойство Caption компонента.

BitBtn1 — Зададим заголовок кнопки и в свойстве Glyph разместим подходящий значок. Установим свойство Default = true, чтобы при нажатии Enter возникало событие OnClick для кнопки.

2. Опишем переменные в блоке var модуля:

var

Form1: TForm1;

I, kol, j: integer;

3. Создадим обработчик OnShow для формы:

procedure TForm1. FormShow (Sender: TObject);

var AppPath: array[0. 255] of char;

_file: AnsiString;

begin

GetCurrentDirectory (255,AppPath); //определяем директорию, где расположен исполнимый файл

_file := AppPath + 'texttest. rtf';

try

richedit1. Lines. LoadFromFile (_file);//текст загружается в компонент RichEdit1

except //в случае, если файл не найден, работа программы завершается

showmessage ('Файл не найден!');

Application. Terminate;

end;

BitBtn1. Enabled:=false;//Кнопка «Дальше» не доступна, пока не будет сделан выбор

memo1. Lines. Strings[0]:=richedit1. Lines. Strings[j+0]; //в компонент Memo заносится первая строка — вопрос.

radiogroup1. Items[0]:=richedit1. Lines. Strings[j+1]; //заполняем варианты ответов

radiogroup1. Items[1]:=richedit1. Lines. Strings[j+2];

radiogroup1. Items[2]:=richedit1. Lines. Strings[j+3];

radiogroup1. Items[3]:=richedit1. Lines. Strings[j+4];

radiogroup1. Items[4]:=richedit1. Lines. Strings[j+5];

try

i: =StrToInt (richedit1. Lines. Strings[j+6]); //переменная і содержит номер правильного ответа

except //если не указан номер правильного ответа, работа программы прерывается

showmessage ('Неверный формат теста!');

Application. Terminate;

end;

j: =j+8;

end;

4. Создадим обработчик OnClick для BitBtn1:

procedure TForm1. BitBtn1Click (Sender: TObject);

begin

if i=radiogroup1. ItemIndex+1 then //если дан правильный ответ

begin

label1. Font. Color:=clGreen; //цвет шрифта Label1 — зеленый

label1. Caption:= 'Ответ правильный!';

kol: =kol+1; //счетчик количества правильных ответов

end else if radiogroup1. ItemIndex<>-1 then

begin

label1. Font. Color:=clRed;

label1. Caption:= 'Ответ на правильный!';

end;

memo1. Lines. Clear; //очищаем компонент Memo

if richedit1. Lines. Strings[j+0]='Конец теста'

then begin

memo1. Lines. Strings[0]:='Тест закончен';

memo1. Lines. Add ('Количество правильных ответов — '+IntToStr (kol));

radiogroup1. Items[0]:='';

radiogroup1. Items[1]:='';

radiogroup1. Items[2]:='';

radiogroup1. Items[3]:='';

radiogroup1. Items[4]:='';

radiogroup1. Enabled:=false;

end

else //иначе, если конец теста еще не достигнут

begin

memo1. Lines. Strings[0]:=richedit1. Lines. Strings[j+0];

radiogroup1. Items[0]:=richedit1. Lines. Strings[j+1];

radiogroup1. Items[1]:=richedit1. Lines. Strings[j+2];

radiogroup1. Items[2]:=richedit1. Lines. Strings[j+3];

radiogroup1. Items[3]:=richedit1. Lines. Strings[j+4];

radiogroup1. Items[4]:=richedit1. Lines. Strings[j+5];

try

i: =StrToInt (richedit1. Lines. Strings[j+6]);

except

showmessage ('Неверный формат теста!');

Application. Terminate;

end;

j: =j+8;

radiogroup1. ItemIndex:=-1;

end;

BitBtn1. Enabled:=false;

end;

5. Создадим обработчик OnClick для RadioGroup1:

procedure TForm1. RadioGroup1Click (Sender: TObject);

begin

BitBtn1. Enabled:=true; //если выбор произведен, то кнопка доступна.

end;

Вид окна в рабочем режимы программы будет следующим:

Пример № 3

Рассмотрим пример создания психологического теста.

Как и в предыдущем примере, вся информация будет храниться во внешнем текстовом файле (test. txt должен быть расположен в том же каталоге, что и исполнимый файл).

Структура файла должна быть следующей:

Правда ли, что благоразумие и осторожность полезны в любой ситуации? Или такие «таланты» только и способны превращать людей в премудрых пескарей, обреченных дрожать вместо того чтобы жить? Может благоразумие — всего лишь инструмент, которым каждый из нас владеет индивидуально? //это комментарий к тесту, который выводится перед его началом.

&

Выходите ли вы из себя постоянно, используя любой повод, чтобы выплеснуть на окружающих скопившуюся агрессию? //1-й вопрос

Выхожу, так как окружающие провоцируют меня своим поведением. //варианты ответов (всего 4)

0 //количество балов, которое дается, если выбран этот вариант

Я не ищу повода вспылить, но если что-то меня злит, мне трудно сдержаться.

1

Чтобы я вышел из себя и устроил скандал, нужна настоящая лавина неприятностей.

2

Я никогда не теряю хладнокровия и неизменно вежлив.

3

&

Боитесь ли вы разозлить человека, который физически сильнее вас?

Мне бы не хотелось довести до буйства тупую гору мышц, а потом искать выход из пиковой ситуации.

2

Стараюсь не иметь дело с теми, кто решает споры кулаками.

3

Если я прав (-а), то все равно стою на своем.

1

Если понадобится, я найду способ одолеть любого силача.

0

# //признак того, что вопросы закончились. Далее следуют варианты результатов. Число — это граничное количество баллов.

Вы «КАЛЬКУЛЯТОР». Вам надо все просчитать и все предусмотреть. Никаких отклонений и исключений, нарушающих нормальный ход событий, вы не терпите. Роковые совпадения и божественные откровения в расчет не принимаете. Вам кажется: подобное происходит настолько редко, что не стоит тратить время, раздумывая над вероятностью чуда. Вы не ждете разочарований, но и не рассчитываете на счастливую случайность. А между тем стоит быть поромантичней и верить в свою звезду. Пусть вам встретятся пустые иллюзии, но будут и внезапные подарки судьбы…

24

Вы «Птицелов». Вы точно знаете свои возможности и не пытаетесь поймать журавля в небе — для этого предпочтительнее расставить силки на земле. Вам кажется, что действовать с помощью логики сподручнее. Способ верный, но пренебрегать услугами госпожи Удачи тоже не следует. В любом случае ее благородие может внести свою удивительную лепту. А вы, если окажитесь в нужное время в нужном месте, благополучно снимите свой урожай. К тому же ваш разумный подход к жизни никто у вас ее не отнимет. Будьте более мобильны и более легкомысленны.

12

Вы «Арлекин». Вам нравиться жить полной жизнью — скорее бурной и эмоциональной, чем интеллектуальной и размеренной. В разных ситуациях вы действуете по-разному, не отдаете правилам и догмам первенство не зависимо от обстоятельств. В вас есть и немного сумасбродства, которое одному покажется очаровательным, а другому — невыносимым. Не обращайте внимания на «мнения отдельных критиков»! Обаяние всегда основано на оригинальности поведения, а изобретательность — на нарушении устоявшихся рамок. Всем, кто смотрит на мир по-новому, а решение принимает по-своему, приходится перешагивать через непонимание и осуждение, чтобы идти своим путем.

4

Вы «САЛАМАНДРА». Вы расцветаете в огне страстей. Ваше романтическое безрассудство дает о себе знать каждую минуту. И тогда, когда все и вся настроены не «против», а «за», вы можете разозлить любящую «публику» какой-нибудь несусветной выходкой. Такое происходит потому, что вам постоянно кажется, что чего-то вы от жизни недополучили. В качестве гиперкомпенсации вы любите делать резкие замечания и доставлять неприятности. Но ваша удовлетворенность мнимая. Попробуйте думать не только о своей прекрасной персоне, но и о том, каковы интересы окружающих. и жизнь станет проще и приятнее.

0

Принцип работы проектируемого приложения следующий. При запуске на экране отображаются комментарии к тесту.

После нажатия кнопки ОК на экране отображается первый вопрос и варианты ответов на него. При этом в заголовке окна отображается номер вопроса, а надпись на кнопке изменяется на «Дальше». Кнопка будет неактивна до тех пор, пока не будет выбран ответ.

По окончании теста на экран выводится количество набранных балов и результат тестирования. При этом заголовок окна также изменяется.

1. Разместим на форме следующие компоненты:

Panel1 (Color = clBlack, Caption =''), BitBtn1 (расположена на панели), RadioGroup1 (Caption='') и Label1 (WordWrap=true, AutoSize=false, ширину и высоту метки задайте примерно как показано на рисунке, поместите компонент на задний план — выберите в контекстном меню Компонент — Сделать нижним)

Свойства формы определим как в примере№ 1. Изменим также цвет формы на clSliver.

2. Изменим также иконку приложения. Для этого надо выбрать в меню Проект — Опции, перейти на вкладку Приложение и указать путь к файлу с расширением ico.

3. Опишем глобальные переменные:

var AppPath: array[0. 255] of char;

_file: AnsiString;

f: textFile; // текстовый файл

buf, s: string;

n_v: integer;//номер вопроса

bal: array[1. 4] of integer;

sum: integer;//сумма набранных балов

4. Как и в предыдущем примере определим директорию, где расположен исполнимый файл. В обработчике события OnCreate для формы напишем:

GetCurrentDirectory (255,AppPath); //определяем директорию, где расположен исполнимый файл

_file := AppPath + 'test. txt';

try

AssignFile (f,_file); //связываем логическое и физическое имя файла

reset (f); //открываем файл для чтения

except

ShowMessage ('Файл не найден'); BitBtn1. Enabled:=false;

end;

5. Создадим обработчик OnShow для формы:

repeat

readln (f, s) //считываем строку из файла;

if not (s[1]='& ') then buf: =buf+s;

until s[1] ='& ';

label1. Caption:=buf;

6. В обработчике OnClick для кнопки BitBtn1 напишем:

procedure TForm1. BitBtn1Click (Sender: TObject);

var k, i, j: integer;

st: array[1. 4] of string;

begin

buf: =''; k: =0; RadioGroup1. Visible:=true; i: =0; j: =0;

radiogroup1. Items. Clear; //очищаем компонент

n_v: =n_v+1;

BitBtn1. Caption:='Дальше'; BitBtn1. Enabled:=false;

if not (s[1]='#') then begin //если вопросы еще не закончились

repeat

readln (f, s);

k: =k+1;

case k of

1: label1. Caption:=s; //выводим текст вопроса

2,4,6,8: Radiogroup1. Items. Add (s);//выводим варианты ответов

3,5,7,9: begin

i: =i+1; bal[i]: =StrToInt (s);//заполняем массив баллами

end;

end;

until (s[1]='& ') or (s[1]='#');

form1. Caption:='Вопрос № '+IntToStr (n_v); //меняем заголовок окна

end

else //вывод результатов теста

begin repeat

readln (f, s);

k: =k+1;

case k of

2,4,6,8: begin j: =j+1; st[j]: =s; end;

3,5,7,9: begin

i: =i+1; bal[i]: =StrToInt (s);

end;

end;

until eof (f); //пока не будет достигнут конец файла

label1. Caption:='Вы набрали '+IntToStr (sum)+' баллов'+#13+#13;

if sum< bal[4] then label1. Caption:=label1. Caption+st[4] else

if sum< bal[3] then label1. Caption:=label1. Caption+st[3] else

if sum< bal[2] then label1. Caption:=label1. Caption+st[2] else

label1. Caption:=label1. Caption+st[1];

form1. Caption:='Результаты теста';

RadioGroup1. Visible:=false;

end;

end;

7. Создадим обработчик OnClick для RadioGroup1:

BitBtn1. Enabled:=true; //если ответ выбран, то кнопка доступна

sum: =sum+bal[RadioGroup1. ItemIndex+1]; //суммирование набранных баллов

Требования к оформлению отчета по контрольному заданию № 1.

Отчет оформляется на листах формата А4 со стандартным титульным листом «Контрольная работа» и должен содержать следующие пункты:

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

2. Описание структуры и назначения тестов (перечень вопросов с указанием правильных ответов).

3. Поэтапное описание процесса создания программы с примерами «скрин-шотов» программы и фрагментов исходного кода.

Приложением к отчету является дискета, содержащая рабочую версию программы.

Задание № 2

Тема: Создание игровых программ

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

Создать согласно варианту игровую программу. Оценка за контрольную работу зависит от степени сложности и художественного оформления интерфейса пользователя. Обязательное требование — наличие справочной системы, в которой описываются правила игры.

Варианты контрольных заданий:

Вариант № 1 Игра «Прыжок кенгуру»

/

/

В центре поля 5*5 позиций (можно взять поле другого нечетного размера) стартует кенгуру. Она прыгает по спирали из центра в левый нижний угол в соседнюю клетку, либо через одну (случайным образом).

После каждого прыжка кенгуру охотник может поставить ловушку, общее число — не более 3-х в течение игры. Устанавливая ловушку, охотник щелчком мышки по клетке указывает ее координаты (в нижний левый угол ставить ловушку нельзя). Если кенгуру при очередном прыжке попала в ловушку, то она поймана; если благополучно добралась до финиша, «1: 0» в пользу общества охраны животных.

Вариант № 2 Игра «Поймай зайца»

/

/

В левом верхнем углу поля 5*5 позиций (можно взять поле другого нечетного размера) стартует заяц. Он прыгает по спирали до центра. Прыгать заяц может либо в соседнюю клетку, либо через одну (случайным образом)

После каждого прыжка охотнику предлагается поставить ловушку. Всего ловушек может быть не более 3-х. Устанавливая ловушку, охотник щелчком мышки по клетке указывает ее координаты (в центр поля ставить ловушку нельзя).

Если заяц при очередном прыжке попал в ловушку, то он пойман; если благополучно добрался до центра, то охотник остался без зайца.

Вариант № 3 Игра «кто вперед»

/

/

Два игрока стартуют в левом верхнем углу поля 9*9 и движутся к центру поля. Победит тот, кто придет первым. Положение первого игрока можно отмечать «+», второго «*», если оба в одной клетке — «0», а можно любыми другими обозначениями.

Игроки могут ходить на одну или две клетки по спирали к центру (игрок вводит, соответственно 1 или 2).

На пути есть 5 особых точек, расставленных программой случайным образом:

Назад на 3 клетки;

Вперед на две клетки;

Пропустить ход;

Сделать дополнительный ход;

Встать в одну клетку с противником

Точки невидимы до тех пор, пока один из противников не попадет на них.

Вариант № 4 Игра «найти невидимку» (диагональная)

На поле n*n в одной из клеток стоит невидимка, которого должен найти игрок. Игрок указывает координаты невидимки. Если угадал, то нашел невидимку. Если не угадал, то невидимка передвигается в другую позицию, а игроку сообщается, где невидимка был в момент хода.

Невидимка может передвигаться только по диагонали.

Вариант № 5 Игра в кости

Играющий называет любое число в диапазоне от 2 до 12 и ставку, которую он делает в этот ход. Программа с помощью датчика случайных чисел дважды выбирает числа от 1 до 6 (бросает кубик). Если сумма выпавших цифр меньше 7 и играющий задумал число, меньшее 7, он выигрывает сделанную ставку. Если сумма выпавших цифр больше 7 и играющий задумал число больше 7, он также выигрывает сделанную ставку. Если играющий угадал сумму цифр, он получает в четыре раза больше очков, чем сделанная ставка. Ставка проиграна, если не имеет место ни одна из описанных ситуаций.

В начальный момент у играющего 100 очков.

Вариант № 6 Игра «Коровы и быки» (для слов)

Два игрока загадывают по четырехсимвольному слова (вводят без отображения на экране).

Затем каждый игрок должен угадать слово противника. Игроки ходят по очереди. На каждом шаге игрок называет четырехбуквенное слово, а программа сообщает, сколько букв угадано (быки) и сколько букв угадано и стоит на своем месте (коровы).

Вариант № 7 Игра «Тренировка памяти — числа» (2 игрока)

Играют два игрока. Каждому по очереди на определенное время высвечивается несколько чисел, полученных с помощью датчика случайных чисел. Размер этих чисел ограничен (например, не более 3-х цифр).

Игроки должны воспроизвести числа. Каждому игроку дается определенному число шагов (игроки указывают это число в начале игры). Время запоминания также определяется игроками в начале игры.

Игроки могут играть в 2-х режимах:

А) просто воспроизвести числа;

Б) воспроизвести числа в том же порядке.

Вариант № 8 Игра «Тренировка памяти — слова» (1 игрок)

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

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

Число слов для запоминания может быть различным.

Игрок может играть в 2-х режимах:

А) просто воспроизвести слова;

Б) воспроизвести слова в заданном порядке.

Вариант № 9 Игра «Подбери ключи»

Перед играющим четыре запертые двери. Открыть все двери, располагая десятью ключами, каждый из которых может открыть несколько дверей. Предоставляется 14 попыток.

Вариант № 10 Игра «Ипподром»

Играющий выбирает одну из трех лошадей, состязающихся на бегах, и выигрывает, если его лошадь приходит первой. Скорость лошадей на разных этапах выбирается программой с помощью датчика случайных чисел.

Вариант № 11 Игра «Угадай слово»

Ведущий вводит слово (без отображения его на экране). На экране высвечивается столько звездочек, сколько букв в слове. Роль ведущего может выполнять программа — слово выбирается произвольным образом из набора, содержащегося в текстовом файле.

Игрок отгадывает слово по одной букве. Если в слове есть эта буква, она высвечивается вместо звездочки. Игроку всегда сообщается о номере его очередного хода. В любой момент игрок может отказаться от игры.

По окончании игры сообщается, за сколько шагов игрок угадал слово или сколько шагов сделано до прерывания игры, и какое слово было загадано, если игрок отказался от игры.

Вариант № 12 Игра «Обучение устному счету»

На каждом шаге играющему предлагается два числа и арифметическое действие, которое надо выполнить.

Если игрок отвечает неверно, программа сообщает правильный ответ и дает следующее задание с тем же арифметическим действием.

Размер чисел и максимальное время ответа устанавливаются по желанию игрока в начале игры.

Вариант № 13 Игра «100»

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

Вариант № 14 Игра «НИМ»

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

Вариант № 15 «Цзяньшидзы»

Имеется две кучки камней. Двое играющих по очереди делают ходы. Каждый ход может состоять в одном из двух:

Берется произвольное ненулевое число камней и какой-то одной кучки;

Берется одновременно по одинаковому ненулевому числу из обеих кучек.

Выигрывает взявший последний камень.

Вариант № 16 Игра «Прыгающие шарики».

/

/

Вдоль доски расположено 8 лунок, в которых лежат 4 черных и 3 белых шара так, как показано на рисунке. Передвинуть черные шары на место белых, а белые — на место черных. Шар можно передвинуть либо в соседнюю с ним пустую лунку, либо в пустую лунку, находящуюся непосредственно за ближайшим шаром. Черные шары можно передвигать только вправо, а белые только влево.

Вариант № 17 Игра «Морской бой «(два игрока)

На поле 4*4 клетки игроки устанавливают 3 корабля по одной клетке (у каждого игрока свое поле). Программа «запоминает» положение кораблей и скрывает их.

Затем игроки начинают поражать корабли противника, по очереди указывая координаты предполагаемого корабля. Результат попадания (попал или мимо) отмечается на поле (например, «*" — попал, «+» — мимо или любыми другими значками).

Вариант № 18 Игра «Морской бой «(игра с компьютером)

Программа аналогична предыдущему варианту, но в качестве одного из игроков выступает компьютер.

Вариант № 19 Игра «Крестики — нолики» (два игрока)

Вариант № 20 Игра аналог телевизионного шоу «Поле чудес».

Создание справочной системы.

Файл справки создадим при помощи утилиты shalomhelp. exe. Для начала необходимо ввести заголовок справочного окна (Title). В поле Header вводим название пункта справки, а затем сам текст справки.

При этом мы можем вставлять в текст графические изображения и гиперссылки на другие пункты справки.

Чтобы добавить страницу можно выбрать в меню Edit — New Page или нажать на кнопку «+» на панели инструментов. Кнопка «-» удаляет ненужный раздел.

Чтобы сгруппировать страницы по разделам необходимо нажать кнопку Page Organizer на панели инструментов или F5

Нажав на кнопку Header, мы добавляем заголовок раздела.

Чтобы изменить текст заголовка необходимо его выделить и нажать на Enter. На экране появится окно, в котором можно отредактировать текст.

Кнопками Up и Down можно изменять порядок следования страниц справки.

Для корректного отображения символов кириллицы нужно выбрать в меню Options — Project Options, перейти на вкладку Language и выбрать из списка кодировок Russian.

Для компиляции файла нажмите F9 или кнопку на панели инструментов. Перед компиляцией файл необходимо сохранить.

В итоге мы должны получить файл с расширением hlp.

Чтобы подключить справочную систему к приложению необходимо:

1. Поместить hlp-файл и файл с расширением cnt в тот же каталог, что и исполнимый файл.

2. В свойстве HelpFile формы ввести имя файла (например, help. hlp), в свойстве HelpKeyword горячую клавишу вызова справки (F1), HelpContext = 1 (номер раздела справки по умолчанию).

3. Для вызова справки при помощи пункта меню необходимо написать в обработчике OnClick:

winhelp (Form1. Handle, 'help. hlp', HELP_CONTEXT, 1);

Требования к оформлению отчета по контрольному заданию № 2.

Отчет оформляется на листах формата А4 со стандартным титульным листом «Контрольная работа» и должен содержать следующие пункты:

1. Постановка задачи (jписание алгоритма игры).

2. Поэтапное описание процесса реализации интерфейса пользователя с примерами «скрин-шотов» программы и фрагментов исходного кода.

3. «Скрин-шоты» окон справочной системы.

Приложением к отчету является дискета, содержащая рабочую версию программы.

Задание №3

Тема: Проектирование СУБД в среде DELPHI

Пример выполнения и оформления контрольного задания.

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

В военкомате ведется учет юношей допризывного и призывного возраста. Имеются следующие данные: район, фамилия, год рождения, номер личного дела, пригодность к службе («годен» или «не годен»).

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

1. вывести список юношей, призываемых на службу в заданном году (по достижении 18 лет);

2. количество годных юношей для каждого из районов;

3. вывести список юношей, пригодных к службе;

4. количество юношей, пригодных и непригодных к службе;

5. отсортировать список по алфавиту в порядке возрастания и в порядке убывания;

6. найти самого «старого» и самого молодого юношу;

7. список юношей, фамилия которых начинается на заданную букву;

8. создать таблицу archive аналогичной структуры, скопировать в нее все данные из основной таблицы.

9. вывести в отчет отсортированный по фамилиям список юношей, пригодных к службе.

Создание и просмотр псевдонимов баз данных

Создать или изменить путь к существующим псевдонимам БД можно двумя способами.

Способ первый. Запустить утилиту BDE Administrator. Выбрать в меню Object — New. Определить название и путь к файлам БД.

Способ второй. Запустить утилиту DataBase DeskTop. Выбрать в меню Tools — Alias Manager. Нажав кнопку New можно создать новый псевдоним, или изменить путь к существующему в области окна Path.

Создание таблиц базы данных.

Для создания таблицы воспользуемся утилитой DataBase DeskTop.

1. Для создания таблицы выберем в меню программы File-New-Table.

В данной СУБД используем формат Paradox. Выберем его из списка в появившемся окне.

программа интерфейс пользователь delphi

На экране появится окно создания базы данных. В столбце Field Name вводим имя поля (не должно содержать пробелов).

В столбце Type выбираем из контекстного меню (правый щелчок мыши) тип поля. Для строковых полей необходимо указать размер (столбец Size).

Создадим таблицу следующей структуры:

Имя поля

Тип поля

Описание

Name

Alpha[20]

Район проживания

Phone

Alpha[20]

Фамилия, инициалы

Note

Date

Дата рождения

Типы полей таблиц в Paradox 7

Тип

Обозначение

Описание значения

Alpha

А

Строка символов. Длина не более 255 символов

Number

N

Число с плавающей точкой. Диапазон -10 307 … 10 308. Точность 15 цифр мантиссы

Money

$

Денежная сумма. Отличается от типа Number тем, что в значении отображается денежный знак. Обозначение денежного знака зависит от установок Windows

Short

S

Целое число. Диапазон -32 768 … 32 767

Longlnteger

I

Целое число. Диапазон -2 147 483 648 … 2 147 483 647

BCD

#

Число в двоично-десятичном формате

Date

D

Дата. Диапазон 01. 01. 9999 до н. э. … 31. 12. 9999

Time

Т

Время

Timestamp

@

Дата и время

Memo

M

Строка символов. Длина не ограничена. Первые 240 символов хранятся в файле таблицы, остальные в файле с расширением MB

Formatted Memo

F

Строка символов. Отличается от типа Memo тем, что строка может содержать форматированный текст

Тип

Обозначение

Описание значения

Graphic

G

Графическое изображение. Форматы BMP, PCX, TIF, GIF и EPS. При загрузке в поле изображение преобразуется к формату BMP. Для хранения изображения используется файл с расширением MB

OLE

О

Данные в формате, который поддерживается технологией OLE. Данные хранятся в файле с расширением MB

После создания таблицы необходимо нажать кнопку SaveAs

В появившемся окне в области Alias выбрать псевдоним базы данных

Создание основного окна программы

1. Переименуем главное окно программы — изменим свойство Caption для Form1.

2. Поместим на форму компонент PageControl (вкладка Win32). Установим компоненту следующие свойства:

ь Align (Выравнивание) — alClent (на все окно)

Щелкнем правой клавишей мышки по компоненту и создадим две новые страницы (TabSheet1, TabSheet2).

Переименуем страницы соответственно — Ввод информации и Поиск информации. Для этого необходимо в раскрывающемся списке Инспектора объекта выбрать объект и изменить его свойство Caption.

3. Поместим на форму объект MainMenu (вкладка Standard). Щелкним по компоненту два раза и создадим пункт меню Данные, который содержит следующие подпункты: Ввод информации, Поиск данных, Копирование таблицы, Выход. Для создания разделителя в меню необходимо ввести «-» — дефис.

4. Поместим на форму следующие компоненты:

ь Table (вкладка BDE);

ь DataSource (вкладка Data Access);

ь DBGrid, DBNavigator (вкладка Data Controls).

Установим компонентам следующие свойства:

Table:

DatabaseName (псевдоним базы данных) — выбираем из списка свой Alias.

TableName — выбираем имя своей таблицы.

AutoRefresh (обновление структуры таблицы) — устанавливаем значение true.

Active — устанавливаем true — подключаем таблицу.

DataSource:

DataSet (источник данных) — выбираем Table1.

DBGrid, DBNavigator:

свойству DataSource устанавливаем значение DataSource1.

Align (выравнивание): DBGrid — alClient (на все окно), DBNavigator — alBottom (внизу окна).

Двойным щелчком по компоненту Table1 вызываем редактор полей. В контекстном меню (щелчок правой клавишей по редактору), выбираем пункт Добавить все поля. Если какое-нибудь поле нам видеть на экране не нужно, определим его свойство Visible — False. Для остальных полей в свойстве DisplayLabel напишем отображаемый заголовок столбца.

На данном этапе вид формы должен быть следующим:

Запустим приложение и проверим, как оно работает. Сформируем базу данных.

5. Перейдем на вкладку Поиск информации. Поместим на форму следующие компоненты:

ь DBGrid (Align — Top);

ь Query (вкладка BDE)

ь DataSorce;

ь PageControl (добавим 3 новых листа);

ь RadioGroup (вкладка Standard)

Расположим компоненты следующим образом:

Установим свойству Multiline компонент PageControl2 значение True. Переименуем страницы, как это показано ниже.

Зададим свойству Captions компонента RadioGroup1 значение Сформировать список. Щелкнем по свойству Items компонента и заполним Редактор списка строк:

Установим свойству ItemIndex компонента RadioGroup значение 0, чтобы по умолчанию был выбран первый переключатель.

Поучаем следующее:

6. Щелкнем по вкладке Список призывников по году. Поместим на нее компоненты Label, Edit (вкладка Standard) и BitBtn (вкладка Additional). Переименуем и разместим компоненты следующим образом:

Для того, чтобы сделать шрифт жирным, используем свойство Font компонента. Чтобы разместить на кнопке рисунок используют свойство Glyph. Стандартные заготовки Delphi расположены в папке:

c: Program FilesCommon FilesBorland SharedImages

7. Таким же образом оформим вкладки Годные призывники по району и Список по начальной букве фамилии.

8. На этом «оформительская работа» закончена. Приступаем непосредственно к программированию.

Создадим следующий обработчик события OnClick для компонента RadioGroup1:

procedure Tform1. RadioGroup1Click (Sender: Tobject);

var Kolp, Kolnp, I: integer;

begin

Case RadioGroup1. ItemIndex of

0: begin {если выбран первый переключатель}

query1. SQL. Clear; {закрываем запрос}

query1. SQL. Add ('Select *from MainTable'); {в кавычках следует SQL запрос}

query1. Open;

end;

1: begin

query1. SQL. Clear;

query1. SQL. Add (`Select *from MainTable where goden = true');

query1. Open;

end;

2: begin

Table1. First;

Kolp: =0;Kolnp:=0;

for I: =1 to Table1. RecordCount do

Begin

if (Table1. FieldByName (`goden'). AsBoolean = true) then

Kolp: =Kolp + 1

else KolnP: =KolnP + 1;

Table1. Next;

end;

Messagedlg ('Количество годных = '+IntToStr (KolP)+#13+

'Количество негодных = '+IntToStr (KolnP), mtInformation,[mbOk], 0);

end;

3: begin

query1. SQL. Clear;

query1. SQL. Add (`Select *from MainTable order by surname ASC');

query1. Open;

end;

4: begin

query1. SQL. Clear;

query1. SQL. Add (`Select *from MainTable order by surname DESC');

query1. Open;

end;

5: begin

query1. SQL. Clear;

query1. SQL. Add (`Select *from MainTable where databorn = (Select min (databorn) from MainTable)');

query1. Open;

end;

6: begin

query1. SQL. Clear;

query1. SQL. Add (`Select *from MainTable where databorn = (Select max (databorn) from MainTable)');

query1. Open;

end;

end;

end;

Переименуем компонент DataSorce2 в QueryDataSorce (изменим свойство Name). Зададим его свойству DataSet значение Query1.

Свяжем компонент DBGrid2 с компонентом Query1 при помощи компонента QueryDataSorce (выберем его из списка в свойстве DataSorce компонента DBGrid2).

Для компонента Query1 выберем в свойстве DateBaseName свой Alias.

В свойстве SQL компонента напишем:

select * from maintable. db

Зададим свойству Active компонента Query1 значение True.

Двойным щелчком по компоненту Query1 вызываем редактор полей. Переименуем поля, как это делали раньше, с компонентом Table1.

Запустим программу на выполнение и посмотрим на результат.

9. Для события OnClock кнопки «Составить список» вкладки «Список призывников по году» пишем обработчик:

procedure Tform1. BitBtn1Click (Sender: Tobject);

var sData, S: AnsiString;

begin

sData: =Edit1. Text;

if sData='' then

begin

ShowMessage (`Год не введен!');

exit

end;

S: ='Select *from MainTable where databorn <= `'01. 01. '+ IntToStr (StrToInt (Edit1. Text)-18)+'''';

query1. SQL. Clear;

query1. SQL. Add (S);

query1. Open;

end;

10. Для события OnClock кнопки «Показать» вкладки «Список по начальной букве фамилии» пишем обработчик:

procedure Tform1. BitBtn3Click (Sender: Tobject);

var S, s1, s2: AnsiString;

begin

s2: ='%';

s1 := `''' + Edit3. Text + s2 +'''';

S: ='Select *from MainTable where surname Like'+s1;

query1. SQL. Clear;

query1. SQL. Add (S);

query1. Open;

end;

11. Для события OnClock кнопки «Вывести количество по району» вкладки «Годные призывники по району» пишем обработчик:

procedure Tform1. BitBtn2Click (Sender: Tobject);

var KolP, I: integer;

begin

Table1. First;

KolP: =0;

for I: =1 to Table1. RecordCount do

Begin

if ((Table1. FieldByName (`goden'). AsBoolean = true) and (Table1. FieldByName (`rayon'). AsString = Edit2. Text)) then

KolP: =Kolp + 1;

Table1. Next;

end;

Messagedlg (`Количество годных по району `+ Edit2. Text+' = `+IntToStr (KolP), mtInformation,[mbOk], 0);

Edit2. Text:='';

end;

12. Обработаем событие OnClick для пунктов меню:

Для подпункта Ввод информации:

procedure Tform1. N2Click (Sender: Tobject);

begin

Pagecontrol1. ActivePageIndex := 0;

end;

Для подпункта Поиск данных:

procedure Tform1. N3Click (Sender: Tobject);

begin

Pagecontrol1. ActivePageIndex := 1;

end;

Для подпункта Копирование таблицы:

procedure Tform1. N6Click (Sender: Tobject);

begin

Query1. Close;

Query1. SQL. Clear;

Query1. SQL. Add (`insert into ArhivTable select * from maintable');

Query1. ExecSQL;

Query1. Close;

Query1. SQL. Clear;

Query1. SQL. Add (`select * from ArhivTable');

Query1. Open;

ShowMessage ('Архивная таблица создана!')

end;

Для подпункта Выход:

procedure Tform1. N5Click (Sender: Tobject);

begin

close

end;

13. В обработчике события OnCloseQuery для Form1 напишем:

procedure Tform1. FormCloseQuery (Sender: Tobject; var CanClose: Boolean);

begin

if (Messagedlg (`Выйти из программы?', mtConfirmation,[mbYes, mbNo], 0)=mrYes) then

Canclose := true

else CanClose := false;

end;

Создание отчетов

1. Создадим новую форму. Поместим на нее компонент QuickRep, который расположен на вкладке QReport.

2. Поместим на форму компонент Query. Выберем в свойстве DatabaseName свой Alias. Щелкнем по свойству SQL и напишем в Редакторе списка строк следующее:

select * from MainTable where goden=true

3. Установим свойству DataSet компонента QuickRep1 значение Query1.

4. Поместим на созданный отчет два компонента QRBand (все находится на вкладке QReport).

Первый из них будет заголовком отчета. Поместим на него компонент QRLabel — статический текст, который будет помешен на отчет. В его свойстве Caption напишем Список юношей, пригодных к службе. Отформатируйте заголовок, воспользовавшись свойством компонента Font, по своему усмотрению.

Для второго компонента QRBand2 изменим его свойство BandType на rbDetal.

Поместим на полосу отчета QRBand2 четы ре компонента QRDBText. В свойстве DataSet каждого из них выберем Query1. В свойстве DataField выберем название полей. Для выравнивания компонентов QRDBText выберем их все, удерживая нажатой клавишу Shift, затем щелкнем по ним правой клавишей и выберем в меню пункт Позиция — Выровнять.

В окне Выравнивание зададим параметры:

Щелкнув правой клавишей по отчету, можно выбрать пункт Preview и посмотреть, что получилось.

5. Для того чтобы, в конце отчета выводилось общее число пригодных либо не пригодных к службе юношей необходимо поместить на отчет еще один компонент — QRBand3. Изменим его свойство BandType на rbSummary.

. Поместим на итоговую полосу отчета QRExpr.

Щелкнем по свойству компонента Expression и выберем в появившемся окне функцию Count

Добавьте самостоятельно на итоговую полосу надпись Общее число.

Для этого на нижнюю полосу отчета необходимо поместить компонент QRLabel и изменить соответствующим образом свойство Caption.

6. Вернемся на Form1. Добавим в меню следующие пункты:

Для обработчика события OnClick пункта меню Годные напишем код:

form2. Query1. Close;

form2. Query1. SQL. Clear;

form2. Query1. SQL. add ('select * from MainTable where goden=true');

form2. Query1. Active:=true;

form2. QuickRep1. Preview

Для обработчика события OnClick пункта меню Не годные напишем код:

form2. Query1. Close;

form2. Query1. SQL. Clear;

form2. Query1. SQL. add ('select * from MainTable where goden=false');

form2. Query1. Active:=true;

form2. QuickRep1. Preview

6. Добавьте самостоятельно заголовки столбцов таблицы.

Для этого на верхнюю полосу отчета необходимо поместить компоненты QRLabel и изменить соответствующим образом свойство Caption.

Запускаем программу и наслаждаемся ее работой.

Варианты контрольных заданий:

№ вар.

Задание

1

В каталоге студий звукозаписи имеются следующие данные: название группы, название альбома, год выпуска альбома, название студии.

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

вывести таблицу групп, выпустивших альбом в заданном году.

вывести таблицу групп, выпустивших альбом на заданной студии.

вывести таблицу групп, название которых начинается на заданную букву.

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

Ш Обеспечить сортировку по группам и по альбомам в порядке возрастания или в порядке убывания.

Ш Создать таблицу archive аналогичной структуры. Скопировать в нее все данные из основной таблицы.

Ш Вывести в отчет отсортированный по группам, а затем по названиям альбомов список. В конце отчета должно быть указано общее количество альбомов.

2

В аптеке ведется учет лекарственных средств. Имеются следующие данные: название лекарства, цена упаковки, кол-во упаковок в аптеке, год выпуска, срок хранения (в годах).

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

1. вывести список лекарств, не годных к употреблению на заданный год,

2. суммарную стоимость всех упаковок для каждого из видов лекарств.

3. суммарную стоимость всех лекарств в аптеке.

4. найти самое дорогое лекарство.

5. вывести список лекарств, название которых начинается на заданную букву.

6. количество наименований лекарств в аптеке.

Ш Обеспечить сортировку по названиям и по стоимости лекарств в порядке возрастания или в порядке убывания.

Ш Создать таблицу archive аналогичной структуры. Скопировать в нее все данные из основной таблицы.

Ш Вывести в отчет отсортированный по названиям лекарств список. В конце отчета должно быть указано общее число лекарств.

3

Имеется информация о ходе сессии по группам: факультет, группа, кол-во студентов, сдавших экзамены по предмету «Высшая математика» на «5», «4» и «3» (отдельные поля).

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

1. вывести количество студентов на каждом из факультетов.

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

3. выводить суммарное количество студентов во всех факультетах.

4. количество групп на всех факультетах.

5. определить по среднему баллу лучшую и худшую группы.

6. вывести список тех групп, где количество двоечников превышает заданное значение.

Ш Обеспечить сортировку сначала по факультетам, затем по группам по алфавиту в порядке возрастания и в порядке убывания.

Ш Создать таблицу archive аналогичной структуры. Скопировать в нее все данные из основной таблицы.

Ш Вывести в отчет отсортированный список групп, где количество «троечников» превышает суммарное количество «отличников» и «хорошистов»

4

На станции тех. обслуживания автомобилей ведется учет автомобилей, прошедших кап. pемонт, по следующим данным: маpка машины, серийный номер, пробег (в км.) после предыдущего ремонта, год выпуска машины.

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

1. составить список машин, имеющих пpобег более 100 000 км.

2. вывести марку машины, имеющей максимальный пробег

3. в отдельном окне выводить количество автомобилей каждой из марок.

4. общее количество автомобилей.

5. в отдельном окне средний пробег автомобилей каждой из марок.

6. средний пробег всех автомобилей

Ш Обеспечить сортировку списка машин по маркам, затем по серийному номеру в порядке возрастания и в порядке убывания.

Ш Создать таблицу archive аналогичной структуры. Скопировать в нее все данные из основной таблицы.

Ш Вывести в отчет отсортированный по маркам общий список машин, а также указать в конце отчета общее количество машин и средний пробег после кап. ремонта.

5

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

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

1. в отдельном окне выводить количество больных в каждой из палат.

2. список больных, лежащих в заданной палате.

3. в отдельном окне выводить список диагнозов и количество больных с таким диагнозом.

4. общее число больных.

5. список больных, чья фамилия начинается на заданную букву.

6. список больных, поступивших 13 числа.

Ш Обеспечить сортировку списка больных по алфавиту.

Ш Создать таблицу archive аналогичной структуры. Скопировать в нее все данные из основной таблицы.

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

6

На каждого из спортсменов, заявленных на соревнования по легкой атлетике, представлена карточка со следующими данными: регистрационный код, город, фамилия и инициалы, возраст (лет), рост (см), вид соревнований.

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

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

2. список спортсменов, участвующих в заданном соревновании.

3. список спортсменов заданного города.

4. вывести информацию о самом рослом и самом низком спортсмене, самом молодом и самом старом.

5. средний возраст и средний рост спортсменов.

6. количество спортсменов, в том числе по интервалам возраста (до 18 лет, от 18 до 20 лет, от 20 до 25 лет, свыше 25 лет).

Ш Обеспечить сортировку списка спортсменов по городам, затем по фамилиям.

Ш Создать таблицу archive аналогичной структуры. Скопировать в нее все данные из основной таблицы.

Ш Вывести в первый отчет список спортсменов отсортированный по фамилиям с указанием общего их числа. Во второй отчет — список городов с указанием числа спортсменов, которые его представляют.

7

Записи, содержащие информацию о книгах в библиотеке, имеют след. структуру: регистрационный номер (код) книги, автор, название книги, тематика, год издания, издательство, кол-во экземпляров.

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

Ш В режиме поиска формировать следующие запросы:

1. вывод сведений о книгах заданного автора.

2. в отдельном окне выводить список всех авторов и количество написанных ими книг.

3. информацию о самой старой из всех книг.

4. в отдельном окне выводить количество книг по каждой из тематик.

5. вывести таблицу книг, фамилия автора которых начинается на заданную букву.

6. суммарное количество книг.

Ш Обеспечить сортировку по авторам и по названиям книг по возрастанию и по убыванию

Ш Создать таблицу archive аналогичной структуры. Скопировать в нее все данные из основной таблицы.

Ш Вывести в первый отчет отсортированный по названиям полный список книг с указанием в итоговой строке общего числа наименований и общего количества книг. Во второй отчет — тематика и количество книг по данной тематике.

8

В прокуратуре имеются сведения о заключенных: ФИО, номер дела, дата рождения (формат поля дата), статья УК, срок заключения (годы), год заключения.

Программа должна отвечать следующим требованиям:

Ш Работать в двух режимах: ввода и поиска информации

ПоказатьСвернуть
Заполнить форму текущей работой