Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 6
1

Создание простого консольного ООП-приложения любой тематики

30.04.2015, 17:18. Просмотров 1658. Ответов 14
Метки нет (Все метки)

Всем привет, нужна помощь в создании простого консольного приложения. Вот несколько условий:
1. Использовать возможности ООП: классы, наследование, полиморфизм, инкапсуляция.
2. Не использовать графический интерфейс! Приложение должно быть консольным.
3. Не использовать внешние источники данных: файлы, СУБД, XML.
4. Данные инициализации объектов передавать с помощью конструктора, функции или метода.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.04.2015, 17:18
Ответы с готовыми решениями:

Выполнение примера "Создание простого веб-приложения с использованием базы данных MySQL"
Добрый день! Выполняю пример "Создание простого веб-приложения с использованием базы данных MySQL"...

GUI через c++ builder для простого консольного приложения
Есть вот такая простая консольная программа,помогите запилить GUI через C++ Builder,лучше всего...

Реализация выхода из консольного приложения после нажатия любой клавиши
суть задачки- написать таймер для консоли с возможностью остановки при нажатии любой клавиши....

Создание консольного приложения в Qt
добрый вечер ув. форумчане. собственно вот вопрос, почему окно терминала пустое после запуска...

14
Эксперт Java
2345 / 2178 / 555
Регистрация: 28.12.2010
Сообщений: 8,526
30.04.2015, 17:19 2
Lambortini, а что приложение должно делать?
1
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 6
30.04.2015, 17:24  [ТС] 3
Не важно что, главное чтоб соответствовало условию.
0
Welemir1
30.04.2015, 17:25
  #4

Не по теме:

KEKCoGEN, +100500))) Можно и ничего не делать

0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 6
30.04.2015, 17:31  [ТС] 5
Если можно конечно как-то это реализовать, то хотелось бы что-то вроде приложение викторины-теста, скажем вопросов 10 и конечный соответствующий результат. Типа психологических тестов.
0
Эксперт Java
2345 / 2178 / 555
Регистрация: 28.12.2010
Сообщений: 8,526
30.04.2015, 17:40 6
Lambortini, если у вас есть задание, что именно мешает вам начать его делать? У вас есть вопросы по этим пунктам?
0
Автоматизируй это!
Эксперт Python
3188 / 2071 / 676
Регистрация: 30.03.2015
Сообщений: 7,295
Записей в блоге: 1
30.04.2015, 17:46 7
можно все) вот, вроде по всем условиям, викторину предлагаю реализовать самому:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package test6;
 
/**
 *
 * @author Unknown
 */
 
class Nothing {
private String mainMessage; //инкапсуляция
    Nothing () { // конструктор, где инициализируем переменные
     mainMessage="Always do nothing!";
    }
    
    public void doNothing() {
        System.out.println(mainMessage);  
    }
    
    public void setMessage (String mainMessage) {
      this.mainMessage=mainMessage;  
    }
    
    public String getMessage () {
        return mainMessage;
    }
}
 
class moreNothing extends Nothing { // вот наследование
  private final String firstMessage;
  moreNothing (String firstMessage) { // конструктор с инициализацией
    this.firstMessage=firstMessage;   
  }
    
  @ Override public void doNothing ()   { //переопределили метод суперкласса
     System.out.println(getFirstMessage()+super.getMessage());  // все в консоли
  }
 
    public String getFirstMessage() {
        return firstMessage;
    }
}
 
public class Test6 {
 
    public static void main(String[] args) {
        Nothing not=new moreNothing("Subclass is cool: "); // вот и полиморфизм
        not.doNothing(); // вызывает переопределенный метод из подкласса
        not.setMessage("Yes, I know!"); // меняем сообщение с помощью метода
        not.doNothing(); // новый результат
        
    }
    
}
0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 6
30.04.2015, 18:23  [ТС] 8
KEKCoGEN дело в том что я новичок в Java, а приложение нужно срочно.

Добавлено через 11 минут
Цитата Сообщение от Welemir1 Посмотреть сообщение
можно все) вот, вроде по всем условиям, викторину предлагаю реализовать самому:
Можно взаимодействие добавить, вроде ответов да\нет?
0
Автоматизируй это!
Эксперт Python
3188 / 2071 / 676
Регистрация: 30.03.2015
Сообщений: 7,295
Записей в блоге: 1
30.04.2015, 19:01 9
конечно можешь добавить) это так сказать некая основа, можешь добавлять что хочешь или вообще написать свое по данному примеру
1
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 6
30.04.2015, 19:20  [ТС] 10
Цитата Сообщение от Welemir1 Посмотреть сообщение
конечно можешь добавить) это так сказать некая основа, можешь добавлять что хочешь или вообще написать свое по данному примеру
можете предложить какой-нибудь другое приложение, просто срочно нужно?!
0
Автоматизируй это!
Эксперт Python
3188 / 2071 / 676
Регистрация: 30.03.2015
Сообщений: 7,295
Записей в блоге: 1
30.04.2015, 20:07 11
то есть? а чем мое то не угодило? под все условия вроде подходит. Могу посоветовать открыть книгу по Джава, там много примеров и взять приложение оттуда.
1
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 6
30.04.2015, 20:22  [ТС] 12
Цитата Сообщение от Welemir1 Посмотреть сообщение
то есть?
Я полный ноль в этом, поэтому в вашем приложении я к сожалению разобраться не могу, а вот если вы укажете куда вставить вопрос и чтоб он выводился в консоль и на него модно ответить да\нет, и существовало, скажем два конечных заключению по тесту-викторине, то было бы здорово)!
0
Автоматизируй это!
Эксперт Python
3188 / 2071 / 676
Регистрация: 30.03.2015
Сообщений: 7,295
Записей в блоге: 1
30.04.2015, 20:47 13
ну вот тебе вопрос-ответ, правда с вводом значения, главный класс поменяй на
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Test6 {
 
    public static void main(String[] args) {
        Nothing not=new moreNothing("Subclass is cool: "); // вот и полиморфизм
        not.doNothing(); // вызывает переопределенный метод из подкласса
        not.setMessage("Yes, I know!"); // меняем сообщение с помощью метода
        not.doNothing(); // новый результат
        Scanner in=new Scanner(System.in, "cp1251");
        boolean flag=false;
        while (!flag) {
        System.out.println("Угадайте, кто будет следующим Президентом РФ?");
        String s=in.nextLine();
        if (s.contains("Путин")) {
            flag=true;
            System.out.println("Правильно!");
        }
        else {
           System.out.println("Неправильно! Попробуйте еще раз"); 
        }
        }
    }
    
}
Цитата Сообщение от Lambortini Посмотреть сообщение
Я полный ноль в этом
тогда зачем тебе делать консольное приложение? Кто заставляет? А если заставляют, то эти злодеи полагают, что ты в этом не полный ноль? Почему книжку не почитать?
0
3052 / 1457 / 492
Регистрация: 29.11.2010
Сообщений: 2,888
30.04.2015, 21:01 14
Вот вам примитивная викторина с пришитыми вопросами. Но если вы полный ноль, вам это не поможет.

Кстати, из IDE не заработает -- потому что консоль, скорее всего, не создастся.

Question
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package quiz;
 
import java.util.List;
 
public class Question {
 
    private final String question;
    private final List<String> answers;
    private final int correct;
 
    Question(String question, List<String> answers, int correct) {
        if (correct < 0 || correct >= answers.size()) {
            throw new IllegalArgumentException(
                    String.format("correct answer number is %d but it should be in range of 0 to %d",
                            correct, answers.size()));
        }
        if (answers.size() < 2) {
            throw new IllegalArgumentException("number of answers should be less more than one");
        }
        this.question = question;
        this.answers = answers;
        this.correct = correct;
    }
 
    public String getQuestion() {
        return question;
    }
 
    public List<String> getAnswers() {
        return answers;
    }
 
    public int getCorrect() {
        return correct;
    }
 
    @Override
    public String toString() {
        return "Question{" +
                "question='" + question + '\'' +
                ", answers=" + answers +
                ", correct=" + correct +
                '}';
    }
}


Quiz
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package quiz;
 
import java.io.Console;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class Quiz {
    private final List<Question> questions;
 
    public Quiz(List<Question> questions) {
        this.questions = questions;
    }
 
    private List<Question> getShuffledQuestions() {
        final List<Question> questions = this.questions;
        Collections.shuffle(questions);
        return questions;
    }
 
    private boolean askQuestion(Question question, Console console) {
        System.out.println("Question:");
        System.out.println(question.getQuestion());
        System.out.println("Variants:");
        int i = 0;
        for (final String answer : question.getAnswers()) {
            System.out.printf("%d. %s%n", i++, answer);
        }
        System.out.print("Your choice: ");
        int answer = Integer.parseInt(console.readLine());
        System.out.printf("Your answer is %d, correct answer was %d%n%n", answer, question.getCorrect());
        return answer == question.getCorrect();
    }
 
    public void run() {
        final Console console = System.console();
        final List<Question> shuffledQuestions = getShuffledQuestions();
        int correctAnswers = 0;
        for (final Question question : shuffledQuestions) {
            if (askQuestion(question, console)) {
                correctAnswers++;
            }
        }
        System.out.println(String.format("You have answered %d out of %d",
                correctAnswers, shuffledQuestions.size()));
    }
}


Launcher
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Arrays;
 
public class Launcher {
    private static final Question Q1 = new Question("Why are you crying?",
            Arrays.asList("I'm a little girl", "I'm a sissy", "Because **** you, that's why"),
            2);
    private static final Question Q2 = new Question("Who's gonna do it?",
            Arrays.asList("Pushkin, A.S.", "Lermontov M.Y.", "Me"),
            0);
    private static final Question Q3 = new Question("Ex Nihilo?",
            Arrays.asList("Yes", "No", "Neither"),
            1);
 
    public static void main(String[] args) {
        new Quiz(Arrays.asList(Q1, Q2, Q3)).run();
    }
}


Воспользуйтесь лучше предложением Welemir1.
0
Автоматизируй это!
Эксперт Python
3188 / 2071 / 676
Регистрация: 30.03.2015
Сообщений: 7,295
Записей в блоге: 1
30.04.2015, 21:07 15
lemegeton, если автор про мои 10 строк писал
Цитата Сообщение от Lambortini Посмотреть сообщение
в вашем приложении я к сожалению разобраться не могу
то ваше "примитивное" приложение-викторина может его вообще повергнуть в пучину отчаяния)
Цитата Сообщение от lemegeton Посмотреть сообщение
private static final Question Q1 = new Question("Why are you crying?",
* * * * * * Arrays.asList("I'm a little girl", "I'm a sissy", "Because **** you, that's why"),
* * * * * * 2);
* * private static final Question Q2 = new Question("Who's gonna do it?",
* * * * * * Arrays.asList("Pushkin, A.S.", "Lermontov M.Y.", "Me"),
* * * * * * 0);
посмеялся от души, спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2015, 21:07

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создание проекта консольного приложения
Проблема вот такая, не могу создать проэкт Консольное приложение win32. Появляется пустое окно и...

Создание окна из консольного приложения
Подскажите пожалуйста как создать окно в консольном с++

Создание формы с консольного приложения
Задача: Создать 1 форму. При нажатии SHIFT+5('%') отобразить ее. Проблема: При нажатии '%'...

delphi создание консольного приложения
здравствуйте:) пожалуйста подскажите как в Delphi при создании консольного приложения можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.