Контрольная работа 16 вариант
.docxСодержание
Содержание……………………………………………………………………………………………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 с.