Курсовая работа по курсу "Информатика"




Скачать 160.93 Kb.
НазваниеКурсовая работа по курсу "Информатика"
Дата публикации06.08.2013
Размер160.93 Kb.
ТипКурсовая
lit-yaz.ru > Информатика > Курсовая



Министерство образования и науки Российский Федерации

Южно-Уральский Государственный Университет

Приборостроительный факультет

Кафедра автоматики и управления

Курсовая работа

по курсу "Информатика"

Вариант №11

Выполнил студент ПС-161

_____________ Рыжов Р.С.

" ___"_____________2012 г.

Проверил доцент каф. АиУ

_________ Казаринова В.Л.

" ___"_____________2012 г.

Челябинск

2012

Общее задание на курсовую работу по дисциплине «Информатика»

Связать отношением наследования иерархию классов согласно варианту задания (п. 1 задания). Класс, стоящий во главе иерархии, определить как абстрактный.

Определить в классах конструкторы, включая конструкторы с параметрами и без параметров, и деструкторы. Деструкторы должны выводить информационные сообщения о том, какой объект его вызвал.

Определить в классах компоненты-функции для просмотра и установки полей данных.

Определить в классах компоненты-функции для выполнения запросов (п. 2 задания).

Определить в классах статическое поле, предназначенное для хранения количества объектов данного класса.

В демонстрационной программе создать иерархию объектов. Объекты создаются динамически по запросу пользователя, при этом указатели на вновь созданные объекты записываются в статические массивы (достаточно размерности n= 5).

Предусмотреть вывод на экран пользовательского меню предусматривающего создание или удаление элементов (удаление – это удаление объекта посредством операции delete, а также удаление его адреса в статическом массиве посредством смещения значений элементов массива влево на один элемент). Создание объектов должно осуществляться от объектов верхнего уровня к нижнему, в соответствии с иерархией.

Предусмотреть вывод на экран данных по запросу (п. 2 задания), а также количества элементов заданного типа (из статического поля).

Пояснительная записка к курсовой работе оформляется в соответствии со стандартами ЮУрГУ. В пояснительной записке к курсовой работе должны присутствовать:

  1. Введение, заключение, список использованной литературы

  2. Основная часть: описание работы функций, классов, демонстрационной программы, а также блок-схемы алгоритмов работы функций и демонстрационной программы. Блок-схемы оформляются в соответствии с ГОСТ 19.701-90 «Схемы алгоритмов, программ, данных и систем».

  3. Руководство оператора (инструкция пользователю по работе с демонстрационной программой со скриншотами работы программы).

  4. Листинг программы на Си++.

^ Методические указания

Иерархия классов есть иерархия по принципу наследования, т.е. типа “это есть разновидность того”. Например, “рабочий есть разновидность персоны”, “автомобиль” есть разновидность “транспортного средства”. В отличие от этого иерархия объектов  это иерархия по принципу вхождения, т.е. типа “это есть часть того”. Например, “установка  часть завода”, “двигатель”  часть “автомобиля”.

^ Tobject (абстр. класс)

Персона (абстр. класс)

Подразделение (абстр. класс)

Студент

Преподаватель

Кафедра

Группа

Рис. 1. Иерархия классов

Кафедра1

Группа1

СтудентА

СтудентБ

Группа2

СтудентА

СтудентБ

Кафедра1

Группа1

СтудентА

СтудентБ

Группа2

СтудентА

СтудентБ

Рис. 2. Иерархия объектов

Иерархию объектов можно реализовать с помощью полей классов, представляющих собой статические массивы указателей на соответствующие подчиненные объекты.

Задание:

Классы:

Ток-шоу, Развлекательная передача, Телеканал, СМИ (средство массовой информации), Радиостанция, Хит-парад

Запросы:

• вывести перечень развлекательных передач указанного типа на указанном телеканале/радиостанции;

• вывести перечень развлекательных передач, которые ведет указанный ведущий;

• вывести перечень ток-шоу длительностью более получаса;

• вывести суммарную продолжительность рекламных пауз в хит-парадах заданного телеканала/радиостанции.
Листинг:
stdafx.h:
#pragma once
#include "targetver.h"
#include

#include

#include

#include

#include

#include "obj.h"
obj.h:

#ifndef objh

#define objh

using namespace std;
class object

{protected:

static int n;

static char m[100];

int number;

};
class entertainment:public object

{protected:

char leed[100];

public:

entertainment(){cout<<"\nСоздан объект: ";}

~entertainment(){cout<<"\nОбъект удалён\n";}

};
class media:public object

{protected:

int year;

public:

media(){cout<<"\nСоздан объект: ";}

~media(){cout<<"Объект удалён\n";}

};
class hit:public entertainment

{int duration_hit;

int duration_pause_hit;

static int duration_pause;

static int number_hit;

public:

void duration2();

void print_dur();

void leeding1(char i[100]);

void scan_hit();

void print_hit();

hit(int q, int w, char e[100], int r=9)

{cout<<"(хит-парад):";number_hit++;number=q;duration_hit=w;strcpy(leed,e);duration_pause_hit=r;}

hit(){number_hit++;cout<<"хит-парад\n"<
~hit()

{cout<<"\n\nУдаляется объект 'хит-парад': ";print_hit(); number_hit--;cout<<"Количество оставшихся объектов 'хит-парад': "<
};
class show:public entertainment

{int duration_sho;

int duration_pause_sho;

static int number_sho;

public:

void duration1();

void leeding2(char i[100]);

void scan_sho();

void print_sho();

show(int q, int w, char e[100], int r=10)

{cout<<"(ток-шоу):";number_sho++;number=q;duration_sho=w;strcpy(leed,e);duration_pause_sho=r;}

show(){number_sho++;cout<<"ток-шоу\n"<
~show()

{cout<<"\n\nУдаляется объект 'ток-шоу': ";print_sho(); number_sho--;cout<<"Количество оставшихся объектов 'ток-шоу': "<
};
class tv :public media

{char name_tv[100];

static int number_tv;

public:

void scan_tv();

void print_tv();

tv(int q,char e[100], int r=18)

{number_tv++;cout<<"(телеканал):";number=q;strcpy(name_tv,e);year=r;}

tv(){number_tv++;cout<<"телеканал"<
~tv()

{cout<<"\nУдаляется объект 'телеканал': ";print_tv();number_tv--;cout<<"Количество оставшихся объектов 'телеканал': "<
};
class radio :public media

{char name_rad[100];

static int number_rad;

public:

void scan_rad();

void print_rad();

radio(int q,char e[100], int r=20)

{number_rad++;cout<<"(радиостанция):";number=q;strcpy(name_rad,e);year=r;}

radio(){number_rad++;cout<<"радиостанция"<
~radio()

{cout<<"\nУдаляется объект 'радиостанция': ";print_rad();number_rad--;cout<<"Количество оставшихся объектов 'радиостанция': "<
};

#endif

obj.cpp:

#include "stdafx.h"

using namespace std;
char object::m[100]="0";

int object::n=0;

int hit::number_hit=0;

int show::number_sho=0;

int tv::number_tv=0;

int radio::number_rad=0;

int hit::duration_pause=0;
void hit::leeding1(char i[100])

{if (strcmp(i,leed)==0) print_hit();}
void show::leeding2(char i[100])

{if (strcmp(i,leed)==0) print_sho();}
void show::duration1()

{if (duration_sho>30) print_sho();}
void hit::duration2()

{duration_pause=duration_pause+duration_pause_hit;}
void hit::print_dur()

{cout<<"Суммарная продолжительность рекламных пауз: "<void hit::scan_hit()

{number_hit++;

number=number_hit;

cout<<"\nХит-парад номер: "<
cout<<"Введите продолжительность: "; cin>>duration_hit;

cout<<"Введите продолжительность рекламных пауз: "; cin>>duration_pause_hit;

cout<<"Введите имя ведущего: "; cin>>leed;

}
void hit::print_hit()

{cout<<"\nХит-парад номер: "<void show::scan_sho()

{number_sho++;

number=number_sho;

cout<<"\nТок-шоу номер: "<
cout<<"Введите продолжительность: "; cin>>duration_sho;

cout<<"Введите продолжительность рекламных пауз: "; cin>>duration_pause_sho;

cout<<"Введите имя ведущего: "; cin>>leed;

}
void show::print_sho()

{cout<<"\nТок-шоу номер: "<void tv::scan_tv()

{cout<<"\nТелеканал номер: "<
cout<<"Введите название: "; cin>>name_tv;

cout<<"Введите возраст: "; cin>>year;

}
void tv::print_tv()

{cout<<"\nТелеканал номер: "<void radio::scan_rad()

{cout<<"\nРадиостанция номер: "<
cout<<"Введите название: "; cin>>name_rad;

cout<<"Введите возраст: "; cin>>year;

}
void radio::print_rad()

{cout<<"\nРадиостанция номер: "<^ Демонстрационная программа:

#include "stdafx.h"

#include "obj.h"
using namespace std;
void main()

{int a,s,d,f,g,h,j,k,l,z,x,v,b;

char leed1[100];
cout<<"Введите количество радиостанций: "; cin>>a;

s=a;

radio *radio1=new radio[a];
cout<<"\nВведите количество хит-парадов на каждой радиостанции: "; cin>>l;

hit **hit1;

hit1=(hit**)malloc(a*sizeof(hit*));

for (d=0;d
hit1[d]=(hit*)malloc((l*a)*sizeof(hit));

for (d=0;d
{

cout<<"\nЗаполните информацию о хит-парадах радиостанции номер: "<
for (f=0;f
hit1[d][f].scan_hit();

}
cout<<"\nВведите количество телеканалов: "; cin>>g;

h=g;

tv *tv1=new tv[g];
cout<<"\nВведите количество хит-парадов на каждом телеканале: "; cin>>k;

hit **hit2;

hit2=(hit**)malloc(g*sizeof(hit*));

for (d=0;d
hit2[d]=(hit*)malloc((k*g)*sizeof(hit));

for (d=0;d
{

cout<<"\nЗаполните информацию о хит-парадах телеканала номер: "<
for (f=0;f
hit2[d][f].scan_hit();

}
cout<<"\nВведите количество ток-шоу на каждом телеканале: "; cin>>b;

show **show2;

show2=(show**)malloc(g*sizeof(show*));

for (d=0;d
show2[d]=(show*)malloc((b*g)*sizeof(show));

for (d=0;d
{

cout<<"\nЗаполните информацию о ток-шоу на телеканале номер: "<
for (f=0;f
show2[d][f].scan_sho();

}
for(;;)

{cout<<"Введите: \n1->'Вывести перечень развлекательных передач указанного типа на указанном \nтелеканале/радиостанции'"<
cout<<"2->'Вывести перечень развлекательных передач, которые ведет указанный ведущий'"<
cout<<"3->'Вывести перечень ток-шоу длительностью более получаса'"<
cout<<"4->'Вывести суммарную продолжительность рекламных пауз в хит-парадах заданного телеканала/радиостанции'"<
cout<<"5->'Удалить объекты'"<
cout<<"0->'Выход'"<
cin>>x;

if (x==1)

{

for(;;)

{cout<<"\n(1) Введите: 1->'Телеканал' 2->'Радиостанция(Хит-парад)' 0->'Назад' "; cin>>j;

if(j==1)

{cout<<"\nВведите: 1->'Хит-парад' 2->'Ток-шоу' 0->'Назад' "; cin>>v;

if(v==1)

{for (d=0;d
for (f=0;f
hit2[d][f].print_hit();

}

if(v==2)

{for (d=0;d
for (f=0;f
show2[d][f].print_sho();

}

if(v==0) break;

}

if(j==2)

{for (d=0;d
for (f=0;f
hit1[d][f].print_hit();

}

if(j==0) break;

}

}

if (x==2)

{

for(;;)

{cout<<"\n(2) Введите: Имя ведущего или 0->'Назад' "; cin>>leed1;

if (*leed1!='0')

{

for (d=0;d
for (f=0;f
hit2[d][f].leeding1(leed1);
for (d=0;d
for (f=0;f
show2[d][f].leeding2(leed1);
for (d=0;d
for (f=0;f
hit1[d][f].leeding1(leed1);

}

else break;

}

}

if (x==3)

{

for(;;)

{cout<<"\n(3) Введите: 1->'Перечень ток-шоу длительностью больше 30 минут' 0->'Назад' "; cin>>j;

if(j==1)

{for (d=0;d
for (f=0;f
show2[d][f].duration1();

}

if(j==0) break;

}

}

if (x==4)

{

for(;;)

{cout<<"\n(4) Введите: 1->'Телеканал' 2->'Радиостанция' 0->'Назад' "; cin>>j;

if(j==1)

{for (d=0;d
for (f=0;f
hit2[d][f].duration2();

hit2[0][0].print_dur();

}

if(j==2)

{for (d=0;d
for (f=0;f
hit1[d][f].duration2();

hit1[0][0].print_dur();

}

if(j==0) break;

}

}

if (x==5)

{

delete[] radio1;

delete[] tv1;

}

if (x==0) break;

}

}

Блок-схемы:


hit(int q, int w, char e[100], int r=9)



show(int q, int w, char e[100], int r=10)



tv(int q,char e[100], int r=18)



radio(int q,char e[100], int r=20)



hit() show() tv() radio()



~ hit() ~show() ~tv() ~radio()

leeding1(char i[100]) leeding2(char i[100])



duration1()


duration2() print_dur()


scan_hit() scan_sho() scan_tv() scan_rad()



print_hit() print_sho()


print_tv() print_rad()


main()


Демонстрация:



Добавить документ в свой блог или на сайт

Похожие:

Курсовая работа по курсу \"Информатика\" iconКурсовая работа по дисциплине «Информатика» на тему «Обмен данными в ms office»
Курсовая работа «Обмен данными в ms office» содержит 27 страниц печатного текста, 4 рисунка, 5 таблиц, использовано 5 источников

Курсовая работа по курсу \"Информатика\" icon«Организация эвм» Контрольно курсовая работа «Проектирование вычислительной системы»
Данная контрольно-курсовая работа выполняется с целью закрепления знаний по курсу «Организация ЭВМ и систем» и получения практических...

Курсовая работа по курсу \"Информатика\" iconКурсовая работа Направление подготовки 230700. 62 «Прикладная информатика в дизайне»
Основные понятия разработки Web-приложений

Курсовая работа по курсу \"Информатика\" iconКурсовая работа по дисциплине: «Информатика» на тему «Сетевые возможности ос ms windows»
Результаты выполнения контрольного примера в расчётном и формульном виде

Курсовая работа по курсу \"Информатика\" iconКурсовая работа по дисциплине «Информатика» на тему «Принципы, технологии, протоколы Интернет»
Проектирование форм выходных документов и графическое предоставление данных

Курсовая работа по курсу \"Информатика\" iconКурсовая работа по дисциплине: «Информатика» на тему «Архитектура современного пк»
Всероссийский заочный финансово-экономический институт Кафедра автоматизированной обработки экономической информации

Курсовая работа по курсу \"Информатика\" iconКурсовая работа по предмету: «Информатика» на тему: «Возможности...
Результаты выполнения контрольного примера 19 5 Инструкция пользователя 20 Список использованной литературы 25

Курсовая работа по курсу \"Информатика\" iconКурсовая работа по дисциплине «Информатика» на тему «Тенденции развития Интернет»
Основные черты Интернет-права как регулятора новых общественных отношений

Курсовая работа по курсу \"Информатика\" iconРабочая программа по курсу «Информатика» составлена на основе требовании...
Для группы специальностей: 050709 – «Преподавание в начальных классах», 050704 – «Дошкольное образование», 050301 – «Русский язык...

Курсовая работа по курсу \"Информатика\" iconКурсовая Работа по дисциплине «Информатика» на тему «История развития криптографии»
Криптография тайнопись, специальная система изменения обычного письма, используемая с целью сделать текст понятным лишь для ограниченного...



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница