Программирование на языках высокого уровня

Разработка и реализация программы на языке С++ с использованием класса статистических массивов структур и текстовой базы данных. Блок-схемы программы, ее листинг с комментариями и тестирование. Создание файла, работа с ним и хранение в нем информации.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 14.05.2012
Размер файла 577,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Уфимский Государственный Авиационный Технический Университет

Кафедра технической кибернетики

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

Программирование на языках высокого уровня

Уфа 2011

Аннотация

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

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

1. Цель работы

программа массив листинг информация

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

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

Район линии

Год пуска

Протяженность

Количество поездов

Постановка задачи: Разработать программу на языке Си для обработки данных типа структура. Обработка данных должна включать следующие функции:

1. Создание новой базы данных (с возможностью задания имени файла); Просмотр существующей базы данных (чтение данных осуществить из файла);

2. Редактирование базы данных (с сохранением изменений в файле);

3. Дополнение базы данных новыми записями (с сохранением в файле); Удаление записей из базы данных (с сохранением в файле);

4. Поиск в базе данных (по одному и двум поисковым признакам) с выводом на экран найденных записей или сообщения о неуспешном поиске;

5. Сортировка данных по заданному полю (с сохранением в файле).

2. Руководство программиста

Описание глобальных переменных:

struct metro

char naim[l];

char rl[l];

int year;

int pr;

int kol;

-структура «Метро»

-наименование

-район линии

-год пуска

-протяженность

-количество поездов

Описание разработанных функций:

inputfile()

Загрузка из файла

output()

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

outputfile()

Сохранение в файл

addmetro()

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

deletemetro()

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

sort_naim()

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

sort_kol()

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

poisk_naim();

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

poisk_ng();

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

3. Блок-схемы программы

1. Блок- схема основной программы:

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

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

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

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

6. Cохранение в файл

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

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

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();

}

void mosk_metro:: sort_kol()

{int i,fl,nn;

metro t;

nn=n;

do{fl=0;nn--;

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

if(x[i].kol>x[i+1].kol)

{t=x[i];

x[i]=x[i+1];

x[i+1]=t;

fl=1;}

}while(fl==1);

}

void mosk_metro:: sort_naim()

{int i,fl,nn;

metro t;

nn=n;

do {fl=0; nn--;

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

if(strcmp(x[i].naim,x[i+1].naim)>0)

{t=x[i];

x[i]=x[i+1];

x[i+1]=t;

fl=1;}

}while(fl==1);

}

void mosk_metro:: poisk_naim()

{int i;

char naim[l];

cout<<"Vvedite naimenovanie stancii:"; cin>>naim;

int f=0;

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

if(strcmp(x[i].naim,naim)==0)

{cout<<setw(3)<<i+1

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

<<setw(15)<<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;

f++;

}getch();

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

}

void mosk_metro:: poisk_ng()

{int i, year;

char naim[l];

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

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

int f=0;

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

if(strcmp(x[i].naim,naim)==0&&x[i].year==year)

{

cout<<setw(3)<<i+1

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

<<setw(15)<<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;

f++;

} getch();

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

}

int main()

{ mosk_metro a;

int j;

while(1)

{ cout<<"1. Vvod iz faila.\n";

cout<<"2. Vivod na ekran.\n";

cout<<"3. Sohranenie tablici metro v file.\n";

cout<<"4. Dobavlenie zapisi.\n";

cout<<"5. Udalenie zapisi.\n";

cout<<"6. Sort po naimenovaniu.\n";

cout<<"7. Sort po kolichestvu.\n";

cout<<"8. Poisk po naimenovaniu.\n";

cout<<"9. Poisk po naimenovaniu i godu puska.\n";

cout<<"10. Vihod.\n\n";

cout<<"Vash vibor (1%10):";

cin>>j;

switch(j)

{ case 1: a.inputfile(); break;

case 2: a.output(); break;

case 3: a.outputfile();break;

case 4: a.addmetro(); break;

case 5: a.deletemetro(); break;

case 6: a.sort_naim();break;

case 7: a.sort_kol();break;

case 8: a.poisk_naim();break;

case 9: a.poisk_ng();break;

case 10: cout<<"Konec programmi"; getch(); exit(0);

default:cout<<"net punkta"; getch(); break;

}

}

}

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [532,7 K], добавлен 20.07.2014

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

    курсовая работа [2,4 M], добавлен 18.06.2014

  • Использование класса статических массивов структур и базы данных "ODER" при создании программы на языке С++. Основные формы выдачи результатов. Технические и программные средства. Тесты для проверки работоспособности алгоритма создания программы.

    курсовая работа [1,1 M], добавлен 17.03.2015

  • Разработка класса "Калькулятор" выполняющего ввод данных, проверку правильности введенных данных, выдачу соответствующих сообщений в случае возникновения ошибок. Листинг и скриншоты выполнения программы, порядок ее запуска. Руководство пользователя.

    курсовая работа [394,2 K], добавлен 18.05.2013

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

    курсовая работа [2,1 M], добавлен 21.04.2012

  • Создание на языке C базы данных "Стадионы города", требования к программе. Осуществление загрузки базы данных в массив и вывод главного меню в основной программе. Алгоритм работы программы в виде блок-схемы. Описание функций программы и ее листинг.

    курсовая работа [183,6 K], добавлен 06.10.2010

  • Разработка и тестирование программы класса Точка. Спецификация программы. Сценарий диалога с пользователем. Разработка структур данных и алгоритмов. Таблица параметров функций программы. Текст программы на языке C++. Особенности тестирования программы.

    лабораторная работа [43,1 K], добавлен 21.07.2012

  • Основные сведения о языке программирования Pascal. Листинг программы с комментариями. Диагональ элементов вектора и матрицы. Использование команд ввода-вывода информации. Быстродействие выполнения программы при компиляции. Отражение процессов вычисления.

    курсовая работа [1,9 M], добавлен 05.05.2009

  • Особенности вывода на экран содержимого файла BAZA.txt. Анализ функций вывода информации о количестве каждой марки машин. Рассмотрение способов проектирования тестов программы методами черного ящика. Проблемы программирования на языке высокого уровня.

    контрольная работа [1,6 M], добавлен 04.01.2015

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

    контрольная работа [1,3 M], добавлен 12.06.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.