Создание базы данных

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    315,75 kb
  • Опубликовано:
    2011-11-05
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание базы данных

Федеральное Агентство по образованию.

ГОУ ВПО Московский государственный открытый университет.

Чебоксарский институт (филиал).

КАФЕДРА

Информационных технологий и программирования

Специальность 220201

Курс II (сокращенный).

Отделение: заочное.


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

по дисциплине:

Программирование и основы алгоритмизации

Тема: «Создание базы данных»

Вариант 19

Дата проверки:

Выполнила студентка:

Сергеева С.А.

Результат проверки:

Учебный шифр:

607079

Содержание:

1. Постановка задач

. Уточнение поставленных задач

.1 Язык программирования

.2 Способ хранения данных

.3 Назначение типов для данных

. Подробная структура 1 и 2-ой таблицы

. Текст программы

5. Блок-схемы к запросам

.Системные требования

Список литературы

1. Постановка задач

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

Задание:

I. Создать базу данных, включая две таблицы: «Сотрудники технического бюро» и «Проекты и разработки».

В структуре первой таблицы должны быть следующие поля:

1.       Порядковый (табельный) номер.

2.      Ф.И.О. сотрудника.

.        Пол сотрудника.

.        Адрес сотрудника.

.        Домашний телефон.

.        Стаж работы.

.        Дата рождения.

.        Образование.

.        Какое учебное заведение окончил.

.        Область техники.

.        Количество проектов.

.        Оклад.

.        Количество детей.

В структуре второй таблицы должны быть следующие поля:

1.       Ф.И.О. сотрудника

2.      Наименование проекта или разработки

.        Тип (проект или разработка)

.        Дата начала создания проекта или разработки

.        Дата завершения проекта или разработки

.        Полученный эффект в рублях.

.        Тип эффекта ( технический или экономический)

II. Заполнить информацией обе таблицы, содержащие каждая не менее 20 записей. При занесении информации в БД необходимо учесть возможность выполнения каждого запроса из III-го пункта задания. Учесть также, что в первой таблице записи с одним сотрудником не повторяются, а во второй - повторяются, т.к. один сотрудник технического бюро может иметь несколько проектов и разработок.. Получить отчет на экран монитора по заданным запросам :

а) Вывести список всех улиц, в которых проживают сотрудники, в алфавитном порядке.

б) Отобрать сотрудников, окончивших конкретное учебное заведение.

в) Отобрать сотрудников, имеющих эффект от разработок свыше 100 тыс.руб.

г) Вывести список сотрудников по суммарному эффекту в порядке убывания

IV. Составить алгоритмы выполнения каждого запроса в виде R - схемы.

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

2. Уточнение поставленных задач

.1 Язык программирования

Для создания базы данных и дальнейшего выполнения запросов по выше перечисленным параметрам я пользовалась языком программирования С++.

Язык С++ представляет собой комбинацию языка высокого уровня и ассемблера. Программа (база данных) была создана в интегрированной среде (Turbo C++ version 3.1), среда была разработана фирмой Borland для упрощения процесса создания программ и их отладки.

.2 Способ хранения данных

Все данные которая использует программа хранятся в 2-х текстовых файлах TAB1.rd (первая таблица) и TAB2.rd (вторая таблица). Данные хранятся в файлах поочередно через пробелы. В одной строке не может содержаться данные более чем одного сотрудника.

.3 Назначение типов для данных

3. Подробная Структура 1-ой таблицы (struct tab1)

Таблица 1

Наименование поля

Расшифровка поля

Кол-во бит

Тип в C++

nomer

Фамилия

null-terminated string

char*

fam

Имя

null-terminated string

char*

och

Отчество

null-terminated string

char*

pol

Пол

null-terminated string

char*

gor

Город

null-terminated string

char*

ulic

Улица

null-terminated string

char*

dk

Дом/Квартира

null-terminated string

char*

tel

Домашний телефон

null-terminated string

char*

staj

Стаж

null-terminated string

char*

rojd

Дата рождения



obraz

Образование

null-terminated string

char*

ucheb

Оконченное учебное заведение

null-terminated string

char*

obteh

Область техники

null-terminated string

char*

proek

Кол-во проектов

1 bytes

int

okl

Оклад

4 bytes

long

deti

Кол-во детей

1 byte

int


Подробная Структура 2-ой таблицы (struct tab2).

Таблица 2

Расшифровка поля

Кол-во бит

Тип в C++

fam

Фамилия

null-terminated string

char*

im

Имя

null-terminated string

char*

och

Отчество

null-terminated string

char*

raz

Наименование

null-terminated string

char*

tip

Тип

null-terminated string

char*

Дата начала

ndat

День

1 byte

int

nmes

Месяц

1 byte

int

ngod

Год

1 bytes

int

Дата завершения

kdat

День

1 byte

int

kmes

Месяц

1 byte

int

kgod

Год

1 bytes

int

eff

Эффект

4 bytes

long

tef

Тип эффекта

null-terminated string

unsigned char

4. Текст программы

#include <stdio.h>

#include <math.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>tab1 // структура первой таблицы

          {

          char nomer[15]; char fam[15];

          char im[15]; char och[15];

          char pol[5]; char gor[20];

          char ulic[20]; char dk[10];

          char tel[50]; char staj[20];

          char rojd[15]; char obraz[30];

          int proek; long okl;

          int deti;

          };tab2 // структура второй таблицы

          {

          char fam[20]; char im[20];

          char och[20]; char raz[70];

          char tip[15]; int nden;

          int nmes; int ngod;

          int kden; int kmes; int kgod;

          long eff; char tef[20];

          };a[100];z;b[100];q; *Inp, *Inp2; // указатели на поток

int s,k; //Глобальные переменные, им будет присваиваться значение количества строк структурных массивов.

void scantab() // Процедура чтения таблиц

{

int i,j,z;

// фаил открывается для чтения с дозаписью

Inp=fopen ("tab1.rd", "r+");=0;

//Чтение первой таблицы идет пока файл не достигнет конца

while (!feof(Inp))

{(Inp, "%s", &a[i].nomer);(Inp, "%s", &a[i].fam);(Inp, "%s", &a[i].im);(Inp, "%s", &a[i].och);(Inp, "%s", &a[i].pol);(Inp, "%s", &a[i].gor);(Inp, "%s", &a[i].ulic);(Inp, "%s", &a[i].dk);(Inp, "%s", &a[i].tel);(Inp, "%s", &a[i].staj);(Inp, "%s", &a[i].rojd);(Inp, "%s", &a[i].obraz);(Inp, "%s", &a[i].ucheb);(Inp, "%s", &a[i].obteh);(Inp, "%d", &a[i].proek);(Inp, "%ld", &a[i].okl);(Inp, "%d", &a[i].deti);++;

};=i;=fopen ("tab2.rd", "r+"); i=0;

//Чтение второй таблицы идет пока файл не достигнет конца

while (!feof(Inp2))

{(Inp2, "%s", &b[i].fam);(Inp2, "%s", &b[i].im);(Inp2, "%s", &b[i].och);(Inp2, "%s", &b[i].raz);(Inp2, "%s", &b[i].tip);(Inp2, "%d", &b[i].nden);(Inp2, "%d", &b[i].nmes);(Inp2, "%d", &b[i].ngod);(Inp2, "%d", &b[i].kden);(Inp2, "%d", &b[i].kmes);(Inp2, "%d", &b[i].kgod);(Inp2, "%ld", &b[i].eff);(Inp2, "%s", &b[i].tef);++;

};=i;

} printlist () // процедура вывода на экран списка сотрудников

{i;(i=0; i<s; i++)

{(6);("%s ", a[i].nomer);("%s ", a[i].fam);("%s ", a[i].im);("%s", a[i].och); textcolor (9);(50, i+1); cprintf ("Kol-vo proektov : %d\n\r", a[i].proek);

}

} swapb(int &j) //процедура меняющая элементы местами в структурном массиве b;

{

q=b[j];

b[j]=b[j+1];

b[j+1]=q;

}

void swapa(int &j) //процедура меняющая элементы местами в структурном массиве a;

{=a[j];[j]=a[j+1];[j+1]=z;

} sort1() // Процедура первого запроса

{i,j;(10);("Sortirovka po ulicam progivaniya !!!\n\n\r");(i=0; i<s; i++)

          for (j=0; j<(s-1); j++)

          // сортировка методом «пузырька» в алфавитном порядке

                   if (strcmp(a[j].ulic, a[j+1].ulic)>0) swapa(j);(i=0;i<s;i++)

          {

          textcolor (6);

          cprintf ("%s ", a[i].nomer);

          printf ("%s ", a[i].fam);

          printf ("%s ", a[i].im);

          printf ("%s", a[i].och); textcolor (9);

          gotoxy (50, i+3); cprintf ("%s\n\r", a[i].ulic);

          }

} sort2() // Процедура второго запроса

{i,j=3;w[10];(10);("Vvedite Uchebnoe zavedinie (Primer: MGOU) : ");("%s", &w);(11);();(10);("Sotridniki okonchivshie %s !!!\n\n\r", w);(i=0; i<s; i++)

          if (strcmp(a[i].ucheb,w)==0) //сравнение названия учебного заведения с нами введенным

          {

          textcolor (6);

          cprintf ("%s ", a[i].nomer);

          printf ("%s ", a[i].fam);

          printf ("%s ", a[i].im);

          printf ("%s", a[i].och); textcolor (9);

          gotoxy (50, j++); cprintf ("%s\n\r", a[i].ucheb);

          }

} sort3() // Процедура третьего запроса

{i,j=1,x;=3;(10);("Sotrudniki imeyushie effect ot razrabotok > 100000 p. !!!\n\n\r");(i=0; i<k; i++)

                                      if (b[i].eff>=100000)

                                      {

                                      textcolor (6);

                                      cprintf ("%d) ",j++);

                                      printf ("%s ", b[i].fam);

                                      printf ("%s ", b[i].im);

                                      printf ("%s\t", b[i].och);

                                      textcolor (9);

                                      cprintf ("Nazvanie Proekta/Razrabotki : ");

                                      cprintf ("%s\n\n\r", b[i].raz); x=x+3;

                                      }

}

void sort4() // Процедура третьего запроса

{

int i,j,l;e;(10);("Sortirovka po sumarnomu effektu !!!\n\n\r");(i=0; i<k; i++)

          for (j=0; j<(k-1); j++)

                   if (strcmp(b[j].fam, b[j+1].fam)<0) swapb (j);=0; j=0;(i<k)

          {

          e=b[i].eff;

          i++;

          {

          // счетчик суммарного эффекта

          while (strcmp(b[i].fam, b[i-1].fam)==0 &&

                    strcmp(b[i].im, b[i-1].im)==0 &&

                    strcmp(b[i].och, b[i-1].och)==0)

                    {

                    e=e+b[i].eff;

                    i++;

                    }

                    b[j]=b[i-1]; b[j].eff=e; j++; l=j;

          }

          }=0;(i=0; i<l; i++)

          for (j=0; j<(l-1); j++)

          // сортировка суммарного эффекта в порядке возрастания

                   if (b[j].eff<b[j+1].eff) swapb(j);(i=0; i<l; i++)

          {

          printf ("%s ", b[i].fam);

          printf ("%s ", b[i].im);

          printf ("%s", b[i].och);

          textcolor (9); gotoxy (50, i+3); cprintf ("Summarniy Effect = %ld p.\n\r", b[i].eff);

          }

}dobsotr()

{i;(10);("Dobavleniennie Sotridnika !!!\n\n\r");("Tabelniy nomer sotrudnika (Primer: #001) : ");("%s", &a[s].nomer);(Inp, "\n%s ", a[s].nomer);("Familia : ");("%s", &a[s].fam);(Inp, "%s ", a[s].fam);("Name : ");("%s", &a[s].im);(Inp, "%s ", a[s].im);("Ochestvo : ");("%s", &a[s].och);(Inp, "%s ", a[s].och);("Pol sotrudnika (m/g): ");("%s", &a[s].pol);(Inp, "%s ", a[s].pol);("Gorod v kotorom progivaet sotrudnik (Primer: Cheboksari) : ");("%s", &a[s].gor);(Inp, "%s ", a[s].gor);("Ulica na kotoroy progivaet sotrudnik (Primer: Afanas'eva) : ");("%s", &a[s].ulic);(Inp, "%s ", a[s].ulic);("Nomer doma/Kvartira (Primer: 16/23) : ");("%s", &a[s].dk);(Inp, "%s ", a[s].dk);("Domashniy telefon (Primer: 87-98-01) : ");("%s", &a[s].tel);(Inp, "%s ", a[s].tel);("Staj Raboti (Primer: 5-let) : ");("%s", &a[s].staj);(Inp, "%s ", a[s].staj);("Data rojdeniya (Primer: 20.10.1980) : ");("%s", &a[s].rojd);(Inp, "%s ", a[s].rojd);("Obrazovanie (Primer: Visshee-teh) : ");("%s", &a[s].obraz);(Inp, "%s ", a[s].obraz);("Kakoe uchebnoe zavedenie okonchil (Primer: MGOU) : ");("%s", &a[s].ucheb);(Inp, "%s ", a[s].ucheb);("Oblast' tehniki : ");("%s", &a[s].obteh);(Inp, "%s ", a[s].obteh);("Kolichestvo proektov : ");("%d", &a[s].proek);(Inp, "%d ", a[s].proek);("Oklad : ");("%ld", &a[s].okl);(Inp, "%ld ", a[s].okl);("Kolichestvo detey : ");("%d", &a[s].deti);(Inp, "%d", a[s].deti);

          if (a[s].proek>0)

                   {

                   textcolor (10);

                   cprintf ("\n\n\Opisanie Proekta ili razrabotki !!!\r");

                   for (i=0; i<a[s].proek; i++)

                   {

                   fprintf (Inp2, "\n%s ", a[s].fam);

                   fprintf (Inp2, "%s ", a[s].im);

                   fprintf (Inp2, "%s ", a[s].och);

                   printf ("\n\nNaimenovanie %d-ogo proekta ili razrabotki:\n(Vvoditsa_bes_probelov): ",i+1);

                   scanf ("%s", &b[k].raz);

                   fprintf (Inp2, "%s ", b[k].raz);

                   printf ("Tip (Proekt ili Razrabotka) : ");

                   scanf ("%s", &b[k].tip);

                   fprintf (Inp2, "%s ", b[k].tip);

                   printf ("Data nachala sozdaniya proekta (Primer: 20 11 1999) : ");

                   scanf ("%d", &b[k].nden);

                   fprintf (Inp2, "%d ", b[k].nden);

                   scanf ("%d", &b[k].nmes);

                   fprintf (Inp2, "%d ", b[k].nmes);

                   scanf ("%d", &b[k].ngod);

                   fprintf (Inp2, "%d ", b[k].ngod);

                   printf ("Data konca sozdaniya proekta (Primer: 01 10 2000) : ");

                   scanf ("%d", &b[k].kden);

                   fprintf (Inp2, "%d ", b[k].kden);

                   scanf ("%d", &b[k].kmes);

                   fprintf (Inp2, "%d ", b[k].kmes);

                   scanf ("%d", &b[k].kgod);

                   fprintf (Inp2, "%d ", b[k].kgod);

                   printf ("Polucheniy effekt v rub. : ");

                   scanf ("%ld", &b[k].eff);

                   fprintf (Inp2, "%ld ", b[k].eff);

                   printf ("Tip effecta (Tehnicheskiy ili Ekonomicheskiy) : ");

                   scanf ("%s", &b[k].tef);

                   k=k+1;

}

}

fcloseall (); // закрытие файлов для обновления списка после его перезаписи (добавления)

return 0;

}

void delsotr() // Процедура удаления из списка

{i,j,l;w[20],r[20],g[20];=fopen("tab1.rd", "w"); // открытие файлов для записи

Inp2=fopen ("tab2.rd", "w");(10);("Vvedite F.I.O sotrudnika kotororo sleduet udalit' iz bazi !!!\n\n\r");("Familiya : ");("%s", &w);("Ima : ");("%s", &r);("Ochestvo : ");("%s", &g);=0;(i=0; i<s; i++)

if (strcmp(a[i].fam,w)!=0 &&

           strcmp(a[i].im,r)!=0 &&

           strcmp(a[i].och,g)!=0)

           {

           a[j]=a[i]; j++;

           }(i=0; i<j; i++)

           {

           fprintf (Inp, "%s ", a[i].nomer);

           fprintf (Inp, "%s ", a[i].fam);

           fprintf (Inp, "%s ", a[i].im);

           fprintf (Inp, "%s ", a[i].och);

           fprintf (Inp, "%s ", a[i].pol);

           fprintf (Inp, "%s ", a[i].gor);

           fprintf (Inp, "%s ", a[i].ulic);

           fprintf (Inp, "%s ", a[i].dk);

           fprintf (Inp, "%s ", a[i].tel);

           fprintf (Inp, "%s ", a[i].staj);

           fprintf (Inp, "%s ", a[i].rojd);

           fprintf (Inp, "%s ", a[i].obraz);

           fprintf (Inp, "%s ", a[i].ucheb);

           fprintf (Inp, "%s ", a[i].obteh);

           fprintf (Inp, "%d ", a[i].proek);

           fprintf (Inp, "%ld ", a[i].okl);

           if (i==(j-1))

           fprintf (Inp, "%d", a[i].deti);

           else fprintf (Inp, "%d\n", a[i].deti);

           }=s-1;=0;(i=0; i<k; i++)

          if (strcmp(b[i].fam,w)!=0 &&

                   strcmp(b[i].im,r)!=0 &&

                   strcmp(b[i].och,g)!=0)

                   {

                   b[j]=b[i]; j++;

                   }(i=0; i<j; i++)

                   {

                   fprintf (Inp2, "%s ", b[i].fam);

                   fprintf (Inp2, "%s ", b[i].im);

                   fprintf (Inp2, "%s ", b[i].och);

                   fprintf (Inp2, "%s ", b[i].raz);

                   fprintf (Inp2, "%s ", b[i].tip);

                   fprintf (Inp2, "%d ", b[i].nden);

                   fprintf (Inp2, "%d ", b[i].nmes);

                   fprintf (Inp2, "%d ", b[i].ngod);

                   fprintf (Inp2, "%d ", b[i].kden);

                   fprintf (Inp2, "%d ", b[i].kmes);

                   fprintf (Inp2, "%d ", b[i].kgod);

                   fprintf (Inp2, "%ld ", b[i].eff);

                   if (i==(j-1))

                   fprintf (Inp2, "%s", b[i].tef);

                   else fprintf (Inp2, "%s\n", b[i].tef);

                   }=j;

fcloseall (); // закрытие файлов для обновления списка после его перезаписи (удаления)

}main()

{let;();

// Вывод на экран простейшего интерфейса

do

{();(10);("Vibirite deystvie !!!\n\n\r");(11);("[1] - Zapros #1\n\r");("[2] - Zapros #2\n\r");("[3] - Zapros #3\n\r");("[4] - Zapros #4\n\r");("[5] - Dobavit' sotrudnika\n\r");("[6] - Udalit' sotrudnika\n\r");("[7] - Spisok sotrudnikov\n\r");("[0] - Quit program");();=getch();

          // Вызов процедур в зависимости от нажатой кнопки

          switch (let)

          {

          case '1' : clrscr() ; sort1 (); getch (); break;

          case '2' : clrscr() ; sort2 (); getch (); break;

          case '4' : clrscr() ; sort4 (); getch (); break;

          case '5' : clrscr() ; dobsotr (); getch (); break;

          case '6' : clrscr() ; delsotr (); getch (); break;

          case '7' : clrscr() ; printlist (); getch (); break;

          case '0' : return 1;

          default : clrscr (); break;

          }

}(1);

}

база данное запрос алгоритм

5. Блок-схемы к запросам

.1 Первый запрос


Результат запроса выводится в форме: (номер/ Ф.И.О/улица).


.2 Второй запрос

Результат запроса выводится в форме (номер/ Ф.И.О/Учебное заведение).


5.3 Третий запрос


Результат запроса выводится в форме (номер/Ф.И.О/Эффект/Проект).


.4 Четвертый запрос


Результат запроса выводится в форме (Ф.И.О/ суммарный эффект).


6. Системные требования

Операционная система: MS-Windows 9-x, Me, NT, 2k, 2k3, XP, Vista;

Оперативная память: 8 Mb и выше;

CPU: Intel 386 и выше;

Видеокарта: 4 Mb и выше;

Не менее 10 мегабайт свободного места на жестком диске.

Не требует установки С++ на компьютер.

Список литературы:

1.      Программирование на алгоритмических языках: : Лабораторный практикум / Под ред. И.Т. Артемьев, Л.А. Ильина, Д.В. Ильин. -Чебоксары.: Чуваш. ун-т. 2005г -100 с.

Похожие работы на - Создание базы данных

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!