1. Бьярн Страуструп. Язык программирования С++.в двух частях. Пер. с англ. Киев: "ДиаСофт" , 1993.-296 с.,ил.

2 . Корриган Джон : С++ основы программирования: Пер с англ. -М.:Энтроп, 1995. - 352 с., ил.

ПРИЛОЖЕНИЕ А

(обязательное)

Текст программы ptrov.cpp приведён в таблице А1

Таблица А1

Команда Пояснение

#include <stdio.h>

#include <conio.h>

#include <string.h>

struct win_info

{

int x1, y1, x2, y2

int tc, tb

 

int px, py

 

char fname[50]

}win[2]

FILE *in, *out

char c, ch

int i

void SetWin(win_info * w)

{

textcolor(w->tc)

textbackground(w->tb)

window(w->x1,w->y1,w->x2,w->y2)

gotoxy(w->px,w->py)

}

void GetWin(win_info * w)

{

w->px=wherex()

w->py=wherey()

}

char perest(char x)

{

if ((x>=0x40)&(x<=0x5f))

{

char mask, buf[4]

if (x>=0x50) mask=0x50

else mask=0x40

x^=mask

 

buf[0]=(x&1)

 

buf[1]=(x&2)/2

buf[2]=(x&4)/4

buf[3]=(x&8)/8

x=buf[1]+buf[0]*2+buf[3]*4+buf[2]*8

x^=mask

}

return x

 

}

void main()

{

textbackground(WHITE)

textcolor(BLACK)

clrscr()

for(i=1

i<2000

i++) putchar(176)

window(1,25,80,25)

textcolor(BLACK)

textbackground(WHITE)

clrscr()

cprintf(" ALT-F1 Исходн.файл ALT-F2 Конечн.файл ALT-F3 Кодир. ALT-F4 Декодир. ESC-Выход")

win[0].x1=2

 win[1].x1=2

win[0].x2=79

 win[1].x2=79

win[0].y1=3

 win[1].y1=14

win[0].y2=12

 win[1].y2=23

win[0].py=1

 win[1].px=1

win[0].px=1

 win[1].py=1

win[0].tc=LIGHTBLUE

win[1].tc=LIGHTBLUE

win[0].tb=BLUE

win[1].tb=BLUE

window(1,1,80,1)

textcolor(BLACK)

textbackground(WHITE)

clrscr()

_setcursortype(_NOCURSOR)

do

{

ch=getch()

if (ch==0) switch(getch())

{

координаты окна

цвета окна

позиция курсора

имя файла

активизировать рабочее окно и

установить курсор в текущую позицию

считать поз. курсора

проверка на принадлежность к

обрабатываемым символам

обнулить половину кода

разложить по битам

собрать биты в обратном порядке

восстановить половину кода

вернуть новый символ

создать рабочий экран

задать параметры рабочих окон

Команда Пояснение

case 104 : fclose(in)

// Нажата ALT-F1

win[0].px=1

win[0].py=1

window(1,1,80,1)

textcolor(BLACK)

textbackground(WHITE)

clrscr()

printf(" Введите имя исходного файла : ")

 _setcursortype(_NORMALCURSOR)

gets(win[0].fname)

_setcursortype(_NOCURSOR)

window(1,2,80,12)

clrscr()

for(i=1

i<=880

i++) putchar(176)

if((in=fopen(win[0].fname,"rt"))==NULL)

{

window(1,1,80,1)

textcolor(RED)

clrscr()

printf(" %cНемогу открыть файл - %s - !!!",7,&win[0].fname)

} else

{

textcolor(RED)

textbackground(WHITE)

window(39-strlen(win[0].fname)/2,2,41+strlen(win[0].fname)/2,2)

clrscr()

printf(" %s",&win[0].fname)

SetWin(&win[0])

clrscr()

while(!feof(in))

{

c=fgetc(in)

if(c!='n') putch(c)

else {

if (wherey()==10) break

cprintf("nr")

}

}

} break

 case 105 : fclose(out)

win[1].px=1

win[1].py=1

window(1,1,80,1)

textcolor(BLACK)

textbackground(WHITE)

clrscr()

printf(" Введите имя конечного файла : ")

_setcursortype(_NORMALCURSOR)

gets(win[1].fname)

_setcursortype(_NOCURSOR)

window(1,13,80,23)

clrscr()

for(i=1

i<=880

i++) putchar(176)

if((out=fopen(win[1].fname,"wt"))==NULL)

{

window(1,1,80,1)

textcolor(RED)

clrscr()

printf("%c Немогу создать файл - %s - !!!",7,&win[1].fname)

} else

{

textcolor(RED)

textbackground(WHITE)

window(39-strlen(win[1].fname)/2,13,41+strlen(win[1].fname)/2,13)

clrscr()

printf(" %s",&win[1].fname)

SetWin(&win[1])

clrscr()

} break

 case 106 : if((in!=NULL)&(out!=NULL))

{

c=0

i=0

SetWin(&win[0])

clrscr()

GetWin(&win[0])

SetWin(&win[1])

clrscr()

GetWin(&win[1])

fseek(in,0,0)

fseek(out,0,0)

while(!feof(in))  

Нажата ALT-F2

ALT-F3

Команда Пояснение

{

ch=fgetc(in)

SetWin(&win[0])

if (ch!='n') putch(ch)

else cprintf("nr")

GetWin(&win[0])

ch=perest(ch)

SetWin(&win[1])

if (ch!='n') putch(ch)

else cprintf("nr")

GetWin(&win[1])

c^=ch

i++

fputc(ch,out)

if (i==3)

{

 SetWin(&win[1])

 if (c!='n') putch(c)

else cprintf("nr")

 GetWin(&win[1])

 fputc(c,out)

 c=0

 i=0

}

}

} break

case 107 : if((in!=NULL)&(out!=NULL))

{

ch=0

i=0

SetWin(&win[0])

clrscr()

GetWin(&win[0])

SetWin(&win[1])

clrscr()

GetWin(&win[1])

fseek(in,0,0)

fseek(out,0,0)

while(!feof(in))

if (i!=3)

{

c=fgetc(in)

SetWin(&win[0])

if (c!='n') putch(c)

else cprintf("nr")

GetWin(&win[0])

ch^=c

i++

c=perest(c)

SetWin(&win[1])

if (c!='n') putch(c)

else cprintf("nr")

GetWin(&win[1])

fputc(c,out)

} else

{

c=fgetc(in)

SetWin(&win[0])

if (c!='n') putch(c)

else cprintf("nr")

GetWin(&win[0])

if (c==ch)

{

 ch=0

 i=0

} else

{

 textcolor(RED)

 textbackground(WHITE)

 window(1,1,80,1)

 clrscr()

 printf(" %cОшибка в файле %s",7,&win[0].fname)

 break

}

}

} break

}

}

while(ch!=27)

 

fcloseall()

 

textcolor(WHITE)

textbackground(BLACK)

window(1,1,80,25)

clrscr()

}

ALT-F4

выход, если нажат ESC

закрыть все файлы

очистить экран

ПРИЛОЖЕНИЕ В

РЕЗУЛЬТАТЫ РАБОТЫ ПРОГРАММЫ

Введите имя конечного файла : zzz

____________________________________ file _____________________________________

_Проверка программы преобразования информации_  _

_  _

_ _

_ _

_ _

_ _

_ _

_ _

_ _

_ _

_____________________________________ zzz ______________________________________

_Про-верчка *просграуммыы прoеобкразчовамнияъ ин%форкмацъии__ _

_ _

_ _

_ _

_ _

_ _

_ _

_ _

_ _

_ _

________________________________________________________________________________

ALT-F1 Исходн.файл ALT-F2 Конечн.файл ALT-F3 Кодир. ALT-F4 Декодир. ESC-В


Информация о работе «Преобразования информации перед передачей её в канал связи»
Раздел: Информатика, программирование
Количество знаков с пробелами: 14498
Количество таблиц: 2
Количество изображений: 0

Похожие работы

Скачать
158049
14
7

... выходят из строя. Более детальное рассмотрение вопросов защиты от НСВ по коммуникационным каналам приведено в следующем подразделе. Защита по виброакустическому каналу утечки информации Метод съема информации по виброакустическому каналу относится к так называемым беззаходовым методам, и это является важным его преимуществом. Обнаружить аппаратуру такого съема информации крайне трудно, так как ...

Скачать
53106
2
10

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

Скачать
128945
1
27

... быть получен неудовлетворительный результат, а в другом - чрезмерное усложнение конструкции может привести к неоправданному увеличению стоимости оборудования, а приемная система будет выглядеть неэстетично. Результатом расчета линии связи является вычисленное значение отношения S/N, величина которого сравнивается с соответствующими значениями по пятибалльной шкале градаций качества принимаемого ...

Скачать
98597
6
0

... центр коммутации сообщений малой емкости ) изготавливается на базе микро ЭВМ типа " Электроника - НУ - 80 - 32 " и подключается к региональным центрам коммутации сообщений телеграфа . Сеть абонентского телеграфирования является сетью коммутируемых телеграфных связей и предназначена для обмена сообщения между абонентами , предприятиями и организациями путем установления непосредственного ...

0 комментариев


Наверх