Проблемно-ориентированные программные комплексы.

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Проектирование баз данных
  • 3030 страниц
  • 2 + 2 источника
  • Добавлена 22.04.2012
800 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Содержание
1. Техническое задание
2. Краткое описание предметной области
3. Логическая модель проектируемого хранилища данных
4. Даталогическая модель проектируемого хранилища данных
5. Физическая модель проектируемого хранилища данных
6. Проектирование программной оболочки хранилища данных
7. Результаты работы программной оболочки
8. Выводы по работе
Список использованной литературы
Приложение

Фрагмент для ознакомления

x:=parX;
dtCell[i].y:=parY;
ADOQuery1.Recordset.MoveNext;
end;
cols:=cols+1; // получаем количество столбцов
rows:=rows+1; // и количество строк
except
application.MessageBox( 'Не могу выполнить запрос', 'Ошибка',MB_OK);
exit;
end;
StringGrid1.RowCount:=rows+1; // устанавливаем размеры таблицы
StringGrid1.ColCount:=cols+1; // с учетом заголовков
//
for k:=0 to count-1 do // разворачиваем результат
begin; // в прямоугольную форму
for j:=0 to cols-1 do // находим координату по горизонтали
if dtCell[k].x = axeX[j] then
break;
for i:=0 to rows-1 do // находим координату по вертикали
if dtCell[k].y = axeY[i] then
break;
// вписываем данные в ячейку
StringGrid1.Cells[j+1,i+1]:=Format('%f',[dtCell[k].data]);
end;
//
for i:=0 to cols-1 do // формируем заголовки столбцов
begin;
header:='';
if RadioButton7.Checked then // по горизонтали выбран период
begin; // разбираем дату
month:=axeX[i] mod 100;
quorter:=(axeX[i] div 100) mod 100;
year:=axeX[i] div 10000;
for j:=0 to length(years)-1 do
if year = years[j].id then // находим год
begin;
if month <> 0 then // месяц задан
begin;
for l:=0 to length(months)-1 do
if month = months[l].id then // находим месяц
begin;
header:=header+months[l].name+' ';
break;
end;
end
else // месяц не задан
begin;
for k:=1 to length(quorters)-1 do
if quorter = quorters[k].id then // находим квартал
begin;
header:=header+quorters[k].name+' ';
break;
end;
end;
header:=header+years[j].name;
break;
end;
end
else if RadioButton8.Checked then // по горизонтали выбран адрес
begin;
if RadioButton4.Checked then // уровень детализации - улица
begin;
for j:=1 to length(streets)-1 do
if axeX[i] = streets[j].id then // находим улицу
begin;
header:=header+streets[j].name;
break;
end;
end
else if RadioButton5.Checked then // уровень детализации - дом
begin;
for j:=0 to length(allhouses)-1 do
if axeX[i] = allhouses[j].id then // находим дом
begin;
for k:=1 to length(streets)-1 do // находим улицу
if allhouses[j].parent_id = streets[k].id then
begin;
header:=header+streets[k].name;
break;
end;
header:=header+', д.'+allhouses[j].name;
break;
end;
end
else // уровень детализации - квартира
begin;
for l:=0 to length(allapps)-1 do
if axeX[i] = allapps[l].id then // находим квартиру
begin;
for j:=0 to length(allhouses)-1 do // находим дом
if allapps[l].parent_id = allhouses[j].id then
begin;
for k:=1 to length(streets)-1 do // находим улицу
if allhouses[j].parent_id = streets[k].id then
begin;
header:=header+streets[k].name;
break;
end;
header:=header+', д.'+allhouses[j].name;
break;
end;
header:=header+', кв.'+allapps[l].name;
break;
end;
end;
end
else if radioButton9.Checked then // по горизонтали выбран платежный агент
begin;
for j:=1 to length(agents)-1 do
if axeX[i] = agents[j].id then // находим агента
begin;
header:=agents[j].name;
break;
end;
end
else // по горизонтали выбран вид платежа
for j:=1 to length(categories)-1 do
if axeX[i] = categories[j].id then // находим вид платежа
begin;
header:=categories[j].name;
break;
end;
StringGrid1.Cells[i+1,0]:=header; // выводим сформированный заголовок
end;
//
for i:=0 to rows-1 do // формируем заголовки строк
begin;
header:='';
if RadioButton11.Checked then // по вертикали выбран период
begin;
month:=axeY[i] mod 100; // разбираем дату
quorter:=(axeY[i] div 100) mod 100;
year:=axeY[i] div 10000;
for j:=0 to length(years)-1 do
if year = years[j].id then // находим год
begin;
if month <> 0 then // месяц задан
begin;
for l:=0 to length(months)-1 do
if month = months[l].id then // находим месяц
begin;
header:=header+months[l].name+' ';
break;
end;
end
else // месяц не задан
begin;
for k:=1 to length(quorters)-1 do
if quorter = quorters[k].id then // находим квартал
begin;
header:=header+quorters[k].name+' ';
break;
end;
end;
header:=header+years[j].name;
break;
end;
end
else if RadioButton12.Checked then // по вертикали выбран период
begin;
if RadioButton4.Checked then // уровень детализации - улица
begin;
for j:=1 to length(streets)-1 do
if axeY[i] = streets[j].id then // находим улицу
begin;
header:=header+streets[j].name;
break;
end;
end
else if RadioButton5.Checked then // уровень детализации - дом
begin;
for j:=0 to length(allhouses)-1 do
if axeY[i] = allhouses[j].id then // находим дом
begin;
for k:=1 to length(streets)-1 do // находим улицу
if allhouses[j].parent_id = streets[k].id then
begin;
header:=header+streets[k].name;
break;
end;
header:=header+', д.'+allhouses[j].name;
break;
end;
end
else // уровень детализации - квартира
begin;
for l:=0 to length(allapps)-1 do
if axeY[i] = allapps[l].id then // находим квартиру
begin;
for j:=0 to length(allhouses)-1 do // находим дом
if allapps[l].parent_id = allhouses[j].id then
begin;
for k:=1 to length(streets)-1 do // находим улицу
if allhouses[j].parent_id = streets[k].id then
begin;
header:=header+streets[k].name;
break;
end;
header:=header+', д.'+allhouses[j].name;
break;
end;
header:=header+', кв.'+allapps[l].name;
break;
end;
end;
end
else if radioButton13.Checked then // по вертикали выбран платежный агент
begin;
for j:=1 to length(agents)-1 do
if axeY[i] = agents[j].id then // находим агента
begin;
header:=agents[j].name;
break;
end;
end
else // по вертикали выбран вид платежа
for j:=1 to length(categories)-1 do
if axeY[i] = categories[j].id then // находим вид платежа
begin;
header:=categories[j].name;
break;
end;
StringGrid1.Cells[0,i+1]:=header; // выводим заголовок в таблицу
end;
//
for i:=0 to StringGrid1.ColCount-1 do // регулируем ширину столбцов
begin // по содержимому
MaxWidth:=0;
for j:=0 to StringGrid1.RowCount-1 do
if Canvas.TextWidth(StringGrid1.Cells[i,j]) > MaxWidth then
MaxWidth:=Canvas.TextWidth(StringGrid1.Cells[i,j]);
StringGrid1.ColWidths[i]:=MaxWidth+5;
end;
end;

end.











29

Список использованной литературы
1. Барсегян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. Методы и модели анализа данных: OLAP и Data Mining. – СПб.: БХВ-Петербург, 2004. – 336 с., ил.
2. Конноли Т.М., Бегг К.Е. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание. : Пер. с англ. – М.: Издательский дом «Вильямс», 2003. – 1440 с., ил.

Вопрос-ответ:

Что такое проблемно-ориентированные программные комплексы?

Проблемно-ориентированные программные комплексы (ПОПК) - это специализированные программные решения, разработанные для решения конкретных задач в определенной предметной области.

Что включает техническое задание для разработки проблемно-ориентированного программного комплекса?

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

Какое предназначение имеет логическая модель проектируемого хранилища данных в ПОПК?

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

Что включает даталогическая модель проектируемого хранилища данных?

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

Чем отличается физическая модель проектируемого хранилища данных от логической модели?

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

Что такое техническое задание?

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

Какое краткое описание предметной области может быть в программном комплексе?

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

Что такое логическая модель проектируемого хранилища данных?

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

Какие объекты содержит даталогическая модель проектируемого хранилища данных?

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