Курсовая работа - файл n1.doc

Курсовая работа
Скачать все файлы (496.2 kb.)

Доступные файлы (1):
n1.doc1107kb.13.11.2008 00:11скачать

n1.doc



Министерство образования и науки Российской Федерации

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


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





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

По дисциплине «Программирование на ЯВУ»



Группа


Студент: ___________ _______________

(Фамилия, И.,О.) (дата) (подпись)


Преподаватель: ____________ _______________

(Фамилия ,И.,О.) (дата) (подпись)


Уфа –2007

Содержание:
1)Введение 3

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

3)Блок-схемы 5

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

5)Листинг программы 26

6)Заключение 39

7) Список используемой литературы 40
1. Введение

Цель работы: освоение функций работы со структурным типом данных и файлами.

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

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

  2. просмотр существующей базы данных (чтение данных осуществить из файла);

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

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

  5. удаление записей из базы данных (с сохранением в файле);

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

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


Вариант №15: «Кинофильмы»


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

кинотеатра

Название фильма

Стоимость билета

Адрес

Количество

мест



2. Описание глобальных переменных, разработанных подпрограмм
Описание глобальных переменных:

Const int=30

Количество символов под структуру товар

Struct metro

{

char name[L];

char R [L];

char H [L];

char P [L];

char K [L];

};

-структура записей в базе данных
-тип наименования

-тип район линии

-тип этажность

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

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


Class metro




metro a[N]

Int n

  • массив, содержащий сведения о записях

  • число записей


Описание разработанных подпрограмм:

Название подпрограммы

Назначение







void input_file

Ввод из файла

void outputfile

Вывод из файла

void alfsort

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

void sohranenie

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

void poisk

Поиск по выбранному полю

void sort_chisl_1

Сортировка по району линии

void sort_chisl_2

Сортировка по году спуска

void sort_chisl_3

Сортировка по протяженности

void sort_chisl_4

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

void udalenie

Удаление записей в базе данных

void redaktirovanie

Редактирование записей в базе данных

void dobavlenie

Добавление записи в базу данных

void input

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



3.Блок-схемы:

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



3.Блок-схема создание новой базы данных:



4.Блок-схема на просмотр базы данных:



5.Блок-схема редактирование базы данных:



6.блок-схема добавление записи в базу данных:


7.блок-схема удаление записей в базе данных:






8.Блок-схема поиска в базе данных:



9. Блок-схема сортировки:


10. Блок-схема записи в файл:






11.блок-схема вывода из файла :


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

При входе в программу пользователя появляется меню с выбором пунктов меню, доступных для любого пользователя:

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

2.Вывод файла на экран.;

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

4.Сохранение базы данных;

5.Сортировка по району линии;

6.Сортировка по году спуска;

7.Сортировка по протяженности;

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

9.Поиск по выбранному полю;

10.Добавление записи в БД;

11.Удаление записи в БД;

12.Редактирование БД;

13.Создание новой БД;

14.Конец работы, выход из программы.


Теперь посмотрим, что происходит при нажатии пользователем каждого пункта меню. При неверном вводе данных во всех пунктах меню выходит сообщение об ошибке.

Нумерация пунктов – есть номер клавиш на клавиатуре.
1.Ввод из файла – в этом пункте пользователь может ввести свой файл:




2.Вывод из файла – в этом пункте пользователь может просмотреть свой фаил:


3.Сортировка по наименованию линии 1 – в этом пункте вы можете отсортировать БД по наименованию кинотеатра:

до сортировки:




после сортировки:


4.Сортировка по названию фильма:

до сортировки:


после сортировки:


5.сортировка по стоимости билетов:

до сортировки:



После сортировки:



6.сортировка по адресу:

до сортировки:


после сортировки:



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

до сортировки:



после сортировки:



8.Сохранение в файле – в этом пункте вы можете сохранить БД :



9.Поиск по выбранному полю –в этом пункте вы можете найти любую линию московского метро по любому полю:



10.Добавление записи в БД –в этом пункте можно добавить новую запись:



11.Удаление записи в БД – в этом пункте вы можете удалить какую-либо запись:




12.Редактирование БД – в этом пункте вы можете отредактировать какую-нибудь запись:



13.Создание новой БД – в этом пункте вы можете создать новую БД :




14. Выход из программы – при наборе на клавиатуре числа 14 будет осуществлен выход.


5. Листинг программы
#include

#include

#include

#include

#include

#include

#include

#include

#include
const int L=30;

struct building

{

char name[L];

char F[L];

int S;

char A[L];

int K;

int d;

};

const int N=100;

class buildings

{

private:

building a[N];

int n;
public:

void input_file();

void outputfile();

void alfsort();

void sohranenie();

void sort_chisl_2();

void sort_chisl_1();

void sort_chisl_3();

void sort_chisl_4();

void add();

void udalenie();

void redaktirovanie();

void input();

void poisk();


};

void main()

{

buildings a;

int pm;

while(1)

{cout<
cout<<" 1.Vvod faila "<
cout<<" 2.Vivod iz faila "<
cout<<" 3.Alfofitnai sortirovka "<
cout<<" 4.Zapis dannih v file "<
cout<<" 5.Sortirovka po nazvaniu filma "<
cout<<" 6.Sortirovka po stoimosti "<
cout<<" 7.Sortirovka po adresu "<
cout<<" 8.Sortirovka po kol-vu mest "<
cout<<" 9.Poisk po polu "<
cout<<" 10.Dobavlenie zapisi v bazu dannih "<
cout<<" 11.Udalenie zapisi iz bazi dannih "<
cout<<" 12.Redaktirovanie "<
cout<<" 13.Sozdanie novoi bazi dannih "<
cout<<" 14.Konec raboti "<
cout<
cout<<" Vash vibor 1-14: ";

cin>>pm;

cout<
switch(pm)

{

case 1:a.input_file();break;

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

case 3:a.alfsort();break;

case 4:a.sohranenie();break;

case 5:a.sort_chisl_1();break;

case 6:a.sort_chisl_2();break;

case 7:a.sort_chisl_3();break;

case 8:a.sort_chisl_4();break;

case 9:a.poisk();break;

case 10:a.add();break;

case 11:a.udalenie();break;

case 12:a.redaktirovanie();break;

case 13:a.input();break;

case 14:cout<<"Konec raboti";

getch();

return;

default:cout<<"Net tacogo puncta.";

getch();break;

}

}

}
//Программа 1//

void buildings::alfsort()

{

int fl,i,l;

building t;

l=n-1;

do

{

fl=0;

for(i=0;i
if(strcmp(a[i].name ,a[i+1].name )>0)

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

fl=1;

}

l--;

}

while(fl==1);

return;
}
//Программа 2//

void buildings::input_file()

{
ifstream fin;
char file[L];

cout<<"Ukazite put k failu: ";

cin>>file;

fin.open(file);

if(fin==NULL)

{

cout<<"File not open";

getch();

exit(1);

}

n=0;

fin>>a[n].name>>a[n].F>>a[n].S>>a[n].A>>a[n].K;

while(fin.good())

{

n++;

fin>>a[n].name>>a[n].F>>a[n].S>>a[n].A>>a[n].K;

}

fin.close();

}

//Программа 3//
void buildings::outputfile()
{

int i;

cout<
cout<
for(i=0;i
cout<
}
//Программа 4//

void buildings::sort_chisl_1()

{

int fl,i,l;

building t;

l=n-1;

do

{

fl=0;

for(i=0;i
if(strcmp(a[i].F ,a[i+1].F )>0)

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

fl=1;

}

l--;

}

while(fl==1);

return;
}


//Программа 5//

void buildings::sort_chisl_2()

{

int fl,i,l;

building t;

l=n-1;

do

{

fl=0;

for(i=0;i
if(a[i].S>a[i+1].S)

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

fl=1;

}
l--;

}

while(fl==1);

return;
}

//Программа 6//
void buildings::sort_chisl_3()

{

int fl,i,l;

building t;

l=n-1;

do

{

fl=0;

for(i=0;i
if(strcmp(a[i].A ,a[i+1].A )>0)

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

fl=1;

}

l--;

}

while(fl==1);

return;
}
//Программа 7//

void buildings::sort_chisl_4()

{

int fl,i,l;

building t;

l=n-1;

do

{

fl=0;

for(i=0;i
if(a[i].K>a[i+1].K)

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

fl=1;

}
l--;

}

while(fl==1);

return;
}

//Программа 8//

void buildings::sohranenie()

{

char file[L];

ofstream out;

int otvet;
cout<<"Sohranit izmeneniya?"<

cin>>otvet;


if(otvet==1)

{

cout<<"Vvedite direktoriyu, kuda vj bj hoteli sohranit: ";

cin>>file;

out.open(file);

if(out==NULL)

{

cout<<"File ne sozdan"<
getch();

exit(1);

}

}

int i;

for(i=0;i
out< cout<
}

//Программа 9 //

void buildings::redaktirovanie()

{

int c,r;

cout<<"Vvedite nomer stroki,kotoruiu nujno otredaktirovat: ";

cin>>c;

cout<

cout<<"Izmenit naimenovanie? (1 Da/0 Net):"<
cin>>r;

if(r)

{

cout<<"Naimeninavanie: ";

cin>>a[c-1].name;

}

cout<<"Izmenit nazvanie filma? (1 Da/0 Net):"<
cin>>r;

if(r)

{

cout<<"Nazvanie filma: ";

cin>>a[c-1].F;

}

cout<<"Izmenit stoimost? (1 Da/0 Net):"<
cin>>r;

if(r)

{

cout<<"stoimost";

cin>>a[c-1].S;

}

cout<<"Izmenit adres? (1 Da/0 Net):"<
cin>>r;

if(r)

{

cout<<"adres: ";

cin>>a[c-1].A;

}

cout<<"Izmenit kol-vo mest? (1 Da/0 Net):"<
cin>>r;

if(r)

{

cout<<"kol-vo mest:";

cin>>a[c-1].K;

}

cout< cout<<"Redaktirovanie zaversheno."<
return;

}
//Программа 10//

void buildings::udalenie()

{
int i,c;
cout<<"Vvedite nomer stroki,kotoruiu neobhodimo udalit: "< cin>>c;
if (c>n) cout<<"Dannaia stroka v baze dannih otsutstvuet."< else
{
cout< for (i=c;i<=n;i++)
{
a[i-1] = a[i];

}
cout<<"Stroka "< n=n-1;

}
return;
}

//Программа11//

void buildings::add()

{
struct building x;
cout<<"Vvedite dannie novogo Kinoteatra: "< cout< cout<<"Nomer: "<
cin>>x.d;
cout<<"Naimenovanie: ";
cin>>x.name;
cout<<"Nazvanie filma: ";
cin>>x.F;
cout<<"Stoimost bileta: ";
cin>>x.S;
cout<<"Adres: ";
cin>>x.A;
cout<<"Kol-vo mest: ";
cin>>x.K;

cout< a[n]=x;
n=n+1;
cout<<"Zapisi dobavleni."< return;
}
//Программа 12//

void buildings::input()

{

int i;

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

cout<<"Vvedite dannie Kinoteatra:"<
for (i=0;i
{

cout<
cout<<"Nomer: "<
cin>>a[i].d;

cout<<"Naimenovanie: ";

cin>>a[i].name;

cout<<"Nazvanie filma: ";

cin>>a[i].F;

cout<<"Stoimost bileta: ";

cin>>a[i].S;

cout<<"Adres: ";

cin>>a[i].A;

cout<<"Kol-vo mest: ";

cin>>a[i].K;

cout<
}

cout<<"Dannie vvedeni."<
}

void buildings::poisk()

{

int i,d=0,f=0,j=0;

int q,w,e,r,t;

char name[L];

int S,K;

char F[L], A[L];


cout<<"Proizvesti poisk po: "<
cout<<"Naimenovaniyu? Da-1,Net-0: ";

cin>>q;

if(q==1) {cout<<"Vvedite Naimenovanie:"; cin>>name;f++;}

cout<<"Iskat po nazvaniyu filma? Da-1,Net-0: ";

cin>>w;

if(w==1) {cout<<"Vvedite nazvanie filma: ";cin>>F;f++;}

cout<<"iskat po stoimosti bileta?Da-1,Net-0: ";

cin>>e;

if(e==1) {cout<<"Vvedite stoimost bileta: "; cin>>S;f++;}

cout<<"Iskat po adresu? Da-1,Net-0: ";

cin>>r;

if(r==1) {cout<<"Vvedite adres: ";cin>>A;f++;}

cout<<"Iskat po kol-vu mest? Da-1,Net-0: ";

cin>>t;

if(t==1) {cout<<"Vvedite kol-vo mest: ";cin>>K;f++;}

for(i=0;i
{

if(q==1) {if(strcmp(name, a[i].name)==0) d=d+1;}

if(w==1) {if(strcmp(F, a[i].F)==0) d=d+1;}

if(e==1) {if(S==a[i].S) d=d+1;}

if(r==1) {if(strcmp(A, a[i].A)==0) d=d+1;}

if(t==1) {if(K==a[i].K) d=d+1;}

if(d==f) {cout<
d=0;

}

if(j==0) cout<<"Poisk ne dal rezultata!"<
cout<
}

6.Заключение.

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

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

Свойства программы - быстрый ввод, обработка и поиск данных в данной базе. Программа включает в себя следующие процедуры: создание новой базы данных, просмотр существующей базы данных, редактирование записей, их добавление и удаление (всё с сохранением в текстовом файле), поиск записей и сортировка записей по данному полю.
7.Список используемой литературы:

1. Освой самостоятельно С++, Джесс Либерти, Москва, «Вильемс», 2001г., Стр. 837

2. Основы алгоритмизаии и программирования язык С, Демидович, 2006г. , СПб:БХВ-Петербург, Стр. 440

3. С++, Культин Н.Б, СПб:БХВ-Петербург, 2005г. Стр. 288

4. Методические указания к лабораторным работам по программированию на языке С++.

Учебный текст
© perviydoc.ru
При копировании укажите ссылку.
обратиться к администрации