
Курсовая исправленная
.pdf
Рисунок 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