Слайд 1Основы программирования
Лабораторная работа №12
Работа с текстовым файлом.
Простейшее шифрования текста.
Власенко
О.Ф.
Слайд 2Задача 1
Создать программно файл с русским текстом
#include
#include
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char ss[24][80] = {
"задача 2",
"Преобразовать файл in2.txt в файл
out2.txt",
"Заменив все большие русские буквы на маленькие",
"",
"задача 3",
"Зашифровать текст записанный латиницей, и находящийся в файле in3.txt",
"применив шифр Цезаря с ключом 4",
"Результат сохранить в файл in4.txt",
"задача 4",
"Расшифровать текст записанный латиницей, и находящийся в файле in4.txt",
"применив шифр Цезаря с ключом 4",
"Результат сохранить в файл out4.txt",
"",
"задача 5",
"Преобразовать текстовый файл in5.txt",
"в файл out5.txt, в котором каждое слово выводится на отдельной строке",
"",
"Задача 6*",
"Игра в слова",
"В файле in6.txt есть строки со словами",
"в каждой строке ровно одно слово",
"С консоли вводится комплект букв",
"Нужно вывести в консоль те слова из файла in6.txt",
"Которые можно составить из введенных с консоли букв"
};
Слайд 3Задача 1 (2)
{
char fileIn1[] = "D:\\temp\\Files\\Lab11_12\\in1.txt";
FILE * fout = fopen(fileIn1,
"wt");
// в цикле для всех строк
for (int i = 0;
i < 24; i++)
{
// сохранить строку в выходной файл
fprintf(fout, "%s\n", ss[i]);
// контрольный вывод в консоль
printf(">>%s<<\n", ss[i]);
}
fclose(fout);
}
{
int x;
scanf("%d", &x);
}
}
Слайд 4Задача 2
Преобразовать файл in1.txt в файл out1.txt, заменив все маленькие
русские буквы на большие
#include
#include
#include "MyChars.h«
#define MAX_LEN 80
char fileIn1[]
= "D:\\temp\\Files\\Lab11_12\\in1.txt";
char fileOut1[] = "D:\\temp\\Files\\Lab11_12\\out1.txt";
void main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char s[MAX_LEN];
FILE * fin = fopen(fileIn1, "rt");
FILE * fout = fopen(fileOut1, "wt");
Слайд 5Задача 2 (2)
// в цикле для всех строк
while (!feof(fin)) {
//
загрузить строку
if (fgets(s, MAX_LEN - 1, fin) != NULL) {
//
обработать загруженную строку
for (int i = 0; s[i] != '\0'; i++) {
s[i] = toUpperRus(s[i]);
}
// сохранить строку в выходной файл
fprintf(fout, "%s", s);
printf(">>%s<<\n", s);
}
}
fclose(fin);
fclose(fout);
{
int x;
scanf("%d", &x);
}
}
Слайд 6Задача 2 (3)
Модуль MyChars.h/ MyChars.cpp
Слайд 7Задача 3
Преобразовать файл in1.txt в файл out2.txt, заменив все большие
русские буквы на маленькие
Слайд 8Задача 4
Зашифровать текст записанный латиницей, и находящийся в файле in4.txt
применив
шифр Цезаря с ключом 4. Результат сохранить в файл out4.txt
void
main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char filename1[] = "D:\\temp\\Files\\Lab11_12\\in4.txt";
char filename2[] = "D:\\temp\\Files\\Lab11_12\\out4.txt";
FILE * fin = fopen(filename1, "rt");
FILE * fout = fopen(filename2, "wt");
char ch;
while ((ch = getc(fin)) != EOF) {
char ch_new = CaesarEncode(ch, 4);
fprintf(fout, "%c", ch_new);
printf("%c", ch_new);
}
fclose(fin);
fclose(fout);
}
Слайд 11Задача 5
Расшифровать текст записанный латиницей, и находящийся в файле out4.txt
применив шифр Цезаря с ключом 4. Результат сохранить в файл
out5.txt
void main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char filename1[] = "D:\\temp\\Files\\Lab11_12\\out4.txt";
char filename2[] = "D:\\temp\\Files\\Lab11_12\\out5.txt";
FILE * fin = fopen(filename1, "rt");
FILE * fout = fopen(filename2, "wt");
char ch;
while ((ch = getc(fin)) != EOF) {
char ch_new = CaesarDecode(ch, 4);
fprintf(fout, "%c", ch_new);
printf("%c", ch_new);
}
fclose(fin);
fclose(fout);
}
Слайд 14Задача 6
Преобразовать текстовый файл in1.txt в файл out6.txt, в котором
каждое слово выводится на отдельной строке
Слайд 15Задача 6 (2)
Преобразовать текстовый файл in1.txt в файл out6.txt, в
котором каждое слово выводится на отдельной строке
Слайд 16Задача 6 (3)
Преобразовать текстовый файл in1.txt в файл out6.txt, в
котором каждое слово выводится на отдельной строке
Слайд 17Задача 7. Индивидуальная задача
Текст из файла in7.txt переписывается в out7.txt
с изменениями:
Все маленькие латинские буквы заменить символом ‘#’.
Все гласные
латинские буквы заменить символом ‘&’.
Все согласные латинские буквы заменить символом ‘&’.
Все гласные большие латинские буквы заменить символом ‘$’.
Все гласные маленькие латинские буквы заменить символом ‘@’.
Все цифры заменить символом ‘X’.
Все латинские буквы сделать большими.
Все латинские буквы сделать маленькими.
Все символы за исключением латинских букв, заменить символом ‘_’ (подчеркивание).
Все знаки препинания заменить символом ‘_’ (подчеркивание).
Все символы арифметических операций, заменить символом ‘_’ (подчеркивание).
Слайд 18Задача 8***.
Игра в слова
В файле in8.txt есть
строки со словами
в каждой строке ровно одно слово
С
консоли вводится комплект букв
Нужно вывести в консоль те слова из файла in8.txt
Которые можно составить из введенных с консоли букв
Слайд 19Домашнее задание
!!!!!
В разработке