21

(7 відповідей, залишених у Java)

Якщо я закоментую нижче наведений код, то мені намалює трикутник
             

frame.setLayout(null);
        Color myRed2 = new Color(148, 54, 52);
        JButton b1 = new JButton("Далі");
        b1.setBackground(myRed2);
        b1.setBorder(BorderFactory.createLineBorder(new Color(99,37,35)));
        b1.setFocusPainted(false);
        b1.setFont(new Font("Cambria", Font.BOLD, 14));
        b1.setForeground(Color.white);
        b1.setBounds(420, 220, 98, 37);
        frame.add(b1);

Але не намалює кнопку

22

(7 відповідей, залишених у Java)

Кажу зразу - я новачок в Java, тому можу робити елементарні помилки

23

(7 відповідей, залишених у Java)

Всім доброго дня. Нижче наведений код в якому я хочу вивести кнопку і трикутник. Але чомусь у мене виводить тільки кнопку. Допоможіть будь ласка вирішити цю проблему.   

package project;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.font.TextAttribute;
import java.util.Map;
public class Main extends JFrame
{
    public static void main(String[] args)
    {
        JFrame frame = new JFrame();
        frame.setSize(600, 425);
        Color myRed1 = new Color(252, 213, 181);
        frame.getContentPane().setBackground(myRed1);
        frame.setTitle("Lab№6");

        frame.setLayout(null);
        Color myRed2 = new Color(148, 54, 52);
        JButton b1 = new JButton("Далі");
        b1.setBackground(myRed2);
        b1.setBorder(BorderFactory.createLineBorder(new Color(99,37,35)));
        b1.setFocusPainted(false);
        b1.setFont(new Font("Cambria", Font.BOLD, 14));
        b1.setForeground(Color.white);
        b1.setBounds(420, 220, 98, 37);
        frame.add(b1);

        MyCanvas canvas = new MyCanvas();
        frame.add(canvas);

        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    static class MyCanvas extends Canvas
    {
        public void paint(Graphics g)
        {
            int x[]={100,200,300};
            int y[]={100,200,200};
            g.fillPolygon(x,y,3);
        }
    }
}

24

(11 відповідей, залишених у C++)

https://replace.org.ua/uploads/images/7111/0e7cdaac3ffdb1a50fca363f3ca64c01.png

25

(11 відповідей, залишених у C++)

Я зайшов в налаштування і змінив з UNICODE на Multi-Byte. Все працює. Всім дякую за допомогу

26

(11 відповідей, залишених у C++)

Це картинка з ранніх версій Visual Studio. У мене 2019-го року, тому я даної опції поки що в себе не знайшов

27

(11 відповідей, залишених у C++)

https://replace.org.ua/uploads/images/7111/5c1fc7a05a15ac02fa884a42a8c6bf69.png

28

(11 відповідей, залишених у C++)

Код який я запускаю і код який я виклав відрізняється лише тим що в першому я переклав англійською весь російськомовний текст. Тобто замість "Невозможно открыть входной файл. Ошибка: " в коді написано "Unable to open input file. Error: ".  Також я перевірив назви файлів на наявність кирилиці і виявилося що все норм. Код змінювати не треба оскільки я взяв його з книги і він правильний. Моє завдання це запустити його з командного рядка. І в цьому моя проблема . Можливо через те що я неправильно передаю аргументи або txt файли повинні мати якусь іншу кодіровку. А може треба змінити якісь налаштування Visual Studio???

29

(11 відповідей, залишених у C++)

У програмі 1.2 вирішується завдання копіювання файлів за допомогою Windows API,
Програма 1.2. cpW: копіювання файлів з використанням Windows

/* Глава 1. Базовая программа копирования файлов cp.
   Реализация, использующая Windows. */
/* cpW файл1 файл2: Копировать файл1 в файл2. */
#include <windows.h>
#include <stdio.h>
#define BUF_SIZE 256
int main (int argc, LPTSTR argv [])
{
   HANDLE hIn, hOut;
   DWORD nIn, nOut;
   CHAR Buffer [BUF_SIZE];
   if (argc != 3) {
      printf ("Использование: cpW файл1  файл2\n");
      return 1;
   }
   hIn = CreateFile (argv [1], GENERIC_READ, 0, NULL,
         OPEN_EXISTING, 0, NULL);
   if (hIn == INVALID_HANDLE_VALUE) {
      printf ("Невозможно открыть входной файл. Ошибка: %x\n",
            GetLastError ());
      return 2;
   }
   hOut = CreateFile (argv [2], GENERIC_WRITE, 0, NULL,
         CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
   if (hOut == INVALID_HANDLE_VALUE) {
      printf ("Невозможно открыть выходной файл. Ошибка: %x\n",
            GetLastError ());
      return 3;
   }
   while (ReadFile (hIn, Buffer, BUF_SIZE, &nIn, NULL) && nIn > 0) {
      WriteFile (hOut, Buffer, nIn, &nOut, NULL);
      if (nIn != nOut) {
         printf ("Неустранимая ошибка записи: %x\n", GetLastError ());
         return 4;
      }
   }
   CloseHandle (hIn);
   CloseHandle (hOut);
   return 0;
}

Для того щоб виконати це завдання я створив проект Windows Desktop Wizard(Win32) з іменем "cpW" і закинув в нього даний код. Він успішно компілюється. Потім я створив в папці проекту(там де exe файл) два текстових файли - File1.txt і File2.txt і записав у них різний текст. Потім я зайшов в командний рядок і перейшов в папку проекта із exe файлом(застосунком), ввів команду cpW.exe File1.txt File2.txt і замість того щоб копіювати мої файли мені вивело що неможливо відкрити вхідний файл. Підкажіть будь-ласка у чому проблема. Як мені запустити мою програму з командного рядка?? Можливо я неправильно ввів аргументи або неправильно задав кодіровку моїх txt файлів(там за замовчуванням кажись UTF-8).

30

(3 відповідей, залишених у C++)

koala написав:
class List 
{
private:
    list<Element> Elements;

Це що, таке витончене знущання? Якщо користуєтеся стандартним std::list - то нащо вам ваша обгортка?

Не зрозумів що ви маєте на увазі

31

(3 відповідей, залишених у C++)

Потрібна допомога з виведенням та пошуком елементів в списку. Моя проблема полягає в тому що я не знаю як звернутися до елементів списку і вивести їх. В даному коді я маю доробити функцію виведення і функцію пошуку елемента списку за іменем.
Ось повний опис завдання:
Динамічний список (2 класи: клас "Елемент списку" і клас "Список" перебувають у відношенні агрегації)
Конструктори: за замовчуванням, з параметрами та копіювання.
Деструктор.
Функції:
вставлення елемента з голови (хвоста) у заданому місці;
виведення списку на екран;
пошук елемента списку;
очищення списку;

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<conio.h>
#include<stdlib.h>
#include<iomanip>
#include<list>
#include<string>
#include<type_traits>
#include<Windows.h>
#include<iterator>
using namespace std;
class Element
{
private:
    string name;
    string surname;   
public:
    Element(string name, string surname)
    {
        this->name = name;
        this->surname = surname;
    }
    Element(const Element& element)
    {
        this->name = element.name;
        this->surname = element.surname;
    }
    Element() = default;
    ~Element() {}
    string GetName()
    {
        return name;
    }
    string GetSurName()
    {
        return surname;
    }    
    void Input()
    {
        cout << "Enter the name: ";
        cin >> name;
        cout << "Enter the surname: ";
        cin >> surname;
    }    
};
class List 
{
private:
    list<Element> Elements;
public:
    void Show()
    {
        list <Element> ::iterator it = Elements.begin();   
        ...........        
    }
    void Find(string name)
    {
        .......
    }
    void Clear()
    {
        Elements.clear();
    }
    void Add(const Element& Obj, int index)
    {
        list <Element> ::iterator it = Elements.begin();
        if (index >= Elements.size())
        {
            Elements.push_back(Obj);
        }            
        else if (index >= 0)
        {
            advance(it, index);
            Elements.emplace(it, Obj);
        }
    }    
};
void main()
{    
    int size = 0;
    List list;
    bool index = false;
    while (index != true)
    {
        Element item;
        cout << "\t Menu: \n";
        cout << "1.View the list\n";
        cout << "2.Add a new element\n";
        cout << "3.Find the element\n";
        cout << "4.Clear the list\n";
        cout << "5.Exit\n";
        cout << "----------------\n";
        cout << "Enter the number: ";
        int menu;
        cin >> menu;
        system("cls");
        switch (menu)
        {
        case 1:
        {
            if (size == 0)
            {
                cout << "The list is empty";
            }
            else
            {
                list.Show();
            }
            _getch();
            system("cls");
            break;
        }
        case 2:
        {
            int pos;
            item.Input();
            cout << "Enter the position of the item to insert ";
            cin >> pos;
            list.Add(item,pos);
            size++;
            system("cls");
            break;
        }
        case 3:
        {
            if (size == 0)
            {
                cout << "The list is empty";
            }
            else
            {
                string name;
                cout << "Enter the name: ";
                cin >> name;
                list.Find(name);
            }
            _getch();
            system("cls");
            break;
        }
        case 4:
        {
            list.Clear();
            cout << "List was cleared";
            _getch();
            system("cls");
            break;
        }
        case 5:
        {
            index = true;
            break;
        }
        default:
        {
            cout << "A non-existent menu item is selected\n";
            _getch();
            system("cls");
        }
        }
    }
    _getch();
}

32

(21 відповідей, залишених у C++)

Для довідки: в масив "robots" має записуватися так само як і в масив "zone"

33

(21 відповідей, залишених у C++)

Factory operator+(const Factory&a, const Factory&b)
{   
    char nname[100], owner[100], zone[100], robots[100];
    strcat(nname, a.name);
    strcat(nname, b.name);
    strcat(owner, a.ownership);
    strcat(owner, b.ownership);
    double c = atof(a.workers);
    double d = atof(b.workers);   
    double i = c + d;
    sprintf(zone, "%i\n", i);
    return Factory(nname, owner, zone, robots);
}

34

(21 відповідей, залишених у C++)

double i = 49.1;
char zone[50];
sprintf(zone, "%f\n", i);
cout << zone;

Мені просто треба щоби цей кусок коду виводив мені 49.1, а саме щоби виводився сішний масив символів в який я записав значення змінної "i" типу даних double

35

(21 відповідей, залишених у C++)

koala написав:

Я не бачу за вашим описом, чому вам не підходить "49.100000". Як на мене, ідеально підходить.
Ви можете сформулювати, від початку і до кінця, ваше питання?

Ну я ці дані бути виводити в таблиці, під полем "площа землі" і наврядчи користувачу сподобаються лишні 5 нулів після коми

36

(21 відповідей, залишених у C++)

wander написав:
Mirek7098 написав:

Мені контейнери в даній програмі використовувати не можна, тому прошу вас написати цей код використовуючи звичайний масив

Що означає не можна? Чому?..
Ем, гаразд, якщо у вас є якісь вимоги, то озвучуйте їх, будь ласка, одразу. Це не ми з вас маємо витягувати, нам це не потрібно.
Зрештою, схоже, якісь базові навички С++ у вас є, то у чому проблема вам самим переробити мій код?
Єдина поправка, що ось так

int size = std::snprintf(nullptr, 0, "%.1f", value);  // взагалі, було б ще добре провіряти чи size не <0
                                                      // але то вже таке ...
char buffer[size]; // << ill-formed

не робіть, це недопустимо в С++.

Я не маю жодних вимог ні до кого з користувачів цього форуму, лише прохання, а щодо інформації то вибачте що не надав її вчасно. Для довідки: я ніколи не використовував ні sprintf, ні scanf, ні printf і взагалі не розумію що "%.1f" це таке.

37

(21 відповідей, залишених у C++)

А якщо конкретніше, то ц е останнє що мені потрібно доробити в моїй прозі з 495 рядків коду. А якщо ще конкретніше, то я перевантажую оператор +, який додає об'єкти мого класу, в якому останні 2 поля ініціалізовані як сішний масив символів, але користувачем вводяться числа, які я в функції перегрузки маю перевести в double, знайти їх суму, а потім цю суму знову перевести в сішний масив символів і т.д.

38

(21 відповідей, залишених у C++)

Мені потрібно записати число типу double в масив сhar zona[50]

39

(21 відповідей, залишених у C++)

Мені контейнери в даній програмі використовувати не можна, тому прошу вас написати цей код використовуючи звичайний масив

40

(21 відповідей, залишених у C++)

Якщо я напишу так:

double i = 49.1;
char zone[50];
sprintf(zone, "%f\n", i);
cout << zone;

То мені тоді виведе 49.100000. А треба щоб вивело 49.1