Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_работа_1_ДКБ_1_осень_2013.doc
Скачиваний:
15
Добавлен:
05.06.2015
Размер:
116.74 Кб
Скачать

Кафедра Математического обеспечения

Информационных систем и инноватики

Лабораторная работа № 1

По дисциплине "Языки программирования (1)"

Вариант N ____

Исполнители:

№ учебной группы,

фамилии студентов

Оценки по БРС

в баллах

Защита в срок

(да/нет)

Руководитель: профессор Грибанов В.П.

Дата защиты «_____»__________2013_ г.

Москва 2013

ПРИЛОЖЕНИЕ 2

Основные принципы разработки меню

Меню позволяет пользователю так организовать работу программы так, чтобы он имел возможность:

  • выбрать один из нескольких предложенных вариантов вычислений (последовательность вариантов выбирает сам пользователь),

  • повторить какой-либо вариант,

  • завершить программу (программе нужно сообщить подтверждение выхода),

  • кроме того программа должна блокировать неправильные действия пользователя при выборе вариантов действий и по возможности сообщать пользователю о его ошибках.

Рассмотрим процесс создания меню по шагам. Рассматривается фрагмент программы в развитии соответствующий.

Собственно текст меню (предложены 4 условных варианта действий и 5 - выход из программы с подтверждением):

Заголовок меню

  1. Первый вариант действий

2. Второй вариант действий

3. Третий вариант действий

4. Четвёртый вариант действий

5. Выход из программы

Ваш выбор:

Затем производится ввод ответа (выбора) пользователя.

Далее необходимо проанализировать введённый ответ и выполнить вариант вычислений в соответствии с выбором пользователя. Для этого применяется оператор множественного выбора SWITCH…CASE

switch (выражение) {

case постоянная1:

{

// Реализация первого варианта действий

. . .

break;

}

case постоянная2:

{

// Реализация второго варианта действий

. . .

break;

}

case постоянная3:

{

// Реализация третьего варианта действий

. . .

break;

}

case постоянная4:

{

// Реализация четвёртого варианта действий }

. . .

break;

}

case постоянная5:

{

// Реализация выхода из программы

// с подтверждением }

. . .

break;

}

default:

{

// Реализация варианта действий

// защиты от неверного выбора

. . .

break;

}

}

Данный вариант показывает работу меню в «линейном виде», а нормальное меню работает до отказа пользователя от работы,

Для обеспечения работы меню «в цикле» можно сделать так - предыдущий фрагмент программы должен быть помещён внутрь цикла с неизвестным числом повторений, желательно вида do-while.

Рекомендуемый вариант пункта «Выход из программы (с подтверждением)»

Пункт 5:

Вопрос пользователю 'Вы действительно хотите’,

закончить работу? (Y/N)');

Чтение ответа (exit_ans);

if (exit_ans = 'Y')

F:=false;//флаг управления циклом?

//применённый в цикле do - while

Возможны и другие варианты реализации.

Усложнённое задание

  1. Дополнительно сформировать счётчик повторений попыток ввода ( на 3-5 неудачных попыток). Когда заданный лимит попыток будет превзойдён, программа прекращает работу, уведомив пользователя о том, что он исчерпал свои возможности.

  1. Заблокировать, не допускать выполнения пунктов обработки информации, если не была введена исходная информация! Использовать «флажок», чтобы знать, введена информация или ещё нет

  1. Очистку экрана перед очередной выдачей меню включить в программу ТОЛЬКО ПОСЛЕ ПОЛНОЙ отладки программы

РЕКОМЕНДАЦИЯ. Все возможные усовершенствования вида и размещения меню выполняются только после того, как полностью отлажена вся программа!!!

ПРИЛОЖЕНИЕ 3

Menu_exp_1a.c

#include <stdio.h>

#include <conio.h>

main ()

{

char ch;

int fl;

fl = 1;

do {

printf("1. Input_array\n");

printf("2. Output_array \n");

printf("3. First_task\n");

printf("4. Second_task \n");

printf("5. End_of_Job \n");

printf(" Your Choice, Please: ");

//ch = getchar(); /* τΓÑ¡¿Ñ ¬½áó¿Φ¿ */

scanf( " %c", &ch);

switch(ch)

{

case '1':

//Input_array ();

printf("\n Input_array\n");

break;

case '2':

//Output_array ();

printf("\n Output_array \n");

break;

case '3':

//First_task ();

printf("\n First_task\n");

break;

case '4':

//Second_task();

printf("\n Second_task \n");

break;

case '5':

//exit (); /* ???? */

printf("\n This Job Is Over!!!! \n");

fl = 0;

break;

default :

printf(" Your Choice Is Wrong %c\n", ch);

// break;

}

}

while(fl == 1);

return 0;

}