Разработка программы сложной структуры методом нисходящего программирования средствами Microsoft Visual Studio 2008

Разработка многомодульной программы сложной структуры, позволяющей находить самое длинное и самое короткое слово в тексте и менять их местами. Описание модульной структуры, глобальных и локальных переменных, алгоритмов реализации модулей программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.04.2017
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

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

(филиал Пензенского государственного университета)

Кафедра ЕН и ТД

КУРСОВАЯ РАБОТА

Разработка программы сложной структуры методом нисходящего программирования средствами Microsoft Visual Studio 2008

По дисциплине «Программирование»

Пояснительная записка

Разработал: ст.гр. 13КВТ1

Авдонин И.Ю

Принял: ст. преподаватель

каф. ЕНиТД

Ю.В. Анохина.

2014 г.

ВВЕДЕНИЕ

Язык Си - это универсальный язык программирования, для которого характерны экономичность выражения, современный набор операторов и типов данных. Язык Си не является ни языком "очень высокого уровня", ни "большим" языком, и не предназначается для некоторой специальной области применения, но отсутствие ограничений и общность языка делают его для многих задач более удобным и эффективным, чем языки, предположительно более мощные. Операционная система, компилятор с языка Си и по существу все прикладные программы системы "ДЕМОС" написаны на Си. Язык Си не связан с какими-либо определенными аппаратными средствами или системами, и на нем легко писать программы, которые можно пропускать без изменений на любой ЭВМ, имеющей Си-компилятор. программа текст слово модуль алгоритм

Язык Си является универсальным языком программирования. Он первоначально появился в операционной системе UNIX, и развивался как основной язык систем, совместимых с ОС UNIX. Сам язык, однако, не связан с какой-либо одной операционной системой или машиной; и хотя его называют языком системного программирования, так как он удобен для написания операционных систем, он может использоваться для написания любых больших вычислительных программ, программ для обработки текстов и баз данных.

Язык Си - это язык относительно "низкого уровня". Это означает, что Си имеет дело с объектами того же вида, что и большинство ЭВМ, а именно, с символами, числами и адресами. Они могут объединяться и пересылаться посредством обычных арифметических и логических операций, осуществляемых реальными ЭВМ.

В языке Си отсутствуют операции, имеющие дело непосредственно с составными объектами, такими как строки символов, множества, списки или с массивами, рассматриваемыми как целое. Здесь, например, нет никакого аналога операциям PL/1, оперирующим с массивами и строками. Язык не предоставляет никаких других возможностей распределения памяти, кроме статического определения и механизма стеков, обеспечиваемого локальными переменных функций. Сам по себе язык Си не обеспечивает никаких возможностей ввода-вывода. Все эти механизмы высокого уровня должны обеспечиваться явно вызываемыми функциями.

Аналогично, язык Си предлагает только простые, последовательные конструкции управления: проверки, циклы, группирование и подпрограммы, но не мультипрограммирование, параллельные операции, синхронизацию или сопрограммы.

Удержание языка в скромных размерах дает реальные преимущества. Так как Си относительно мал, он не требует много места для своего описания и может быть быстро выучен.

Нисходящее программирование - способ разработки программ, при котором программирование ведется методом «сверху вниз», от общего к деталям. Алгоритм решения задачи разбивается на несколько более простых частей или подзадач. Их выделяют таким образом, чтобы програм-мирование подзадач было независимым. Составляется блок-схема программы, где выделяют головную и подчиненные подзадачи и связи между ними. Здесь же устанавливают, какие начальные данные получает каждая подзадача и какие результаты она выдает.

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

ПОСТАНОВКА ЗАДАЧИ

Целью данного курсового проекта является разработка многомодульную программу сложной структуры методом нисходящего программирования средствами Microsoft Visual Studio 2008. Необходимо определить самое длинное и самое короткое слова, и менять их местами. Исходный файл может быть создан изначально, либо в ходе разработки программы. В качестве содержимого файла используется текст.

Описание входных данных

В файле задан текст, состоящий из отдельных слов. Длина текста - не более 20 строк, длина слов - не более 8 символов. Исходный текст должен заканчиваться символом ('.','!', '?'). Текст может быть введён с клавиатуры.

Описание выходных данных

Текстовый файл с сформатированным текстом, отражающий исходный текст, текст с изменённым порядком слов, самое длинное и короткое слова.

Так же вывод этих данных на экран.

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

Описание модульной структуры программы

Описание глобальных и локальных переменных программы

int variant - переменная выбора пункта меню.

FILE *ptr, *pf - переменные файла с текстом либо создания файла.

char text - вводимый текст при случае создания файла.

unsigned char ch - переменная для перебора текста.

FILE *ptr_file, *vv, *pp - переменные файла с текстом либо создания файла.

int length_word - длина слова.

max_length - максимальная длина слова.

begin_word - начало слова.

seek_max_word - позиция макс. Слова.

seek_min_word - позиция мин. Слова.

int min_length = 64 - минимальная длина слова.

char vine[]="\n\n"; переменная с двойным переносом.

size_t r - определённый размер текста.

char buf1[100] - буфер для копирования с размером 100.

FILE *pt - переменные файла с текстом.

char x - переменная для перебора текста.

Описание алгоритмов реализации модулей программы

int prompt_menu_item() - осуществляет выбор из меню соответствующей функции.

void spravka() - вывод справочного пособия о программе.

void prosmotr() - осуществление просмотра исходного файла с содержащимся текстом, а в случае его отсутствия создание и ввод текста.

int poisk() - определение самого короткого и самого длинного слов и запись их в результирующий файл вместе с исходным текстом.

void rezfile() - просмотр результирующего файла с форматированным текстом.

void exit() - непосредственный выход из программы.

int main(int argc, char* argv[]) - вызов модулей, выбранных в меню.

РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

Инструкция для пользователя

При запуске программы появится меню (ЭФ-1). В нём будет представлен список функций программы. Чтобы выбрать соответствующий номер функции, достаточно просто нажать на индекс вызываемого модуля на клавиатуре. Следующим действием будет нажатие на Enter. Вызываемый вами модуль отображается на экране.

Рекомендовано, первым действием просмотреть справку, то есть первый пункт меню (ЭФ-2). В нём кратко описано о программе и о критериях текста, который будет введён при отсутствии файла.

Второй пункт меню - просмотр исходного файла (ЭФ-3) или создание его в случае отсутствия (ЭФ-4, ЭФ-5). При выборе данного модуля вы увидите текст, содержащийся в файле, с которым будет производиться дальнейшая работа.

Третий пункт меню - определение самого короткого и самого длинного слов в тексте (ЭФ-6). Далее программа автоматически поменяет их местами.

Четвёртый пункт меню - просмотр результирующего файла (ЭФ-7). В нём будет отражена вся работа над текстом.

Пятый пункт меню - выход из программы (ЭФ-8).

Если вы введёте число, превышающее конечный индекс, программа выдаст ошибку (ЭФ-9).

ЗАКЛЮЧЕНИЕ

В ходе выполнения работы была разработана программа сложной структуры методом нисходящего программирования средствами Microsoft Visual Studio 2010. Было необходимо определить самое длинное и самое короткое слова, и менять их местами. Предоставлялась возможность создания исходного файла изначально, либо в ходе разработки программы. В качестве содержимого файла использовался текст.

СПИСОК ЛИТЕРАТУРЫ

1. Герберт Шилдт - «Полный справочник по C», Изд. «Вильямс», 2009 г., 704 с.

2. Бочков С. О., Субботин Д. М. - «Язык программирования Си для персонального компьютера», 1990г.

3. Керниган Б. В., Ритчи Д. М. - «Язык программирования Си», 2001г.

4. Ален Голуб. «Правила программирования на Си и Си++», 2001г.

ПРИЛОЖЕНИЯ

Приложение А

Функция Spravka()

Функция Prosmotr()

Функция Poisk()

Функция Rezfile()

Функция Exit()

Приложение B

#include <iostream>

#include <cstdlib>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <malloc.h>

#include <sstream>

using namespace std;

int prompt_menu_item()

{

setlocale (LC_ALL, "Russian");

// Выбранный вариант меню

int variant;

int n=0;

cout<<"________________________________________________\n";

cout<<"**********|-----------MENU-----------|**********\n";

cout<<"************************************************\n";

cout<<"*********| Ввести номер вашего выбора |*********";

cout<<"\n************************************************\n";

cout<<"* 1. Справка *\n";

cout<<"* 2. просмотр исходника/создание и ввод текста *\n";

cout<<"* 3. Найти самое длинное и самое короткое слова*\n* в тексте и поменять их местами. *\n";

cout<<"* 4. Просмотр рез. файла *\n";

cout<<"* 5. Выход *\n";

cout<<"************************************************\n";

cout << ">>> ";

cin >> variant;

cout << "************************************************\n";

return variant;

}

void spravka()

{

cout <<"**********|---------Справка.---------|**********\n";

cout <<"************************************************\n";

cout <<"Данная программа многомодульная, представляет *\n";

cout <<"собой реализацию и изменение содержимого файла.*\n";

cout <<"Она позволяет изменять порядок слов в файле, *\n";

cout <<"менять местами самое короткое и самое длинное *\n";

cout <<"слова. Для удобства работы c программой *\n";

cout <<"используется текстовое меню. Для текста *\n";

cout <<"возможны следующие критерии: *\n";

cout <<"1. Длина слов не более 8 символов; *\n";

cout <<"2. Исходный текст должен заканчиваться (.!?). *" << endl;

cout << "************************************************\n";

}

void prosmotr()

{

{

FILE *ptr, *pf;

char text;

text=(char)malloc(sizeof(char));

unsigned char ch;

if ((ptr=fopen("file.txt","r"))!=NULL)

{

while (!feof(ptr))

{

ch=getc(ptr);

printf("%c",ch);

}

cout << "\n************************************************\n";

fclose(ptr);

}

else

{

printf("\nФайл не найден!\nСоздание нового...\n");

pf=fopen("file.txt","w");

cout << "\nВведите новый текст-->";

cin >> text;

}

}

}

int poisk()

{

{

FILE *ptr_file, *vv, *pp;

char ch;

int length_word, max_length, begin_word, seek_max_word, seek_min_word, i, n;

int min_length = 64;

char vine[]="\n\n";

size_t r;

char buf1[100];

ptr_file=fopen("file.txt","r");

if(ptr_file == NULL)

{

perror("Ошибка при открытии файла!");

return(-1);

}

length_word = seek_max_word = seek_min_word = max_length = 0;

while (!(feof(ptr_file)) )

{

ch=fgetc(ptr_file);

if( ((ch >= 'А')&&(ch <= 'Я')) || ((ch >= 'а')&&(ch <= 'я')) )

begin_word = 1;

else

begin_word = 0;

if(begin_word)

length_word+=1;

else if((begin_word == 0)&&(length_word != 0))

{

if(length_word >= max_length)

{

max_length = length_word;

seek_max_word = ftell(ptr_file) - max_length - 1;

}

else if(length_word <= min_length)

{

min_length = length_word;

seek_min_word = ftell(ptr_file) - min_length - 1;

}

length_word = 0;

}

else

length_word = 0;

}

fseek(ptr_file, seek_max_word, SEEK_SET);

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

printf("%c", fgetc(ptr_file));

printf(" , ");

fseek(ptr_file, seek_min_word, SEEK_SET);

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

printf("%c", fgetc(ptr_file));

printf(" <--- Максимальное(%d символов) и\n минимальное(%d символов) слова.\n", max_length, min_length);

cout << "************************************************\n";

vv=fopen("rez_file.txt","w");

fseek(ptr_file, seek_min_word, SEEK_SET);

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

printf("%c", fgetc(ptr_file));

printf(" , ");

fseek(ptr_file, seek_max_word, SEEK_SET);

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

printf("%c", fgetc(ptr_file));

printf(". ");

pp=fopen("file.txt","r");

while (!feof(pp))

{

r = fread(buf1,sizeof(char),100,pp);

fwrite(buf1,sizeof(char),r,vv);

}

fwrite(vine,sizeof(char),2,vv);

fwrite(&max_length,sizeof(char),1,vv);

fwrite(&min_length,sizeof(char),8,vv);

fwrite(vine,sizeof(char),2,vv);

fwrite(&min_length,sizeof(char),8,vv);

fwrite(&max_length,sizeof(char),1,vv);

cout << "\n************************************************\n";

fclose(pp);

fclose(vv);

fclose(ptr_file);

return (0);

}

}

void rezfile()

{

FILE *pt;

char x;

if ((pt=fopen("rez_file.txt","r"))!=NULL)

{

while (!feof(pt))

{

x=getc(pt);

printf("%c",x);

}

fclose(pt);

}

else

{

printf("Файл не найден!\n");

}

}

void exit()

{

cout << "Пока!" << endl;

cout << "************************************************\n";

exit(EXIT_SUCCESS);

}

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

{

int variant = prompt_menu_item();

char v;

switch (variant) {

case 1:

spravka();

break;

case 2:

prosmotr();

break;

case 3:

poisk();

break;

case 4:

rezfile();

break;

case 5:

exit();

break;

default:

cerr << "Вы выбрали неверный вариант!" << endl;

cout << "************************************************\n";

exit(EXIT_FAILURE);

}

return 0;

}

Приложение C

Экранные формы.

ЭФ-1.

ЭФ-2.

ЭФ-3.

ЭФ- 4.

ЭФ-5.

ЭФ-6.

ЭФ-7.

ЭФ-8.

ЭФ-9.

Размещено на Allbest.ru

...

Подобные документы

  • Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.

    курсовая работа [585,5 K], добавлен 24.03.2009

  • Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.

    курсовая работа [500,4 K], добавлен 13.01.2015

  • Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.

    курсовая работа [1,0 M], добавлен 26.12.2013

  • Изучение принципов построения линейных алгоритмов и простых расчетных программ на языке программирования C. Разработка программы расчета математических выражений на основе вводимых данных. Создание консольных приложений в среде Microsoft Visual Studio.

    лабораторная работа [254,4 K], добавлен 23.11.2014

  • Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.

    курсовая работа [639,0 K], добавлен 16.03.2012

  • Математическое описание задачи решения обыкновенного дифференциального уравнения численным явным методом Рунге-Кутта, разработка схемы алгоритма и написание программы в среде программирования Microsoft Visual Studio 2010. Тестирование работы программы.

    курсовая работа [1,1 M], добавлен 22.01.2014

  • Технология создания многопоточных приложений в современных системах программирования с использованием языка C# в Visual Studio.NET. Разработка алгоритма и структуры программы. Описание и особенности тестирования приложения с разным количеством потоков.

    курсовая работа [773,0 K], добавлен 14.03.2013

  • Разработка программы FileInfo, выдающей полную информацию о заданном файле с применением языка программирования С++, используя API функции Win 32. Использование пространств имён .NetFramework. Руководство пользователя и системные требования программы.

    курсовая работа [1,2 M], добавлен 25.04.2012

  • Проектирование модульной структуры программы сетевого мессенджера, назначение модуля "frmMsg". Разработка главной формы и интерфейса пользователя программы. Проектирование модуля формы "About". Разработка методики тестирования и отладка программы.

    курсовая работа [606,7 K], добавлен 19.01.2012

  • Проектирование и описание логической структуры программы для работы электронного магазина в среде Microsoft Visual C++. Инструкция, описывающая сведения для запуска программы. Обновление данных о доступных товарах. Поиск по каталогу доступных товаров.

    курсовая работа [27,6 M], добавлен 27.04.2012

  • Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.

    курсовая работа [571,9 K], добавлен 14.07.2012

  • История жизни братьев-богов, борющихся за сферы влияния на Земле. Мифологическое значение знаков зодиака. Разработка программы в среде программирования Delphi. Описание ее модулей, процедур, глобальных переменных. Назначение и применения приложения.

    курсовая работа [855,8 K], добавлен 22.01.2017

  • Определение необходимых модулей программы, структуры файла базы данных. Описание разработки программы, отладка и тестирование. Разработка приложения Organizer.exe, меню и руководство пользователя. Алгоритм обработки событий главного меню (расписания).

    курсовая работа [901,8 K], добавлен 11.02.2014

  • Глoбальныe фyнкции AFX и API. Сoзданиe пpилoжeния с пoмoщью Visual C++. Фyнкциoнальнoe назначeниe, описание логической структуры разрабатываемой программы "Десятичные дроби". Тpeбoвания к тexничeскoмy oбeспeчeнию, листинг и тестирование данной программы.

    курсовая работа [2,7 M], добавлен 21.06.2011

  • Microsoft Visual C++ и среда программирования Microsoft Developer Studio 6.0. Решение интеллектуальной задачи на компьютере. Построение алгоритма кодирования на Visual C++. Алгоритм решения задачи. Описание программы "Sort". Инструкции пользователя.

    курсовая работа [46,0 K], добавлен 27.11.2007

  • Создание приложения Windows Forms в среде Microsoft Visual Studio 2008. Разработка программы "Курсовой" для организации работы по учёту курсовых работ в учебных заведениях с возможностью добавления, удаления, редактирования и поиска информации.

    курсовая работа [2,2 M], добавлен 28.06.2011

  • Основные понятия структур сложной программы. Инкапсуляция программ со сложной структурой, особенности их реализации и предъявляемые требования, подходы к проектированию в целом, объектно-ориентированные языки. Процедуры, их типизация, основные параметры.

    курсовая работа [48,6 K], добавлен 09.04.2013

  • Понятие математического программирования. Класс как тип структуры, позволяющий включать в описание типа не только элементы данных, но и функции. Рассмотрение основных особенности языка программирования C++. Характеристика среды MS Visual Studio 2008.

    контрольная работа [318,0 K], добавлен 13.01.2013

  • Исследование теоретических аспектов разработки программы посредством использования Visual Basic. Анализ достоинств и недостатков данного языка программирования. Изучение особенностей создания интерфейса приложения. Основные этапы реализации программы.

    практическая работа [460,6 K], добавлен 22.01.2013

  • Разработка многопоточного приложения, выполняющего обмен данными между двумя процессами и анализ содержимого служебной области системного диска. Описание логической структуры программы, создание программы-инсталлятора, методика и результаты испытаний.

    курсовая работа [4,3 M], добавлен 27.03.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.