Хранение данных на внешних носителях
Курсовая работа, 16 Января 2015, автор: пользователь скрыл имя
Описание работы
Требуется разработать программный продукт для записи информации о автомобилях на внешние носители данных. На носители информации должна быть реализована запись следующих данных:
- Ид автомобиля
- Марка автомобиля;
- Год выпуска;
Содержание работы
1.
Техническое задание.....................................................................................
4
2.
Постановка задачи.........................................................................................
5
3.
Блок-схема программного обеспечения.....................................................
6
4.
Исходный код программного обеспечения.................................................
7
5.
Контрольный пример....................................................................................
11
6.
Протокол работы контрольного примера...................................................
14
7.
Заключение...................................................
Файлы: 1 файл
Курсовая_программирование на C++.docx
— 123.67 Кб (Скачать файл)Министерство образования Российской Федерации
Уфимский государственный авиационно-технический университет
Факультет информатики и робототехники
Курсовая работа
на тему «Хранение данных на внешних носителях»
по дисциплине
программирование на C++
Студент
Дата защиты__________________
Оценка ______________________
Уфа 2012 г.
АННОТАЦИЯ
Пояснительная записка к курсовой работе содержит постановку и программу решения задачи «Структура «Автомобиль».
Программа на курсовой проект написана в среде Dev-C на языке C++ и отлажена на данных контрольного примера. Выполняется в операционной системе Microsoft Windows Seven и выше.
Содержание
1. |
Техническое задание....................... |
4 |
2. |
Постановка задачи........................ |
5 |
3. |
Блок-схема программного обеспечения................... |
6 |
4. |
Исходный код программного обеспечения................... |
7 |
5. |
Контрольный пример........................ |
11 |
6. |
Протокол работы контрольного примера....................... |
14 |
7. |
Заключение.................... |
15 |
1. Техническое задание
Требуется разработать программный продукт для записи информации о автомобилях на внешние носители данных. На носители информации должна быть реализована запись следующих данных:
- Ид автомобиля
- Марка автомобиля;
- Год выпуска;
- Цвет;
- Цена;
После создания файла с данными программа должна реализовывать следующие функции:
- Запись в файл данных;
- Чтение данных из файла;
- Поиск автомобиля по ид;
- Удаление данных из файла.
Программа должна работать в консольном режиме и поддерживать русский текст и русскую раскладку клавиатуры.
Область применения данной программы – продажа автомобилей, автопарк.
2. Постановка задачи
Используя ввод-вывод в стиле С создать файл и записать в него структурированные данные.
Вывести созданный файл на экран.
Удалить из файла данные в соответствии с вариантом.
Добавить в файл данные в соответствии с вариантом.
Вывести измененный файл на экран.
Используя ввод-вывод в стиле С++ создать файл и записать в него структурированные данные.
Вывести созданный файл на экран.
Удалить из файла данные в соответствии с вариантом.
Добавить в файл данные в соответствии с вариантом.
Вывести измененный файл на экран.
Задание
Структура "Автомобиль":
Ид автомобиля;
Марка;
Год выпуска;
- Цвет.
Цена
Входная информация: данные о автомобилях.
Выходная информация: Созданный файл datafile.txt с информацией о автомобилей.
2. Блок-схема программного обеспечения
3. Исходный код программного обеспечения
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
#include <fstream.h>
#include <windows.h>
using namespace std;
struct avto//объявление структуры
{
char marka[20];
int year;
int id;
float price;
char color[20];
};
void create_file(int n1, avto mass1[500])//Объявление функции создания файла
{
fstream datafile("datafile.txt",ios::out);
for(int i=0;i<n1;i++)
{
cout<<"\n"<<"введите
данные о автомобиле № "<<i+1<<"\n"<<"------------------->";
cout<<"\n"<<"Ид ="; cin>>mass1[i].id;
cout<<"марка ="; cin>>mass1[i].marka;
cout<<"год выпуска = "; cin>>mass1[i].year;
cout<<"Цена = "; cin>>mass1[i].price;
cout<<"Цвет = "; cin>>mass1[i].color;
cout<<"<-------------------\n";
}
datafile.close();//Закрытие файлового
потока
}
void vivod_dann()//Объявление функции
чтения файла
{
cout<<"\n"<<"\n"<<"====================================="<<"\n"<<"Чтение
файла...........\n";
fstream datafile;
avto pass;
datafile.open("datafile.txt", ios::in);
cout<<"\n";
do//чтение файла
{ datafile>>pass.id;
datafile>>pass.marka;
datafile>>pass.year;
datafile>>pass.price;
datafile>>pass.color;
if (datafile.eof()) break;
cout<<"Ид = "<<pass.id<<"\n";
cout<<"марка = "<<pass.marka<<"\n";
cout<<"год выпуска = "<<pass.year<<"\n";
cout<<"Цена = "<<pass.price<<"\n";
cout<<"Цвет = "<<pass.color<<"\n";
cout<<"==================================\n"<<"\n";
}
while(!datafile.eof());
datafile.close();
}
void vvod_dann()//Объявление функции
ввода данных в файл
{
int n1, i; avto pass;
i=0;
ofstream datafile("datafile.txt", ios::app);
cout<<"Введите количество новых добовляемых элементов :"; cin>>n1;
if(n1!=0)
do//запись в массив
{
cout<<"\n";
cout<<"Ид = "; cin>>pass.id;
cout<<"марка = "; cin>>pass.marka;
cout<<"год выпуска = "; cin>>pass.year;
cout<<"Цена = "; cin>>pass.price;
cout<<"Цвет = "; cin>>pass.color;
datafile<<pass.id<<" ";
datafile<<pass.marka<<" ";
datafile<<pass.year<<" ";
datafile<<pass.price<<" ";
datafile<<pass.color<<" ";
datafile<<"\n";
i++;
}
while(i<n1);
datafile.close();
}
void udal_dann()//Объявление функции
поиска и удаления элементов
из файла
{
// fstream datafile("datafile.dat", ios::in);
avto pass[50];
int i=0; int n1=0;
fstream datafile;
datafile.open("datafile.txt", ios::in);
cout<<"\n";
do//чтение файла
{ datafile>>pass[i].id;
datafile>>pass[i].marka;
datafile>>pass[i].year;
datafile>>pass[i].price;
datafile>>pass[i].color;
i++; n1++;
}
while(!datafile.eof());
datafile.close();
int mk; bool check=0; int deln;
cout<<"\n Введите год, для удаления \n"; cin>>mk;
for(i=0;i<n1;i++)
{
if(mk>pass[i].year)
{
deln=i;
cout<<"\n===================================НАЙДЕНО=================================\n";
cout<<"Ид ="<<pass[i].id<<"\nМарка="<<pass[i].marka<<"\nГод
выпуска="<<pass[i].year<<"\n№Цена="<<pass[i].price<<"\nЦвет="<<pass[i].color<<"\n";
cout<<"===========================================================================\n";
check=1;
};
};
if(check!=1)
{
cout<<"=============================\n";
cout<<"Нет элементов
удовлетворяющих поиску\n"<<"=============================\n";
}
else
{
int sel;
cout<<"Удалить данный(е) элемент(ы)?\n"<<"1. Да\n"<<"2. Нет\n";
cin>>sel;
if (sel==1)
{
fstream datafile("datafile.txt",ios::out);
for(i=0;i<n1;i++)
if(pass[i].year>mk)
{
datafile<<pass[i].id<<" ";
datafile<<pass[i].marka<<" ";
datafile<<pass[i].year<<" ";
datafile<<pass[i].price<<" ";
datafile<<pass[i].color<<" ";
datafile<<"\n";
}
cout<<"элементы удалены...\n";
}
};
}
void find_dann()//Объявление функции
поиска и удаления элементов
из файла
{
// fstream datafile("datafile.dat", ios::in);
avto pass[50];
int i=0; int n1=0;
fstream datafile;
datafile.open("datafile.txt", ios::in);
do//чтение файла
{ datafile>>pass[i].id;
datafile>>pass[i].marka;
datafile>>pass[i].year;
datafile>>pass[i].price;
datafile>>pass[i].color;
i++; n1++;
}
while(!datafile.eof());
datafile.close();
int mk; bool check=0; int deln;
cout<<"Введите ид, для поиска \n"; cin>>mk;
for(i=0;i<n1;i++)
{
if(mk==pass[i].id)
{
deln=i;
cout<<"\n===================================НАЙДЕНО=================================\n";
cout<<"Ид ="<<pass[i].id<<"\nМарка="<<pass[i].marka<<"\nГод
выпуска="<<pass[i].year<<"\n№Цена="<<pass[i].price<<"\nЦвет="<<pass[i].color<<"\n";
cout<<"===========================================================================\n";
check=1;
};
};
if(check!=1)
{
cout<<"=============================\n";
cout<<"Нет элементов
удовлетворяющих поиску\n"<<"=============================\n";
}
}
int main(int argc, char *argv[])
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);//настройка
ввода и вывода в консоли
с русским шрифтом
avto mass[500];
int n;
cout<<"**************************************\n";
cout<<"*******-----База автопарка-----*******\n";
cout<<"**************************************\n";
int k;
do
{
cout<<"Для работы, введите команду:";
cout<<"\n"<<"1. Ввод данных в файл\n";
cout<<"2. Прочитать файл\n";
cout<<"3. Удаление элементов
по году производства из файла\n";
cout<<"4. Поиск элемента по ид\n";
cout<<"5. Выход\n";
cin>>k;
switch (k)
{
case 1: vvod_dann();
// cout<<"Введите количество вводимых автомобиле: "; cin>>n; create_file(n,mass);
break;
case 2: vivod_dann(); break;
case 3: udal_dann(); break;
case 4: find_dann();
break;
}
}
while (k!=5);
};
4. Контрольный пример
4.1 Интерфейс программы
4.2 Создание и ввод данных в файл
сформирован файл datafile.dat с введенными данными.
4.3 Чтение файла
4.4 Поиск и вывод данных по параметру
4.5 Поиск и удаление данных
5. Протокол работы контрольного примера
5.1 Создание нового файла.
Название файла – datafile.dat
Содержимое файла:
ID |
Марка |
Год производства |
Цена |
Цвет |
1 |
Ауди |
1992 |
200000 |
Синий |
2 |
Ваз |
2002 |
150000 |
Красный |
5.2 Добавление данных в файл
ID |
Марка |
Год производства |
Цена |
Цвет |
3 |
Опель |
2003 |
400000 |
Серый |
5.3 Просмотр файла
ID |
Марка |
Год производства |
Цена |
Цвет |
1 |
Ауди |
1992 |
200000 |
Синий |
2 |
Ваз |
2002 |
150000 |
Красный |
3 |
Опель |
2003 |
400000 |
Серый |
5.4 Поиск автомобиля по ID
Введен № ID: 2
Найдено:
Фамилия |
Имя |
Отчество |
№ мед.карты |
№ полиса |
2 |
Ваз |
2002 |
150000 |
Красный |
5.5 Поиск и удаление автомобилей, старше заданного года:
Задан год: 1993
Найден и удален:
ID |
Марка |
Год производства |
Цена |
Цвет |
1 |
Ауди |
1992 |
200000 |
Синий |
5.6 Чтение модифицированного файла
ID |
Марка |
Год производства |
Цена |
Цвет |
2 |
Ваз |
2002 |
150000 |
Красный |
3 |
Опель |
2003 |
400000 |
Серый |
Заключение
В процессе выполнения курсового проекта были разработаны структура и алгоритм работы приложения «Автопарк», разработано техническое задание, описана входная и выходная информация, построена блок-схема, составлен контрольный пример. При этом были изучены особенности потокового ввода-вывода в стиле C++, работа со структурой. Результатом работы стало создание программного продукта для использования в автопарках.
Программное обеспечение написано на языке C++ с использованием среды разработки Dev-C