2013-10-15 4 views
0

Я хотел бы разработать такую ​​программу и прошу совет:вычислить площадь и периметр геометрических фигур

Разработку приложения для расчета площади и периметра геометрических фигур. Сначала пользователю предлагается ввести букву, представляющую форму . Мы используем C для круга, R для прямоугольника и S для квадрата.
После того как пользователь выбирает форму, программа запрашивает соответствующие размеров формы соответственно. Например, если пользователь выбрал квадрат, , программа попросит стороны. Если это круг, программа запросит радиус. Если это прямоугольник, он будет запрашивать длину и ширину. После получения соответствующих размеров программа рассчитает площадь и по периметру запрошенной формы и распечатает ее на экране. И снова код попросит другое письмо. Если пользователь вводит «Q», программа завершается. Эта программа должна быть реализована с использованием модулей.

One run of the program will look like this: 
Please Enter Shape (C: Circle, S: Square, R: Rectangle Q:quit) >S 
Please enter the side of the square > 8 
The area is 64 and the perimeter is 32 
Please Enter Shape (C: Circle, S: Square, R: Rectangle Q:quit) >R 
Please enter the width of the rectangle > 5 
Please enter the length of the rectangle > 7 
The area is 35 and the perimeter is 24 
Please Enter Shape (C: Circle, S: Square, R: Rectangle Q:quit) >Q 

#include<iostream.h> 
#include<conio.h> 
void main() 
{ 
//clear the screen. 
clrscr(); 
//declare variable type int 
int a,peri; 
//Input the side and save it in 'a' 
cout<<"Enter the side of square"<<endl; 
cin>>a; 
//calculate perimeter and save it in 'peri' 
peri=4*a; 
//show the output 'peri' 
cout<<"Perimeter of square is "<<peri; 
//get character 
getch(); 
} 

Как это будет выглядеть на C или C++?

+0

Вы знакомы с '' while' и switch' заявления? Это было бы полезно для вас сделать это домашнее задание. – Floris

+0

Не так хорошо с операторами switch, Это просто вопросы практики. – user2880024

+0

Привет! Пожалуйста, посмотрите, как я отредактировал ваш пост, чтобы сделать его более доступным. Что касается самого вопроса, это похоже на хорошее начало для площади. Попытайтесь реализовать запрос пользователю о форме, которую она хочет сейчас, и если что-то представляет проблему, сообщите нам об этом. –

ответ

1

Вот фрагмент кода, чтобы дать вам некоторые идеи:

printf("enter S, C, R, or Q (to quit):\n"); 
while((c = lower(getc())) != 'q') { 
    switch(c) { 
    case 'r': 
     // get input for rectangle 
     break; 
    case 's': 
     // ditto for square 
     break; 
    case 'c': 
     // ditto for circle 
     break; 
    else: 
     // deal with "unexpected input" 
    } 
    printf("enter S, C, R, or Q (to quit):\n"); 
} 

Это поможет вам начать ...

1

Некоторые вещи, которые нужно,

  • функция основной() возвращает Int
  • вы хотите взять один выбор символов для формы,
  • форма формы; cin >> shape сделает то, что вы хотите
  • Вам нужно либо предисловие cin, cout, и endl с std ::
  • или вам нужно объявить, используя пространство имен std;
  • вы будете нуждаться, чтобы проверить вашу запись формы против C, R, S, Q,
  • вы хотите внешний контур, чтобы проверить, был введен ли «Q»
  • вы хотите разрешить только в верхнем регистре? (Вы можете использовать ToUpper)

Вот скелет,

#include <iostream> 
#include <conio> 
using namespace std; 
int main() 
{ 
    //clear the screen. 
    //clrscr(); 
    //declare variable type int 
    char shape = 'N'; //none 
    int area, perimeter; 
    while(shape != 'Q') 
    { 
     cout<<"Please Enter Shape (C: Circle, S: Square, R: Rectangle Q:quit) >"<<endl; 
     //get shape choice 
     cin>>shape; 
     if(shape == 'C') 
     { 
     int radius; 
     //Circle, radius 
     } 
     else if(shape == 'S') 
     { 
     int side; 
     //Input the side 
     cout<<"Please enter the side of the square >"<<endl; 
     //Square, side 
     cin>>side; 
     //calculate perimeter and save it in 'peri' 
     perimeter=4*side; 
     //show the output 'perimeter' 
     cout<<"Perimeter of square is "<<perimeter<<endl; 
     } 
     else if(shape == 'R') 
     { 
     int width,length; 
     //Rectangle, width,length 
     } 
    } 
    return(0); 
} 
+0

Пропустил отличную возможность использовать 'switch' - но в остальном много полезной информации здесь для начинающего программиста. – Floris

+0

Согласен, переключатель - правильный ответ, но новичкам нужно увидеть шаблон if-else-if; пытаясь помочь новому программисту понять. – ChuckCottrill

+0

Спасибо, но он только запрашивает только форму. например, когда я вхожу в S, он не просит стороны. – user2880024

Смежные вопросы