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


NEW 04.01.08 14:11
в ответ 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 21:44
в ответ 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
в ответ 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:31
Это согласно задания, а для наследуемых классов? Эти аттрибуты Вы кстати и не вводите.
Для меня это предложение абосолютно непонятно. Обычно горорят так:
От этого класса наследуются классы....
Этот класс являянтся базовым для классов...
Направление правильное. Ввод, вычисления, вывод.
Тепрь запишити в произвольной форме \Можно и в UML\ какие аттрибуты и операции должен иметь каждый класс.
switch - это не страшно, важно то что вы в нем делаете. А то что там деалется это обычный С. В switch можно было бы создавать классы, но не больше.
в ответ Грейс 04.01.08 21:44
В ответ на:
Вообщем базовый класс CGeomFigur имеет два атрибута: цвет и название.
Вообщем базовый класс CGeomFigur имеет два атрибута: цвет и название.
Это согласно задания, а для наследуемых классов? Эти аттрибуты Вы кстати и не вводите.
В ответ на:
Этот же класс является наследственным для классов:
Этот же класс является наследственным для классов:
Для меня это предложение абосолютно непонятно. Обычно горорят так:
От этого класса наследуются классы....
Этот класс являянтся базовым для классов...
В ответ на:
А операции, я думаю, это и есть диалог с user-ом, где задаются параметры и потом их вычисление!
А операции, я думаю, это и есть диалог с user-ом, где задаются параметры и потом их вычисление!
Направление правильное. Ввод, вычисления, вывод.
Тепрь запишити в произвольной форме \Можно и в UML\ какие аттрибуты и операции должен иметь каждый класс.
В ответ на:
Поэтому и switch, мне так показалось удобней
Поэтому и switch, мне так показалось удобней
switch - это не страшно, важно то что вы в нем делаете. А то что там деалется это обычный С. В switch можно было бы создавать классы, но не больше.
NEW 07.01.08 15:55
в ответ 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", хотя по тестированию там только одна глава.
07.01.08 16:55
в ответ scorpi_ 07.01.08 15:55
Ты ведь дотнетчик?
-----
Вообще-то - всеядный - на чем дают - на том пишу. Иногда - на 4-5 сразу.
Просто последний большой проект был на DotNet'е.
Спасибки за референсы - кое-что слил - буду читать.
Эээ... В FAQ вроде не было этих ссылок. Есть смысл добавить. :)
-----
Вообще-то - всеядный - на чем дают - на том пишу. Иногда - на 4-5 сразу.
Просто последний большой проект был на DotNet'е.
Спасибки за референсы - кое-что слил - буду читать.
Эээ... В FAQ вроде не было этих ссылок. Есть смысл добавить. :)