Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовая вариант 44(классы)

.docx
Скачиваний:
5
Добавлен:
12.06.2016
Размер:
797.43 Кб
Скачать

Цель работы

  • Разработка программы согласно заданию.

  • Выработка навыков работы над проектом.

  • Закрепление навыков составления отчета о проделанной работе.

  • Выработка навыков поиска наиболее оптимальных решений в программировании и обоснования их в отчете.

Задание

Дано натуральное число n<100000. Определить, сколько различных цифр встречается в его десятичной записи

Решение

Способы решения задачи

1. Определить количество различных цифр можно математически (арифметически). С учетом ограничений наложенных в программе (n<100000), количество арифметических операций будет конечно. Можно разложить число по разрядам и проводить манипуляции по сравнению количества единиц, десятков, сотен и. т. д.

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

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

Дополнительные требования к программе:

1. Способ получения строки.

1.1. Можно задать число в качестве константы.

1.2. Можно спросить число у пользователя (ввод с клавиатуры).

Выбор способа получения числа "n":Наиболее удобен с точки зрения пользователя способ (1.2.), так как позволяет быстро проверить программу на различных числах, не меняя код программы.

2. Внешний вид программы и среда разработки.

2.1. BC 3.1 forDos - консольное приложение скомпилированное под MSDOS.

2.2. DevC++ -консольное приложение для MSWindows.

2.3. DevC++ - графическое, оконное приложение дляMSWindows.

Выбор внешнего вида программы: Наиболее удобным и достаточным можно считать консольное приложение для MSWindows (вариант 2.2.). Так как оно позволит вводить число и при этом позволит выводить сообщения на русском языке.

Вариант 2.1. не позволит использовать кириллицу. А вариант 2.3. будет избыточен для данной задачи (графический интерфейс в данной задаче не требуется).

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

Выделим функции программы:

  1. Ввод данных.

  2. Перевод числа в строку

  3. Определение числа различных символов в строке

    обобщенная структурная схема

    функция определения числа различных символов в строке

  4. Вывод данных.

начало

int rez=5;

scanf ("%d",&n);

А, пока i<strlen(b)

f=b[i];

itoa(n, b, 10);

B, i+1<j<strlen(b)

a=d1.cifri()

b[j]==f

да

printf(“%d %d”, a);

rez--;

нет

конец

B

A

нет

(rez==2)

да

нет

rez=rez+3;

(rez==2)

да

rez=rez+6;

(rez==2)

да

rez++;

return(rez);

Код программы

/* подключение библиотек */ #include <cstdlib>

#include <iostream>

#include <string.h>

#include <ctype.h>

#include <stdio.h>

using namespace std; /* описание класса */

class deliteli

{

char b[7];

public:

deliteli(int a);

int cifri(void);

}; /* главная функция */ int main(int argc, char *argv[])

{

int n;

printf ("Vvedite chislo N\n");

scanf ("%d",&n);

if (!(n<100000))

{printf("chislo ne udovletvoryaet usloviyu\n");

return 1;

}

deliteli d1(n);

printf("v chisle %d raznih cifr(i)\n", d1.cifri());

system("pause");

return 0;

}

/* описание конструктора */

deliteli::deliteli(int a)

{

itoa(a, b, 10);

}

/* описание функции класса */

int deliteli::cifri(void)

{

int rez=5;

char f;

for(int i=0; i<strlen(b); i++)

{

f=b[i];

for(int j=i+1; j<strlen(b); j++)

{ if(b[j]==f) rez--;

}

}

if (rez==2) rez++;

if (rez==-1) rez=rez+3;

if (rez==-5) rez=rez+6;

return rez;}

Выводы

1. Разработана программа согласно техническому заданию.

1.1. Программа выполняет заданную операцию (определяет количество слов в строке и число слов, начинающихся на «В»).

1.2. Выбран вариант разработки программы как консольного приложения Windows.

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

2. В результате работы над проектом составлена документация к проекту (данный отчет).

3. В результате работы над проектом приняты концептуальные решения, определившие внешний вид проекта, алгоритм работы и функционал программы.

Приложение 1: Тестовые примеры работы программы

Тестовый пример 1:

Введите число: ввести число <100000 и проверить правильность вставить скриншот со своей фамилией

программа выполнена успешно

Тестовый пример 2:

Введите число: ввести число >100000 и программа выдаст ошибку

ошибка