Login
Нужна помощь в составлении кода проги в c#
NEW 04.01.08 00:07
Доброй ночи! Помогите пожалуйста со следующим заданием, Искала на многих форумах, но не нашла ничего подходящего. Все как-то кусками получается, а в общем ничего. Задание следующее: нужно создать прогу, которая бы выполняла вычисление площади и периметра (А,U) например прямоугольника, треугольника, круга, а также площади и обьема (V,O) квадрата, цилиндра и т.д. Должны быть созданы классы, один так называемый базовый с атрибутами цвета и названия, и getter и setter функциями. Из него наследуются еще 2 класса: площадь и геом.тело, к классу площади относится прямоугольник, треугольник, круг. Где потом и идет вычисление и выдача на консолю. Параметры задаются user-ом. И также соответственно для геом.тело. Я полнейший новичок и создаю прогу в 'microsoft visual c# 2005' так и нужно здесь создавать, даже может
быть не смотря на преимущества более актуальной версии (если таковы имеются
). Извиняюсь если не совсем правильно выразилась, задание не на русском, пришлось импровизировать. Заранее благодарна тому кто откликнется
!


NEW 04.01.08 01:05
in Antwort Грейс 04.01.08 00:07
Начните сами с общего, а куски потом вставите. 
Первое действие - просто вычислить площадь и периметр одной фигуры без всяких классов.

Первое действие - просто вычислить площадь и периметр одной фигуры без всяких классов.
NEW 04.01.08 14:11
in Antwort AlexNek 04.01.08 01:05
На данный момент так называемый кусок для вычисления площади выглядит так:
{
public class CGeomFigur
{
public static void Main() {}
}
{
class Flaeche:CGeomFigur
{
public static void Main() {}
}
{
Console.WriteLine("Flaeche einer welchen Figur möchten Sie ausrechnen: 1=Rechteck 2=Kreis 3=Dreieck");
Console.Write("Machen Sie Ihre Sätze: !");
string s = Console.ReadLine();
double n = double.Parse(s);
double FR,FK,FD = 0;
double a,b,radius;
switch(n)
{
case 1:
Console.WriteLine("Geben Sie die Seite a ein: ");
a=Console.Read();
Console.WriteLine("Geben Sie die Seite b ein: ");
b=Console.Read();
FR = a * b;
Console.WriteLine("Die Flaeche Ihres Rechtecks beträgt: ", FR);
case 2:
Console.WriteLine("Geben Sie Ihr Radius ein: ");
radius=Console.Read();
double radius;
FK = Math.Pow(radius, 2);
Console.WriteLine("Die Flaeche Ihres Kreises ist: ",FK);
case 3:
Console.WriteLine("Geben Sie die Seite a ein: ");
a=Console.Read();
Console.WriteLine("Geben Sie die Seite b ein: ");
b=Console.Read();
FD = (a * b)/2;
Console.WriteLine("Die Flaeche Ihres Dreiecks beträgt: ", FD);
default:
Console.WriteLine("Nicht definierte Auswahl! Bitte nur 1, 2, oder 3 auswaelen.");
break;
}
Вы как думаете, это можно так использовать?
{
public class CGeomFigur
{
public static void Main() {}
}
{
class Flaeche:CGeomFigur
{
public static void Main() {}
}
{
Console.WriteLine("Flaeche einer welchen Figur möchten Sie ausrechnen: 1=Rechteck 2=Kreis 3=Dreieck");
Console.Write("Machen Sie Ihre Sätze: !");
string s = Console.ReadLine();
double n = double.Parse(s);
double FR,FK,FD = 0;
double a,b,radius;
switch(n)
{
case 1:
Console.WriteLine("Geben Sie die Seite a ein: ");
a=Console.Read();
Console.WriteLine("Geben Sie die Seite b ein: ");
b=Console.Read();
FR = a * b;
Console.WriteLine("Die Flaeche Ihres Rechtecks beträgt: ", FR);
case 2:
Console.WriteLine("Geben Sie Ihr Radius ein: ");
radius=Console.Read();
double radius;
FK = Math.Pow(radius, 2);
Console.WriteLine("Die Flaeche Ihres Kreises ist: ",FK);
case 3:
Console.WriteLine("Geben Sie die Seite a ein: ");
a=Console.Read();
Console.WriteLine("Geben Sie die Seite b ein: ");
b=Console.Read();
FD = (a * b)/2;
Console.WriteLine("Die Flaeche Ihres Dreiecks beträgt: ", FD);
default:
Console.WriteLine("Nicht definierte Auswahl! Bitte nur 1, 2, oder 3 auswaelen.");
break;
}
Вы как думаете, это можно так использовать?

NEW 04.01.08 18:54
in Antwort Грейс 04.01.08 14:11
Так думаю будет затруднительно.
Во первых почему 2 майн?
Во вторых, наличие свитча с вычислением и вводом совсем не классовый подход.
Подумайте какие аттрибуты и операции нужны каждому классу. Какие общие операции есть у всех объектов?
Во первых почему 2 майн?
Во вторых, наличие свитча с вычислением и вводом совсем не классовый подход.
Подумайте какие аттрибуты и операции нужны каждому классу. Какие общие операции есть у всех объектов?
NEW 04.01.08 19:28
in Antwort AlexNek 04.01.08 18:54
Во первых почему 2 майн?
------
Это не мешает - оба статики в своих классах. Так делают для поклассовой отладки.
Хотя... судя по задаче должен быть еще один класс и это майн() должен быть в нем.
------
Это не мешает - оба статики в своих классах. Так делают для поклассовой отладки.
Хотя... судя по задаче должен быть еще один класс и это майн() должен быть в нем.
NEW 04.01.08 19:34
in Antwort Грейс 04.01.08 14:11
Если Я правильно посчитал, то скобок '{' - 8 штук, а '}' - 5 штук. Так, мягко говоря, не бывает.
Во фрагменте
------
}
{
Console.WriteLine("Flaeche einer welchen Figur möchten Sie ausrechnen: 1=Rechteck 2=Kreis 3=Dreieck");
------
тоже ошибка...
Во фрагменте
------
}
{
Console.WriteLine("Flaeche einer welchen Figur möchten Sie ausrechnen: 1=Rechteck 2=Kreis 3=Dreieck");
------
тоже ошибка...
NEW 04.01.08 21:44
in Antwort AlexNek 04.01.08 18:54
->Подумайте какие аттрибуты и операции нужны каждому классу. Какие общие операции есть у всех объектов?
----------------------
Вообщем базовый класс CGeomFigur имеет два атрибута: цвет и название. Этот же класс является наследственным для классов: Flaeche,Umfang,Volumen,Oberflaeche.
А операции, я думаю, это и есть диалог с user-ом, где задаются параметры и потом их вычисление! Поэтому и switch, мне так показалось удобней
.
----------------------
->Во вторых, наличие свитча с вычислением и вводом совсем не классовый подход.
----------------------
А как можно тогда по-другому?
----------------------
Вообщем базовый класс CGeomFigur имеет два атрибута: цвет и название. Этот же класс является наследственным для классов: Flaeche,Umfang,Volumen,Oberflaeche.
А операции, я думаю, это и есть диалог с user-ом, где задаются параметры и потом их вычисление! Поэтому и switch, мне так показалось удобней

----------------------
->Во вторых, наличие свитча с вычислением и вводом совсем не классовый подход.
----------------------
А как можно тогда по-другому?

NEW 04.01.08 21:54
in Antwort Murr 04.01.08 19:34
Да насчет скобок вы правы, подредактирую
, спасибо!
-----------------------------
->Console.WriteLine("Flaeche einer welchen Figur möchten Sie ausrechnen: 1=Rechteck 2=Kreis 3=Dreieck");
------
тоже ошибка...
---------------------------
Но ошибки, если честно не вижу
, может подскажите поточней? 

-----------------------------
->Console.WriteLine("Flaeche einer welchen Figur möchten Sie ausrechnen: 1=Rechteck 2=Kreis 3=Dreieck");
------
тоже ошибка...
---------------------------
Но ошибки, если честно не вижу


NEW 05.01.08 12:15
in Antwort Грейс 04.01.08 21:44
Поэтому и switch, мне так показалось удобней
------
Сколько изиенений нужно будет вносить, если потребуется добавить фигуру? Правильный ответ - ноль, при другом - ищите ошибку...
------
Сколько изиенений нужно будет вносить, если потребуется добавить фигуру? Правильный ответ - ноль, при другом - ищите ошибку...
NEW 05.01.08 12:31
Это согласно задания, а для наследуемых классов? Эти аттрибуты Вы кстати и не вводите.
Для меня это предложение абосолютно непонятно. Обычно горорят так:
От этого класса наследуются классы....
Этот класс являянтся базовым для классов...
Направление правильное. Ввод, вычисления, вывод.
Тепрь запишити в произвольной форме \Можно и в UML\ какие аттрибуты и операции должен иметь каждый класс.
switch - это не страшно, важно то что вы в нем делаете. А то что там деалется это обычный С. В switch можно было бы создавать классы, но не больше.
in Antwort Грейс 04.01.08 21:44
В ответ на:
Вообщем базовый класс CGeomFigur имеет два атрибута: цвет и название.
Вообщем базовый класс CGeomFigur имеет два атрибута: цвет и название.
Это согласно задания, а для наследуемых классов? Эти аттрибуты Вы кстати и не вводите.
В ответ на:
Этот же класс является наследственным для классов:
Этот же класс является наследственным для классов:
Для меня это предложение абосолютно непонятно. Обычно горорят так:
От этого класса наследуются классы....
Этот класс являянтся базовым для классов...
В ответ на:
А операции, я думаю, это и есть диалог с user-ом, где задаются параметры и потом их вычисление!
А операции, я думаю, это и есть диалог с user-ом, где задаются параметры и потом их вычисление!
Направление правильное. Ввод, вычисления, вывод.
Тепрь запишити в произвольной форме \Можно и в UML\ какие аттрибуты и операции должен иметь каждый класс.
В ответ на:
Поэтому и switch, мне так показалось удобней
Поэтому и switch, мне так показалось удобней
switch - это не страшно, важно то что вы в нем делаете. А то что там деалется это обычный С. В switch можно было бы создавать классы, но не больше.
NEW 05.01.08 13:07
Компилятору то не мешает, но глаза режет.
Ниеогда так не делал. Возможно из за плохой наследственности
. В голове твердо сидит один майн.
in Antwort Murr 04.01.08 19:28
В ответ на:
Это не мешает - оба статики в своих классах.
Это не мешает - оба статики в своих классах.
Компилятору то не мешает, но глаза режет.
В ответ на:
Так делают для поклассовой отладки
Так делают для поклассовой отладки
Ниеогда так не делал. Возможно из за плохой наследственности

NEW 05.01.08 22:07
in Antwort Грейс 04.01.08 21:54
NEW 05.01.08 22:12
in Antwort AlexNek 05.01.08 13:07
В голове твердо сидит один майн.
-----
Ну и как тогда писать именно класс и все необходимые проверки функциональности? Вот и делается майн() в классе, инстансе и поехали...
-----
Ну и как тогда писать именно класс и все необходимые проверки функциональности? Вот и делается майн() в классе, инстансе и поехали...
NEW 06.01.08 14:13
in Antwort Murr 05.01.08 22:12
По-хорошему используется NUnit, JUnit, Boost.Test. Использование Main для тестирования - это позавчерашний день.
06.01.08 14:34
in Antwort scorpi_ 06.01.08 14:13
По-хорошему используется NUnit, JUnit, Boost.Test.
------
Значит Я опять отстал... :( Надо догонять!!! :) Что порекомендуешь из литературы?
------
Значит Я опять отстал... :( Надо догонять!!! :) Что порекомендуешь из литературы?
07.01.08 15:55
in Antwort Murr 06.01.08 14:34
Ты ведь дотнетчик? Значит тебя в первую очередь интересует NUnit? Мне известна только эта книга - "Pragmatic Unit Testing in C# with NUnit", правда она получила слабые оценки на amazon'е, хотя авторы и весьма уважаемы. Сам я её не читал, так как дотнетом не занимаюсь. С учётом амазоновских оценок возможно есть смысл почитать книги по JUnit - "JUnit in Action", "Pragmatic Unit Testing in Java with JUnit" ибо принцип работы в общем-то одинаков. Есть ещё рекомендуемая книга "eXtreme .NET", хотя по тестированию там только одна глава.
NEW 07.01.08 16:55
in Antwort scorpi_ 07.01.08 15:55
Ты ведь дотнетчик?
-----
Вообще-то - всеядный - на чем дают - на том пишу. Иногда - на 4-5 сразу.
Просто последний большой проект был на DotNet'е.
Спасибки за референсы - кое-что слил - буду читать.
Эээ... В FAQ вроде не было этих ссылок. Есть смысл добавить. :)
-----
Вообще-то - всеядный - на чем дают - на том пишу. Иногда - на 4-5 сразу.
Просто последний большой проект был на DotNet'е.
Спасибки за референсы - кое-что слил - буду читать.
Эээ... В FAQ вроде не было этих ссылок. Есть смысл добавить. :)
NEW 07.01.08 16:57
in Antwort NightWatch 06.01.08 21:59
А что чел смог почерпнуть из приведенного кода? Практически - ничего, ибо не понял как от задания перейти к коду...