Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая исправленная

.pdf
Скачиваний:
4
Добавлен:
02.12.2024
Размер:
466.76 Кб
Скачать

Рисунок 7 — Главное меню Дальше предлагается выбрать номер операции: 1 — сложение, 2 —

вычитание, 3 — умножение, 4 — деление, 5 — выход из калькулятора.

После выбора операции предлагается ввести 2 числа (рисунок 8).

Рисунок 8 — Ввод чисел После того, как ввели два числа, производится математическая операция,

выбранная пользователем (на рисунке 9 показано сложение).

Рисунок 9 — Результат вычиcлений

21

Дальше можно продолжить выполнять вычисления, либо выйти из калькулятора, нажав «5» (рисунок 10).

Рисунок 10 — Выход из программы

22

ПРИЛОЖЕНИЕ 2. БЛОК-СХЕМА АЛГОРИТМА

Начало

Номера

операций

Введите

номер

Введите 2 числа

Операци

и

Плюс

 

Минус

 

Умножить

 

Разделить

 

Выйти

 

 

 

 

 

 

 

 

 

Конец

23

ПРИЛОЖЕНИЕ 3. ИСХОДНЫЙ КОД ПРОГРАММЫ

Файл slozhenie.c:

#include <stdio.h>

float slozhenie(float firstnum, float secondnum, float* res)

{

if (res==NULL){ return 3;

}

*res=firstnum+secondnum; return 0;

}

Файл vychitanie.c:

#include <stdio.h>

float vychitanie(float firstnum, float secondnum, float* res)

{

if (res==NULL){ return 3;

}

*res=firstnum-secondnum; return 0;

}

Файл umnozhenie.c:

#include <stdio.h>

float umnozhenie(float firstnum, float secondnum, float* res)

{

if (res==NULL){ return 3;

24

}

*res=firstnum*secondnum;

return 0;

}

Файл delenie.c:

#include <stdio.h>

float delenie(float firstnum, float secondnum, float*

res)

{

if (res==NULL){ return 3;

}

if (secondnum==0){ return 2;

}

else *res=firstnum/secondnum; return 0;

}

Файл main.c:

#include <stdio.h> #include <stddef.h>

float slozhenie(float firstnum, float secondnum,float* res);

float vychitanie(float firstnum, float secondnum, float* res);

float umnozhenie(float firstnum, float secondnum, float* res);

float delenie(float firstnum, float secondnum, float* res);

25

int main()

{

size_t symbol,checkarg; float a,b,res;

while (symbol!=5)

{

if (printf("Enter the symbol of operation\n")<0){

printf("Error\n"); return 1;

}

if (printf("1 - slozhenie\n")<0){ printf("Error\n"); return 1;

}

if (printf("2 - vychitanie\n")<0){ printf("Error\n");

return 1;

}

if (printf("3 - umnozhenie\n")<0){ printf("Error\n");

return 1;

}

if (printf("4 - delenie\n")<0){ printf("Error\n"); return 1;

}

if (printf("5 - exit from calculator\n")<0){ printf("Error\n");

return 1;

26

}

if (scanf("%zu",&symbol)!=1){ printf("Error, try again\n"); return 4;

}

if (symbol==5) break; if (fflush(stdin)!=0){ printf("Error\n");

return 5;

}

if (symbol!=1 && symbol!=2 && symbol!=3 &&

symbol!=4){

if (printf("Try again and enter the correct symbol\n")<0){

printf("Error\n"); return 1;

}

}

else{

if (printf("Enter two numbers\n")<0){ printf("Error\n");

return 1;

}

if (scanf("%f%f",&a,&b)!=2){ printf("Error\n"); return 4;

}

switch(symbol)

{

case 1:

27

checkarg=slozhenie(a,b,&res); if (checkarg==3){

printf("Error\n"); return 3;

}

 

 

 

else

if

(printf("Summa

=

%f\n",res)<0){

printf("Error\n"); return 1;

}

break; case 2:

checkarg=vychitanie(a,b,&res); if (checkarg==3){

printf("Error\n"); return 3;

}

else if (printf("Raznost =

%f\n",res)<0){

printf("Error\n"); return 1;

}

break; case 3:

checkarg=umnozhenie(a,b,&res); if (checkarg==3){

printf("Error\n"); return 3;

}

28

else if (printf("Proizvedenie =

%f\n",res)<0){

printf("Error\n"); return 1;

}

break; case 4:

checkarg=delenie(a,b,&res); if (checkarg==3){

printf("Error\n"); return 3;

}

if (checkarg==2){

if (printf("Na 0 delit

nelzya\n")<0){

printf("Error\n"); return 1;

}

return 2;

}

if (checkarg==0){

if (printf("Chastnoe =

%f\n",res)<0){;

printf("Error\n");

return 1;

}

}

break;

}

}

29

}

return 0;

}

30