С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.11.2020
Сообщений: 144

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

08.02.2024, 20:24. Показов 1467. Ответов 7

Студворк — интернет-сервис помощи студентам
Уважаемые знатоки!

Решаю такую задачу:

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

Центральный процессор (cpu) — должен иметь функцию compute, которая складывает 8 чисел из буфера оперативной памяти (см. далее) и выводит результат в консоль.

Оперативная память (ram) — содержит буфер на 8 целых чисел, которые можно заполнить функцией write и считать функцией read.

Жёсткий диск (disk) — имеет в себе две функции, save и load. Функция save должна сохранить состояние 8 чисел из оперативной памяти на постоянный носитель в файл data.txt. Функция load — загрузить их с носителя в оперативную память.

Графическая карта (gpu) — выводит в консоль 8 чисел из оперативной памяти.

Клавиатура (kbd) — позволяет ввести 8 чисел и разместить их в оперативной памяти.

Каждая компонента должна располагаться в отдельном модуле, с отдельным заголовочным файлом. Основной модуль программы (main.cpp) должен считывать пользовательский ввод команды, которая соответствует отдельным функциям устройств: sum (вычисление суммы), save (сохранить в файл), load (загрузить из файла), input (ввести с клавиатуры), display (вывести на экран). Команда exit — выходит из программы.

Строю следующий проект:

https://github.com/alexeysklem... /computers

Выдает следующие ошибки:
Миниатюры
Реализовать простую модель работы персонального компьютера  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2024, 20:24
Ответы с готовыми решениями:

Апгрейд персонального компьютера
Добрый день, занялся апгрейдом своего ПК, первоначальные характеристики ПК указаны на фото. Что уже сделал: Добавил SSD диск на...

Управляющее ПО для персонального компьютера
Идея такова. Управляющая программа для персонального компьютера с возможностью обучения новым командам. Как это может работать. По...

Система мониторинга процессов персонального компьютера
Доброго времени суток! Помогите пожалуйста написать для сына программу на с++ (только начал учить язык а уже задают такое). Нашел в...

7
0 / 0 / 0
Регистрация: 08.11.2020
Сообщений: 144
08.02.2024, 20:35  [ТС]
Простите забыл добавить:

Cmake --version 3.18.4

gcc -version 10.2.1

goal OS Debian 11
0
 Аватар для eva2326
1673 / 501 / 107
Регистрация: 17.05.2015
Сообщений: 1,518
08.02.2024, 21:54
Цитата Сообщение от madman64 Посмотреть сообщение
Выдает следующие ошибки:
Файл ram.h
C++
1
int ram[8] ={0,0,0,0,0,0,0,0};
0
0 / 0 / 0
Регистрация: 08.11.2020
Сообщений: 144
09.02.2024, 11:47  [ТС]
eva2326, спасибо большое за ответ. Но я менял эту строку на
extern int ram[8];
К сожалению это плодов не принесло
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
09.02.2024, 13:19
Цитата Сообщение от madman64 Посмотреть сообщение
я менял эту строку на
extern int ram[8];
Нужно не просто изменить эту строчку, но и перенести определение переменной в ram.cpp.

Либо добавьте inline к вашему объявлению в заголовочном файле.
0
0 / 0 / 0
Регистрация: 08.11.2020
Сообщений: 144
10.02.2024, 22:33  [ТС]
DrOffse,

у меня в ram.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "ram.h"
#include "kbd.h"
 
ram = {0,0,0,0,0,0,0,0};
 
 
void write (int address, int value){
    input();
    ram[address] = value;
}
 
int read (int address){
 
    return ram[address];
}
0
Заблокирован
11.02.2024, 00:18
Цитата Сообщение от madman64 Посмотреть сообщение
C++
1
ram = {0,0,0,0,0,0,0,0};
И что это вообще такое ? Это не определение. Это проделки ЧатЖоПиТи, ну или писание чего то наугад. Ну - ну

Добавлено через 4 минуты
В хидере
C++
1
extern int ram[8];
В реализации
C++
1
int ram[8]{0,5,0,0,0,0,0,0};
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
11.02.2024, 00:34
Цитата Сообщение от DrOffset Посмотреть сообщение
перенести определение переменной в ram.cpp
Цитата Сообщение от madman64 Посмотреть сообщение
ram = {0,0,0,0,0,0,0,0};
Это не определение.
Определение - это то, что было у вас в .h до того, как вы добавили extern. Добавив extern, вы убрали определение, оставив только объявление. Теперь, чтобы линкер его нашел, определение необходимо разместить в другом месте, в данном случае в ram.cpp.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.02.2024, 00:34
Помогаю со студенческими работами здесь

Определение аппаратной конфигурации персонального компьютера
Суть программы:Написать программу определения аппаратной конфигурации персонального компьютера. Код формы HV1(HV1.frm): ...

Массив записей с данными о комплектации персонального компьютера
:(Программа создает на диске массив записей с данными о комплектации персонального компютера :модель процессора, модель винчестера,...

Анализ существующих моделей подсистем персонального компьютера
Ребята, подскажите где можно найти готовые или наглядные модели компонентов компьютера для их анализа? Заранее спасибо.))

Можно ли сделать из персонального компьютера автоматического робота?
Я прирождённый изобретатель и мечтаю о том, чтобы изобрести, что то новое, что до меня никто ещё не изобретал. Программировать на...

Напишите программу, реализующую сборку персонального компьютера
Напишите программу, реализующую сборку персонального компьютера. При разработке архитектуры программы используйте паттерн Строитель. В...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru