Запись имеет вид: название инструмента, число, месяц и год изготовления. Вывести на печать информацию об инструменте с самым большим сроком использования и выполнить корректировку этой записи.
Есть в С++ необходимо написать в Си
#include <cstdlib> #include <iostream>
using namespace std;
structinstr {char name[20]; intdd; int mm; intyy;} i1;
voidinput(FILE *); // создание нового файла voidprint(FILE *); // просмотр файла voidadd(FILE *); // добавление в файл voidfind(FILE *); // поиск и изменение
int main(intargc, char *argv[]) { system("chcp 1251 >nul"); //пишем по-русски char c; FILE *F; //файл while (1) { system("CLS"); //очисткаэкрана cout<< " 1 – новыйфайл" <<endl; cout<< " 2 – просмотр файла" <<endl; cout<< " 3 – добавление в файл" <<endl; cout<< " 4 – поиск и изменение" <<endl; cout<< " 0 - выход" <<endl; cin>> c; switch© { //меню case '1' : input(F); break; case '2' : print(F); break; case '3' : add(F); break; case '4' : find(F); break; case '0' : system("PAUSE"); return EXIT_SUCCESS; default :cout<< " неверный режим" <<endl; }; } }
void input(FILE *F) { char c; F=fopen("file1.dat","wb"); // открытие бинарного файла для записи system("CLS"); cout<< "Вводинструментов" <<endl; do { cout<< " Название: "; cin>> i1.name; cout<< " Число: "; cin>> i1.dd; cout<< " Месяц: "; cin>> i1.mm; cout<< " Год: "; cin>> i1.yy; fwrite(&i1,sizeof(i1),1,F); // запись в файл одной структуры i1 cout<< "\n Закончить? y/n "; cin>> c; } while (c != 'y'); fclose(F); system("PAUSE"); }
void print(FILE *F) { system("CLS"); F=fopen("file1.dat","rb"); // открытиебинарногофайладлячтения fread(&i1,sizeof(i1),1,F); // чтение из файла одной структуры i1 cout<< "Инструмент Число Месяц Год" <<endl; while (!feof(F)) { cout<< i1.name << " " << i1.dd << " " << i1.mm << " " << i1.yy <<endl; fread(&i1,sizeof(i1),1,F); } system("PAUSE"); }
void add(FILE *F) { char c; F=fopen("file1.dat","ab"); // открытиебинарногофайла system("CLS"); // для добавления cout<< "Ввод инструментов" <<endl; do { cout<< " Название: "; cin>> i1.name; cout<< " Число: "; cin>> i1.dd; cout<< " Месяц: "; cin>> i1.mm; cout<< " Год: "; cin>> i1.yy; fwrite(&i1,sizeof(i1),1,F); cout<< "\n Закончить? y/n "; cin>> c; } while (c != 'y'); fclose(F); system("PAUSE"); }
void find(FILE *F) { charc,inst[20]; longinti; F=fopen("file1.dat","rb+"); // открытие бинарного файла system("CLS"); // для чтения и записи cout<< " Название искомого инструмента: "; cin>>inst; fread(&i1,sizeof(i1),1,F); cout<< "Инструмент Число Месяц Год" <<endl; while (!feof(F)) { if (strcmp(i1.name,inst)==0) { cout<< i1.name << " " << i1.dd << " " << i1.mm << " " << i1.yy <<endl << " Изменить? y/n "; cin>> c; if (c == 'y') { cout<< " Число: "; cin>> i1.dd; cout<< " Месяц: "; cin>> i1.mm; cout<< " Год: "; cin>> i1.yy; i=sizeof(i1); fseek(F,-i,1); // возврат на sizeof(t1) байт назад fwrite(&i1,sizeof(i1),1,F); // запись изменённой структуры // на прежнее место cout<< i1.name << " " << i1.dd << " " << i1.mm << " " << i1.yy <<endl; break; } if (c == 'n') break; } fread(&i1,sizeof(i1),1,F); } fclose(F); system("PAUSE"); }
|
|
|