Стадии и этапы разработки.

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

по дисциплине «Программирование на языке высокого уровня»

на тему «Динамическое формирование и преобразование списков и структур»

 

 

Вариант 19

 

Исполнитель ст.гр. СВБС-21   ______________________Д. С. Солодов Руководитель ст. преп. каф. ВСиС   ______________________Л. М. Афонина

 

2012 г.

Федеральное агентство по образованию

Московский Государственный институт

электроники и математики (ТУ)

 

Кафедра «Вычислительные системы и сети»

 

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

по дисциплине «Программирование на языке высокого уровня»

на тему «Динамическое формирование и преобразование списков и структур»

 

 

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

 

 

Листов 3

 

 

Задание принял к исполнению ст.гр. СВБС-21   ______________________Д. С. Солодов Руководитель ст. преп. каф. ВСиС   ______________________Л. М. Афонина

 

2012 г.

Содержание

 

1) Назначение программы. 2

2) Требования к программе. 2

a) Требование к функциональным характеристикам. 2

b) Требования к обеспечению надежного функционирования программы. 2

c) Требования к составу технических средств. 3

d) Требования к информационной и программной совместимости. 3

 

3) Требования к программной документации. 3

4) Стадии и этапы разработки. 3

 

Назначение программы.

Разрабатываемая программа предназначена для закрепления теоретического материала и получения практических навыков по программированию на языке С.

 

Требования к программе.

 

A) Требование к функциональным характеристикам.

Программа должна выполнять следующие функции:

· ввод наименования файлов данных и выходного файла с клавиатуры по запросу;

· считывание входных данных происходит до конца файла;

· проверку на наличие следующих ошибок, при которых должны быть предусмотрены соответствующие сообщения:

а) ошибка открытия файла;

б) отсутствие информации во входных данных;

· ввод дополнительных данных, требуемых программой с клавиатуры;

· выделение памяти для размещения очередной записи списка динамически и при удалении записи высвобождение памяти;

· помещение результатов работы программы в выходной файл следующим образом:

 

Исходный старый список

 

 

Преобразованный (отсортированный, сокращенный) список

 

· программа должна иметь модульную структуру.

 

B) Требования к обеспечению надежного функционирования программы.

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

 

C) Требования к составу технических средств.

Для функционирования программы и выполнения данной работы необходим

компьютер типа IBM(или совместимый с ним) и принтер.

D) Требования к информационной и программной совместимости.

Программа разрабатывается на языке C и функционировать под управлениемперационной системы MS DOS или Windows.

 

Требования к программной документации.

Программная документация должна содержать:

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

b) Программа и методика испытаний.

 

Стадии и этапы разработки.

№ п/п Содержание работ Срок окончания
  1)     2)   3) 4) I Технический проект   Разработка структуры входных и выходных данных.   25.03.2012
Разработка алгоритма решения задачи. 04.04.2012
Разработка структуры программы. 10.04.2012
Разработка тестов 20.04.2012
    1) 2) 3)   4) II Рабочий проект   Написание текста программы на заданном языке.     25.04.2012
Отладка программы. 10.05.2012
Разработка программной документации 15.05.2012
Написание отчета о работе   III Сдача программы 25.05.2012   04.06.2012

 

Содержание

 

1) Задание на курсовую работу. ………….. 2) Постановка задачи. …………………….. 2.1) Перечень исходных данных...... 2.2) Перечень выходных данных….. 3) Внешние спецификации программы….. 3.1) Входные данные………………. 3.2) Выходные данные…………….. 3.3) Сообщения……………………. 4) Метод решения..………………………… 5) Структура программы………………….. 6) Описание алгоритма программы………. 7) Текст программы..……………………… 8) Тестовые примеры……………………… 9) Выводы …………………………………. 10) Литература …………………………….. 11) Приложение…………………………….   ………………………………………………….6 ………………………………………………….6 ………………………………………………….6 ………………………………………………….6 ………………………………………………….6 ………………………………………………….6 ………………………………………………….6 ………………………………………………….7 ………………………………………………….8 ………………………………………………….8 ………………………………………………….9 ………………………………………………...14 ………………………………………………...19 ………………………………………………...22 ………………………………………………...23 ………………………………………………...23  

 

 

1) Задание на курсовую работу.

 

Написать программу, которая вводит из файла структуры вида:

 

 

размещает их в двунаправленный линейный список, выполняет сортировку списка по цене и удаляет машины с EGA-монитором.

 

2) Постановка задачи.

 

2.1) Перечень исходных данных:

fin – название файла с исходными данными.

fout – название файла, содержащего результаты работы программы.

 

2.2) Перечень выходных данных:

Файл с результатами в формате <путь до файла и его название>.txt

 

3) Внешние спецификации программы.

 

3.1) Входные данные:

Введите путь и название файла исходных данных: <путь и название исходного файла>

Введите путь и название файла выходных данных: <путь и название выходных файла>

 

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

 

<марка> <цена> <произв.> <конфиг.> <тип проц.> <ОП> <диск. память> <такт. частота> <тип монитора>

 

3.2) Выходные данные:

Выходными данными является файл, содержащий исходный список структур, полученный из файла исходных данных, и выходной, отсортированный и сокращенный список структур. Исходный и выходной списки разделены между собой сплошной линией.

Выходной файл имеет вид:

 

----- ishodnaya structura imeet vid: -----

 

Marka: <марка 1-ой ЭВМ>

Cena: <цена 1-ой ЭВМ> pyb

Proiz-l: <производ-ль 1-ой ЭВМ>

Proc-r: <тип проц 1-ой ЭВМ>

Oper: <ОП 1-ой ЭВМ>

HDD: <диск. память 1-ой ЭВМ> Gb

Takt: <такт. частота 1-ой ЭВМ> GHz

Monitor: <тип монитора 1-ой ЭВМ>

 

Marka: <марка 2-ой ЭВМ>

Cena: <цена 2-ой ЭВМ> pyb

Proiz-l: <производ-ль 2-ой ЭВМ>

Proc-r: <тип проц 2-ой ЭВМ>

Oper: <ОП 1-ой ЭВМ>

HDD: <диск. память 2-ой ЭВМ> Gb

Takt: <такт. частота 2-ой ЭВМ> GHz

Monitor: <тип монитора 2-ой ЭВМ>

 

_______________________________________________________________________________

 

----- otsortirovannaya i sokrashennaya structura imeet vid: -----

 

Marka: <марка не удаленной ЭВМ >

Cena: < цена не удаленной ЭВМ > pyb

Proiz-l: < производ-ль не удаленной ЭВМ >

Proc-r: < тип проц не удаленной ЭВМ >

Oper: < ОП не удаленной ЭВМ >

HDD: < диск. память не удаленной ЭВМ > Gb

Takt: < такт. частота не удаленной ЭВМ > GHz

Monitor: < тип монитора не удаленной ЭВМ >

 

3.3) Сообщения:

 

Первым появляется сообщение с описанием задания курсовой работы в виде:

-------------------------------------------------------------------------------

Napisat' programmy kotoraya vvodit iz faila strukturi,

razmeshaet ih v dvunapravlenniy lineyniy spisok

i vipolnyaet obrabotku spiska, a rezultat vivodit v fail.

Otsortirovat' spisok po cene i udalit' mashini s EGA-monitorom

-------------------------------------------------------------------------------

 

Далее выводится запрос на ввод названия файла с исходными данными вида:

Vvedite nazvanie faila ishodnih dannih:

Далее выводится запрос на ввод названия файла выходных данных вида:

Vvedite nazvanie faila s rezul'tatami:

 

Если файл исходных данных не найден, на экран выводится сообщение об ошибке:

BHUMAHUE! Fail ishodnih dannih ne nayden! Rabota programmi zavershena..

Если файл исходных данных пуст, на экран выводится сообщение об ошибке:

BHUMAHUE! Fail ishodnih dannih pustoy! Rabota programmi zavershena..

 

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

BHUMAHUE! Ishodnie dannie nevernogo formata.. Rabota programmi zavershena..

В процессе обработки данных на экран выводятся уведомления по удаляемым элементам в следующем виде:

..Ydalyaem element: Marka: <марка удаляемого элемента>

Cena: <цена удаляемого элемента>

Monitor: <тип монитора удаляемого элемента>

В конце работы программы на экран выводится сообщение с уведомлением вида:

Rabota so structurami zakonchena, rezul'tat zapisan v fail "<имя файла выходных данных>"

 

 

4) Метод решения.

 

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

После формирования списка со структурами весь список заносится в файл с выходными данными.

Далее осуществляется сортировка структур по возрастанию методом пузырька, по значению поля «Цена» путем перестановки местами значений полей соседних элементов списка.

После сортировки осуществляется удаление из списка структур со значением поля «тип монитора» равным «EGA» путем циклического прохождения по всем структурам списка и сравнения значения поля «тип монитора» с символьной строкой «EGA». Память, выделенная под удаленный элемент списка, освобождается.

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

 

5) Структура программы.

 

Программа состоит из 5 следующих модулей:

 

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

b) Подпрограмма input. В ней осуществляется проверка на существование и корректное открытие исходного и выходного файлов, считывание данных из исходного файла, проверка их на корректность, и занесение их в список структур.

с) Подпрограмма out.Осуществляет проверку на открытие файла выходных данных, а также вывод самих исходных и обработанных данных в выходной файл.

d) Подпрограмма sort.Осуществляет сортировку всего списка структур методом пузырька.

e) Подпрограмма del.Осуществляет удаление из списка структур по условию, указанному в постановке задачи. Освобождает память из-под удаленных структур.

 

 

 

6) Описание алгоритмов программы.

 

Алгоритм подпрограммы main():

 

 

Алгоритм подпрограммы input():

 

 

Алгоритм подпрограммы sort():

 

 

 

 

Алгоритм подпрограммы del():

Алгоритм подпрограммы out():

 

 

7) Текст программы.

 

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#include <string.h>

#define CONFIG struct configuration

 

CONFIG // Podstructura adresov zavodov

{

char proc_type[15]; //

float ram, //

hdd, //

takt; //

char monit_type[10];

};

 

#define RECORD struct record

RECORD //

{

char mark[20]; //

float price; //

char proiz[25]; //

CONFIG config; //

RECORD *prev,

*next;

};

RECORD *input( char fin[30] ) // podprogramma schitivaniya ishodnih dannih

{

RECORD *head = NULL, // ukazatel' na 1-y element

*curr = 0, // ukazatel' na tekushiy element

*prev =0; // ukazatel' na predidushiy element

FILE *f; // failovaya peremennaya

 

if( (f = fopen( fin, "rt")) == 0 ) // Proverka otkritiya faila dlya chteniya

{

printf("\n\n BHUMAHUE! Fail ishodnih dannih ne nayden!\n Rabota programmi zavershena..");

getch();

exit(1);

}

else

if( getc(f) == -1 ) //Proverka na nalishie dannih v faile

{

printf("\n\n BHUMAHUE! Fail ishodnih dannih pustoy!\n Rabota programmi zavershena..");

getch();

exit(1);

}

else

{

// Chtenie pervoy EVM-ki

head = ( RECORD* ) malloc( sizeof( RECORD ));

// Proverka na korrektnost' ishodmih dannih

if( fscanf(f, "%s%f%s%s%f%f%f%s", &head->mark, &head->price, &head->proiz, &head->config.proc_type, &head->config.ram, &head->config.hdd, &head->config.takt, &head->config.monit_type) != 8 )

{

printf("\n\n BHUMAHUE! Ishodnie dannie nevernogo formata..\n Rabota programmi zavershena.");

getch();

exit(1);

}

head->prev = NULL;

head->next = NULL;

prev = head;

while( !feof( f ) ) // Chtenie ostal'nih EVM-ok

{

curr = ( RECORD* ) malloc( sizeof( RECORD ));

if( fscanf(f, "%s%f%s%s%f%f%f%s", &curr->mark, &curr->price, &curr->proiz, &curr->config.proc_type, &curr->config.ram, &curr->config.hdd, &curr->config.takt, &curr->config.monit_type) != 8 )

{

printf("\n\n BHUMAHUE! Ishodnie dannie nevernogo formata..\n Rabota programmi zavershena.");

getch();

exit(1);

}

curr->prev = prev;

curr->next = NULL;

prev->next = curr;

prev = curr;

}

}

fclose( f );

return head;

} // end input();

 

void out( RECORD *head, int flag, char fout[30] ) // podprogramma vivoda dannih v fail s rezul'tatami

{

RECORD *out = 0;

FILE *f; // failovaya peremennaya dlya zapisi v rezul'tiryushiy fail

//Vivod ishodmoy structuri v fail

switch( flag )

{

case 0:

{

f = fopen( fout, "w" ); // Otkrivaem fail dlya zapisi

 

if( !f ) // esli fail ne nayden

{

printf("\n\n BHUMAHUE! Oshibka otkritiya faila s resul'tatami!\n Rabota programmi zavershena.");

getch();

exit( 1 );

}

else

{

fprintf( f, "\n ----- ishodnaya structura imeet vid: -----\n\n");

out = head;

while( out ) // Vivod spiska na

{

fprintf( f, " Marka: %s\n Cena: %.0f pyb\n Proiz-l: %s\n Proc-r: %s\n Oper: %.1f Gb\n HDD: %.0f Gb\n Takt: %.2f GHz\n Monitor: %s\n\n", out->mark, out->price, out->proiz, out->config.proc_type, out->config.ram, out->config.hdd, out->config.takt, out->config.monit_type);

out = out->next;

}

}

fprintf( f, "_______________________________________________________________________________\n\n");

fprintf( f, " ----- otsortirovannaya i sokrashennaya structura imeet vid: -----\n\n");

fclose( f ); // zakritie faila s resul'tatami

break;

} // end case 0

 

case 1:

{

// dozapis' rezultiryushey structuri v fail

f = fopen( fout, "a" ); // Otkrivaem fail dlya DOzapisi

 

if( !f ) // esli fail ne nayden

{

printf("\n\n BHUMAHUE! Oshibka otkritiya faila s resul'tatami!\n Rabota programmi zavershena.");

getch();

exit(1);

}

else

{

out = head;

while(out) // Vivod spiska na

{

fprintf( f, " Marka: %s\n Cena: %.0f pyb\n Proiz-l: %s\n Proc-r: %s\n Oper: %.1f Gb\n HDD: %.0f Gb\n Takt: %.2f GHz\n Monitor: %s\n\n", out->mark, out->price, out->proiz, out->config.proc_type, out->config.ram, out->config.hdd, out->config.takt, out->config.monit_type);

out = out->next;

}

}

fclose( f ); // zakritie faila s resul'tatami

break;

} // end case 1

} // end switch

} // end out();

 

 

void sort( RECORD *p ) // Podprogramma sortirovki i sokrasheniya structuri

{

RECORD *curr = NULL; // tekushiy

 

char mark_temp[20], // peremennaya dlya zameni marki

proizv_temp[25]; // peremennaya dlya zameni proiazvoditelya

float price_temp; // peremennaya dlya zameni ceni

CONFIG config_temp; // peremennaya dlya zameni configuraciy

 

int flag = 1, // flag dlya puzir'ka

i = 0; // schetchik dlya sort;

 

// sortirovka po cene

while( flag )

{

curr = p->next;

while( curr )

{

if ( curr->price < curr->prev->price ) // elsi ydalyaemiy yavlyaetsya poslednim v spiske

{

// zapis' tekushih znacheniy vo vremennie peremennie

strcpy( mark_temp, curr->mark );

price_temp = curr->price;

strcpy( proizv_temp,curr->proiz );

config_temp = curr->config;

 

// meniyaem znacheniya poley

strcpy( curr->mark, curr->prev->mark );

strcpy( curr->proiz, curr->prev->proiz );

curr->price = curr->prev->price;

curr->config = curr->prev->config;

 

// meniyaem znacheniya poley

strcpy( curr->prev->mark, mark_temp );

curr->prev->price = price_temp;

strcpy( curr->prev->proiz, proizv_temp );

curr->prev->config = config_temp;

 

i = 1;

}

curr = curr->next;

}

if ( i == 0 ) flag = 0;

else i = 0;

}

 

} // end sort();

 

 

RECORD *del( RECORD *p, char fout[30] )

{

RECORD *curr = NULL,

*left = NULL,

*right = NULL,

*temp = NULL,

*head = p;

FILE *f;

 

// Ydalenie mashin s EGA-monitorom

curr = p;

while( curr )

{

if( strcmp( curr->config.monit_type, "EGA" ) == 0 )

{

printf("\n ..Ydalyaem element: Marka: %s\n Cena: %.0f pyb\n Monitor: %s\n", curr->mark, curr->price, curr->config.monit_type);

 

if( curr->next == NULL && curr->prev == NULL )

{

f = fopen( fout, "a" ); // Otkrivaem fail dlya dozapisi

 

if( !f ) // esli fail ne nayden

{

printf("\n\n BHUMAHUE! Oshibka otkritiya faila s resul'tatami!\n Rabota programmi zavershena.");

getch();

exit(1);

}

else

{

fprintf( f, " V structure vse mashini s EGA-monitorom. Spisok EVM pust.. \n\n");

}

 

fclose( f ); // zakritie faila s resul'tatami

printf("\n\n Rabota so structuroy zakonchena, rezul'tat zapisan v fail \"%s\"\n", fout);

getch();

exit(1);

}

else

if ( curr->next == NULL ) // elsi ydalyaemiy element posledniy

{

temp = curr->prev;

curr->prev->next = NULL;

free(curr);

curr = temp;

}

else

if ( curr->prev == NULL ) // elsi ydalyaemiy element perviy

{

head = curr->next;

curr->next->prev = NULL;

free(curr);

curr = head;

}

else

{

left = curr->prev;

right = curr->next;

left->next = right;

right->prev = left;

free(curr);

curr = left;

}

} // end if

else

curr = curr->next;

} // end while

 

return( head ); // Vozvrashaem ykazatel' na structuru

} // end del();

 

void main()

{

char fin[30],

fout[30];

 

RECORD *p,

*deleted;

clrscr(); // ochistka ekrana

 

printf("\n Gryppa SVBS-21 Solodov D.S. Korsovoy proekt Variant 19 \n");

printf("\n ----------------------------------------------------------------\n");

printf(" Napisat' programmy kotoraya vvodit iz faila strukturi, \n");

printf(" razmeshaet ih v dvunapravlenniy lineyniy spisok \n");

printf(" i vipolnyaet obrabotku spiska, a rezultat vivodit v fail. \n");

printf(" Otsortirovat' spisok po cene i udalit' mashini s EGA-monitorom ");

printf("\n ----------------------------------------------------------------\n");

 

printf("\n Vvedite put' i nazvanie faila ishodnih dannih: ");

scanf("%s", &fin);

printf("\n Vvedite put' i nazvanie faila s rezul'tatami: ");

scanf("%s", &fout);

 

p = input( fin ); // Vizov podprogrammi chteniya dannih iz faila

out( p, 0, fout ); // Vizov podprogrammi zapisi ishodnoy strukturi v fail

 

sort( p ); // Vizov podprogrammi sortirovki spiska

deleted = del( p, fout ); // Vizov podprogrammi ydaleniya mashin s EGA-monitorom

 

out( deleted, 1, fout ); // Vizov podprogrammi zapisi rezul'tatov v fail

 

printf("\n\n Rabota so structurami zakonchena, rezul'tat zapisan v fail \"%s\"\n", fout);

getch();

};

 

8) Тестовые примеры.

 

Тест №1

Данные в исходном файле:

 

NT 30000 Intel Celeron 1.5 200 3.00 EGA

MacBook 18700 Apple MacOS 2 350 2.7 LCD

DP 15000 AMD Celeron 1.7 250 2.3 EGA

LenBook 17200 Lenovo Intel 4 220 2.5 Lamp

C870 25000 Toshiba Intel 1.8 300 2.7 EGA

Данные в выходном файле:

----- ishodnaya structura imeet vid: -----

Marka: NT

Cena: 30000 pyb

Proiz-l: Intel

Proc-r: Celeron

Oper: 1.5 Gb

HDD: 200 Gb

Takt: 3.00 GHz

Monitor: EGA

Marka: MacBook

Cena: 18700 pyb

Proiz-l: Apple

Proc-r: MacOS

Oper: 2.0 Gb

HDD: 350 Gb

Takt: 2.70 GHz

Monitor: LCD

Marka: DP

Cena: 15000 pyb

Proiz-l: AMD

Proc-r: Celeron

Oper: 1.7 Gb

HDD: 250 Gb

Takt: 2.30 GHz

Monitor: EGA

Marka: LenBook

Cena: 17200 pyb

Proiz-l: Lenovo

Proc-r: Intel

Oper: 4.0 Gb

HDD: 220 Gb

Takt: 2.50 GHz

Monitor: Lamp

Marka: C870

Cena: 25000 pyb

Proiz-l: Toshiba

Proc-r: Intel

Oper: 1.8 Gb

HDD: 300 Gb

Takt: 2.70 GHz

Monitor: EGA

_______________________________________________________________________________

----- otsortirovannaya i sokrashennaya structura imeet vid: -----

Marka: LenBook

Cena: 17200 pyb

Proiz-l: Lenovo

Proc-r: Intel

Oper: 4.0 Gb

HDD: 220 Gb

Takt: 2.50 GHz

Monitor: Lamp

Marka: MacBook

Cena: 18700 pyb

Proiz-l: Apple

Proc-r: MacOS

Oper: 2.0 Gb

HDD: 350 Gb

Takt: 2.70 GHz

Monitor: LCD

 

Тест №2

Данные в исходном файле:

 

NT 30000 Intel Celeron qqq 200 3.00 EGA

MacBook qwewetreryrty Apple MacOS 2 350 2.7 LCD

Копия экрана с сообщением об ошибке:

Vvedite put' i nazvanie faila ishodnih dannih: error.txt

Vvedite put' i nazvanie faila s rezul'tatami: res.txt

BHUMAHUE! Ishodnie dannie nevernogo formata..

Rabota programmi zavershena.

Тест №3

Данные в исходном файле:

 

Файл исходных данных пустой

Копия экрана с сообщением об ошибке:

Vvedite put' i nazvanie faila ishodnih dannih: null.txt

Vvedite put' i nazvanie faila s rezul'tatami: res.txt

BHUMAHUE! Fail ishodnih dannih pustoy!

Rabota programmi zavershena..

Тест №4

Данные в исходном файле:

 

NT 30000 Intel Celeron 1.5 200 3.00 EGA

MacBook 18700 Apple MacOS 2 350 2.7 EGA

DP 15000 AMD Celeron 1.7 250 2.3 EGA

LenBook 17200 Lenovo Intel 4 220 2.5 EGA

C870 25000 Toshiba Intel 1.8 300 2.7 EGA

Данные в выходном файле:

----- ishodnaya structura imeet vid: -----

Marka: NT

Cena: 30000 pyb

Proiz-l: Intel

Proc-r: Celeron

Oper: 1.5 Gb

HDD: 200 Gb

Takt: 3.00 GHz

Monitor: EGA

Marka: MacBook

Cena: 18700 pyb

Proiz-l: Apple

Proc-r: MacOS

Oper: 2.0 Gb

HDD: 350 Gb

Takt: 2.70 GHz

Monitor: EGA

Marka: DP

Cena: 15000 pyb

Proiz-l: AMD

Proc-r: Celeron

Oper: 1.7 Gb

HDD: 250 Gb

Takt: 2.30 GHz

Monitor: EGA

Marka: LenBook

Cena: 17200 pyb

Proiz-l: Lenovo

Proc-r: Intel

Oper: 4.0 Gb

HDD: 220 Gb

Takt: 2.50 GHz

Monitor: EGA

Marka: C870

Cena: 25000 pyb

Proiz-l: Toshiba

Proc-r: Intel

Oper: 1.8 Gb

HDD: 300 Gb

Takt: 2.70 GHz

Monitor: EGA

_______________________________________________________________________________

----- otsortirovannaya i sokrashennaya structura imeet vid: -----

V structure vse mashini s EGA-monitorom. Spisok EVM pust..

9) Выводы.

 

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

 

10) Литература.

 

1. Т.А. Павловская , «С/С++ Программирование на языке высокого уровня», издательство «Питер», 2006 г.

2. Березин Б.И., Березин С.Б., «Начальный курс Си», издательство «Диалог-МИФИ», 2007 г.

 

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

 

Программа и методика испытаний.

 

 

Приложение

Федеральное агентство по образованию

Московский Государственный институт

электроники и математики (ТУ)

 

Кафедра «Вычислительные системы и сети»

 

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

по дисциплине «Программирование на языке высокого уровня»

на тему «Динамическое формирование и преобразование списков и структур»

 

 

Программа и методика испытаний

 

 

Листов 2

 

2012 г.

Объект испытаний

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

 

Цель испытаний

Цель настоящих испытаний состоит в подтверждении готовности программы к выполнению поставленной задачи.

К задаче испытаний относятся проверка возможности и качества выполнения функций, выполняемых системой в рамках функционирования.