Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
met_kurs_pr_oop 2015.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
368 Кб
Скачать
☆

4 Перечень используемого программного и аппаратного обеспечения

 

4.1 Перечень используемого программного обеспечения

 

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

а) операционная система - MS Windows (версия не ниже XP);

б) трансляторы (компиляторы) языка С++;

в) текстовые редакторы или процессоры.

 

4.2 Состав используемых технических средств

 

Для выполнения курсового проекта используются лаборатории вычислительной техники кафедры прикладной математики и информатики на базе ПЭВМ. При необходимости могут использоваться индивидуальные ПК студентов.

Индивидуальные задания по курсовому проекту работе должны быть выполнены только с использованием стандартных периферийных устройств ПЭВМ.

5 Рекомендации по программированию

 

5.1 Реализация двуязычия интерфейса

 

Для реализации двуязычия интерфейса используем текстовые файлы, содержимое которых структурируем в соответствии с последовательностью размещения надписей на экране. В таблице 5.1 представлен пример содержимого файлов Cap_Eng.txt и Cap_Rus.txt. Каждая запись этих файлов содержит одну строку надписи на экране, поэтому запись с номером n файла Cap_Eng.txt содержит перевод на английский язык текста записи с номером n файла Cap_Rus.txt.

Таблица 5.1 – Содержимое файлов

Cap_Rus.txt

Cap_eng.txt

ДонНТУ

Кафедра ПМИ

…

Нажмите любую клавишу

Создан объект базового класса

…

1. создание объекта базового класса

2. показ состояния объекта базового класса

...

ОШИБКА: нельзя перегрузить унарный оператор. Выберите опцию 3

…

DonNTU

Chair AMI

…

Press any key

Created an object of the base class

…

1. The creation of an object of the base class

2. The display state of the object base class

…

ERROR: you can not overload the unary operator. Select option 3

…

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

Альтернативными решениями являются:

а) размещение текстов надписей различных кадров в разных файлах;

б) размещения текстов надписей в файлах по семантике.

Например, на рисунке 3.1 видно, что в проекте тексты надписей кадров размещены в файлах Cap_*. txt, тексты надписей элементов меню - в файлах menu_*. txt, тексты системы помощи - в файлах help.*.

Файлы данных с текстами надписей элементов интерфейса могут быть размещены:

а) в одной папке с исполняемым файлом ООС. Тогда необходимо:

1) получить exe-файл программы с помощью IDE языка С++;

2) в этой же папке (текущей) разместить файлы данных;

3) в программе на языке С++ имена таких файлов могут быть заданы константами без указания пути доступа к папке проекта, например:

char namef [20] = "help.txt";

char namef [20] = "uslovie.txt";

б) в указанной папке, не совпадает с папкой с исполняемым файлом ООС. Тогда необходимо:

1) получить exe-файл программы с помощью IDE языка С++;

2) в указанную папку поместить файлы данных (возможно, файлы структурированы по папкам в соответствии с языком интерфейса);

3) в программе на языке C ++ имена таких файлов могут быть заданы константами с указанием пути доступа к папкам этих файлов, например.

char namef [20] = "D:\STUDENTS\ PS\help.txt";

char namef [20] = "D:\STUDENTS\PS\ uslovie.txt";

Решение а) и б) соответствуют требованиям на оценку "удовлетворительно".

в) в любом месте файловой системы и путь доступа к файлам определяется пользователем на этапе выполнения программы. Тогда необходимо предусмотреть в главном меню ООС опцию настройки, в которой пользователь указывает путь доступа к файлам данных и/или их имена;

Решение в) соответствует требованиям на оценку "хорошо".

г) в любом месте файловой системы, но пользователю не приходится вводить путь доступа к файлам. Тогда необходимо предусмотреть в файловой системе ООС файл конфигурации с данными о пути доступа к файлам данных и/или их именах;

Решение г) соответствует требованиям на оценку "отлично".

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

а) в главном меню ООС предполагаем опцию для изменения языка:

1. Описание ПрО

2. Демонстрация работы объектов

3. Изменение языка интерфейса

4. Помощь

5. Выход

 

б) определяем глобальную переменную lang целочисленного типа для хранения значения признака языка. Например, ее значение 1 (True) соответствует русскому языку, значение 0 (False) - английскому. Такой выбор типа данных для признака языка позволяет увеличить множество возможных языков интерфейса ООС. По умолчанию после загрузки программы установлен русский язык:

int lang = 1;

в) в функции main_menu(), которая реализует работу главного меню ООС, обрабатываем результат выбора пользователем опции "Изменение языка интерфейса" (ввод значения 3):

cout << "Введите номер опции: 1, 2, 3, 4, 5" << endl;

cin>> reply;

switch (reply)

{...

case 3: if (lang) lang = 0; else lang = 1; // Изменение языка

           load_cap (); break; ...

}

г) определяем глобальные переменные для хранения имен файлов с надписями кадров интерфейса:

const char nfile_r [12] = "Cap_Rus.txt";

const char nfile_e [12] = "Cap_Eng.txt";

д) определяем глобальную переменную для хранения имени файла для текущего языка интерфейса:

char nfile [12];

е) определяем глобальный массив строк для хранения надписей кадров интерфейса:

const CCAPT = 35;

const LCAPT = 50;

char mas_cap [CCAPT][LCAPT];

В нем можно хранить 35 надписей-строк, каждая из которых не более 49 символов.

ж) создаем функцию load_cap(), которая будет изменять содержание надписей-строк в массиве mas_cap:

 

void LoadCaption ()

 {

   if (lang)

      strcpy (nfile, nfile_r);

   else

      strcpy (nfile, nfile_e);

 

   ifstream fcapt;

   fcapt.open (nfile);

 

 

   if (fcapt.fail ())

     {cerr << "Файл" << nfile <<

                "Не открыт." << Endl;

       getch ();

       exit (-1);

     }

   int i;

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

        fcapt >> mas_cap [i];

 }

с) элементы массива mas_cap необходимо использовать для вывода строк интерфейса в системные потоки вывода и ошибок (с учетом нумерации надписей в этом массиве), например:

 

void zastavka ()

 {

   clrscr ();

   cout << endl;

   cout.width (45); cout.setf (ios :: right);

   cout << mas_cap [0] << endl;

   cout.width (42); cout.setf (ios :: right);

   cout << mas_cap [1] << endl;

   cout.width (45); cout.setf (ios :: right);

   cout << mas_cap [2] << endl;

   cout << endl << endl << endl << endl;

   ...

 }

void main_menu ()

 {int reply;

   cout.width (10);

   cout << "1." << mas_cap [14];

   cout.width (25);

   cout << "2." << mas_cap [15];

   cout.width (10);

   cout << "3." << mas_cap [16];

   cout.width (10);

   cout << "4". << mas_cap [17] << endl;

    

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]