Пример работающей программы




Отчет по лабораторной работе №1

«Решение типовой задачи»

по дисциплине

«Алгоритмические языки и программирование»

 

 

Выполнил

Студент группы 9311

_______________ П.О. Кириллов

_____ ________________2019

Проверил

Старший преподаватель

________________ Л.И.Винник

_____ ________________2019

ЛАБОРАТОРНАЯ РАБОТА №1

I.Постановка задачи (внешние спецификации)

Наименование задачи: Выяснить стоимость телефонного звонка

Словесное описание задачи

Программа разрабатывается для того, чтобы по введенным пользователем данным:

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

Результатом работы программы является сообщение с ценой за данный разговор.

 

Вход: стоимость одной минуты, длительность разговора, номер дня недели, процент скидки;

Выход: Стоимость звонка.

Таблица 1

Объект программы Имя в программе Тип Диапазон Пр/структура Вход/Выход/Const
Стоимость одной минуты а float [1..10] простая вход
Длительностьразговора b int [0..100] простая вход
Процент скидки n int [1..99] простая вход
Номер дня недели m int [1..7] простая вход
Итоговая стоимость звонка sum float [0..1000] простая выход

Внешние спецификации функций программы

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

Организация ввода данных с контролем диапазона

Организация обработки данных;

Организация вывода результата;

Интерфейсные задачи;

Математическая формулировка задачи

if (m==6|| m==7)

sum=(a/100 * (100-n))*b;

else

sum=a*b;

Спецификации интерфейса

4.1 Организация заставки

  Программа Стоимость телефонного разговора Выполнил студент Кириллов Павел Олегович Гр. 9311  
Esc – выход, ENTER - далее

4.2 Организация ввода данных

  Введите скидку в процентах [1..99]: Стоимость в минуту [1..10]: Номер дня недели [1..7]: Сколько целых минут длился разговор [0..100]:
ENTER - далее

4.3 Вывод сообщения об ошибке

Введите скидку в процентах [1..99]: Стоимость в минуту [1..10]: Номер дня недели [1..7]: Сколько целых минут длился разговор [0..100]:
ERROR!!! Повторите попытку ввода ENTER - далее

4.4 Организация вывода данных

  Введите скидку в процентах[1..99]:** Стоимость в минуту [1..10]:** Номер дня недели [1..7]:** Сколько целых минут длился разговор [0..100]: ** Итоговая стоимость звонка равна: *
Esc – повтор ввода, ENTER - далее

4.5 Интерфейс завершающего экрана

    Программа Стоимость телефонного разговора Завершила свою работу    
Нажмите любую клавишу

 

 

Внешние данные тестирования

Входные данные Выход Реакция программы
a=1 b=50 n=54 m=2 sum=50.00 Программа работает нормально
a=2 b=1 n=50 m=7 sum=1.00 Программа работает нормально
a=2 b=1 n=0 m=8 ERROR!!! Повторите попытку ввода Программа работает нормально
a=120 b=7 n=50 m=7 ERROR!!! Повторите попытку ввода Программа работает нормально
a=9 b=8 n=50 m=2 sum=72.00 Программа работает нормально
a=3 b=3 n=3 m=3 sum=9.00 Программа работает нормально
a=5 b=60 n=20 m=7 sum=240.00 Программа работает нормально
a=1 b=80 n=88 m=6 sum=9.60 Программа работает нормально
a=5.3 b=6 n=30 m=7 sum=22.26 Программа работает нормально

Пример работающей программы

При запуске программы появляется окно заставки (интерфейс 3.1), где пользователю предлагается нажать клавишу Esc для выхода или Enter для продолжения работы программы.

Если пользователь нажал клавишу Esc, то появляется завершающий экран (интерфейс 3.5).

Если пользователь нажал клавишу Enter, то появляется окно ввода данных (интерфейс 3.2). Курсор устанавливается в место ввода данных, ожидается ввод данных пользователем. Если пользователь ввел некорректные данные (нецифровой ввод данных, вне диапазона), то появляется сообщение об ошибке (интерфейс 3.3). После нажатия клавиши Enter место ввода очищается, ожидается повторный ввод данных. Если данные введены верно, то после нажатия клавиши Enter появляется окно вывода результатов (интерфейс 3.4), где пользователю предлагается повторить ввод данных (клавиша Esc) или продолжить работу с программой (клавиша Enter).

Если пользователь нажал клавишу Esc, то появляется окно ввода данных (интерфейс 3.2), работа с программой начинается заново.

Если же пользователь нажал клавишу Enter, то появляется интерфейс завершающего экрана (интерфейс 3.5). После нажатия любой клавиши происходит выход из программы.

 

7 Код программы:

 

#include <stdio.h>

#include <conio.h>

int main()

{ int n,m,b;

float a,sum;

char ch;

clrscr();

printf ("Программа \nСтоимость телефонного разговора \nВыполнил студент \nКириллов Павел Олегович \nГруппа 9311);

getch ();

clrscr();

do {

printf ("\n\nСтоимость в минуту [1..10]:");

printf ("Сколько целых минут длился разговор [0..100]:");

printf ("Введите скидку в процентах [1..99]:");

printf ("номер дня недели [1..7]:");

gotoxy(50,1);

scanf("%f",&a);

if (a>10||a<1) {

gotoxy(1,6);

printf ("\n ERROR!!!\n Повторите попытку ввода(ограничение от 1 до 10):");

}

getch ();

clrscr();

 

}

while (a>10||a<1)

 

 

do {

printf ("\n\nСтоимость в минуту [1..10]:%f",a);

printf ("Сколько целых минут длился разговор [0..100]:");

printf ("Введите скидку в процентах [1..99]:");

printf ("номер дня недели [1..7]:");

gotoxy(50,2);

scanf("%d",&b);

if (b>100||b<0) {

gotoxy(1,6);

printf ("\nERROR!!!\n Повторите попытку ввода(ограничение от 0 до 100):");

}

getch ();

clrscr();

 

}

while (b>100||b<0)

 

do {

printf ("\n\nСтоимость в минуту [1..10]:%f",a);

printf ("Сколько целых минут длился разговор [0..100]:%d",b);

printf ("Введите скидку в процентах [1..99]:");

printf ("номер дня недели [1..7]:");

gotoxy(50,3);

scanf("%d",&n);

if (n>99||n<1) {

gotoxy(1,6);

printf ("\n ERROR!!!\n Повторите попытку ввода(ограничение от 1 до 99):");

}

getch ();

clrscr();

 

}

while (n>99||n<1)

 

do {

printf ("\n\nСтоимость в минуту [1..10]:%f",a);

printf ("Сколько целых минут длился разговор [0..100]:%d",b);

printf ("Введите скидку в процентах [1..99]:%d",n);

printf ("номер дня недели [1..7]:");

gotoxy(50,4);

scanf("%d",&n);

if (m>7||m<1) {

gotoxy(1,6);

printf ("\n ERROR!!!\n Повторите попытку ввода(ограничение от 1 до 7):");

}

getch ();

clrscr();

 

}

while (m>7||m<1)

 

clrscr();

 

if (m==6|| m==7)

sum=(a/100 * (100-n))*b;

else

sum=a*b;

printf ("Итоговая стоимость звонка составила: %.2f рублей \n\nПрограмма\nСтоиимость телефонного разговора\nЗавершила свою работу",sum);

 

return 0;

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-07-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: