Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142

Цифровые часы

25.12.2016, 23:34. Показов 5606. Ответов 30
Метки с (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите в чем ошибка. Нужно написать код цифровых часов через библиотеку #include <graphics.h>, я нашел полно кодов цифровых часов, но ни один из них не работает, к примеру этот:
C++
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
53
54
55
56
57
58
59
60
61
62
63
#include <stdlib.h>
#include "../graphics/graphics.h"
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <dos.h>
#include <string.h>
 
int main() {
    /* request auto detection */
    int gdriver = DETECT, gmode;
    int midx, midy, err;
    long mytime;
    char date[256];
 
    /* initialize graphic mode */
    initgraph(&gdriver, &gmode, "C:/TURBOC3/BGI");
    err = graphresult();
 
    if (err != 0) {
        /* error occurred */
        printf("Graphics Error: %s\n",
            grapherrormsg(err));
        return 0;
    }
 
    /* mid positions in x and y axis */
    midx = getmaxx() / 2;
    midy = getmaxy() / 2;
 
    /* mid positions in x and y axis */
    midx = getmaxx() / 2;
    midy = getmaxy() / 2;
 
    while (!kbhit()) {
        /* clears graphic screen */
        cleardevice();
 
        /* get time in seconds */
        mytime = time(NULL);
 
        /* store the date and time in the given string */
        strcpy(date, ctime(&mytime));
 
        settextjustify(CENTER_TEXT, CENTER_TEXT);
        settextstyle(TRIPLEX_FONT, HORIZ_DIR, 3);
 
        /* locate the postion to write */
        moveto(midx, midy);
 
        /* print the date and time */
        outtext(date);
 
        /* sleep for a second */
        sleep(1);
    }
 
    getch();
 
    /* deallocate memory allocated for graphic screen */
    closegraph();
    return 0;
}
Возможно это из-за того, что у меня visual studio 2015, но другие графические программы работают нормально
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.12.2016, 23:34
Ответы с готовыми решениями:

Цифровые электронные часы
никто не знает где можно найти в сети? или кто нибудь вдруг может сделать? :oops:

Записать в файл слова, содержащие в своем составе цифровые символы
Сформировать текстовый файл из произвольных слов. Затем создать новый файл, куда занести слова, содержащие в своем составе цифровые...

Программа, которая переводит часы и минуты в минуты или минуты – в часы и минуты
Составьте программу, которая в зависимости от входных данных переводит часы и минуты в минуты или минуты – в часы и ...

30
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
25.12.2016, 23:41
Цитата Сообщение от Apollo1222 Посмотреть сообщение
Возможно это из-за того, что у меня visual studio 2015
Разумеется. Библиотека graphics.h использовалась в Turbo C++ 25-летней давности.
Слышал, что есть версия этой библиотеки для вижуал студии. Но сам не сталкивался.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
26.12.2016, 04:30
Цитата Сообщение от Apollo1222 Посмотреть сообщение
через библиотеку #include <graphics.h>
Это только заголовочный файл. Нужны реализации функций (исходники, или собранная .lib, которую нужно пдключить к проекту).
Вложения
Тип файла: rar bgi.rar (221.0 Кб, 9 просмотров)
0
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142
26.12.2016, 16:08  [ТС]
nd2,likehood, в том и дело, что все подключено. Другие графические программы работают (те которые я сам делал), а эти часы не работают, и все другие коды часов не работают. Одногруппники говорят, что, возможно это потому, что этот код сделано не в visual studio а в Dev или что-то типа того. Как его исправить чтобы он на visual studio заработал, возможно там какие-то функции надо переделать
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
26.12.2016, 16:23
Цитата Сообщение от Apollo1222 Посмотреть сообщение
nd2,likehood, в том и дело, что все подключено. Другие графические программы работают (те которые я сам делал), а эти часы не работают, и все другие коды часов не работают.
Например, потому что у вас нет "C:/TURBOC3/BGI". Закапывайте обратно и делайте код на WinAPI или QtCreator. Ну, например, в порядке выпендрежа (зато, кратко):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include<ctime>
#include<windows.h>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    while(true)
    {
        time_t currentTime;
        time(&currentTime);
        const char*text=ctime(&currentTime);
        HDC hdc=GetDC(NULL);
        TextOutA(hdc,500,500,text,strlen(text));
        Sleep(100);
    }
    return 0;
}
0
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142
26.12.2016, 16:30  [ТС]
Renji, у нас принимают работы сделаны только через graphics.h
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
26.12.2016, 16:42
Цитата Сообщение от Apollo1222 Посмотреть сообщение
Renji, у нас принимают работы сделаны только через graphics.h
Тогда у вас постоянно будут проблемы. Используемый вами InitGraph это функция из времен работающего в текстовом режиме DOS, переводящая машину в графический режим. Давно уже нет того Доса, давно уже нет того текстового режима. Ну, то есть на серверах немножко текстового режима осталось, но к серверу вас с допотопными библиотеками от Турбо C++ на пушечный выстрел не подпустят.

Ну, если очень надо, поставьте себе Dosbox, поставьте в нем вышеупомянутый Turbo C++ и делайте задание там. Но полученные таким образом знания вам скорее всего не пригодятся никогда.
2
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142
26.12.2016, 16:50  [ТС]
Renji, Каким должен быть исходный рисунок, что это за функции? Объясните пожалуйста!
В декартовых координатах построить семейство кривых по параметрических уравнениях вида х = φ (t, a) у = ψ (t, a) при различных значениях параметра а.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
26.12.2016, 17:06
Цитата Сообщение от Apollo1222 Посмотреть сообщение
Renji, Каким должен быть исходный рисунок, что это за функции?
Я так подозреваю, либо в где-то в задании написано что имелось ввиду по φ (t, a), либо ожидается ввод конкретной функции с клавиатуры. В последнем случае придется писать парсер для этой функции. Впрочем, могу ошибаться, лучше у препода уточните что он имел ввиду.
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.12.2016, 03:18
Цитата Сообщение от Apollo1222 Посмотреть сообщение
Цитата Сообщение от Apollo1222 Посмотреть сообщение
но ни один из них не работает, к примеру этот:
Не компилируется, или что?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.12.2016, 03:59
В graphics.h закоментируй эти прототипы:
C++
1
2
3
// User Interaction
//int getch( );
//int kbhit( );
Код:
C++
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
53
54
55
56
57
58
59
60
61
62
63
64
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include "graphics.h"
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <dos.h>
#include <string.h>
 
int main() {
    /* request auto detection */
    int gdriver = DETECT, gmode;
    int midx, midy, err;
    time_t mytime;
    char date[256];
 
    /* initialize graphic mode */
    initgraph(&gdriver, &gmode, "C:/TURBOC3/BGI");
    err = graphresult();
 
    if (err != 0) {
        /* error occurred */
        printf("Graphics Error: %s\n",
            grapherrormsg(err));
        return 0;
    }
 
    /* mid positions in x and y axis */
    midx = getmaxx() / 2;
    midy = getmaxy() / 2;
 
    /* mid positions in x and y axis */
    midx = getmaxx() / 2;
    midy = getmaxy() / 2;
 
    while (!_kbhit()) {
        /* clears graphic screen */
        cleardevice();
 
        /* get time in seconds */
        mytime = time(NULL);
 
        /* store the date and time in the given string */
        strcpy(date, ctime(&mytime));
 
        settextjustify(CENTER_TEXT, CENTER_TEXT);
        settextstyle(TRIPLEX_FONT, HORIZ_DIR, 3);
 
        /* locate the postion to write */
        moveto(midx, midy);
 
        /* print the date and time */
        outtext(date);
 
        /* sleep for a second */
        Sleep(1);
    }
 
    _getch();
 
    /* deallocate memory allocated for graphic screen */
    closegraph();
    return 0;
}
Миниатюры
Цифровые часы  
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.12.2016, 04:08
Исправь там:
C++
1
Sleep(1000); // 1 секунда
1
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142
27.12.2016, 15:58  [ТС]
nd2, Спасибо, часы работают хорошо! Не могли бы вы глянуть что с этим кодом не так?
C++
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#define _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include "../graphics/graphics.h"
#include <stdio.h>
#include <iostream>
using namespace std;
int k = 20;
const int M_PI = 3.14;
void star(int R, int r, int n)
{
    int a = 0;
    pointtype *p = new pointtype[n * 2 + 1]; //Массив для хранения координат вершин звезды
    int x = getmaxx() / 2; //Расчет центра экрана по х
    int y = getmaxy() / 2; //Расчет центра экрана по y
 
 
                           //Цикл расчета вершин звезды
    for (int i = 1; i<n * 2 + 2; i++)
    {
        if (!(i % 2)) //При выполнении условия четности следующие формулы
        {
            p[i].x = x + r / 2 * cos(a*M_PI / 180);
            p[i].y = y - r / 2 * sin(a*M_PI / 180);
        }
        else //При невыполнении условия четности следующие формулы
        {
            p[i].x = x + R*cos(a*M_PI / 180);
            p[i].y = y - R*sin(a*M_PI / 180);
        }
        a = a + 180 / n;
    }
    //Завершаем построение звезды соединяя её окончание с начальной точкой
    p[n * 2 + 1].x = p[1].x;
    p[n * 2 + 1].y = p[1].y;
    moveto(p[1].x, p[1].y);
 
    //Последовательное соединение точек массива, хранящего вершины звезды
    for (int i = 1; i<n * 2 + 2; i++)
    {
        lineto(p[i].x, p[i].y);
    }
 
    delete[]p; //Освобождаем память
}
 
void input()
{
    int R, r; //Внешний и внутренний радиусы
    cout << "Внутренний радиус = "; cin >> r;
    cout << "Внешний радиус      = "; cin >> R;
    cout << "Число вершин      = "; cin >> n;
    star(R, r, n); //Построение звезды по радиусам
}
 
void main()
{
    system("CLS");
    //ПОДГОТОВКА РАБОТЫ С ГРАФИКОЙ
    int gdriver = DETECT, gmode, errorcode;
    initgraph(&gdriver, &gmode, "");
 
    input(); //Ввод параметров звезды с последующим её построением
 
    system("PAUSE");
    return;
}
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.12.2016, 16:05
Цитата Сообщение от Apollo1222 Посмотреть сообщение
Не могли бы вы глянуть что с этим кодом не так?
Apollo1222, хотелось бы видеть в вопросе больше информации. Так и хочется спросить в ответ: "А что с этим кодом не так?". На предыдущий вопрос я так ответа и не увидел:
Цитата Сообщение от nd2 Посмотреть сообщение
Не компилируется, или что?
0
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142
27.12.2016, 16:12  [ТС]
nd2, Да код не компилировался, выкидывало полно ошибок. По поводу нового кода, задача такова: Для заданного n построить (разместить на экране) все n-конечные звезды. Например, для n = 13 насчитывается 5 различных звезд.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.12.2016, 16:20
Цитата Сообщение от Apollo1222 Посмотреть сообщение
выкидывало полно ошибок.
Нужно было их показывать, а не писать:
Цитата Сообщение от Apollo1222 Посмотреть сообщение
не работает
Это можно понимать как угодно.
Цитата Сообщение от Apollo1222 Посмотреть сообщение
задача такова:
Меня задача не интересует.
Цитата Сообщение от nd2 Посмотреть сообщение
Так и хочется спросить в ответ: "А что с этим кодом не так?".
0
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142
27.12.2016, 16:26  [ТС]
nd2, не компилируется, 33 ошибки
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.12.2016, 16:27
Прочти начало 16 поста.
0
2 / 2 / 2
Регистрация: 10.10.2016
Сообщений: 142
27.12.2016, 16:31  [ТС]
nd2,
Миниатюры
Цифровые часы  
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
27.12.2016, 17:16
Текстом выложи.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.12.2016, 17:16
Помогаю со студенческими работами здесь

Строка: Определить количество слов, в которых все имеющиеся в них цифровые символы упорядочены по неубыванию.
Ввести строку символов (предусмотреть ввод пустой строки или строки из одних пробелов). Разделителями слов в строке являются пробелы (один...

Нужно придумать стратегию для победы в игре "Цифровые войны"
Написать игру «Цифровые войны». На экран выводятся 20 случайных цифр от 0 до 9. Ходят по очереди пользователь и компьютер. Своим ходом...

Часы
int main() { int sek,min,chas; chas=0; min=0; while(chas!=24) // Цикл подсчета часов { while(min!=60) // Цикл...

Часы C++
Помогите с решением, так как вообще не шарю в плюсах...

Часы C++
Здравствуйте. Вот программа, реализующая работу часов. Подскажите пожалуйста, что нужно добавить, чтобы был выбор часового пояса. Заранее...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru