Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_uk_k_lab_r_6.doc
Скачиваний:
4
Добавлен:
18.12.2018
Размер:
189.44 Кб
Скачать

Void create(void) // Создание файла

{ Man man; int pr; FILE *fbin;

if ((fbin =fopen("dbase.bin","wb")) == NULL)

puts("Ошибка создания файла\n ");

else

{ do

{ cout << "\n Фамилия и инициалы: ";

cin.get() ; gets (man.name) ;

cout << "\n Год рождения: ";

cin >> man.birth_year;

cout << "\n Оклад: ";

cin >> man.pay;

fwrite(&man, sizeof(man),1,fbin);

cout<< "\n Продолжить ввод? (1-да/0-нет)";

cin >> pr;

} while(pr == 1);

}

fclose(fbin);

}

Void view(void) // Просмотр файла

{ FILE *fbin;

if ((fbin =fopen("dbase.bin","rb")) == NULL)

puts("Ошибка открытия файла\n");

else

{ fseek(fbin, 0, SEEK_END);

int n_record = ftell(fbin)/sizeof(Man);

Man *man = new Man[n_record];

fseek(fbin, 0, SEEK_SET);

fread(man, sizeof(Man),n_record, fbin);

fclose(fbin);

qsort(man, n_record, sizeof(Man), compare);

for (int i=0; i < n_record; i++)

cout << "\n" << man[i].name << " " <<

man[i].birth_year << " " << man[i].pay;

cout << "\n";

}

}

// Обработка файла

void work(void)

{ char z_name[l_name];

FILE *fbin;

if ((fbin =fopen("dbase.bin","rb")) == NULL)

puts("Ошибка открытия файла\n");

else

{ fseek(fbin, 0, SEEK_END);

int n_record = ftell(fbin)/sizeof(Man);

Man *man = new Man[n_record];

fseek(fbin, 0, SEEK_SET);

fread(man, sizeof(Man),n_record, fbin);

fclose(fbin);

qsort(man, n_record, sizeof(Man), compare);

cout<<"\nВведите фамилию и инициалы сотрудника:";

cin.get();gets(z_name);

for (int i=0; i < n_record; i++)

{ if (!strcmp(man[i].name,z_name))

cout << "\n" << man[i].name << " " <<

man[i].birth_year << " " << man[i].pay;

} cout << "\n";

}

}

int main(void)

{ int num;

do

{ cout << "\n 1 - Создание файла";

cout << "\n 2 - Просмотр файла";

cout << "\n 3 - Обработка файла";

cout << "\n 4 - Выход";

cout << "\n Ваш выбор: ";

cin >> num;

switch(num)

{ case 1: create();break;

case 2: view();break;

case 3: work();break;

}

} while (num != 4);

}

int compare(const void *manl, const void *man2)

{ return strcmp(((Man *)manl)->name,

((Man *)man2)->name);

}

Рисунок 6.5 – Результат выполнения программы.

  1. 6.4. Задание 1

Написать программу, которая считывает текст из файла и обрабатывает его. Обработку текстовой информации нужно организовать с использованием С – строк, т. е. массивов символов, завершающихся символом с кодом ‘\0’.

  1. Cчитать из текстового файла три предложения и вывести их в обратном порядке.

  1. Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово.

  1. Считать текст из файла и вывести на экран только строки, содержащие двузначные числа.

  1. Считать английский текст из файла и вывести на экран слова, начинающиеся с гласных букв.

  1. Считать текст из файла и вывести его на экран, меняя местами каждые два соседних слова.

  1. Считать текст из файла и вывести на экран только предложения, не содержащие запятых.

  1. Считать текст из файла и определить, сколько в нем слов, состоящих из не более чем четырех букв.

  1. Считать текст из файла и вывести на экран цитаты, то есть предложения, заключенные в кавычки.

  1. Считать текст из файла и вывести на экран только предложения, состоящие из заданного количества слов.

  1. Считать английский текст из файла и вывести на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы.

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

  1. Считать текст из файла и вывести его на экран, заменив цифры от 0 до 9 на слова «ноль», «один», …, «девять», начиная каждое предложение с новой строки.

  1. Считать текст из файла, найти самое длинное слово и определяет, сколько раз оно встретилось в тексте.

  1. Считать текст из файла и вывести его на экран, после каждого предложения добавляя, сколько раз встретилось в нем введенное с клавиатуры слово.

  1. Считать текст из файла и вывести на экран сначала вопросительные, а затем восклицательные предложения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]