Реализация классов "Компьютерные комплектующие"
Ознакомление с программой проведения сборки компьютера из деталей, имеющихся в базе данных. Рассмотрение правил создания иерархии классов. Описание основных методов и пользовательского интерфейса. Изучение системных требований и текстов основных классов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.07.2014 |
Размер файла | 710,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки РФ
Рязанский Государственный Радиотехнический Университет
Кафедра вычислительной и прикладной математики
Пояснительная записка
к курсовой работе
Реализация классов "Компьютерные комплектующие"
Выполнил:
студент группы 943
Букарев С.И.
Проверил:
доцент кафедры ВПМ
Лаврентьев С.И.
Рязань, 2012
Оглавление
Задание
Введение
1. Разработка программы
1.1 Выбор среды разработки
1.2 Иерархия классов и их обоснование
1.3 Описание основных методов
1.4 Пользовательский интерфейс
2. Системные требования
Заключение
Список литературы
Приложения
Задание
Создать иерархию классов для реализации свойств и методов объектов из предметной области "Компьютерные составляющие". В основной программе продемонстрировать работу всех методов.
Объектами предметной области являются компьютерные комплектующие 2 видов: внутренние составляющие и периферия. Каждый из которых в свою очередь делится на несколько подвидов:
1) Процессор, Материнская плата, Видеокарта, Оперативная память, Жёсткий диск, Блок питания
2) Компьютерная мышь, Клавиатура, Колонки, Наушники.
Предусмотреть методы на сборку, добавление, удаление всех видов комплектующих и их поиск по различным параметрам.
Введение
В современное время почти каждый человек сталкивался с проблемой выбора и сборки компьютера.
В данной курсовой работе рассматривается программа, которая поможет осуществить сборку компьютера из деталей, имеющихся в базе данных.
1. Разработка программы
1.1 Выбор среды разработки
Для разработки программы была выбрана среда C++ Builder 6
1.2 Иерархия классов и их обоснование
Основным классом рассмотрения предметной области "Компьютерные комплектующие" является товар. Класс товар содержит общие свойства для всех других классов, таких как наушники или центральный процессор. Так как наушники или процессор являются товаром, который, как и все товары имеют вес, цену, и название. Он описывает общие характеристики всех комплектующих. От него наследуются 2 класса: внутренние составляющие и периферия. Так как бываю только внутренние состовляющие (процессор, материнская плата, жесткий диск и так далее) и переферия (шаушники, мышка, клавиатура и так далее).
Класс внутренних компонентов содержит свойства присущие только для внутренних компонентов. А именно это тактовая частота.
Класс переферии содержит толко свойства присущие только переферийным устройствам. А именно дистанция работы.
1. Разработка классов.
А) Внутренние составляющие
В этот класс входят все комплектующие, которые находятся непосредственно внутри корпуса и необходимы для работы компьютера. Каждому компоненту будут соответствовать классы:
· Процессорам - Processor
· Материнским платам - Motherboard
· Видеокартам - Video Card
· ОЗУ - DDR
· Жёстким дискам - Hard Disk
· Блокам питания - Block Power
Общее свойство у всех вышеперечисленных - наличие частоты/скорости (FrecuencySpeed).
Рассмотрим каждый наследуемый от Components класс поподробнее.
1) Processor
About - Особенности процессора
Technology - Технология
Nest - Тип гнезда(LGA755, LGA1156 и т.д.)
Cache - Размер кэша L3 в Мб (сколько приходится на каждый процессор)
CountOfNucleus - Количество ядер
Pressure - Напряжение питания (~ 0.8-1.5Вт)
CritTemp - Критическая температура
2) MotherBoard
About - Особенности материнской платы
NestOfProc - Тип гнезда для процессора
Audio - Тип аудио (количество каналов: 6,8,10..)
InthernetCard - Наличие встроенной сетевой карты
CountOfSocketsDDR - Количество сокетов под оперативную память
CountOfSataII - Возможное количество подключаемых хардов SataII
3) HardDisk
Buffer - Буфер HDD
ThroughputHD - Пропускная способность
VolumeHD - Объём харда
AverageWaitingTime - Среднее время ожидания
AverageTimeAccessRead - Среднее время доступа при чтении
AverageTimeAccessRec - Среднее время доступа при записи
4) DDR
Volume - Объём оперативной памяти в Мб
Type - Тип памяти (DDR,DDR2,DDR3)
Throughput - Пропускная способность в Мб/сек
5) VideoCard
TechProc - Техпроцесс
MaxPermission - Максимальное разрешение (например 1200х1600)
VolumeVideoMemory - Размер видеопамяти
TypeVideoMemory - Тип видеопамяти (например, GDDR5)
WordLength - Разрядность (128bit, 256bit…)
RequirementCapacityBP - Требование к Блоку Питания (минимальные)
VideoFrequency - Частота видеопамяти в Гц
6) BlockPower
Pressure - Мощность в Вт
CombinedLoading - Комбинированная нагрузка
DiameterFan - Диаметр вентилятора
EntrancePressureMin - Входное напряжение минимальное
EntrancePressureMax - Входное напряжение максимальное
Efficiency - КПД в %
NoiseLevel - Уровень шума в дБ
Б) Периферийные устройства
В этот класс входят все комплектующие, которые находятся на определённом расстоянии от корпуса и необходимы скорее для корректной/более удобной работы компьютера. Каждому компоненту будут соответствовать классы:
· Клавиатура - KeyBoard
· Компьютерная мышь - CompMouse
· Наушники - EarPhones
· Колонки - Columns
Общее свойство у всех вышеперечисленных - дистанция, на которой они могут работать (Distance).
Рассмотрим каждый наследуемый от Peripheral класс поподробнее.
1) KeyBoard
Color - Основной цвет(-а) клавиатуры
KeyIllumination - Подсветка клавиш
LCD - Наличие ЖК-дисплея
2) CompMouse
ColorM - Основной цвет(-а) мыши
TypeSensor - Тип сенсора (Оптический, Лазерный)
NoutMouse - Является ли ноутбучной мышью
CountOfButtons - Количество кнопок
MouseIllumination - Наличие подсветки
MousePermission - Разрешение (400,600,800…5600dpi)
MaxAcceleration - Максимальное ускорение (например, 20G)
3) Columns
RMS - Суммарная мощность колонок
Subwoofer - Наличие сабвуфера
CountOfColumn - Количество колонок
Material - Материал
Minfrequency - Минимально воспроизводимая частота
Maxfrequency - Максимально воспроизводимая частота
SignalNoise - Соотношение сигнал/шум
4) EarPhones
SizeDinamik - Размер динамиков (в мм)
Microphone - Наличие микрофона
SignalNoiseMic - Чувствительность микрофона
Type - Тип
Minfrequency - Минимально воспроизводимая частота
Maxfrequency - Максимально воспроизводимая частота
SignalNoiseDin - Соотношение сигнал/шум динамиков
Полученная иерархия классов представлена на рис. 1.
Рис. 1. Иерархия классов
1.3 Описание основных методов
Во всех перечисленных классах, помимо конструктора необходим метод, позволяющий показать о данной детали всю необходимую информацию. Этот метод называется Show и является членом базового класса BaseGood.
В конструкторе заполняются значения всех полей классов необходимой информацией.
В методе Show происходит вывод информации о компоненте на экран. Каждый дочерний класс сначала вызывает родительскую реализацию метода Show, что позволяет вывести унаследованную информацию, а затем переходит к выводу значений своих полей.
В методе Write происходит запись информации об объекте в файл.
Тексты всех классов представлены в разделе "Тексты основных классов".
1.4 Пользовательский интерфейс
При разработке пользовательского интерфейса были использованы основные компоненты и возможности C++Builder 6.
Главное окно программы (рис. 2).
Рис. 2. Главное окно программы
При создании формы из файлов считываются данные и заполняются массивы объектов.
При нажатии на картинку любого компонента появляется окно со списком компонентов (рис. 3).
Рис. 3. Список компонентов типа "Оперативная память"
Рис. 4. Диалог поиска
При нажатии на кнопку поиск появляется диалоговое окно (рис. 5).
После ввода условий поиска и нажатия кнопки "Найти" появляется форма с нужными компонентами. И пользователь может добавить в корзину новый компонент.
Рис. 5. Результаты поиска
При нажатии на кнопку "Добавить" появляется диалог добавления нового компонента (рис. 6).
Рис. 6. Диалог добавления нового видео
Для вызова справки необходимо выбрать пункт меню Справка->О программе.
2. Системные требования
Программа может быть запущена на любом компьютере под управлением операционной системы Windows 98 - Windows 7 . Для запуска требуется более 8Mb ОЗУ и 10 Mb свободной памяти на диске. Для работы требуется компьютерная мышь и клавиатура.
Заключение
В ходе выполнения курсовой работы были получены навыки по разработке классов на языке C++ в среде C++Builder 6. Так же изучена работа с основными компонентами, диалоговыми окнами и возможностями проектирования приложений в данной среде.
Список литературы
1. "Реализация интерфейса с использование Borland C++ Builder по курсу Объектно-ориентированное программирование", Рязань, 2004 г.
компьютер сборка программа деталь
Приложения
Тексты основных классов
Класс BaseGoods
#include <vcl.h>
#pragma hdrstop
#include "BaseGoods.h"
#include "ChoiseComp.h"
#pragma package(smart_init)
Goods::Goods(float parPrice,AnsiString parManufacturer,AnsiString parModel,int parGuarantee,float parWeigth)
{
Price = parPrice;
Manufacturer = parManufacturer;
Model = parModel;
Guarantee = parGuarantee;
Weigth = parWeigth;
}
void Goods::Show(int parNumber)
{
ChoiseDlg->SGComp->Cells[1][parNumber+1] = FormatFloat("0.00",Price);
ChoiseDlg->SGComp->Cells[2][parNumber+1] = Manufacturer;
ChoiseDlg->SGComp->Cells[3][parNumber+1] = Model;
ChoiseDlg->SGComp->Cells[4][parNumber+1] = Guarantee;
ChoiseDlg->SGComp->Cells[5][parNumber+1] = FormatFloat("0.000",Weigth);
}
float Goods::price()
{
return Price;
}
AnsiString Goods::model()
{
return Model;
}
AnsiString Goods::manufacturer()
{
return Manufacturer;
}
int Goods::guarantee()
{
return Guarantee;
}
float Goods::weigth()
{
return Weigth;
}
Приложение 2
Класс Components
#pragma hdrstop
#include "BaseGoods.h"
#include "ComputerComponents.h"
#include "ChoiseComp.h"
#pragma package(smart_init)
Components::Components(float parPrice,AnsiString parManufacturer,AnsiString parModel,int parGuarantee,float parWeigth,int parFrequencySpeed):Goods(parPrice,parModel,parManufacturer,parGuarantee,parWeigth)
{
FrequencySpeed = parFrequencySpeed;
}
void Components::Show(int parNumber)
{
Goods::Show(parNumber);
ChoiseDlg->SGComp->Cells[6][parNumber+1] = FrequencySpeed;
}
int Components::frequencySpeed()
{
return FrequencySpeed;
}
Приложение 3
Класс Peripheral
#pragma hdrstop
#include "BaseGoods.h"
#include "RemoteTerminalUnits.h"
#include "ChoiseComp.h"
#pragma package(smart_init)
Peripheral::Peripheral(float parPrice,AnsiString parModel,AnsiString parManufacturer,int parGuarantee,float parWeigth,int parDistance):Goods(parPrice,parModel,parManufacturer,parGuarantee,parWeigth)
{
Distance = parDistance;
}
void Peripheral::Show(int parNumber)
{
Goods::Show(parNumber);
ChoiseDlg->SGComp->Cells[6][parNumber+1] = Distance;
}
int Peripheral::distance()
{
return Distance;
}
Приложение 4
Класс Processor
#pragma hdrstop
#include <stdio.h>
#include <math.h>
#include "ComputerComponents.h"
#include "Processor.h"
#include "ChoiseComp.h"
#pragma package(smart_init)
Goods * Good;
Components * Component;
Processor::Processor(float parPrice,AnsiString parManufacturer,AnsiString parModel,int parGuarantee,float parWeigth,
int parFrequencySpeed,AnsiString parAbout,float parTechnology,AnsiString parNest,int parCache,int parCountOfNucleus,
float parPressure,float parCritTemp):Components(parPrice,parManufacturer,parModel,parGuarantee,parWeigth,parFrequencySpeed)
{
About = parAbout;
Technology = parTechnology;
Nest = parNest;
Cache = parCache;
CountOfNucleus = parCountOfNucleus;
Pressure = parPressure;
CritTemp = parCritTemp;
}
void Processor::Show(int parNumber)
{
Components::Show(parNumber);
ChoiseDlg->SGComp->Cells[7][parNumber+1] = About;
ChoiseDlg->SGComp->Cells[8][parNumber+1] = FormatFloat("0.000",Technology);
ChoiseDlg->SGComp->Cells[9][parNumber+1] = Nest;
ChoiseDlg->SGComp->Cells[10][parNumber+1] = Cache;
ChoiseDlg->SGComp->Cells[11][parNumber+1] = CountOfNucleus;
ChoiseDlg->SGComp->Cells[12][parNumber+1] = FormatFloat("0.00",Pressure);
ChoiseDlg->SGComp->Cells[13][parNumber+1] = FormatFloat("0.00",CritTemp);
}
void Processor::Write()
{FILE * f;
char s[255];
int num;
f = fopen("Процессоры.txt","r");
fgets(s,256,f);
num = atoi(s); num++;
fclose(f);
f = fopen("Процессоры.txt","a");
if (num != 1)
fprintf(f,"%s\n"," ");
fprintf(f,"%s\n",FloatToStr(this->price()));
fprintf(f,"%s\n",this->manufacturer());
fprintf(f,"%s\n",this->model());
fprintf(f,"%s\n",IntToStr(this->guarantee()));
fprintf(f,"%s\n",FloatToStr(this->weigth()));
fprintf(f,"%s\n",IntToStr(this->frequencySpeed()));
fprintf(f,"%s\n",this->about());
fprintf(f,"%s\n",FloatToStr(this->technology()));
fprintf(f,"%s\n",this->nest());
fprintf(f,"%s\n",IntToStr(this->cache()));
fprintf(f,"%s\n",IntToStr(this->countOfNucleus()));
fprintf(f,"%s\n",FloatToStr(this->pressure()));
fprintf(f,"%s\n",FloatToStr(this->critTemp()));
fclose(f);
f = fopen("Процессоры.txt","r+");
fprintf(f,"%s\n",IntToStr(num));
fclose(f);
}
AnsiString Processor::about()
{
return About;
}
float Processor::technology()
{
return Technology;
}
AnsiString Processor::nest()
{
return Nest;
}
int Processor::cache()
{
return Cache;
}
int Processor::countOfNucleus()
{
return CountOfNucleus;
}
float Processor::pressure()
{
return Pressure;
}
float Processor::critTemp()
{
return CritTemp;
}
Processor::~Processor(void)
{}
Приложение 5
Класс KeyBoard
#pragma hdrstop
#include <stdio.h>
#include "RemoteTerminalUnits.h"
#include "KeyBoard.h"
#include "ChoiseComp.h"
#pragma package(smart_init)
Goods * Good;
Peripheral * Periph;
KeyBoard::KeyBoard(float parPrice,AnsiString parManufacturer,AnsiString parModel,int parGuarantee,float parWeigth,int parDistance,
AnsiString parColor,AnsiString parKeyIllumination,AnsiString parLCD):Peripheral(parPrice,parManufacturer,parModel,parGuarantee,parWeigth,parDistance)
{
Color = parColor;
KeyIllumination = parKeyIllumination;
LCD = parLCD;
}
void KeyBoard::Show(int parNumber)
{
Peripheral::Show(parNumber);
ChoiseDlg->SGComp->Cells[7][parNumber+1] = Color;
ChoiseDlg->SGComp->Cells[8][parNumber+1] = KeyIllumination;
ChoiseDlg->SGComp->Cells[9][parNumber+1] = LCD;
}
void KeyBoard::Write()
{FILE * f;
char s[255];
int num;
f = fopen("Клавы.txt","r");
fgets(s,256,f);
num = atoi(s); num++;
fclose(f);
f = fopen("Клавы.txt","a");
if (num != 1)
fprintf(f,"%s\n"," ");
fprintf(f,"%s\n",FloatToStr(this->price()));
fprintf(f,"%s\n",this->manufacturer());
fprintf(f,"%s\n",this->model());
fprintf(f,"%s\n",IntToStr(this->guarantee()));
fprintf(f,"%s\n",FloatToStr(this->weigth()));
fprintf(f,"%s\n",IntToStr(this->distance()));
fprintf(f,"%s\n",this->color());
fprintf(f,"%s\n",this->keyIllumination());
fprintf(f,"%s\n",this->lcd());
fclose(f);
f = fopen("Клавы.txt","r+");
fprintf(f,"%s\n",IntToStr(num));
fclose(f);
}
AnsiString KeyBoard::color()
{
return Color;
}
AnsiString KeyBoard::keyIllumination()
{
return KeyIllumination;
}
AnsiString KeyBoard::lcd()
{
return LCD;
}
KeyBoard::~KeyBoard(void)
{}
Размещено на Allbest.ru
Подобные документы
Реализация абстрактных методов демонстрации иерархии классов: постановка задачи, имитирующей жизнь двух племен муравьев, создание класса-родителя "муравей", определяющего методы и свойства, которые унаследуют потомки. Программное и аппаратное обеспечение.
курсовая работа [630,0 K], добавлен 19.03.2012Разработка набора взаимосвязанных классов для реализации Hash-поиска как специализированного контейнера. Поиск с использованием Хэш-функций. Объектная технология. Описание пользовательского интерфейса. Листинг и описание всех классов библиотеки на DP.
курсовая работа [231,2 K], добавлен 15.10.2008Выявление классов-сущностей (диаграмма классов) и вариантов использований системы. Моделирование видов деятельности, взаимодействий, состояний, пользовательского интерфейса и архитектуры системы (диаграмм развертывания) на основе выявленных требований.
дипломная работа [2,1 M], добавлен 24.01.2016Обзор технологии OpenStack, область ее применения. Реализация библиотеки классов. Реализация базовых классов и интерфейсов архитектуры. Создание виртуального сервера. Интеграция разработанной библиотеки классов и архитектура проектного решения.
дипломная работа [1,0 M], добавлен 09.08.2016Классы и свойства объектно-ориентированного пространства. Методика создания новых классов в delphi: выбор родительского класса, изменение существующих компонентов, создание подклассов для элементов управления windows. Создание новой ветви классов.
контрольная работа [13,0 K], добавлен 07.07.2012Разработка структуры класса "Экран курсового проектирования", которая будет основой для хранения информации о студентах, выполняющих курсовые работы. Реализация визуального приложения для тестирования иерархии классов на языке программирования С++.
курсовая работа [3,3 M], добавлен 18.03.2011Листинг класса для работы с регулярными выражениями. Особенности классов для проверки данных при регистрации и отправки сообщений. Отправка ссылки для активации на почту пользователя, описание основных классов, анализ их назначения и листинг функций.
курсовая работа [1,7 M], добавлен 17.09.2013Создание пользовательского web-интерфейса. Основные этапы создания web-сайта. Пользователи системы и их роли. Аналоги системы, структура основных пакетов и классов. Схема функционирования системы для пользователей. Публикация web-сайта для посетителей.
курсовая работа [2,0 M], добавлен 23.03.2012Подбор игрового движка и описание его основных характеристик. Разработка структуры, алгоритма и интерфейса программы. Проектирование иерархии классов. Выделение типового приема визуализации. Тестирование правильности работы программного обеспечения.
курсовая работа [3,1 M], добавлен 19.01.2017Описание классов данных. Основное меню программы. Добавление и удаление объектов. Вывод устройств хранения в указанном ПК. Устройство хранения, класс ноутбук, класс жёсткий диск, класс персональный компьютер, класс планшет и класс Flash-память.
курсовая работа [1,8 M], добавлен 30.03.2014