Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МИНОБРНАУКИ РФ
ОГУ
ОРСКИЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ
(филиал) федерального государственного бюджетного образовательного
учреждения высшего профессионального образования
«Оренбургский государственный университет»
ОТЧЁТ
по производственной практике
ОПтК…
Сдал студент гр. ПКС-301
(подпись, дата) (расшифровка подписи)
Проверил мастер
производственного обучения
(подпись, дата) (расшифровка подписи)
2014 год
Содержание
План |
Стр. |
1. Общая характеристика программного продукта |
|
2. Модульная диаграмма |
|
3. Правила эксплуатации и использования данного программного продукта |
|
4. Исходный код программы |
Изм. |
Лист |
№ докум. |
Подпись |
Дата |
||||
Разраб. |
Пояснительная записка |
Лит. |
Лист |
Листов |
||||
Провер. |
||||||||
Реценз |
||||||||
Н.Контр. |
||||||||
Утверд. |
1.Общая характеристика программного продукта
Данная программа предназначена для выполнения следующих функций:
Целью данной программы являлось максимально обеспечить удобство пользователю при работе с информацией. Непосредственно информация, хранящаяся в файле, будет представлять собой список терминов и страниц, на которых они встречаются в произведении.
Эта программа предназначена как для авторов различных литературных произведений (как дополнение к их труду), так и для облегчения восприятия информации конечным потребителем (читателем).
Системные требования:
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
2.Модульная диаграмма
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
3.Правила эксплуатации и использования
данного программного продукта
Защита информации в данном продукте представлена одной вспомогательной функцией программы, которая при любом изменении программой данных в файле создаёт копию данных, и если потребуется, администратор сможет восстановить потерянные данные.
Программа имеет два режима работы:
Так же программа имеет защиту от несанкционированного доступа. При запуске программы запрашивается пароль , и если пароль не совпадает с паролями доступа, то программа выдаёт сообщение об ошибке и закрывается.
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
4.Исходный код программы
Файл List.h
#ifndef list_h
#define list_h
class List
{
private:
struct unit
{
string word, pages;
unit*next;
};
unit*Begin;
public:
List()
{
Begin = new unit;
Begin->next = NULL;
}
void Read(string, string);
void Viev();
void Sorting();
void Search(string);
~List()
{
if (Begin->next == NULL)
exit(0);
else
{
unit* first, *second;
first = Begin->next;
second = first->next;
while (second)
{
first = second;
second = second->next;
delete first;
}
Begin->next = NULL;
}
}
};
#endif
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Файл List.cpp
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
#include "List.h"
void List::Read(string stroka, string stroka2)
{
unit *first;
first = Begin;
while (first->next)
first = first->next;
first->next = new unit;
first = first->next;
first->word = stroka;
first->pages = stroka2;
first->next =NULL;
};
void List::Viev()
{
unit*first;
char symbol = 186;
first = Begin;
first = first->next;
while (first->next)
{
cout << symbol;
cout.width(19);
cout << first->word;
cout.width(21);
cout << symbol;
cout.width(37);
cout << first->pages << ';';
cout << symbol;
first = first->next;
}
};
void List::Search(string str)
{
unit*first = Begin;
char symbol = 186;
while (first->next)
{
if (first->word == str || first->pages == str)
{
cout << symbol;
cout.width(19);
cout << first->word;
cout.width(21);
cout << symbol;
cout.width(37);
cout << first->pages << ';';
cout << symbol;
}
first = first->next;
}
};
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
void List::Sorting()
{
bool quit = false;
while (quit != true)
{
unit*first = Begin,
*second = first->next;
string temp, temp2;
quit = true;
while (second->next)
{
if (first->word.compare(second->word) > 0)
{
temp = first->word;
temp2 = first->pages;
first->word = second->word;
first->pages = second->pages;
second->word = temp;
second->pages = temp2;
quit = false;
}
first = first->next;
second = second->next;
}
}
};
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
Файл main.cpp
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
#include <stdlib.h>
using namespace std;
#include "List.h"
List obj;
void Id();
void Write();
void Read();
void Output();
void Output2();
void Viev();
void Search();
void Menu();
void Menu2();
void BackUp();
int main()
{
Id();
return 0;
};
void Id()
{
int str;
setlocale(LC_ALL, "Russian");
cout << "Введите код доступа : ";
cin >> str;
switch (str)
{
case (0000) : cout << endl << "Здравствуйте администратор" << endl; system("pause"); system("cls"); Menu();
case (1234) : cout << endl << "Здравствуйте пользователь" << endl; system("pause"); system("cls"); Menu2();
}
cout << endl << "Отказ в доступе, попробуйте снова" << endl;
system("pause");
}
void Search()
{
Read();
system("cls");
string str;
cout << ">>Введите слово , для которого нужно найти страницы" << endl;
setlocale(LC_ALL, "C");
cin >> str;
Output();
obj.Search(str);
Output2();
getchar();
getchar();
system("cls");
obj.~List();
};
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
void Menu()
{
char key = '1';
while (key != 27)
{
cout.width(49);
setlocale(LC_ALL, "Russian");
cout << "Предметный указатель" << endl;
cout << endl;
cout.width(20);
cout << "Меню" << endl;
cout << "1.Добавление слова в П.У.;" << endl;
cout << "2.Вывод П.У." << endl;
cout << "3.Вывод страниц по заданному слову" << endl;
cout << "Для выхода из программы нажмите клавишу 4" << endl;
cout << "<<";
key = getchar();
if ((key == '1') || (key == '2') || (key == '3') || (key == '4'))
{
switch (key)
{
case '1':Write(); break;
case '2':Viev(); break;
case '3':Search(); break;
case '4':exit(0); break;
}
system("cls");
}
else
{
cout << endl << ">>Ошибка ввода попробуйте ещё!" << endl;
system("pause");
system("cls");
}
}
}
void Viev()
{
Read();
obj.Sorting();
Output();
obj.Viev();
Output2();
system("pause");
system("cls");
obj.~List();
};
void Output2()
{
char left = 201, right = 187,
up = 186, left2 = 200,
right2 = 188, dl = 205;
cout << left2;
for (int i = 0; i < 78; i++)
cout << dl;
cout << right2;
};
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
void Menu2()
{
char key = '1';
while (key != 27)
{
cout.width(49);
setlocale(LC_ALL, "Russian");
cout << "Предметный указатель" << endl;
cout << endl;
cout.width(20);
cout << "Меню" << endl;
cout << "1.Вывод П.У." << endl;
cout << "2.Вывод страниц по заданному слову" << endl;
cout << "Для выхода из программы нажмите клавишу 3" << endl;
cout << "<<";
key = getchar();
if ((key == '1') || (key == '2') || (key == '3'))
{
switch (key)
{
case '1':Viev(); break;
case '2':Search(); break;
case '3':exit(0); break;
}
system("cls");
}
else
{
cout << endl << ">>Ошибка ввода попробуйте ещё!" << endl;
system("pause");
system("cls");
}
}
};
void BackUp()
{
string str, str2;
ifstream file;
file.open("File.txt");
ofstream Back;
Back.open("BackUp.txt");
while (!file.eof())
{
file >> str;
file >> str2;
Back << str << '\t' << str2 << ";" << endl;
}
Back.close();
file.close();
}
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
void Write()
{
BackUp();
char str[100];
int word(0), kol(0), page(0);
ofstream file;
file.open("File.txt", ios_base::app);
setlocale(LC_ALL, "Russian");
system("cls");
cout << ">>Сколько слов вы хотите внести в указатель?" << endl << "<< ";
cin >> word;
cout << endl;
if (cin.good() == true)
{
for (int i = 0; i < word; i++)
{
cout << endl;
cout << "Введите слово" << endl << "<< ";
cin >> str;
cout << ">>На скольких страницах встречается данное слово ?" << endl << "<< ";
cin >> kol;
if (cin.good() == true)
{
for (int j = 0; j < kol; j++)
{
cout << ">>Введите страницу" << endl << "<< ";
cin >> page;
if (cin.good() == true)
{
if (j != 0) file << ',';
else file << str << '\t';
file << page;
}
else
{
cout << '\a' << ">>Ошибка ввода! Попробуйте снова" << endl;
break;
break;
}
}
file << '\n';
}
else
{
cout << '\a' << ">>Ошибка ввода! Попробуйте снова" << endl;
break;
}
system("cls");
}
}
else cout << '\a' << ">>Ошибка ввода! Попробуйте снова" << endl;
file.close();
system("pause");
system("cls");
};
Лист |
||||||
Лист |
№ докум. |
Подпись |
Дата |
void Read()
{
ifstream file;
file.open("File.txt");
string str, str2;
while (!file.eof())
{
file >> str;
file >> str2;
obj.Read(str, str2);
}
file.close();
};
void Output()
{
system("cls");
setlocale(LC_ALL, "C");
char left = 201, right = 187,
up = 186, left2 = 200,
right2 = 188, dl = 205;
cout << left;
for (int i = 0; i < 78; i++)
cout << dl;
cout << right;
cout << up;
setlocale(LC_ALL, "Russian");
cout.width(48);
cout << "Предметный указатель";
setlocale(LC_ALL, "C");
cout.width(31);
cout << up;
cout << up;
for (int i = 0; i < 78; i++)
cout << dl;
cout << up;
cout << up;
setlocale(LC_ALL, "Russian");
cout.width(20);
cout << "Слова";
setlocale(LC_ALL, "C");
cout.width(20);
cout << up;
setlocale(LC_ALL, "Russian");
cout.width(20);
cout << "Страницы";
setlocale(LC_ALL, "C");
cout.width(19);
cout << up;
cout << up;
for (int i = 0; i < 78; i++)
{
cout << dl;
}
cout << up;
};