Основы программирования в ОС Unix

Автор работы: Пользователь скрыл имя, 26 Июля 2014 в 13:19, курсовая работа

Краткое описание

Впервые система Unix была описана в 1974 году в статье Кена Томпсона и Дэнниса Ричи в журнале "Communications of the ACM". С этого времени она получила широкое распространение и завоевала широкую популярность среди производителей ЭВМ, которые все чаще стали оснащать ею свои машины. Особой популярностью она пользуется в университетах, где довольно часто участвует в исследовательском и учебном процессе.

Прикрепленные файлы: 1 файл

курсач по ОС.docx

— 347.88 Кб (Скачать документ)

Министерство  транспорта  Российской  Федерации

Федеральное  агентство  железнодорожного  транспорта

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ

(СамГУПС)

 

 

Кафедра «Информационные системы и телекоммуникации»

 

 

 

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

по дисциплине: «Сетевые операционные системы»

на тему:

«Основы программирования в ОС Unix»

Вариант 10

 

                                                         

  Выполнил: студент 3 курса гр. ИС-11 

Землякова О. В.

                                                                 Проверил:

Франтасов Д. Н.

 

 

 

Самара 2013

 

ЛИСТ ЗАМЕЧАНИЙ

 

 

СОДЕРЖАНИЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

РЕФЕРАТ

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

Пояснительная записка 16 с., 6 рис., 4 источников.

 

 

ОПЕРАЦИОННЫЕ СИСТЕМЫ, ЯЗЫК ПРОГРАММИРОВАНИЯ С++, КОМПИЛЯТОР, КОМАНДНАЯ СТРОКА, ПРОГРАММА, ФАЙЛ, UNIX, GCC, MANDRIVA(MAGEIA).

 

Объектом разработки является программа на языке C++.

Цель работы – написать программу для нахождения наибольшего общего делителя на языке C++. в ОС Unix, с использованием модулей и заголовочных файлов.

В процессе работы были разработаны исходные файлы программы. В курсовой работе выполнена задача нахождения объёма цилиндра. Разработана блок-схема алгоритма работы программы.

 

 

 

 

 

 

 

 

 

 

 

 

ВВЕДЕНИЕ

Впервые система Unix была описана в 1974 году в статье Кена Томпсона и Дэнниса Ричи в журнале "Communications of the ACM". С этого времени она получила широкое распространение и завоевала широкую популярность среди производителей ЭВМ, которые все чаще стали оснащать ею свои машины. Особой популярностью она пользуется в университетах, где довольно часто участвует в исследовательском и учебном процессе.

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

В этой работе мы будем работать в командной строке ОС Linux (Mandriva Mageia), создадим исполняемый файл для нахождения объёма цилиндра, используя компилятор GNU Compiler Collection,а так же мета-пакет task – c++ -developer.

 

 

 

 

 

 

ЗАДАНИЕ

          Цель работы: изучение и использование языка программирования С++ для работы с ресурсами операционной системы Unix.

Написать программу на языке С++ в соответствии с вариантом, откомпилировать её, запустить на выполнение и запротоколировать в отчете все действия, результат выполнения и текст программы.

ВАРИАНТ 10.

 Вычислить объем цилиндра. Исходные данные считываются программой из файла. Результат сохранить в файл.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

        Язык программирования С++ был создан в начале 1980-х годов, его создатель сотрудник фирмы Bell Laboratories — Бьёрн Страуструп.

       Он придумал ряд усовершенствований к языку программирования C, для собственных нужд. Т. е. изначально не планировалось создания языка программирования С++.  Ранние версии языка С++, известные под именем »Cи с классами», начали появляться с 1980 года. Язык C, будучи базовым языком системы UNIX, на которой работали компьютеры фирмы Bell, является быстрым, многофункциональным и переносимым. Страуструп добавил к нему возможность работы с классами и объектами, тем самым зародил предпосылки нового, основанного на синтаксисе С, языка программирования. Синтаксис C++ был основан на синтаксисе C, так как Бьёрн Страуструп стремился сохранить совместимость с языком C.

         C++ компилируемый язык программирования общего назначения, сочетает свойства как высокоуровневых, так и низкоуровневых языков программирования. В сравнении с его предшественником, языком программирования Cи, наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «язык программирования C++» происходит от языка программирования C, в котором унарный оператор ++ обозначает инкремент переменной.

В 1983 году произошло переименование языка из «Cи с классами» в «язык программирования C++».

В него были добавлены новые возможности: виртуальные функции, перегрузка функций и операторов, ссылки, константы и многое другое. Его первый коммерческий выпуск состоялся в октябре 1985 года.

         Язык программирования C++ является свободным, то есть никто не обладает на него правами.

        Язык программирования C++ широко используется для разработки программного обеспечения. А именно, создание разнообразных прикладных программ, разработка операционных систем, драйверов устройств, а также видео игр и многое другое. Существует несколько реализаций языка программирования C++ — как бесплатных, так и коммерческих. Их производят проекты: GNU, Microsoft и Embarcadero (Borland). Проект GNU  — проект разработки свободного программного обеспечения (СПО).

      GNU Compiler Collection (обычно используется сокращение GCC) — набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.

Изначально названный GNU C Compiler поддерживал только язык Си. Позднее GCC был расширен для компиляции исходных кодов на таких языках программирования, как C++, Objective-C, Java, Фортран и Ada.

     Мета-пакет task – c++ -developer. Этот пакет является мета-пакетом, что означает, что его целью является, чтобы содержать зависимости для полноценной среды разработки программ на языке программирования Си.

Пакет сам по себе не содержит ПО, только зависимости.

 

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

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

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

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

 

РАБОТА ПРОГРАММЫ

После входа в операционную систему Mandriva Mageia нужно перейти в консоль, затем в директорию с программой - командой “cd KR”. Чтобы просмотреть список файлов и папок необходимо ввести команду “ls” (см. рис. 1)

Рисунок 1 – Каталог KR 

Для того, чтобы посмотреть исходный файл нужно ввести команду cat in. Для выполнения компиляции программы нужно ввести команду “g++ –o main.exe  main.cpp  Math.cpp”, где main.exe – имя выходного файла.

После компиляции исполняемый файл можно запустить командой “./main.exe” (см. рис. 2)

Рисунок 2 – Выполнение программы

Для открытия созданного файла, содержащего результат, необходимо ввести команду “cat in” (см. рис. 3)

Рисунок 3 – Вывод результата

 

 

 

 

 

 

 

 

 

 

 

 

 

ЛИСТИНГ И ТЕСТИРОВАНИЕ

main.cpp

//Программа вычисления объема цилиндра. Исходные данные считываются программой из файла. Результат сохранить в файл.

#include <iostream>

#include <fstream>

#include <string>

#include "Math.h"

#include <cmath>

 

using namespace std;

 

int main()

{

    setlocale(LC_ALL, "Rus");

string fileName;

double r, h;

//просим пользователя  ввести имя файла

cout<<"Введите имя файла:\n>> ";

cin>>fileName;

 

//открываем этот файл  и проверяем что он открылся

fstream iFile(fileName.c_str());

if(!iFile)

         {

cout<<"Невозможно открыть файл\n";

return -1;

}

 

//считываем значения и  проверяем что они считались

iFile>>r>>h;

if(iFile.bad() && iFile.gcount() == 0)     {

cout<<"Невозможно прочитать числа из файла\n";

iFile.close();

return -2;

}

 

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

iFile.seekg(0);

//вызываем наши функции  и сохраняем результаты

iFile<<"v= "<<objem(r,h)<<endl;

iFile.close();

 

cout<<"Объем подсчитан. См. файл \""<<fileName<<"\"."<<endl;

return 0;                         }

Math.cpp

 

#include "Math.h"

 

#define M_PI 3.14

 

double objem(double r, double h)

    {

return M_PI*r*r*h;;

    }

Math.h

 

#ifndef MATH_H

#define MATH_H

#include <iostream>

using std::ostream;

using std::cin;

using std::cout;

using std::endl;

 

double objem(double r, double h);

 

#endif 
БЛОК-СХЕМА

Блок-схема главной функции программы (main) изображена на рисунке 4.

Main.cpp

Рисунок 4 – блок-схема main.cpp

 

 

Блок-схема модуля (Math.cpp) изображена на рисунке 5.

Math.cpp

Рисунок 5 – блок-схема math.cpp

Блок-схема заголовочного файла (Math.h) изображена на рисунке 6.

 

Math.h

Рисунок 6 – блок-схема math.h

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

В ходе выполнения работы, мы ознакомились с серверной версией операционной системы Mandriva (Mageia) семейства Linux, приобрели основные навыки работы с командной строкой. В результате выполненной работы были разработаны программа для нахождения объема цилиндра, основанная на использовании модулей в языке С++.  Были достигнуты цели, поставленные перед началом тестирования.

Модульность – наиважнейшая функция в языке Си/C++. Принцип модульного программирования, который основан на применении функций, позволяет решить комплекс однотипных задач при применении заранее описанных функций. Созданные модули можно будет легко использовать в дальнейшем при разработке других программ.

Программа была написана в операционной системе Mandriva (Mageia), основанной на Debian GNU/Linux. Для создания исполняемого файла использовался компилятор GNU Compiler Collection,а так же task – c++ -developer.

 

 

 

 

 

 

 

 

 

 

 

 

 

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Бруй В. В., Карлов С. В. LINUX-сервер: пошаговые инструкции, инсталяции и настройки. - М.: СИП РИА, 2003.

2. Маслинский К. Операционная система Linux. – ИНТУИТ.ру, 2005.

3. Немет Э., Снайдер Г., Хейн Т. Руководство администратора Linux. – 2-e изд. / пер. с англ. – М.: ООО «И.Д. Вильямс», 2007.

4. Павловская Т. Программирование  на языке высокого уровня C/С++. - CПб.: Питер, 2003.


Информация о работе Основы программирования в ОС Unix