Техническое задание на курсовой проект

Санкт-Петербургский Государственный Электротехнический Университет

Им. В.И. Ульянова «ЛЭТИ»

 

 

Курсовая работа

По «Программированию»

 

 

Студент 1 курса (группа 3091 )

Дорошков А.Д.

Научный руководитель:

Анисимов В. И.

 

 

Содержание

Техническое задание на курсовой проект. . . . . . . . . . . . . 3
Блок-схема разработанной программы. . . . . . . . . . . . . . 4
Текст разработанной программы. . . . . . . . . . . . . . . . . 5


Техническое задание на курсовой проект

 

Разработать и отладить программу, содержащую меню и обеспечивающую:

1. Выполнение задачи 1.

2. Выполнение задачи 2.

3. Выполнение задачи 3.

4. Выполнение задачи 4.

5. Выполнение задачи 5.

6. Выполнение задачи 6.

7. Вывод информации о программе и её разработчике.

8. Выход из программы.

9. Аварийное завершение программы в случае ошибочного ввода пункта меню.

Содержание задач 1-6.

1. Ввод текстовой строки.

2. Вывод введённого текста в строку.

3. Вывод введённого текста в столбец.

4. Вывод введённого текста по строкам, каждая из которых содержит единственное слово.

5. Реверсирование введённого текста, и обработку реверсированного текста согласно п. п. 2-4.

6. Формирование таблицы y=f(x,n), строки которой соответствуют аргументу x, а столбцы – аргументу n. Заполнение таблицы расчётными значениями осуществляется согласно выражению y=2.5e-3*n*(exp(x/0.025)-1)+2.0*s, где ы=1+2+…+n. Для аргумента x установить диапазон изменения от 0.1 до 0.5 с шагом 0.1, а для аргумента n – диапазон изменения от 1 до 7 с шагом 1.

 

Блок-схема программы

На рисунке 1 изображена блок-схема разработанной программы.

Начало
Ввод пункта меню s
s==’1’
s==’2’
s==’8’
s==’7’
s==’6’
s==’3’
s==’4’
s==’5’
Конец
Вывод в строку
Ввод пункта меню s
Ввод строки str
Вывод в столбец
Вывод по словам
Реверсирование строки
Формирование таблицы
Вывод инф. о программе
Да
Нет
Да
Да
Да
Да
Да
Да
Да
Нет
Нет
Нет
Нет
Нет
Нет
Нет

 

 

Рисунок 1. Блок-схема разработанной программы.

Текст разработанной программы

#pragma hdrstop

#include <stdio.h>

#include <conio.h>

#include <iostream>

#include <string.h>

#include <iomanip>

#include <math.h>

using namespace std;

char s[1000];

#ifndef RUS_H // Обеспечивает перекодировку символов кириллицы в кодировку DOS для корректного вывода кириллицы на экран.

#define RUS_H

#include <windows.h>

void InputStr(); // Функция ввода строки

void InputStr()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

setlocale (LC_CTYPE,"Russian");

char ch;

memset(s, '\0', sizeof(s) - 1);

do s[strlen(s)] = fgetc(stdin);

while ((s[strlen(s)-1] != '\n') && (strlen(s)<1000));

fflush(stdin);

}

#endif

 

void OutStolb(); // Функция вывода строки в столбец.

void OutStolb()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

setlocale (LC_CTYPE,"Russian");

for (int i = 0; i <= strlen(s)-1; i++) {

setlocale (LC_CTYPE,"Russian");

cout<<s[i];

cout<<endl;

}

}

 

void OneWord(); // Функция вывода текста по строкам - одно слово в строке.

void OneWord()

{

setlocale (LC_CTYPE,"Russian");

for (int i = 0; i <= strlen(s)-1; i++) {

setlocale (LC_CTYPE,"Russian");

cout<<s[i];

if(s[i]==' ') cout<<endl;

}

}

 

void Table(); // Функция вывода таблицы.

void Table()

{

setlocale (LC_CTYPE,"Russian");

cout<<setw(5)<<" "; // Вывод верхней строки.

for (int i = 1; i <= 7; i++) {

setlocale (LC_CTYPE,"Russian");

cout<<setw(8)<<"n="<<i;

}

cout<<endl;

 

float xn, s;

for (float x = 0.1; x <= 0.5; x+=0.1) {

cout<<"x="<<x<<" ";

float s=0;

for (float n = 1; n <= 7; n++) {

setlocale (LC_CTYPE,"Russian");

s+=n;

xn=2.5e-3*n*(exp(x/0.025)-1)+2.0*s;

cout<<setw(10)<<setprecision(3)<<xn;

}

cout<<endl;

}

}

 

 

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

{

using namespace std;

setlocale (LC_CTYPE,"Russian");

 

while (true) // Зацикливание

{

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

cout<<"Выберите пункт меню:"<<endl;

cout<<"1. Ввод текстовой строки."<<endl;

cout<<"2. Вывод введённого текста в строку."<<endl;

cout<<"3. Вывод введённого текста в столбец."<<endl;

cout<<"4. Вывод введённого текста по строкам, каждое из которых содержит одно слово."<<endl;

cout<<"5. Реверсирование введённого текста."<<endl;

cout<<"6. Формирование таблицы y=f(x,n)."<<endl;

cout<<"7. Вывод информации о программе и её разработчике."<<endl;

cout<<"8. Выход из программы."<<endl;

switch (getch()) { // Выбор действия в зависимости от введённого числа.

case '1': cout<<endl<<"Введите строку:"<<endl; InputStr(); cout<<endl<<"Строка введена"<<endl;break;

case '2': cout<<endl<<"Результат:"<<endl; puts(s); break;

case '3': cout<<endl<<"Результат:"<<endl; OutStolb(); cout<<endl; break;

case '4': cout<<endl<<"Результат:"<<endl; OneWord(); break;

case '5': strrev(s); cout<<endl<<"Строка реверсирована."<<endl; break;

case '6': cout<<endl; cout<<"Вывод таблицы значений функции y=f(x,n)"<<endl<<"y=2.5e-3*n*(exp(x/0.025)-1)+2.0*s"<<endl<<endl; Table(); break;

case '7': cout<<endl<<"Данная программа написана на языке C++ Builder с помощью интегрированной среды разработки Microsoft Visual Studio 2010 по техническому заданию на курсовой проект."<<endl;

cout<<"Автор программы Дорошков Артем Демьянович. Группа 3091. ЛЭТИ."<<endl<<"2014"<<endl; break;

case '8': exit(0); break; // Выход без ошибки.

default: exit(1); // Выход с ошибкой.

}

 

setlocale (LC_CTYPE,"Russian");

}

return 0;

}