Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Помогите здать РГР на С!!!

18K
07 июня 2006 года
vint911
1 / / 06.06.2006
Написать программу простейшего шифровальщика текста. Программа считывает исходный файл и спрашивает, что с ним делать (зашифровывать или расшифровывать) и возвращает новый файл с зашифрованной или расшифрованной информацией. Реализовать графический интерфейс с программой.

___есть на Паскале а мне надо на Borland C вместе с блоксхемами!!! вот:

Текст программы:

uses crt,graph;
label xx,a;
{Блок описания переменных}
var
F1,F2,F3 : Text;
Ch : Char;
strF1,strF2,strF3:string;
code,grDr,grM,i,x,n,ErrorCode:integer;

Begin {Начало программы}

GrDr:=Detect; {Инициализация графического режима}
InitGraph(GrDr,GrM,'d:\bp\bgi');
ErrorCode:=GraphResult;
if ErrorCode<>grOK then
begin {при неудачной определении гр-ого режима}
writeln(GraphErrorMsg(ErrorCode)); {выполнение прерывается}
sound(220); delay(500); nosound; {звуковой сигнал при ошибке выполнения}
halt(1);
end;
{Установка начальных значений и рисование заголовка}
SetFillStyle(9,9);
SetColor(14);
SetLineStyle(0,4,1);
Bar(20,20,620,460);SetFillStyle(7,9);
SetLineStyle(0,5,2);
rectangle(20,20,620,460);

OutTextXY(50,100,'ПРОГРАММА КОДИРОВКИ ФАЙЛОВ .TXT');

OutTextXY(50,120,'press <Enter> to continue...');
readln;
OuttextXY(70,140,'Loading');
delay(1000);
x:=130;
for i:=1 to 5 do
begin
outtextXY(x,140,'.');
x:=x+8;
delay(1500);
end;
for i:=300 to 400 do begin sound(i); delay(400); nosound; end;
{ввод строки для определения файла}

OutTextXY(190,200,'enter path coding fail:');
For n:=1 to 266 do Write(' '); {отступ}
SetFillStyle(10,black);
rectangle(184,219,401,241); {рисование строки}
bar(185,220,400,240);
Readln(strF1);

{ road code file}
OutTextXY(190,255,'enter path code fail:');
SetFillStyle(10,black);
rectangle(184,269,401,290); {рисование строк}
bar(185,270,400,289);
For n:=1 to 46 do Write(' ');
Readln(strF2);

{road decode file}
OutTextXY(190,305,'enter path decode fail:');
SetFillStyle(10,black);
rectangle(184,317,401,339); {рисование строк}
bar(185,318,400,338);
For n:=1 to 46 do Write(' ');
Readln(strF3);

{strF2:='2new.txt';} {'2new.txt' code file}
{strF3:='decode.txt';} {'3.txt' раскодированный файл}
assign(F1,strF1); {strF1 - initial fail}

{ кодировка файла 'F1' и создание файла 'F2' с кодом}
assign(F2,strF2);
rewrite(F2);
reset(F1);
while not eof(F1) do
begin
read(F1,Ch);
code:=ord(Ch);
code:=code+3;
if code>255 then code:=code-255;
Ch:=chr(code);
write(F2,Ch);
end;
close(F2); close(F1);

{decoding fail 'F2' and creat decode fail 'F3'}
assign(F3,strF3);
reset(F2); rewrite(F3);
while not eof(F2) do
begin
read(F2,Ch);
code:=ord(Ch);
if code=1 then
begin code:=253; goto xx; end;
if code=2 then
begin code:=254; goto xx; end;
if code=3 then
begin code:=255; goto xx; end;
code:=code-3;
xx: Ch:=chr(code);
write(F3,Ch);
end;
close(F2); close(F3);
SetColor(10);
OutTextXY(190,350,'coding succesful');
OutTextXY(190,370,'coding file');
OutTextXY(300,370,strF2);
readln;
for i:=400 downto 300 do begin sound(i); delay(400); nosound; end;
closegraph;
end.
562
11 июня 2006 года
tarekon
175 / / 19.08.2003
мда... мощный алгоритм...

Код:
#include <stdio.h>
#include <stdlib.h>

FILE *inp, *out;
char inputName[100], outputName[100];
int opCode;
int sym;

void main()
{[INDENT]do {[INDENT]printf( "Введите операцию (1-кодировать, 2-декодировать):" );
scanf( "%d", &opCode );
[/INDENT]} while( (opCode < 1) || (opCode > 2) );

printf( "Введите имя входного файла: " );
scanf( "%s", inputName );
printf( "Введите имя выходного файла: " );
scanf( "%s", outputName );

inp = fopen( inputName, "rt" );
out = fopen( outputName, "w+t" );
if( inp == NULL || out == NULL ) {[INDENT]printf( "Не могу открыть файл(ы)" );
exit( -1 );[/INDENT]}

while( ! feof( inp) ) {[INDENT]fscanf( inp, "%c", &sym );

switch( opCode ) {[INDENT]case 1:[INDENT]sym += 3;
sym = sym % 255;
break;[/INDENT]case 2:[INDENT]sym += 255;
sym -= 3;
sym = sym % 255;
break; [/INDENT][/INDENT]}
fprintf( out, "%c", sym );
[/INDENT]}

fclose( inp );
fclose( out );
[/INDENT]}


За качество кода не отвечаю - даже компилировать не пробовал. Так что если где забыл запятую или что - так получилось...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог