Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Контрольная работа 16 вариант

.docx
Скачиваний:
14
Добавлен:
15.09.2014
Размер:
101.99 Кб
Скачать

Содержание

Содержание……………………………………………………………………………………………2

Задача 1 2

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

Блок-схема алгоритма 2

Листинг программы 4

Результат работы программы 6

Задача 2 7

Постановка задачи 7

Блок-схема алгоритма 7

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

Листинг программы 8

Результат работы программы 9

Список использованной литературы 10

Задача 1

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

16. Напишите программу учета наличия транспортных средств (автобусы) в автопарке. Информация организуется в виде структур. Структура содержит следующие поля: марка автобуса, тип автобуса (мягкий/жесткий), состояние (на базе, в рейсе, в ремонте, списан), количество мест, государственный номер. По запросу выдавать информацию о свободных автобусах, автобусах в рейсе, ремонтируемых, списанных. Выдаваемая информация должна быть отсортирована по количеству мест.

Блок-схема алгоритма

Листинг программы

#include <conio.h>

#include <stdio.h>

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

//(автобусы) в автопарке. Информация организуется

//в виде структур. Структура содержит следующие поля:

//марка автобуса, тип автобуса (мягкий/жесткий), состояние (на базе,

//в рейсе, в ремонте, списан), количество мест, государственный номер.

//По запросу выдавать информацию о свободных автобусах, автобусах в рейсе,

//ремонтируемых, списанных. Выдаваемая информация должна быть

//отсортирована по количеству мест.

char s[4][10]={"na baze","v reise","v remonte","spisan"};

char t[2][10]={"myagkiy","zhestkiy"};

struct bus {char marka[15],gos[10]; int tip,sost,mest;} a,b[50];

int i,j,ss,k=0;

int main()

{

clrscr();

printf("Zadanie 1.16");

printf("\nVvedite kolichestvo avtobusov:");

scanf("%d",&k);

if(k<1)k=1;

if(k>50)k=50;

//Ввод заданного количества структур

for (i=0;i<k;i++)

{

printf("\nAvtobus N%d",i+1);

printf("\n marka: ");

scanf("%s",&b[i].marka);

printf("sostoyanie (");

for (j=0;j<4;j++)

{

printf("%d - %s",j+1,s[j]);

if (j<3) printf(",");

}

printf("): ");

scanf("%d",&b[i].sost);

printf("tip avtobusa (");

for (j=0;j<2;j++)

{

printf("%d - %s",j+1,t[j]);

if (j<2) printf(",");

}

printf("): ");

scanf("%d",&b[i].tip);

printf(" gos.nomer: ");

scanf("%s",&b[i].gos);

printf(" kolichestvo mest: ");

scanf("%d",&b[i].mest);

}

//Сортировка массива автобусов по возрастанию количества мест

for (i=0;i<k-1;i++)

for (j=i+1;j<k;j++)

if (b[j].mest<b[i].mest)

{a=b[j]; b[j]=b[i]; b[i]=a;}

//Выбор автобусов с заданным состоянием

printf("\nVvedite interesuyushee Vas sostoyanie (1,2,3,4): ");

scanf("%d",&j);

printf("\n");

ss=0;

printf("\nSpisok avtobusov v sostoyanii '%s'",s[j-1]);

for (i=0;i<k;i++)

if (b[i].sost==j)

{

printf("\n%s Gos.N:%s K-vo mest:%d Tip:%s",

b[i].marka,b[i].gos,b[i].mest,t[b[i].tip-1]);

ss++;

}

printf("\n");

if (ss==0) printf("\nNet avtobusov v sostoyanii '%s'",s[j-1]);

printf("\nDlya zavershenia programmy nazhmite ENTER");

while (!kbhit());

}

Результат работы программы

Задача 2

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

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

Блок-схема алгоритма

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

При запуске программы с параметрами переменной с присваивается количество параметров, которые автоматически читаются как текстовые строки, поэтому первый параметр f[1] передаем в символьный массив fname (имя файла), а два последующих f[2], f[3] – преобразуем функцией atoi в целочисленные значения – начало и конец диапазона номеров строк, которые необходимо вывести на экран.

Затем открываем текстовый файл для чтения, читаем подряд его строки, а те, номера которых попадают в заданный диапазон, выводим на экран.

Листинг программы

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

//Программа выводит на экран часть строк текстового файла,

//номера которых лежат в заданном диапазоне. Имя файла,

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

//из командной строки, в начале каждой строки печатается ее номер

int main(int c, char *f[3])

{

char *fname;

fname=f[1];

int i=0,a,b;

a=atoi(f[2]);

b=atoi(f[3]);

char s[80];

FILE*fr;

printf("\n\nZadanie 2.16\n");

fr=fopen(fname,"r+");

printf("\nChitaem fail %s\n",fname);

while (1)

{

if (!fgets(s,80,fr)) break;

i++;

if((i>=a)&&(i<=b)){

printf("\n%d) %s",i,s);

}

}

fclose(fr);

printf("\nDlya zavershenia programmy nazhmite ENTER");

while (!kbhit());

}

Результат работы программы

F:\>TASK2-16.EXE primer.txt 3 5

Zadanie 2.16

Читаем файл primer.txt

3) Пусть о себе мнит каждый, что хочет. /Овидий/

4) Счастье есть лишь мечта, а горе реально. /Ф. Вольтер/

5) Соперничество - пища для гения. /Ф. Вольте

Для завершения программы нажмите ENTER

Список использованной литературы

Бушкевич А.В. Основы алгоритмизации и программирования: Метод. пособие для студ. спец. I-40 02 01 «Вычислительные машины, системы и сети» заоч. формы обуч.: В 2 ч. Ч. 2 / А.А. Бушкевич, И.В. Лукьянова. – Мн.: Белорусский государственный университет информатики и радиоэлектроники, 2005. – 19 с.

Демидович Е.М. Основы алгоритмизации и программирования. Язык Си: Пособие для студентов БГУИР / Е.М.Демидович. – Мн.: Бестпринт, 2004. – 384 с.

Касаткин, А. И. Профессиональное программирование на языке СИ: от Турбо-С до Borland С++ : справочное пособие / А. И. Касаткин, А. Н. Вольвачев. – Минск : Выш. шк., 1992.

Котлинская Г.П., Галиновский О.И. Программирование на языке СИ: Справ. пособие. – Мн.: Выш. шк., 1991. – 156 с.

Основы программирования в среде С++ Builder : лаб.практикум по курсу «Основы алгоритмизации и программирования» для студ. 1–2-го курсов БГУИР. В 2 ч. Ч. 1 / Бусько В. Л. [и др.] . – Минск : БГУИР, 2007. – 70 с.

Романовская Л.М. Программирование в среде Си для ПЭВМ ЕС / Л.М.Романовская, Т.В.Рус, С.Г.Свитковский. – М.: Финансы и статистика, 1992. – 352 с.

Синицын, А.К. Алгоритмы вычислительной математики: учебно-метод. пособие по курсу «Основы алгоритмизации и программирования» / А.К. Синицын, А.А. Навроцкий. – Минск: БГУИР, 2007. – 80 с.

10

Соседние файлы в предмете Основы алгоритмизации и программирования