База данных "Страна"

Автор работы: Пользователь скрыл имя, 26 Января 2013 в 18:54, курсовая работа

Краткое описание

Целью работы является разработка программы на языке Си с использованием класса статических и динамических массивов структур для обработки базы данных «Страны».
В отчете необходимо разработать программу на языке Си для обработки данных. Обработка данных включает в себя следующие функции:
1) создание новой базы данных (с возможностью задания имени файла);
2) просмотр существующей базы данных (чтение данных осуществляется из файла);
3) редактирование базы данных (с сохранением изменений в файле);
4) дополнение базы данных новыми записями (с сохранением в файле);
5) удаление записей из базы данных (с сохранением в файле);
6) поиск в базе данных (по одному и двум поисковым признакам) с выводом на экране найденных записей или сообщения о неуспешном поиске;
7) сортировка данных по заданному полю (с сохранением в файле).

Содержание

Введение 5
1 Краткие теоретические сведения 6
2 Описание разработанных функций 9
3 Блок-схемы 10
3.1 Блок-схема функции Void main() 10
3.2 Блок-схема функции void input() 11
3.3 Блок-схема функции void output() 12
3.4 Блок-схема функции void sohrfile () 13
3.5 Блок-схема функции void add() 14
3.6 Блок-схема функции void sortstr () 15
3.7 Блок-схема функции void sortstol() 16
3.8 Блок-схема функции void sozd() 17
3.9 Блок-схема функции void sortplo() 17
3.10 Блок-схема функции void sortfor() 18
3.11 Блок-схема функции void sortnas() 19
3.12 Блок-схема функции void poiskstr() 20
3.13 Блок-схема функции void redakt() 20
4 Руководство по эксплуатации программы 22
5 Список литературы 26
Заключение 27
Приложение А. Листинг программы БД «Страна» 28
Приложение В. Листинг программы графические примитивы

Прикрепленные файлы: 1 файл

курсовик по БД Страна.doc

— 479.00 Кб (Скачать документ)

  cout<<"Baza dannuih sohranena\n";

  getch(); return;}

 

void dmassiv::add()

{int i;

input();output();

  strana t,//переменная для инфо  о добавляемом

*p;//указатель для сохранения  адреса исходного массива

 cout<<"vvedi stranu: ";cin>>t.name;

cout<<"stolicu:      ";cin>>t.stolica;

cout<<"plochadb:     ";cin>>t.plochad;

cout<<"formu:        ";cin>>t.forma;

cout<<"naselenie:    ";cin>>t.naselenie;

 p=pst;//сохранение адреса

//выделение памяти для массива  и добавление введенной записи 

 pst=new strana[n+1];

  if(pst==NULL){cout<<"net dinamich pamyati.\n"; getch();exit(1);}

  for(i=0;i<n;i++)

pst[i]=p[i];

         pst[n]=t;  //добавление записи в массив


         n++;

  delete[] p;//удаление предыдущего  массива

sohrfile();}

 

void dmassiv::deletename()

{int i,j,n,k,y;

input();   strana *t, *p;

t=new strana[n-1];

   if(n==1){delete[] pst;pst==NULL;}

else

{output(); {cout<<"kakuju stroku udalit? ";   cin>>y;

if(y<0||y>n+1){cout<<" net takoi stroki.\n";getch();}return;

   };  for(i=0;i<y;i++)

t[i]=pst[i];

   for(i=y+1;i<n;i++)

t[i-1]=pst[i]; delete[] pst; pst=t;} {n--;cout<<"zapic udalena\n";};

output();

sohrfile();}

 

dmassiv::~dmassiv()

{ //очистка рабочих областей

if(pst!=NULL){delete[] pst;n=0;pst=NULL;} sohrfile();}

 

void dmassiv::sortstr()

{strana t;

int i,j;

input ();

cout<<"\n ishodnyi massiv:\n\n";

output();

for(i=0;i<=n-1;i++)

for(j=i+1;j<=n-1;j++)

if(strcmp(pst[i].name,pst[j].name)>0)

{t=pst[i];pst[i]=pst[j];pst[j]=t;}

cout<<"\n otsortirovan po stranam\n\n";

for(i=0;i<=n-1;i++)

{cout.width(16);cout<<pst[i].name;

  cout.width(16);cout<<pst[i].stolica;

  cout.width(16);cout<<pst[i].plochad;

  cout.width(16);cout<<pst[i].forma;

  cout.width(16);cout<<pst[i].naselenie;}

  sohrfile();}

 

void dmassiv::sortstol()

{strana t;

int i,j;

input ();

cout<<"\n ishodnyi massiv:\n\n";

output();

for(i=0;i<=n-1;i++)

for(j=i+1;j<=n-1;j++)

if(strcmp(pst[i].stolica,pst[j].stolica)>0)


{t=pst[i];pst[i]=pst[j];pst[j]=t;}

cout<<"\n otsortirovan po stolicam\n\n";

for(i=0;i<=n-1;i++)

{cout.width(16);cout<<pst[i].name;

  cout.width(16);cout<<pst[i].stolica;

  cout.width(16);cout<<pst[i].plochad;

  cout.width(16);cout<<pst[i].forma;

  cout.width(16);cout<<pst[i].naselenie;}

sohrfile();}

 

void dmassiv::sortplo()

{strana t;

int i,j;

input ();

cout<<"\n ishodnyi massiv:\n\n";

output();

for(i=0;i<=n-1;i++)

for(j=i+1;j<=n-1;j++)

if(strcmp(pst[i].plochad,pst[j].plochad)>0)

{t=pst[i];pst[i]=pst[j];pst[j]=t;}

cout<<"\n otsortirovan po plochadi\n\n";

for(i=0;i<=n-1;i++)

{cout.width(16);cout<<pst[i].name;

  cout.width(16);cout<<pst[i].stolica;

  cout.width(16);cout<<pst[i].plochad;

  cout.width(16);cout<<pst[i].forma;

  cout.width(16);cout<<pst[i].naselenie;}

sohrfile();}

 

void dmassiv::sortfor()

{ strana t;

int i,j;

input ();

cout<<"\n ishodnyi massiv:\n\n";

output();

for(i=0;i<=n-1;i++)

for(j=i+1;j<=n-1;j++)

if(strcmp(pst[i].forma,pst[j].forma)>0)

{t=pst[i];pst[i]=pst[j];pst[j]=t;}

cout<<"\n otsortirovan po forme pravlenia\n\n";

for(i=0;i<=n-1;i++)

{cout.width(16);cout<<pst[i].name;

  cout.width(16);cout<<pst[i].stolica;

  cout.width(16);cout<<pst[i].plochad;

  cout.width(16);cout<<pst[i].forma;

  cout.width(16);cout<<pst[i].naselenie;}

sohrfile();}

 

void dmassiv::sortnas()

{ strana t;

int i,j;

input ();

c out<<"\n ishodnyi massiv:\n\n";


output();

for(i=0;i<=n-1;i++)

for(j=i+1;j<=n-1;j++)

if(strcmp(pst[i].naselenie,pst[j].naselenie)>0)

{t=pst[i];pst[i]=pst[j];pst[j]=t;}

cout<<"\n otsortirovan po naseleniyu\n\n";

for(i=0;i<=n-1;i++)

{cout.width(16);cout<<pst[i].name;

  cout.width(16);cout<<pst[i].stolica;

  cout.width(16);cout<<pst[i].plochad;

  cout.width(16);cout<<pst[i].forma;

  cout.width(16);cout<<pst[i].naselenie;}

sohrfile();}

 

void dmassiv::poiskstr()

{ char name[10];

  int fl,i,j;

input();

cout<<"\n ishodnyi massiv:\n\n";

output();

if(pst==NULL){cout<<"Massiv pust\n";getch();return;}

cout<<"vvedi stranu: "; cin>>name;

fl=0;

for(i=0;i<n;i++)

if (strcmp(pst[i].name,name)==0) {fl++;cout<<"rezultaty poiska:\n\n"<<

"strana: "<<pst[i].name<<

"\nstolica: "<<pst[i].stolica<<

"\nplochad: "<<pst[i].plochad<<

"\nforma: "<<pst[i].forma<<

"\nnaselenie: "<<pst[i].naselenie;}

   if (fl==0) {cout<<" Net takoi zapisi\n";}getch(); return;}

 

void dmassiv::redakt()

{int j;

strana t;

input();

output();

cout<<"kakuju stroku redaktirovat?\n";

cin>>j;

if(j<0||j>=n){cout<<"net takoi stroki.\n";getch();return;}

cout<<"vvedite izmenenia:\n";

cout<<"strana: "; cin>>t.name;

cout<<"stolica: ";cin>>t.stolica;

cout<<"plochad: ";cin>>t.plochad;

cout<<"forma pravlenia: ";cin>>t.forma;

cout<<"naselenie: ";cin>>t.naselenie;getch();

pst[j-1]=t;sohrfile();}

 

void dmassiv::sozd()

{int i;

if(pst!=NULL){delete []pst;}

cout<<"kolichestvo strok: ";cin>>n;

pst=new strana[n];

for(i=0;i<n;i++)

{cout<<"strana: ";cin>>pst[i].name;

  cout<<"stolica: ";cin>>pst[i].stolica;

  cout<<"plochad: ";cin>>pst[i].plochad;

  cout<<"forma pravlenia: ";cin>>pst[i].forma;

  cout<<"naselenie: ";cin>>pst[i].naselenie;}

  sohrfile();}

 

void main()

{dmassiv a;//объект класса dmassiv

int i,j,n;

while(1)

{ clrscr();

   cout<<"\n Menu progi:\n";

   cout<<"1.vvod tabl iz faila.\n";

   cout<<"2.vyvod tabl na ekran.\n";

   cout<<"3.dobavlenie zapisi v tabl.\n";

   cout<<"4.udalenie zapisiiz tabl.\n";

   cout<<"5.sohranenie v fail\n";

   cout<<"6.sortirovka po strane\n";

   cout<<"7.sortirovka po stolice\n";

   cout<<"8.sortirovka po plochadn\n";

   cout<<"9.sortirovka po forme pravlenia\n";

   cout<<"10.sortirovka po naseleniyu\n";

   cout<<"11.poisk po strane\n";

   cout<<"12.redaktirovanie\n";

   cout<<"13.sozdanie BD\n";

   cout<<"14.vyhod iz progi\n";

   cout<<"\n Vash vybor(1-14): ";

   cin>>j;

  switch(j)

  {case 1: a.input(); getch(); break;

   case 2: a.output();getch();break;

   case 3: a.add();getch();break;

   case 4: a.deletename();getch();break;

   case 5: a.sohrfile();getch();break;

   case 6: a.sortstr();getch();break;

   case 7: a.sortstol();getch();break;

   case 8: a.sortplo();getch();break;

   case 9: a.sortfor();getch();break;

   case 10: a.sortnas();getch();break;

   case 11: a.poiskstr();getch();break;

   case 12: a.redakt();getch();break;

   case 13: a.sozd();getch();break;

   case 14: cout<<"zavershenie raboty.";getch();exit(1);return;

   default: cout<<"oshibka. povtorite!";getch();}}}



Приложение  В. Листинг программы графические примитивы

#include<graphics.h>

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

#include<dos.h>

void main()

{

int gd,gm,error,midx,midy,radius=2;

detectgraph (&gd, &gm); // Переходим в графический режим

initgraph (&gd, &gm,"c:\\BORLANDC\\BGI" );

error=graphresult();

if(error!=grOk)

{

puts("oshibka graphiki");

puts(grapherrormsg(error));

exit(0);

}

setbkcolor(LIGHTBLUE);// цвет фона

setcolor(WHITE);// Текущее значение рисующего цвета

setlinestyle(SOLID_LINE,0,3);

 

// прямоугольник с точками (карта)

rectangle(10,10,400,200); 

circle(30,40,2);

circle(90,50,2);

circle(60,90,2);

circle(200,80,2);

circle(250,40,2);

circle(310,120,2);

circle(370,170,2);

circle(350,60,2);

 

//человек

circle(200,150, 20);

line(200,170,200,250);

line(200,190,150,180);

line(200,190,250,180);

line(200,250,150,290);

line(200,250,250,290);

 

setviewport(0,0,0,0,0);// подмассив - прямоугольное окно со своей системой координат

setcolor(RED);

 

//глобус

circle(500,300,90);

line(500,210,500,390);

circle(460,260,2);

circle(440,290,2);

circle(470,310,2);


circle(490,350,2);

circle(515,245,2);

circle(560,290,2);

circle(540,320,2);

line(500,390,550,430);

line(500,390,450,430);

line(550,430,450,430);

clearviewport();//очистка графического окна

delay(500); //Замораживает выполнение программы на интервал в микросекундах

 

setviewport(409,210,593,390,0); clearviewport();

setviewport(0,0,0,0,0);

setcolor(RED);

 

//глобус в измененном виде (меняется автоматически)

circle(500,300,90);

line(500,210,500,390);

circle(480,280,2);

circle(460,300,2);

circle(470,340,2);

circle(470,340,2);

circle(545,275,2);

circle(580,290,2);

circle(540,340,2);

getch();          

clearviewport();

getch();

cleardevice();

closegraph();//Прекращает работу графической системы

exit(0); //выход из программы после нажатия enter

}

Рис. 11 – Графический примитив


Информация о работе База данных "Страна"