Диплом: Автоматизация процесса контроля знаний учащихся ГОУ СОШ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
15
После процесса стандартизации ANSI, спецификации языка C остается
относительно неизменным в течение некоторого времени, тогда как C++
продолжает развиваться. (На самом деле, Нормативной Поправкой 1 создана
новая версия языка C в 1995 году, но эта версия редко признается.) Однако,
стандарты подверглись пересмотру в конце 1990-х годов, что привело к созданию
ISO 9899:1999, который был опубликован в 1999 году. Этот стандарт обычно
называют "C99". Он была принята в качестве стандарта ANSI в марте 2000 [13,
c.197].
Новые функции, добавленные в C99 включают в себя:
встроенные функции
освобождение ограничения на расположение объявления
переменных (в соответствии с C++)
Помимо нескольких новых типов данных, включая long long int (для
уменьшения проблем, связанных с переходом с 32-разрядных на 64-битные
процессоры, надвигающегося на много старых программ, которое предсказало
устаревания x86 архитектуры), явный булев типа данных, и тип представляющая
комплексные числа массивы переменной длины.
Официальная поддержка комментариев, начинающиеся с «/ /» как в C++
(которые уже поддержали многие компиляторы C89 как расширение не-ANSI)
несколько новых библиотечных функций, в том числе snprintf несколько новых
заголовочных файлов, в том числе stdint.h. Интерес к поддержке новых
особенностей С99 является смешанной. Хотя GCC и нескольких коммерческих
компиляторы поддерживают большинство из новых особенностей С99,
компиляторы сделанные Microsoft и Borland не поддерживают, и эти две
компании, похоже, не заинтересованы в добавлении такой поддержки.
Си программа состоит из функций и переменных. Си функции как
подпрограммы и функции Fortran или процедуры и функции Паскаля.
Особенность функции main в том, что программа начинает выполнение
именно с функции main. Это означает, что каждая программа Си должна иметь
main функцию. main функция, как правило, вызывает другие функции, которые
помогают выполнять свою работу, например, printf в приведенном выше примере.
16
Программист может написать некоторые из этих функций, а другие могут
быть вызваны из библиотеки. В приведенном выше примере return 0 дает
возвращаемое значения для main функций. Это указывает на успешное
выполнение программы для вызова оболочки программы.
Си функция состоит из типа возвращаемого значения, имени, списка
параметров (или void в скобках, если таковых нет) и тела функции. Синтаксис
функции тела эквивалентен составному оператору.
В if объявлении, если выражение в скобках отлично от нуля или правда, то
управление передается оператору, следующему за if. Если в предложении
присутствует else, то контроль перейдет к следующему за else набору действий,
если выражение в скобках равно нулю или ложно.
Оператор управления switch в этом случае необходимо перечислить
несколько значений, которые может принимать переменная, стоящая в качестве
переменной выбора, которое должно иметь целый тип. Для каждого значения
переменной-выбора могут выполнятся несколько действий, которые выбираются.
Каждая ветка действий может быть помечена с помощью case метки, что выглядит
как ключевое слово case, которое следует константным выражением, а затем
двоеточие (:). Никакие значения, связанных с константами switch не могут иметь
одно и тоже значение. Также может быть не более одной default метки, связанной
со swith; управление передается default метке, если ни одно из константных
значений не совпало с переменной выбора, которая стоит в скобках после switch .
В приведенном ниже примере, если будет совпадение переменной выбора и
константы, то тогда будет выполнен набор действий, идущий после двоеточия.
switch () {
case :
printf();
break;
case :
printf();
break;
default :
}
17
Повторения (Циклы). Си имеет три формы операторов циклов:
do
{
}
while ();
while ()
{
}
for ( ; ; )
{
}
В while и do операторах, тело выполняется неоднократно, пока значение
выражения остается ненулевой или правдой. Для while проверка правильности
условия происходит каждый раз перед началом выполнения; для do проверка
условия происходит после выполнения тела цикла. Если все три выражения
присутствуют в операторе for.
for (e1; e2; e3)
s;
то это эквивалентно тому же, что и
e1;
while (e2) {
s;
e3;
}
Идентификатор должен указывать на метку, расположенную в текущей
функции. Управление передается на помеченный оператор. Continue оператор
может появиться только в пределах повторения цикла и заставляет пропустить
оставшиеся шаги на текущем месте и перейти к следующему шагу цикла. То есть,
в каждом из заявления [7, c.291].
while (expression) {
/* ... */
18
continue;
}
do {
/* ... */
continue;
} while (expression);
for (optional-expr; optexp2; optexp3) {
/* ... */
continue;
}
Вreak оператор используется для выхода из циклов for, while, do, или switch.
Управление передается оператору, следующему за тем, в котором было прервано
действие. Функция возвращает в то место, из которого было вызвано значение с
помощью оператора return. После return следует выражение, значение которого
возвращается в место, откуда вызывалась. Если функция не содержит оператор
return, то это эквивалентно return без выражения. В любом случае, возвращаемое
значение не определено.
Немного стоит сказать о типах данных языка С. Значения в <limits.h> и
<float.h> заголовочных файлах определяют диапазоны основных типов данных.
Диапазоны float, double, и long double типа, как правило, упомянуты в IEEE 754
стандарте (табл.1.1).
Таблица 1.1
Типы данных
имя
минимальный дипазон
char
-127..127 или 0..255
unsigned char
0..255
signed char
-127..127
int
-32767..32767
short int
-32767..32767
long int
-2147483647..2147483647
float
1e-37..1e+37 (положительные числа)
19
double
1e-37..1e+37 (положительные числа)
long double
1e-37..1e+37 (положительные числа)
Массивы также имеют несколько иную структуру. Если объявление
переменной происходит с использованием вместе с указанием квадратных скобок
([]), то считается, что объявлен массив. Строкиэто массивы символов. Они
заканчиваются символом нуля (представлен в С как '\0', нулевой символ).
Примеры:
int myvector [100];
char mystring [80];
float mymatrix [3] [2] = {2.0, 10.0, 20.0, 123.0, 1.0, 1.0} char lexicon [10000]
[300]; /* 10000 строк, каждая из которых может содержать максимум 300
символов. */int a[3][4];
Последний пример создает массив массивов, но может рассматриваться как
многомерный массив для решения большинства задач. Если переменная
предваряется символом звездочка (*) в своем заявлении, тогда она становится
указателем.
Примеры:
int *pi; /* указатель на целое */
int *api[3]; /* массив указателей целого типа */
char **argv; указатель на char */
Значение в адресе хранится в переменной-указателе и могут быть доступны
в программе при вызове переменной-указателя со звездочкой. Например, если
первое заявление приведенном выше примере, *pi является int.
Вreak оператор используется для выхода из циклов for, while, do, или switch.
Управление передается оператору, следующему за тем, в котором было прервано
действие. Функция возвращает в то место, из которого было вызвано значение с
помощью оператора return [5, c.104]. После return следует выражение, значение
которого возвращается в место, откуда вызывалась. Если функция не содержит
оператор return, то это эквивалентно return без выражения. В любом случае,
возвращаемое значение не определено.
20
Немного стоит сказать о типах данных языка С. Значения в <limits.h> и
<float.h> заголовочных файлах определяют диапазоны основных типов данных.
Диапазоны float, double, и long double типа, как правило, упомянуты в IEEE 754
стандарте.
Это называется «разыменования» указателя. Другой оператор, &
(амперсанд), называется адрес-оператора, возвращает адрес переменной, массива
или функции. Таким образом, с учетом вышесказанного int i, *pi; /* объявим целое
и указатель на целое */ pi = &i; i и *pi могут быть использованы как
взаимозаменяемые (по крайней мере до того, как pi будет установлено что-то
другое).
Для работы со строками вам не нужно включать библиотеку, потому что в
стандартной библиотеке C, уже присутствуют функции для обработки строк и
блоков данных, как если бы они были массивы типа char.
Наиболее важные функции строки:
strcat(dest, source) добавляет строку source в конец строки dest.
strchr(s, c) - находит первую очередь характера c в строку s и возвращает
указатель на него или пустой указатель, если c не найден strcmp(a, b) - сравнивает
строки и a b (лексических заказа); возвращает отрицательным, если меньше a b ,
0, если равны, положительным, если больше.
strcpy(dest, source) - копирует строку source в строку dest.
strlen(st) - возвращает длину строки st.
strncat(dest, source, n) - добавляет максимум n символов из строки
source в конец строки dest ; символы после нулевого символа не копируются.
strncmp(a, b, n) - сравнивает максимум n символов из строки и a b
(лексических заказа); возвращает отрицательным, если меньше a b , 0, если равны,
положительным, если больше.
strncpy(dest, source, n) - копии максимум n символов из строки source
в строку dest.
strrchr(s, c) - находит последний экземпляр символа c в строку s и
возвращает указатель на него или пустой указатель, если c не найден.
Менее важные функции строки:
21
strcoll(s1, s2) - сравнить две строки в соответствии с локали
упорядоченной последовательности.
strcspn(s1, s2) - возвращает индекс первого символа в s1 , что
соответствует любому символу, в s2.
strerror(err) - возвращает строку с сообщением об ошибке
соответствующий код в err.
strpbrk(s1, s2) - возвращает указатель на первый символ в s1 , что
соответствует любому символу, в s2 или пустой указатель, если не найден.
strspn(s1, s2) - возвращает индекс первого символа в s1 , который
соответствует не символ в s2.
strstr(st, subst) - возвращает указатель на первое вхождение строки
subst в st или пустой указатель, если нет такой подстроки существует.
strtok(s1, s2) - возвращает указатель на маркер в s1 разделяются
символами в s2.
strxfrm(s1, s2, n) - преобразует s2 в s1 использовании локали правил.
В языке программирования Си, ввод и вывод осуществляется через группу
функций в стандартной библиотеке. В ANSI / ISO Си, те функции, которые
определены в<stdio.h> заголовка.
Три стандартных потока ввода-вывода
stdin стандартный ввод.
stdout стандартный вывод.
stderr стандартная ошибка.
Эти потоки автоматически открывается и закрывается средой исполнения,
они не должны быть открыты в явном виде. В следующем примере показано, как
структурирована обычная программа для фильтрации букв:
//Заголовочные файлы, например, #include <stdio.h&qt;
int main()
{
int c;
while ((c = getchar()) != EOF ) {
22
/* do various things
to the characters */
if (anErrorOccurs) {
fputs("an error eee occurred\\n", stderr);
break;
}
/* ... */
putchar(c);
/* ... */
}
return 0;
}
Параметрами, представленными в командные строки, передаются в
программу C с двумя предопределенными переменными количество аргументов
командной строки хранится в переменной argc, а отдельные аргументы как
символьные массивы в указателе на массив argv. Так запуск программы их
командной строки в виде Myprog p1 p2 p3 даст результаты похожие на
(примечание: нет никакой гарантии, что отдельные строки являются смежными):
К отдельным значениям параметров можно получить доступ используя
argv[1] , argv[2] , или argv[3].
Многие особенности языка Си обеспечиваются стандартной библиотекой
Си. «Хостинг» реализация предоставляет все библиотеки C. (В большинстве
реализаций размещаются, но некоторые, не предназначены для использования с
операционной системой) [13, c.128]. Доступ к библиотеке достигается в том числе
стандартными заголовками через директиву препроцессора #include. См. ANSI C
стандартные библиотеки, GCC (GNU C Compiler). Для начала программирования
необходимо изучить некоторые аспекты и определения. Compiler компилятор,
программа, которая читает текст программы, который вы написали («код») и
23
переводит его в зависимости от языка спецификаций в исполняемый файл
программы.
1.2 Характеристика комплекса задач, задачи и обоснование необходимости
автоматизации
Следующий этап теоретического исследования – это выбор программной
среды, которая хорошо оперирует функционалом языка С++. Мы рассмотрели
пять программных сред, многие из них поддерживают также и другие языки.
Важнейшим элементом в процессе разработки приложения является выбор
правильной IDE, зависящий не только от платформы, но и уровня собственной
подготовки. Давайте познакомимся с наиболее популярными из них методом «от
противного», представляя не столько их преимущества, сколько наиболее часто
встречаемые укоры со стороны разработчиков.
Microsoft Visual Studio. IDE обладает огромным набором средств и
возможностей: позволяет разрабатывать как консольные приложения, так и
приложения с графическим интерфейсом, в том числе с поддержкой технологии
Windows Forms, а также веб-сайты, веб-приложения и веб-службы для всех
поддерживаемых платформ: Windows, Windows Mobile, Windows CE, .NET
Framework, Xbox, Windows Phone, .NET Compact Framework и Silverlight.
Несмотря на изобилие полезных инструментов, в использовании Visual
Studio есть и минусы, например, невозможность работать на платформах,
отличных от Windows, однако сейчас проблема решена выпуском Microsoft Visual
Studio Code, которая работает на всех популярных платформах: Windows, Linux,
Mac OS X [11, c.42].
Eclipse CDT. Eclipse – свободная интегрированная среда разработки
модульных кроссплатформенных приложений, которая приобрела большую
популярность среди разработчиков на Java, однако в данной статье мы
рассмотрим выпуск Eclipse CDT (С/С++ Development Tooling). Данная среда
является отличным выбором, так как Eclipse CDT не только обладает всеми
необходимыми инструментами, но и бесплатна и работает под различными
операционными системами: Windows/Linux/Mac OS X.
24
1.2.1 Выбор комплекса задач автоматизации и характеристика
существующих бизнес-процессов
NetBeans. NetBeans – еще одна бесплатная интегрированная среда
разработки. Позволяет создавать приложения на языках программирования Java,
Python, PHP, JavaScript, C, C++ и ряде других. NetBeans IDE доступна в виде
готовых дистрибутивов для платформ Microsoft Windows, Linux, FreeBSD, Mac
OS X, OpenSolaris и Solaris, а для всех остальных платформ есть возможность
собрать NetBeans самостоятельно из исходников.
CodeLite. В подборке лучших IDE для С++ нельзя не упомянуть CodeLite.
Кроме того, что среда предоставляется бесплатно, так еще и работает во
множестве операционных систем: Windows 7/8/8.1/10, Debian, Ubuntu, Fedora,
OpenSUSE, ArchLinux и даже Mac OS X версии 10.8 и выше. Интерфейс прост и
интуитивно понятен, что делает его весьма хорошим выбором для новичков.
Также следует отметить, что последние версии CodeLite IDE поддерживают
проекты на PHP и Node.js.
Code::Blocks. Завершает нашу подборку бесплатная среда разработки
Code::Blocks. Она позволит писать не только на С/С++, но и обеспечит
поддержкой таких языков программирования, как Fortran и D некоторыми
ограничениями). Можно расширить набор стандартных инструментов за счет
установки расширений. Продукт разрабатывается под Windows, Mac OS X и
Linux, однако есть возможность установить среду на любую Unix-подобную
систему при помощи сборки исходников.
1.2.2 Определение места проектируемой задачи в комплексе задач и ее
описание
XCode - IDE, ориентированная на создание приложений для OS X и iOS.
Для использования языков Objective C и Swift на сегодня это лучшее, а для
некоторых задач и вовсе единственное решение.
Недостатки: многие разработчики жалуются на стабильность среды,
вынуждающую вносить дополнительные изменения в свои проекты после выхода

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)