Описание работы программы




Курс «ИНФОРМАТИКА»

Семестр I

 

«Разработка прикладных программ на языке программирования

высокого уровня С++»

 

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

 

П О Я С Н И Т Е Л Ь Н А Я З А П И С К А

 

Руководитель: _____________ А.А. Фокин

 

Студент: _____________ Проскурина Анастасия Константиновна

 

Группа: _____________ Фт — 100801

 

Дата: _____________ 25.12.2010

 

Екатеринбург

ФГАОУ ВПО УрФУ

ЗАДАНИЕ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ

 

«УТВЕРЖДАЮ»

Зав кафедрой

 

«____» __________________ 2010г.

______________________________ С.Л. Гольдштейн

 

Специальность 230102

Студент группы Фт-100801

Проскурина Анастасия Константиновна

 

Руководитель курсовой работы А.А. Фокин

Сроки выполнения работы: с 25 ноября 2010г. по 25 декабря 2010г.

1. Тема курсовой работы: «Разработка прикладных программ на языке программирования высокого уровня С++»

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

3. Особые дополнительные сведения. Этапы проектирования и реализации программы и оформления документов выполняются в оптимальном сочетании машинного и безмашинного способов исполнения.

4. План выполнения курсовой работы:

 

Наименование элементов работы   Сроки   Примечания   Отметка о выполнении  
Выдача задания   25.11.2010      
Оформление технического задания 25.11.10.-29.11.10    
Эскизный проект   30.11.10-03.12.10    
Технический проект   03.12.10-08.12.10    
Рабочий проект   08.12.10-.13.12.10    
Оформление пояснительной записки 14.12.10-17.12.10    
Защита курсовой работы   20.12.10-25.12.10    


5. Курсовая работа закончена

6. Работа зачтена

 

Руководитель А.А. Фокин

Оглавление

1. Аннотация........................................................ 3

2. Техническое задание.............................................. 3

3. Спецификация..................................................... 4

4. Структура интерфейса пользователя................................ 5

5. Описание работы программы........................................ 6

6. Руководство пользователя......................................... 6

7. Заключение....................................................... 6

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

Приложение A........................................................ 8

Приложение B....................................................... 11

Приложение C....................................................... 14

 

1. Аннотация

1.1. Наименование Области Знаний: информатика

1.2. Разработка велась по заказу кафедры ВТ УрФУ

1.3. Программный комплекс предназначен для:

1.3.1. Хранения и вывода информации о стране

1.3.2. Калькулятора с тремя функциями

1.3.3. Имитации транспортной карты

1.4. Технические характеристики для всех задач:

1.4.1. Файл 'Unit1.cpp' является файлом, содержащим исходный код.

1.4.2. Файл 'Unit1.bpr' является файлом проекта.

1.4.3. Файл 'Unit1.exe' является исполняемым файлом, предоставляемым заказчику.

1.4.4. В программе используются стандартные средства среды программирования С++.

1.4.5. Программа не предусматривает взаимо­действие с другими программными продуктами.

1.4.6. Программа проектировалась в среде Borland С++ Builder 6.0

1.4.7. Требуемая операционная система Windows 98/XP/Vista /ME.

1.5. Требования к вычислительной системе. Процессор не ниже Intel Pentium 100MHz Оперативная память 32Mb, места на жестком диске – 3Mb.

1.5.1. Объем программного продукта = 70 Kb.

1.5.2. Программа не защищена

 

2. Техническое задание

Курсовая работа для специальности 23.01.02.

2.1.1. Задание №1

Создайте структуру Country и в ней переменные для хранения характеристик стран мира: площадь в тыс.кв.км. (целое), численность населения в млн.чел. (дробное), бюджет в млн.долл. (дробное). Создайте 4 переменных этой структуры, две заполните значениями самостоятельно разными способами, значение последних двух спросите у пользователя. Оформите вывод значений всех четырех переменных на экран. Найдите самую населенную страну, страну с самым высоким бюджетом.

2.1.2. Задание №2

Напишите калькулятор, умеющий умножать два числа, находить остаток от деления одного числа на другое и делить одно число на другое. Все эти три операции опишите с помощью функций, принимающих и возвращающих дробные значения (тип float). Установите ограничение на вводимые операнды [-100,0..100,0].

2.1.3. Создайте класс, имитирующий транспортную карту. На карту заносится изначальное число поездок (реализовать через конструктор), в классе определены методы для уменьшения количества поездок на карте (пассажир воспользовался ей) и увеличения (пассажир докупил "проходы"). Программа должна определять, когда на карте осталось 3 поездки или менее, и предупреждать пользователя о необходимости пополнить баланс, а также не разрешать проход при достижении нулевого состояния счёта.

2.2. Требования к интерфейсу пользователя: реализовать консольное приложение.

2.3. Прочие детали разработки. Разработка программного продукта должна осуществляться в соответствии со сроками, указанными в «Задании по курсовому проектированию».

 

3. Спецификация

3.1. Структура программного продукта

Таблица 1. Структура программного продукта

№ задания Имя файла Тип Размер Описание
  Unit1.cpp Исходный код 4.60 КB Файл содержит исходный текст задачи №1
Unit1.bpr Описывает структуру программного проекта 3.30 KB Файл содержит структуру проекта задания №1
Unit1.exe Исполняемый Файл 17.5 КВ Исполняемый файл, предоставляемый заказчику
  Unit1.cpp Исходный код 3.31 KB Файл содержит исходный текст задачи №2
Unit1.bpr Описывает структуру программного проекта 3.30 KB Файл содержит структуру проекта задания №2
Unit1.exe Исполняемый файл 15.0 КВ Исполняемый файл, предоставляемый заказчику
  Unit1.cpp Исходный код 4.37 KB Файл содержит исходный текст задачи №3
Unit1.bpr Описывает структуру программного проекта 3.30 KB Файл содержит структуру проекта задания №3
Unit1.exe Исполняемый файл 14.5 КВ Исполняемый файл, предоставляемый заказчику

4. Структура интерфейса пользователя

4.1. Пользователю не доступны кнопки и элементы управления во всех трех задачах, так как работа в приложениях происходит в консоли.

 

Рис 1. Пример работы программы №1

 

Рис 2. Пример работы программы №2

 

 

Рис 3. Пример работы программы №3

Описание работы программы

6.1. Задача №1. У пользователя программа запрашивает значения площади, численности населения и суммы бюджета двух стран, проверяя правильность ввода – все значения больше нуля. Затем выводит значения о всех 4-х странах. После этого на экран выводится номер самой населенной страны и страны с самым высоким бюджетом.

6.2. Задача №2. Программа запрашивает у пользователя две переменные,

проверяя вводимые операнды на установленные ограничения

[-100,0..100,0]. Затем выводит результат умножения, деления или нахождения остатка от деления, в зависимости от выбора пользователя.

6.3 Задача №3. Программа делает запрос, сколько поездок пользователь заносит на транспортную карту. Затем в зависимости от того, пользователь воспользовался или докупил «проходы», уменьшает или увеличивает на единицу количество поездок на карте соответственно, а также каждый раз выводит состояние счета. Если на карте остается 3 или менее «проходов», то программа предупреждает пользователя о необходимости пополнить баланс и, при достижении нулевого состояния счёта, не разрешает проход.

6. Руководство пользователя

7.1 Задача №1. Ввести на запрос программы значение площади первой страны (в тыс.кв.км.), численности населения (в млн.чел.) и бюджета (в млн.долл.).После введения каждого из значений нажать клавишу Enter для продолжения. На экран будут выведены характеристики 4-х стран, а также самая населенная страна и страна с самым высоким бюджетом. Для выхода из программы нажать любую клавишу на клавиатуре.

7.2 Задача №2. Ввести на запрос программы две переменные (x1, x2). Программа проверит введенные значения на ограничения. Далее она спросит, какое действие сделать: умножить, поделить, найти остаток от деления. Выбрать действие и нажать Enter для вывода результата. Для выхода из программы нажать любую клавишу на клавиатуре.

7.3 Задача №3. Ввести на запрос программыизначальное количество поездок на транспортной карте. После ввода программа спросит, воспользоваться картой или докупить «проходы». В зависимости от выбора пользователя уменьшится или увеличится число «проходов» на единицу, соответственно. Если на карте 3 или меньше поездок, программа предупредит пользователя о необходимости пополнить баланс, а также не разрешит проход при достижении нулевого состояния счёта.

7. Заключение

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

В этой программном комплексе можно усовершенствовать:

8.1. Оформить цикл с выбором: продолжить или завершить программу для сравнения других значений характеристик у стран. Сделать так, чтобы программа находила страну со средними характеристиками среди 4х стран.

8.2. Добавить возможность выполнять различные действия с несколькими переменными. Оформить цикл с выбором: продолжить или завершить программу с получившимся результатом или с новыми переменными.

8.3. Добавить счетчик, который считает число потраченных поездок пользователем.

 

 

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

1. Сервер CodeNet – всё для программиста [Электронный ресурс] -

Режим доступа: https://www.codenet.ru/

2. Бьерн Страуструп. Язык программирования С++ [Электронный ресурс] -

Режим доступа: https://lib.ru/CPPHB/cpptut.txt

3. Как программировать на С++ [Электронный ресурс] -

Режим доступа: https://deitel-index.blogspot.com/

4. SIZOV.INFO Портал для программистов [Электронный ресурс] -

Режим доступа: https://sizov.by.ru/books/cpp/cpp1.shtml

 

 

Приложение A

Текст исходного кода с комментариями:

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

#include <vcl.h>

#include <iostream.h>

#include <conio.h>

#pragma hdrstop

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

#pragma argsused

struct Country /* Определение и обозначение структуры Country */

{

int area;

float population;

float budget;

/* Структура Country имеет 3 элемента area(типа int),

population и budget(типа float)*/

};

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

{

Country c3 = {9373,274.2,142000}; / * Инициализация переменных

типа struct одним способом */

Country c1,c2,c4;

c4.area = 17075;

c4.population = 145;

c4.budget = 695000; /* Инициализация переменных типа struct

вторым способом */

do

{

cout << "Enter area Country c1: ";

cin >> c1.area; /* Заполнение пользователем площади

первой страны */

if (c1.area<=0) /* Проверка ввода */

cout << "Error!\n";

}

while (c1.area<=0);

do

{

cout << "Enter population Country c1: ";

cin >> c1.population; /* Заполнение пользователем

численности населения первой страны */

if (c1.population<=0) /* Проверка ввода */

cout << "Error!\n";

}

while (c1.population<=0);

do

{

cout << "Enter budget Country c1: ";

cin >> c1.budget; /* Заполнение пользователем

суммы бюджета первой страны */

if (c1.budget<=0) /* Проверка ввода */

cout << "Error!\n";

}

while (c1.budget<=0);

do

{

cout << "Enter area Country c2: ";

cin >> c2.area; /* Заполнение пользователем площади

второй страны */

if (c2.area<=0) /* Проверка ввода */

cout << "Error!\n";

}

while (c2.area<=0);

do

{

cout << "Enter population Country c2: ";

cin >> c2.population; /* Заполнение пользователем

численности населения второй страны */

if (c2.population<=0) /* Проверка ввода */

cout << "Error!\n";

}

while (c2.population<=0);

do

{

cout << "Enter budget Country c2: ";

cin >> c2.budget; /* Заполнение пользователем

суммы бюджета второй страны */

if (c2.budget<=0) /* Проверка ввода */

cout << "Error!\n";

}

while (c2.budget<=0);

/* Значение двух других переменных структуры заполняется

пользователем, при проверке об условии, что характеристики

cтран не могут быть отрицательными*/

cout << "\nArea c1: " << c1.area << " Population c1: " <<

c1.population;

cout << " Budget c1: " << c1.budget << endl;

cout << "\nArea c2: " << c2.area << " Population c2: " <<

c2.population;

cout << " Budget c2: " << c2.budget << endl;

cout << "\nArea c3: " << c3.area << " Population c3: " <<

c3.population;

cout << " Budget c3: " << c3.budget << endl;

cout << "\nArea c4: " << c4.area << " Population c4: " <<

c4.population;

cout << " Budget c4: " << c4.budget << endl << endl;

 

/* Вывод на экран трех характеристик о 4х стран мира */

 

if (c1.population > c2.population && c1.population >

c3.population && c1.population > c4.population)

cout << "Most population country c1: " <<

c1.population<< endl << endl;

if (c2.population > c1.population && c2.population >

c3.population && c1.population > c4.population)

cout << "Most population country c2: " << c2.population

<< endl << endl;

if (c3.population > c2.population && c3.population >

c1.population && c3.population > c4.population)

cout << "Most population country c3: " << c3.population

<< endl << endl;

if (c4.population > c2.population && c4.population >

c3.population && c4.population > c1.population)

cout << "Most population country c4: " << c4.population

<< endl << endl;

 

/* Поиск и вывод самой населенной страны */

 

if (c1.budget > c2.budget && c1.budget > c3.budget && c1.budget

> c4.budget)

cout << "Most budget country c1: " << c1.budget;

if (c2.budget > c1.budget && c2.budget > c3.budget && c2.budget

> c4.budget)

cout << "Most budget country c2: " << c2.budget;

if (c3.budget > c2.budget && c3.budget > c1.budget && c3.budget

> c4.budget)

cout << "Most budget country c3: " << c3.budget;

if (c4.budget > c2.budget && c4.budget > c3.budget && c4.budget

> c1.budget)

cout << "Most budget country c4: " << c4.budget;

 

/* Поиск и вывод страны с самым высоким бюджетом */

 

getch ();

return 0;

}

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

 

Приложение B

Текст исходного кода с комментариями:

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

#include <vcl.h>

#include <iostream.h>

#include <conio.h>

#include <math.h>

#pragma hdrstop

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

#pragma argsused

float multiplication(float, float);

float division(float, float);

int modulo(int, int);

/* Создаются прототипы трёх функций под именами:

- умножение,

- деление,

- остаток от деления,

все эти функции имеют свой тип возвращаемого значения,

а также типы и имена своих параметров */

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

{

float x1,x2; /* переменные x1, x2 тоже типа float */

int a;

do

{

cout << "Enter x1: "; /* запрос 1й переменной */

cin >> x1; /* чтение и запись в 1ю переменную */

if (x1<-100 || x1>100) /* проверка условия ограничения

вводимых данных */

cout << "Error!\n";

/* если x1 меньше -100 или больше 100, то пишет

ошибку */

}

while (x1<-100 || x1>100);

/* пока переменная x1 не входит в область определения,

запрашивать ее значение */

do

{

cout << "Enter x2: "; /* запрос 2й переменной */

cin >> x2; /* чтение и запись во 2ю переменную */

if (x1<-100 || x1>100) /* проверка условия ограничения

вводимых данных */

cout << "Error!\n";

/* если x2 меньше -100 или больше 100, то пишет

ошибку */

}

while (x1<-100 || x1>100);

/* пока переменная x2 не входит в область определения,

запрашивать ее значение */

cout << "Enter 1-multiply, 2-divide, 3-modulo: "; /* программа

запрашивает пользователя действие */

cin >> a;

if (a==1)

cout << "Reply: " << multiplication(x1, x2);

/* возврат значения из функции multiplication и его

вывод на экран */

if (a==2)

cout << "Reply: " << division(x1,x2); /* возврат

значения из функции division и его вывод на экран */

if (a==3)

cout << "Reply: " << modulo(x1,x2); /* возврат значения

из функции modulo и его вывод на экран */

if (a!=1 && a!=2 && a!=3)

cout << "Error! This choice is not!"; /* программа

проверяет правильность ввода пользователя */

getch();

return 0;

}

float multiplication(float a1, float a2)

{

float x1,x2; /* переменные внутри функции, которые нужны для

расчетов */

return a1*a2; /* Значение возвращается из функции с помощью

оператора return */

}

float division(float a1, float a2)

{

float x1,x2; /* переменные внутри функции, которые нужны для

расчетов */

return a1/a2; /* Значение возвращается из функции с помощью

оператора return */

}

int modulo(int a1, int a2)

/* операция нахождения остатка от деления определена только для целых чисел */

{

float x1,x2; /* переменные внутри функции, которые нужны для

расчетов */

return a1 % a2; /* Значение возвращается из функции с помощью

оператора return */

}

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

 

 

Приложение C

Текст исходного кода с комментариями:

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

#include <clx.h>

#include <conio.h>

#include <iostream.h>

#pragma hdrstop

 

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

#pragma argsused

class Card /* Создание класса */

{

private: /* Описание типов данных и создание механизма

регулирования */

int travel; /* Создание полей класса */

public: /* Описание действий, на которые имеется

право доступа */

Card(int a): travel(a) /* Создание конструктора с

переменной а; «travel(a)» - значение переменной

конструктора со значением a, которое вводит

пользователь */

{}

void traveldown() /* Создание функции */

{

if (travel>0)

travel--; /* для уменьшения числа

поездок, при условии, что их кол-во

больше нуля */

}

void travelup() /* Создание функции */

{

travel++; /* для увеличения числа поездок */

}

void control() /* Создание функции-проверки карты */

{

if (travel<=3 && travel>0)

{

cout << "Attention! Travel on card " <<

travel << ". Improve your balance,

please.\n";

/* Если на карте осталось 3 или меньше поездок,

программа предупреждает об этом */

}

else if (travel==0)

cout << "Sorry, the card has 0 trips.

Passage interdit!"

<< " Improve your balance, please.\n ";

/* Если на карте 0 "проходов", проход

воспрещен, то программа просит

пополнить счет */

Else

cout << "The current number of trips: "

<< travel << endl;

}

};

int main()

{

int trips;

do

{

cout << "Enter travel: "; /* Программа спрашивает

изначальное число поездок */

cin >> trips;

if (trips<0)

cout << "Error!\n";

}

while (trips<0); /* Проверка вводимого числа поездок */

Card ecard(trips); /* Создается объект с параметром, параметр

передается в конструктор, который устанавливает изначальное

число поездок */

int choice;

do

{

do

{

cout << "1-to use a card, 2-to buy travel, 3-

exit: ";

cin >> choice; /* Программа предлагает

пользователю воспользоваться картой или

докупить проходы */

}

while (choice<=0 || choice>=4); /* Программа будет

спрашивать действие у пользователя до тех пор, пока

вводимая переменная не будет равна 1, 2 или з*/

switch (choice) /* Создается переключатель */

{

case 1: /* Если пользователь воспользовался

картой, будут выполнены функции:

- уменьшениче числа «проходов» на карте

- проверка карты */

ecard.traveldown();

ecard.control();

break; /* Вместо фигурных скобок */

case 2: /* Если пользователь докупил "проходы",

будут выполнены функции:

- повышение числа проходов на карте

- проверка карты */

ecard.travelup();

ecard.control();

break;

case 3:

cout << "Exit -->";

break;

default: /* При любом другом значении

переменной choice, программа выдаст ошибку */

cout << "Error!";

break;

}

}

while (choice!=3); /* Цикл с пост-условием выполняется до тех

пор, пока пользователь не введет 3 - exit */

getch ();

return 0;

}



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: