Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Функциональные характеристики



Структуры данных

Данные хранятся в файле в виде строк, содержащих записи следующего формата:

Фамилия Рост Размер_обуви

Выполняемые функции

· ввод записей из файла

· сортировка по росту и размеру обуви

· запись в базу данных

Требования к среде эксплуатации

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

Требования к среде разработки

Постановка задачи

Ставится задача проектирования базы данных " Воинское подразделение".

Операции:

· добавление записей

· сортировка

· ввод записей из базы данных

· вывод записей в базу данных

· поиск по полю фамилия

Способ решения. Для решения поставленной задачи можно использовать технологию объектно-ориентированного программирования на языке С++ в классах с применением наследования.

4. Теоретическая справка

Сведения о средствах языка программирования

Математическое обеспечение методов решения

Алгоритмическое обеспечение

Программное обеспечение

Структура программы

Проект программы состоит из трех файлов:

· файл sol.h – содержит объявление классов sol solp

· файл sol.cpp – содержит реализацию классов

· файл inherit.cpp – содержит главную функцию

Структура файлов

Файл sol.h

Объявление классов.

Класс sol.

Описать назначение каждого элемента класса

class sol

{

protected:

char * f;

int n;

public:

sol();

sol(char * st);

sol(const sol & t

~sol();

void prn();

};

Класс solp.

class solp: public sol

{

char *step; int n;

public:

solp();

solp(char * fi, char *stepi);

~solp();

solp(const solp & t): sol(t);

void prn();

};

Файл sol.cpp

//-----------------------

Класс sol.

Описать каждый метод/функцию в формате:

  • Прототип
  • Функциональность
  • Форматы входных данных
  • Форматы выходных данных
  • Исключительные систуации

Полный текст методов приводится в приложении

Файл inherit.cpp

Здесь приводится описание файла

Тестирование

Здесь приводятся описания тестов

Инструкция программисту

Здесь приводятся инструкции по установке, эксплуатации и т.п. продукта

Заключение

Библиографический список

 


 

 

Приложения

Приложение 1

Исходный текст программы.

Файл sol.h

//Класс sol

class sol

{

protected:

char * f;

int n;

public:

sol();

sol(char * st);

sol(const sol & t

~sol();

void prn();

};

Класс solp.

class solp: public sol

{

char *step; int n;

public:

solp();

solp(char * fi, char *stepi);

~solp();

solp(const solp & t): sol(t);

void prn();

};

Файл sol.cpp

//-----------------------

//Реализация класса sol

sol:: sol(){};

sol:: sol(char * st)

{

int i;

n=(int)strlen(st);

for(n=0; st[n]! =0; n++);

f=new char[n+1];

for(i=0; i< (n+1); i++)f[i]=st[i];

}

sol:: sol(const sol & t){

int n;

f=new char [n=strlen(t.f)+1];

for (int i=0; i< n; i++)f[i]=t.f[i];

}

sol:: ~sol(); {delete []f; }

void sol:: prn(); {cout< < f; }

//---------------------

//Реализация класса solp

solp:: solp(){};

solp:: solp(char * fi, char *stepi): sol(fi)

{

int i;

n=(int)strlen(stepi);

for(n=0; stepi[n]! =0; n++);

step=new char[n+1];

for(i=0; i< (n+1); i++)step[i]=stepi[i];

}

solp:: ~solp(){delete []step; };

solp:: solp(const solp & t): sol(t)

{

int i;

n=(int)strlen(t.step);

step=new char[n+1];

for(i=0; i< (n+1); i++)step[i]=t.step[i];

}

void solp:: prn(){

sol:: prn();

cout< < " " < < step; }

};

Файл inherit.cpp

#include " stdafx.h"

#include < string>

#include < iostream>

using namespace std;

#include " sol.h"

void f00(solp t){

cout< < " \nf00 ";

t.prn(); }

int main(int argc, char* argv[])

{

solp s1(" john", " efr" );

solp s2(" smith", " serg" );

s1.prn();

f00(s2);

return 0;

}

Проект

Здесь привести проект решения


Приложение 2

Результаты тестирования

Тест 1.

Входной файл in.txt

Содержимое файла.

Выходной файл out.txt

Содержимое файла.

Тест 2.

...



Лабораторная работа № 2.
Управление потоком кода.

Цель работы

Освоить средства создания циклов различных типов в программах на C++ и операторов управления потоком команд.

Теоретические сведения

Оператор цикла while

Для организации повторения, управляемого счетчиком, требуется задать:

· Имя управляющей переменной (или счетчика циклов).

· Приращение (или уменьшение), на которое изменяется управляющая переменная в каждом цикле.

· Условие проверки, не достигнуто ли конечное значение управляющей переменной (т.е. надо ли продолжать циклы).

Рассмотрим простую программу, которая выводит на консоль числа от 1 до 10:

// повторение, управляемое счетчиком

#include < iostream.h>

main() {

int counter = 1; // задание начального значения

while(counter < = 10) { // условие повторения

count < < counter < < endl;

++counter; // увеличение

}

return 0;

}

Вывод.

1 2 3 4 5 6 7 8 9 10

Объявление

int counter = 1;

определяет имя управляющей переменной (counter), объявляет переменную как целую, резервируя для нее соответствующее место в памяти, и задает ее начальное значение 1. Объявления, в которых задается начальное значение, являются фактически выполняемыми операторами.

Это объявление и задание начального значения переменной counter можно было бы сделать операторами

int counter; counter = 1;

Здесь само объявление не является выполняемым оператором, а присва­ивание осуществляется отдельным оператором. Можно использовать оба эти метода для задания начальных значений переменных.

Оператор

++counter

увеличивает счетчик на 1 при каждом выполнении цикла. Условие продолже­ния цикла в структуре while проверяет, меньше или равно значение управляю­щей переменной числа 10 (последнего значения, при котором условие истинно). Заметьте, что тело этой структуры while выполняется и при значении управ­ляющей переменной, равном 10. Выполнение цикла заканчивается, когда значение управляющей переменной превысит 10 (т.е. переменная counter станет равной 11).

Программа может быть сделана более компактной, если пере­менной counter задать начальное значение 0 и заменить структуру while следующей:

while(++counter < = 10)

cout < < counter < < endl;

Этот код экономит один оператор, поскольку инкремент выполняется непосредственно в условии структуры while до того, как это условие прове­ряется. Этот код также устраняет скобки, заключающие в себе тело while, поскольку теперь while содержит всего один оператор. Кодирование в подоб­ной сжатой манере дается практикой.

Поскольку числа с плавающей запятой являются приближенными, контроль количества выполнений цикла с помощью переменной с плавающей запятой может при­водить к неточному значению счетчика и неправильному результату проверки условия окончания. В таких случаях в операцию сравнения следует закладывать некоторое отклонение, например, следующим образом:

#define delta 0.00001

Double a, b;

...

If(abs(a – b) < delta)

Count < < “Значения равны” < < endl;

...

Оператор цикла for

Структура повторения for содержит все элементы, необходимые для по­вторения, управляемого счетчиком. Чтобы проиллюстрировать мощь струк­туры for, перепишем программу.

// Повторение, управляемое счетчиком, со структурой for

#include < iostream.h>

main() {

// задание начального значения, условие повторения и

// приращение – включено в заголовок структуры for

for(int counter = 1; counter < = 10; counter++)

cout < < counter < < endl;

return 0;

}

Когда структура for начинает выполняться, управляющей переменной counter задается начальное значение 1. Затем проверяется условие продол­жения цикла counter < = 10. Поскольку начальное значение counter равно 1, это условие удовлетворяется, так что оператор тела структуры печатает значение counter, равное 1. Затем управляющая переменная counter увеличивается на единицу в выражении counter++ и цикл опять начинается с про­верки условия его продолжения. Поскольку значение counter теперь 2, предельная величина не превышена, так что программа снова выполняет тело цикла. Этот процесс продолжается, пока управляющая переменная counter не увеличится до 11 — это приведет к тому, что условие продолжения цикла нарушится и повторение прекратится. Выполнение программы про­должится с первого оператора, расположенного после структуры for (в данном случае с оператора return в конце программы).

Структура for «делает все» — она определяет каждый элемент, необходимый для повторения, управляемого счетчиком с управляю­щей переменной. Если в теле for имеется более одного оператора, то для определения тела цикла требуются фигурные скобки.

Отметим, что используется условие продолжения цикла counter < = 10. Если программист некорректно напишет counter < 10, то цикл выполнится всего 9 раз. Это типичная логическая ошибка, называемая ошибкой занижения (или завышения) на единицу.

Использование конечного значения управляющей переменной в условиях структур while и for и использование операции отношения < = поможет избежать ошибок занижения на единицу. Например, для цикла, используемого при печати чисел от 1 до 10 условие продолжения цикла следует записать counter < = 10, а не counter < 10 (что является ошибкой занижения на единицу) или counter < 11 (что тем не менее корректно).

Общая форма структуры for:


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-05-03; Просмотров: 608; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.031 с.)
Главная | Случайная страница | Обратная связь