Рисунок 4.1- Робота програми 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Рисунок 4.1- Робота програми

Поиск

 

Міністерство освіти і науки України

Запорізький національний технічний університет

 

 

Кафедра програмних засобів

 

Звіт

з лабораторної роботи №4

«Введення/виведення потоками. робота з файлами»

Виконав

ст. гр. КНТ-423                                                             В.В. Білевський

 

Прийняв                                                          

ст. викл.                                                          Н. О. Миронова

      

 

 

Запоріжжя, 2014

4.1Мета роботи:Навчитись     маніпулювати потоками введення/виведення, працювати з файлами та форматувати дані при введенні/виведенні

4.2 Завдання до роботи:Створити динамічний клас Catalog, що базується на зв’язаному списку, де кожний елемент списку – структура типа Book. Клас повинен містити наступні операції реалізувати методи консольного та файлового введення/виведення, створити маніпулятори insetup та outsetup для форматування відповідно потоків введення/виведення.

add_book() – додавання книги у каталог;

del_book() – видалення книги з каталогу;

find_by_autor() – пошук книги у каталозі за автором;

show_cataloque() -  відображення каталогу книг.

 

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

#include<iostream>

#include<fstream>

#include<stdio.h>

using namespace std;

class catalog{

struct books{

   char name[20];

   char autor[10];

};

struct elem{

   books data;

   elem *pnext;

};

public:

void add();

void show();

void find_by_autor(char *autor);

void dell();

void ofs();

void ifs();

elem *plist=NULL,*pfirst;

 

};

 

void catalog::add() {

   elem * tmp = new elem;

   cout << "input name of book ";

   cin >> tmp -> data.name;

   cout << "input autor of book ";

   cin >> tmp -> data.autor;

   tmp->pnext=NULL;

 

   if (!plist) {

       plist = tmp;

       pfirst = plist;

   } else {

       plist->pnext = tmp;

       plist = tmp;

   }

}

void catalog::ofs(){

ofstream file;

file.open("1.txt");

elem *tmp=pfirst;

while(tmp){

   file<<tmp->data.autor<<" "<<tmp->data.name<<'\n';

   tmp=tmp->pnext;

}

file.close();

}

void catalog::ifs(){

ifstream ifs;

while(ifs){

   elem *tmp=new elem;

ifs>>tmp->data.autor;

ifs>>tmp->data.name;

tmp->pnext=NULL;

 

if (!plist) {

plist = tmp;

pfirst = plist;

} else {

plist->pnext = tmp;

plist = tmp;

}

 

}

ifs.close();

}

 

void catalog::show(){

elem *tmp=pfirst;

while(tmp){

   cout<<"Book name:"<<tmp->data.name<<" "<<"Autor name:"<<tmp->data.autor<<endl;

   tmp=tmp->pnext;

}

}

void catalog::find_by_autor(char *autor){

elem *tmp=pfirst;

while(tmp){

   if(*autor==*tmp->data.autor)

       cout<<"book name: "<<tmp->data.name<<" "<<"Autor name: "<< tmp->data.autor<<endl;

tmp=tmp->pnext;}

 

}

void catalog::dell() {

   elem *el=pfirst;

   delete el;

   pfirst=el->pnext;

 

}

int main(){

catalog c;

c.ifs();

int a;

char name[20];

int n=1;

for(int i=0;i<n;i++){

cout<<"Enter value:\n"<<"1:Add new book\n"<<"2:Dell book\n"<<"3:Find by autor\n"<<"4:Show all books\n"<<"5:exit"<<endl;

cin>>a;

switch (a) {

case 1:

   c.add();

break;

case 2:

   c.dell();

break;

case 3:

   cout<<"Enter autor name:";

   cin>>name;

   c.find_by_autor(name);

 

break;

case 4:

   c.show();

break;

}

if(a==5){

   c.ofs();

   break;}

n++;

a=0;

cout<<"-------------------------------------------------"<<endl;}

}

4.4 Знімки з єкрану:

 



Поделиться:


Последнее изменение этой страницы: 2024-06-17; просмотров: 44; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.005 с.)