Анализ программного средства по метрике Мак-Кейба

Автор работы: Пользователь скрыл имя, 11 Декабря 2011 в 13:26, лабораторная работа

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

Для корректной работы программного средства необходимо выполнить ряд требований:
а) исходный код программы должен соответствовать правилам написания программ на языке программирования PHP 5.
б) исходный код программы должен содержаться в одном файле.
в) на компьютере должно быть установлено приложение GraphViz, оно необходимо для отображения граф-схемы алгоритма. Приложение устанавливается автоматически.

Содержание работы

Цели и задачи
3
Руководство пользователя. Главное меню программы
4
Вкладка “Файл”
4
Вкладка “Обработка”
5
Вкладка “Справка”
5
Панель быстрого доступа
6
Краткие сведения о метрике Мак-Кейба
7
Результаты выполнения программы
8
Список литературы

Содержимое работы - 1 файл

Report1.docx

— 259.08 Кб (Скачать файл)

            } 

            if (!CodeFinish)

            switch (Code[curPos])

            {

                case '(':

                    int num = 0;

                    curPos++;

                    while (!((Code[curPos] == ')') && (num == 0)))

                    {

                        if (Code[curPos] == '(')

                            num++;

                        if (Code[curPos] == ')')

                            num--;

                        if (Code[curPos] == '"')

                        {

                            res += '\\';

                            do

                            {

                                res += Code[curPos];

                                curPos++;

                            }

                            while (Code[curPos] != '"');

                            res += '\\';

                        }

                        res += Code[curPos];

                        curPos++;

                    }

                    curPos++;

                    break;

                case '$':

                    res += Code[curPos];

                    curPos++;

                    while (VariableSymbols.Contains(Code[curPos]))

                    {

                        res += Code[curPos];

                        curPos++;

                    }

                    break;

                default:

                    if (VariableSymbols.Contains(Code[curPos]))

                        while (VariableSymbols.Contains(Code[curPos]))

                        {

                            res += Code[curPos];

                            curPos++;

                        }

                    else

                    {

                        res += Code[curPos];

                        curPos++;

                    }

                    break;

            } 

            return res;

        } 

        private void GetNextLine()

        {

            string Token;

            do

                Token = GetToken();

            while ((Token != ";") && (Token != ""));

            if ((Token == ";") || Token == "") curPos--; 

        } 

        private void AddIf()

        {

            string res;

            int IfBegin = curPos;

            string usl = GetToken();

            Graph_.AddBlock(false, "if (" + usl + ")");

            Block If = Graph_.curBlock;

            IfBegin = curPos;

            if ((res = GetToken()) == "{")

                GetBlock("}");

            else

            {

                curPos = IfBegin;

                GetBlock(";");

            }

            Graph_.AddBlock(true, "connection");

            Block connection = Graph_.curBlock;

            int IfEnd = curPos;

            Graph_.curBlock = If;

            if (GetToken() == "else")

            {

                if ((res = GetToken()) == "{")

                    GetBlock("}");

                else

                {

                    curPos = IfEnd;

                    GetBlock(";");

                }

                Graph_.curBlock.NextBlocks.Add(connection);

                Graph_.curBlock = connection;

            }

            else

            {

                Graph_.curBlock.NextBlocks.Add(connection);

                Graph_.curBlock = connection;

                curPos = IfEnd;

            }

        } 

        private void AddWhile()

        {

            int WhileBegin = curPos;

            string usl = GetToken();

            Graph_.AddBlock(false, "while (" + usl + ")");

            WhileBegin = curPos;

            Block While = Graph_.curBlock;

            if (GetToken() == "{")

                GetBlock("}");

            else

            {

                curPos = WhileBegin;

                GetBlock(";");

            }

            Graph_.curBlock.NextBlocks.Add(While);

            Graph_.curBlock = While;

        } 

        private void AddFor()

        {

            string usl = GetToken();

            Graph_.AddBlock(false, "for (" + usl + ")");

            int WhileBegin = curPos;

            Block While = Graph_.curBlock;

            if (GetToken() == "{")

                GetBlock("}");

            else

            {

                curPos = WhileBegin;

                GetBlock(";");

            }

            Graph_.curBlock.NextBlocks.Add(While);

            Graph_.curBlock = While;

        } 

        private void AddDo()

        {

            int DoBegin = curPos;

            Graph_.AddBlock(true, "do");

            Block Do = Graph_.curBlock;

            if (GetToken() == "{")

                GetBlock("}");

            else

            {

                curPos = DoBegin;

                GetBlock(";");

            }

            GetToken();

            string usl = GetToken();

            Graph_.AddBlock(false, "while (" + usl + ")");

            Graph_.curBlock.NextBlocks.Add(Do);

        } 

        private void AddFunction()

        {

            string FuncName = GetToken();

            GetToken();

            GetToken(); 

            Graph Main = Graph_;

            Graph_ = new Graph(FuncName);

            GetBlock("}");

Информация о работе Анализ программного средства по метрике Мак-Кейба