Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.01.2015, 12:41   #1
fygas1991
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 36
По умолчанию Ошибки при отладке

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


abstract class region
{
protected double area;
protected char* country;
protected char* name;
private int population;
protected string type;

public int population
{
get {return type;}
set 
{
if (value >= 10000000){type = "Крупные мегаполисы";}
if (value >= 5000000){type = "Средние мегаполисы";}
if (value >= 1000000){type = "Малые мегаполисы";}
if (value >= 500000){type = "Сверхбольшие города(агломерции)";}
if (value >= 100000){type = "Крупные города";}
if (value >= 50000){type = "Средние города";}
if (value >= 10000){type = "Малые города";}
//далее идут ПГТ(поселки городского типа)
if (value >= 5000 ){type = "Крупные ПГТ";}
if (value >= 3000){type = "средние ПГТ";}
if (value >= 1000){type = "Малые ПГТ";}
//далее идут ПСТ
if (value >= 500){type = "Средний ПСТ";}
if (value >= 100){type = "Малые ПСТ";}
if (value < 100){type = "Сверхмалые ПСТ";}
// охарактеризуем место
if (value == 0) {type = "Конкретное место (жилой дом, небольшой район, заведение)";}
}
}
}

class city : region
{}

class megapolis : region
{}

class place : city
{
}


 static void main()
 {
 //область

//Мегаполис
megapolis m1 = new megapolis() {name = "Москва", area = 2511, population = 12108257};
Console.WriteLine("***********", name, "*************");
Console.WriteLine("Численность населения:", m1.population.PadLeft(10));
Console.WriteLine("Площадь:", m1.area.PadLeft(15));
Console.WriteLine("Тип:", m1.type.PadLeft(10)); 
//Город
city c1 = new city() {name = "Муром", area = 43.78, population = 111474};
Console.WriteLine("***********", name, "*************");
Console.WriteLine("Численность населения:", c1.population.PadLeft(10));
Console.WriteLine("Площадь:", c1.area.PadLeft(15));
Console.WriteLine("Тип:", c1.type.PadLeft(10)); 
 }
Visual C# 2010 экспресс


Ошибка 1 Требуется класс, делегат, перечисление, интерфейс или структура C:\Users\Semen\Desktop\Учеба3семест р\ооп\laba2\2010\Program.cs 52 9 laba2
Ошибка 2 Требуется класс, делегат, перечисление, интерфейс или структура C:\Users\Semen\Desktop\Учеба3семест р\ооп\laba2\2010\Program.cs 57 20 laba2
Ошибка 3 Требуется класс, делегат, перечисление, интерфейс или структура C:\Users\Semen\Desktop\Учеба3семест р\ооп\laba2\2010\Program.cs 63 15 laba2
Ошибка 4 Требуется определение типа или пространства имен, либо признак конца файла C:\Users\Semen\Desktop\Учеба3семест р\ооп\laba2\2010\Program.cs 68 2 laba2
Ошибка 5 Неявное преобразование типа "string" в "int" невозможно C:\Users\Semen\Desktop\Учеба3семест р\ооп\laba2\2010\Program.cs 17 13 laba2
fygas1991 вне форума Ответить с цитированием
Старый 08.01.2015, 13:56   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Во-первых, компилятор (на самом деле валидатор, но не суть) пишет в чём ошибка, насчёт того, что "требуется..." - значит Вы указываете неверную структуру, которая не подходит для вызова в данном месте (в каком именно - можно узнать, дважды кликнув по строке с ошибкой). По-моему, это относится к PadLeft() методу - вообще надо убрать вызовы этого метода, у типа int, у которого Вы его пытаетесь вызвать, нет такого метода, он есть только у string (у свойства type его можно использовать, т.к. он строковый, у остальных нет, ибо int-ы).

А то, что про преобразование - у Вас
Код:
public int population // свойство интовое
{get {return type;} // а вы пытаетесь ему подсунуть строку
Во-вторых, Вам бы основы подучить, по книжке, мануалам, лекциям. Особенно про ООП и свойства.
Здесь Вам не проверялка лаб.
Я лишь укажу их, а как исправлять - сами работайте.
Ошибок немерено - например, одинаковые члены population (свойство должно быть с заглавной буквы - тогда будет норм) или обращение к name без ml или отсутствие присвоения полю population внутри сеттера свойства population, некорректная логика сеттера population, логику анализа type лучше сделать в геттере свойства type.

В-третьих кто вас надоумил использовать модификатор protected и тип char* ?
В простейших учебных задачах они только навредят, оптимальней для такого использовать модификатор public везде , а char* убрать и использовать string

Последний раз редактировалось phomm; 08.01.2015 в 13:59.
phomm вне форума Ответить с цитированием
Старый 08.01.2015, 14:41   #3
fygas1991
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 36
По умолчанию

Спасибо! За ответ!
Насчет ООП, я с вами согласен полность. Я с ним пока что не дружу. так сказать осваиваю. И пока что не особо получается.
По поводу protected, в условиях лабы стоит использования данного модификатора.
Я бы с радостью его не применял.

По поводу остальных ошибок, опираясь на ваши советы, пошел по другому пути.
Встретился с затруднением, напишу код который я набрасал и объясню, что хотел реализовать. Может подскажите, как это лучше сделать:

Код:
namespace laba2
{
    class megapolis
    {
        protected double area;
        protected int population;
        protected string type;
        public int SetPopulation(int n)
        {
            return n;
        }
        public string TypeOfPlace(string x)
        {
            if (n >= 10000000) { x = "Крупные мегаполисы"; }
            if (n >= 5000000) { x = "Средние мегаполисы"; }
            if (n >= 1000000) { x = "Малые мегаполисы"; }
            if (n >= 500000) { x = "Сверхбольшие города(агломерции)"; }
            if (n >= 100000) { x = "Крупные города"; }
            if (n >= 50000) { x = "Средние города"; }
            if (n >= 10000) { x = "Малые города"; }
            //далее идут ПГТ(поселки городского типа)
            if (n >= 5000) { x = "Крупные ПГТ"; }
            if (n >= 3000) { x = "средние ПГТ"; }
            if (n >= 1000) { x = "Малые ПГТ"; }
            //далее идут ПСТ
            if (n >= 500) { x = "Средний ПСТ"; }
            if (n >= 100) { x = "Малые ПСТ"; }
            if (n < 100) { x = "Сверхмалые ПСТ"; }
            // охарактеризуем место
            if (n == 0) { x = "Конкретное место (жилой дом, небольшой район, заведение)"; }
            return x;
        }
    }
}
Мне необходимо описать таким образом, чтобы в последующем при указании популяции
например: m1.SetPopulation(111874)
и вызове TypeOfPlace
у меня происходило сравнение и выводилось сообщение о типе данного поселения или города и .тд.
fygas1991 вне форума Ответить с цитированием
Старый 08.01.2015, 15:10   #4
fygas1991
Пользователь
 
Регистрация: 12.11.2009
Сообщений: 36
По умолчанию

Все разобрался:
Код:
       public int SetPopulation(int population1)
        {
            population = population1;
            return population;
        }

        public string TypeOfPlace(string x)
        {
            if (population >= 10000000) { x = "Крупные мегаполисы"; }
            if (population >= 5000000) { x = "Средние мегаполисы"; }
            if (population >= 1000000) { x = "Малые мегаполисы"; }
            if (population >= 500000) { x = "Сверхбольшие города(агломерции)"; }
            if (population >= 100000) { x = "Крупные города"; }
            if (population >= 50000) { x = "Средние города"; }
            if (population >= 10000) { x = "Малые города"; }
            //далее идут ПГТ(поселки городского типа)
            if (population >= 5000) { x = "Крупные ПГТ"; }
            if (population >= 3000) { x = "средние ПГТ"; }
            if (population >= 1000) { x = "Малые ПГТ"; }
            //далее идут ПСТ
            if (population >= 500) { x = "Средний ПСТ"; }
            if (population >= 100) { x = "Малые ПСТ"; }
            if (population < 100) { x = "Сверхмалые ПСТ"; }
            // охарактеризуем место
            if (population == 0) { x = "Конкретное место (жилой дом, небольшой район, заведение)"; }
            return x;
        }
до этого соответственно было описано:
Код:
protected int population;
fygas1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Settings при отладке отличается D][mon C# (си шарп) 1 29.04.2014 11:45
Проблема при отладке Leonid183 Visual C++ 0 27.10.2011 16:23
VS 9 показывает не все переменные при отладке. TwiX Visual C++ 14 06.09.2011 20:44
Ошибка при отладке Kernel32 Общие вопросы Delphi 0 04.05.2011 14:52
ИС при отладке программы Svensson Помощь студентам 1 12.11.2008 00:28