Разработка и реализация программы на языке С++ с использованием класса статистических массивов структур и текстовой базы данных «METRO»

Автор работы: Пользователь скрыл имя, 07 Июля 2011 в 10:18, курсовая работа

Описание

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

Содержание

1) Цель работы и постановка задачи……………………………………….4
2) Руководство программиста 5
3) Блок-схемы алгоритма 6-10
5) Тестирование программы 11-15
6) Заключение 16
7) Список используемой литературы 17
8) Приложение: Листинг программы……………………………….….18-22

Работа состоит из  1 файл

кр отчет.doc

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

                    _

                                                                   + 
 

                                            
 

9. Поиск по наименованию:

 

 

        
 
 
 

 

 

 
 
 
 
 

 
 

4. Тестирование программы

1.Главное  меню программы,  состоящее из 10 пунктов:

1. Ввод из  файла

2. Вывод на  экран

3. Сохранение  таблицы в файл

4. Добавление  записи

5. Удаление записи

6. Сортировка  по наименованию

7. Сортировка  по количеству

8. Поиск по наименованию

9. Поиск по наименованию и году пуска

10. Выход из программы 

Рис 1. Меню программы. 
 

2. Загрузка из файла. В этом пункте меню пользователю предлагается ввести заранее введенный файл в базу данных следующим образом:

 

Рис 2. Загрузка из файла. 
 
 
 
 

Содержание файла  metro.txt представлено на следующем рисунке:

Рис 3. Содержание файла metro.txt

3.Вывод  результата на  экран. Для этого достаточно нажать на 2 пункт нашего меню:

Рис 4. Просмотр таблицы 
 
 
 
 
 
 

4. Сохранение результатов  обработки в файл – в 3 пункте меню пользователю нужно ввести название нового файла для сохранения его на диске, если сохранение прошло успешно,  то на диске вы обнаружите новый файл (в данном случае файл metro2.txt)

Рис 5. Просмотр сохраненного текстового файла

5. Добавление новой  записи. Если в таблице недостаточное количество строк, то можно добавить запись используя 4 пункт меню следующим образом:

    Рис 6. Добавление записи

6. Удаление записи. В 5 пункте меню пользователю выдается таблица с введенной базой данных и предлагается убрать одну из строк:

 Рис 7. Удаление записи 
 
 
 
 
 
 
 
 
 
 
 

7. Сортировка по  наименованию.

В 6 пункте меню таблица сортируется по наименованию станции в порядке убывания.

 

Рис 8. Просмотр таблицы с сортировками 

9.Сортировка  по количеству. В 7 пункте меню таблица сортируется по количеству поездов в порядке убывания: 

 

Рис 9. Сортировка по количеству поездов 

10. Поиск по наименованию. В данном пункте можно осуществить поиск только по наименованию станции. 

Рис 10. Поиск по изготовлению

11. Поиск по наименованию и году пуска. При выборе 9 пункта меню пользователю предлагается ввести и наименование станции, и год пуска. Если данные введены правильно, то результат выдается на экран:

Рис 11. Поиск по наименованию и году пуска

Для выхода из программы пользователю нужно нажать 10 пункт.

После нажатия клавиши  Enter программа завершит свою работу. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Заключение

 

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

     Проведенное тестирование показало работоспособность  программы и соответствие её требованиям  задания на курсовой проект. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Список используемой литературы 

  1. Б. Страуструп. Язык программирования С++, 3-е изд пер. с англ. - М.: "Бином", СПб.: "Невский диалект", 1999. - 991 с., ил.
  2. Т.А. Павловская. Ю.А. Щупак С/C++. Программирование на языке высокого уровня. – СПб.: Питер,2007. – 461 с.: ил.
  3. Прата. Объектно-ориентированное программирование в C++. 2 изд. – ЭКСМО,  2007. -  336 с.: ил.
  4. Т.А. Павловская, Ю.А. Щупак. С/C++. Структурное программирование: Практикум. – СПб.: Питер, 2007. – 239 с.: ил.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение: Листинг программы

#include<iostream.h>

#include<fstream.h>

#include<string.h>

#include<stdlib.h>

#include<conio.h>

#include<iomanip.h>

const int l=31; 

struct metro

{char naim[l], rl[l];

int year, pr, kol;

}; 

 

const int N=100;

class mosk_metro

{private:        

  metro x[N];

  int n;

public:     

void outputfile();

void inputfile();

void addmetro();

void deletemetro();

void output();

void sort_naim();

void sort_kol();

void poisk_naim();

void poisk_ng();

};  

   

void mosk_metro:: inputfile()

{ifstream fin;

char file[l];

cout<<"Imia faila:"; cin>>file;

fin.open(file);

if(fin==NULL) {cout<<"Not open.\n"; getch(); exit(1);}

n=0;

do{fin>>x[n].naim>>x[n].rl>>x[n].year

   >>x[n].pr>>x[n].kol;

   n++;

}while(fin.good());

  n--;

cout<<"Fail vveden.\n"; getch();

fin.close();

} 

void mosk_metro:: output()

{ int i;

   cout<<"\n-------------------------------------------------------------------------------\n";

   cout<<"\n|     NAIMENOVANIE     |  RAION LINII  |GOD PUSKA|PROTIAZENNOST'| KOL POEZDOV |\n";      

   cout<<"\n-------------------------------------------------------------------------------\n";

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

     {cout<<setw(24)<<setiosflags(ios::left)<<x[i].naim

     <<setw(17)<<setiosflags(ios::left)<<x[i].rl

     <<setw(13)<<setiosflags(ios::left)<<x[i].year

     <<setw(16)<<setiosflags(ios::left)<<x[i].pr

     <<setw(15)<<setiosflags(ios::left)<<x[i].kol<<endl;

     if((i+1)%10==0) getch();

     }

   cout<<"\n------------------------------------------------------------------------------\n";

   getch();

  }

 

void mosk_metro:: addmetro()

{ metro t;

if(n==N) {cout<<"Massiv perepolnen.\n"; getch(); exit(0);}

cout<<"Naimenovanie:"; cin>>t.naim;

cout<<"Raion linii:"; cin>>t.rl;

cout<<"God puska:"; cin>>t.year;

cout<<"Protiazennost':"; cin>>t.pr;

cout<<"Kol-vo poezdov:"; cin>>t.kol;

x[n]=t; n++;

cout<<"Zapis' dobavlena.\n";

getch();

}  

void mosk_metro:: deletemetro()

{char ch;

int i,j;

output();

cout<<"Nomer udalennoi stroki:";

cin>>j;

if(j<1||j>n) {cout<<"Net takoi stroki.\n"; getch(); exit(0);}

cout<<setw(20)<<x[j-1].naim<<endl;

cout<<"Udalit?(y/n):"; cin>>ch;

if(ch=='y')

  {for(i=j;i<n;i++)

  x[i-1]=x[i];

  n--;

   }

  cout<<"Zapis' udalena.\n"; getch();

 

void mosk_metro:: outputfile()

{ofstream out;

char file[l];

int i;

cout<<"imya faila:";

cin>>file;

out.open(file);

if (out==NULL) {cout<<"Ne naiden"; getch(); exit(1);}

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

  {out<<setw(24)<<setiosflags(ios::left)<<x[i].naim

     <<setw(17)<<setiosflags(ios::left)<<x[i].rl

     <<setw(13)<<setiosflags(ios::left)<<x[i].year

     <<setw(16)<<setiosflags(ios::left)<<x[i].pr

     <<setw(15)<<setiosflags(ios::left)<<x[i].kol<<endl;}

out.close();

cout<<"Fail sohranen"; getch();

}

 

Информация о работе Разработка и реализация программы на языке С++ с использованием класса статистических массивов структур и текстовой базы данных «METRO»