Код программы

#include <iostream>

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <string.h>

using namespace std;

FILE *fl;

typedef struct

{

char name[30];

unsigned int itemCount;

unsigned int oneItemPrice;

} TItem;

TItem products[30]; // Массив структур

char name[20]; // Имя файла

int nst = 0; // Число введенных структур

int Menu(); // Создание меню

void Nnf(); // Ввод имени файла

void Newf(); // Создание нового файла

void Spisok(); // Формирование файла

void Opf(); // Открытие файла

void Resc(); // Вывод результата на экран

void Resf(); // Вывод результата в файл

int main()

{

while (true)

{

switch (Menu())

{

case 1: Nnf(); break;

case 2: Newf(); break;

case 3: Spisok(); break;

case 4: Opf(); break;

case 5: Resc(); break;

case 6: Resf(); break;

case 7: return 0;

default: puts("Viberite pravilno!");

}

puts ("Press any key to continue");

getch (); // Ожидание нажатия любой клавиши

system ("cls"); // Очистка экрана

}

}

int Menu() // Меню

{

cout << "VIBERITE:" << endl;

cout << "1. Vvod file name" << endl;

cout << "2. New file" << endl;

cout << "3. Vvesti spisok" << endl;

cout << "4. Open file" << endl;

cout << "5. Vivesti result" << endl;

cout << "6. Vivesti v fail" << endl;

cout << "7. Exit" << endl;

int i;

cin >> i; // Ввод выбранного пункта меню

return i;

}

void Nnf() // Ввод имени файла

{

cout << "Vvedite file name" << endl;

cin >> name;

}

void Newf() // Создание нового файла

{

if ((fl = fopen(name,"wb")) == NULL)

{

cout << "Oshibka pri sozdanii" << endl;

exit(1);

}

cout << "OK" << endl;

fclose(fl);

}

void Spisok() // Ввод данных в файла

{

if ((fl = fopen(name,"rb+")) == NULL)

{

cout << "Oshibka pri sozdanii" << endl;

exit(1);

}

cout << "Vvedite chislo tovarov" << endl;

cin >> nst;

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

{

cout << "Vvedite naimenovanie: ";

cin >> products[i].name;

cout << "Vvedite kolichestvo tovarov: ";

cin >> products[i].itemCount;

cout << "Vvedite ceny odnogo tovara: ";

cin >> products[i].oneItemPrice;

fwrite (&products[i], sizeof(TItem), 1, fl);

}

fclose (fl);

}

void Opf() // Открытие бинарного файла

{

if ((fl = fopen (name,"rb")) == NULL)

{

cout << "Oshibka pri otkritii" << endl;

exit(1);

}

nst = 0;

TItem std;

while (true)

{

int nwrt = fread (&std, sizeof(TItem), 1, fl);

if (nwrt!= 1)

{

break;

}

products[nst] = std;

cout << products[nst].name << " " << products[nst].itemCount << " "

<< products[nst].oneItemPrice << endl;

nst++;

}

fclose(fl);

}

void Resc() // Вывод результата на экран

{

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

{

if (products[i].oneItemPrice * products[i].itemCount > 1000000)

{

cout << products[i].name << endl;

}

}

}

void Resf() // Вывод результата в текстовый файл

{

char namet[30];

FILE *ft;

cout << "Vvedite imya faila" << endl;

cin >> namet;

if ((ft = fopen (namet,"w")) == NULL)

{

cout << "Oshibka pri sozdanii" << endl;

exit(1);

}

char s[80];

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

{

if (products[i].oneItemPrice * products[i].itemCount > 1000000)

{

strcpy (s, products[i].name);

strcat (s, "\n"); // Добавление разделителя строк

fputs (s, ft);

}

}

fclose(ft);

}

Список используемой литературы

1. Батура М.П., Бусько В.Л., Корбит А.Г., Кривоносова Т.М. Основы алгоритмизации и программирования. Язык Си: учеб. пособие. – Минск: БГУИР, 2007.

2. Бусько В.Л., Карцев В.Т., Кривоносова Т.М., Навроцкий А.А. Основы программирования в среде С++ Builder: лаб.практикум по курсу «Основы алгоритмизации и программирования» для студ. 1 – 2-го курсов БГУИР. В 2 ч. Ч.1. – Минск: БГУИР, 2007.

3. Страуструп, Б. Язык программирования C++ / Б. Страуструп: 2-е изд.: В 2 т. – Киев: ДиаСофт, 1993.

4. Шилд, Г. Программирование на Borland С ++ / Г. Шилд. – Минск: ПОПУРРИ, 1999.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: