-
++
:
03-781-1 ..
:
..., һ ..
, 2014
: ++.
.
:
- ;
- (, -);
- ( );
- 20;
- (-) 2;
- (-) 3;
- , + 50% ( );
- ;
- ( );
- () ;
- - ;
- () ;
- ( );
- ( ) ( );
- ;
- .
:
1. .
2. .
3. (-) .
4. ++.
5. ++.
C++ .
- , , , . - : 1) , ; 2) - ; 3) .
- . , . - , ( ) ( ) , . - - ; , .[4]
|
|
- . . - . , , . , , .
. . . . .
. . , , .
- : - : , . () , , , .
, , . (private) . () . .
( -). . . , .
, () , () () . , , . . [4]
|
|
, , .
, . . (, , ). class, . .[3]
.
( , C++ ) , (.. ). . .
.
, . , .
. , ( , ::).
. - .
(public), (private) (protected).
private .
protected .
public , ( ).
-, ( ) (public, private, protected), . -.
Private-
, protected public, private .
Protected-
, protected public protected . .
Public-
, protected public, , , protected public , .[2]
. 2- : . - , - (- + 50%). , , , , .
baza |
Attributes: + zver* zv + ptic* pt + int kolzv + int kolpt + int maxdzv + int maxpt |
Operatoins: +baza() +vivodzv() +vivodpt() +Filtr1() +Edit() +Edit2() +Edit3() +WriteToFile() +Sortzv() +Sortpt() +Add() +Delet() |
zhivotnoe |
Attributes: + char name[15]; + char razmer[15]; + char pol[3]; + char semeistvo[20]; |
Operatoins: zhivotnoe() + verh() + GetName(char buf[]); + GetRazmer(char buf[]); + GetPol(char buf[]); + GetSemeistvo(char buf[]); + SetName(char buf[]); + SetRazmer(char buf[]); + SetPol(char buf[]); + SetSemeistvo(char buf[]); |
zver |
Attributes: + char poroda[20]; + char okras[10]; + int vozrast; |
Operatoins: + zver(); + zver(int s); + zver(FILE *file); + vivod(); + ZapisF(FILE *file); + Setvozrast(); + GetPoroda(char buf[]); + GetOkras(char buf[]); + GetVozrast(int &buf); + SetPoroda(char buf[]); + SetOkras(char buf[]); + SetVozrast(int &buf); |
|
|
ptic |
Attributes: + char arealobitania[20] + int chislennostSemeistvoa + int ves |
Operatoins: + ptic(); + ptic(int s); + ptic(FILE *file); + vivod(); + ZapisF(FILE *file); + GetAreal(char buf[]); + GetChisl(int &buf); + GetVes(int &buf); + SetAreal(char buf[]); + SetChisl(int buf); + SetVes(int buf); |
main.cpp
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <conio.h>
#include <string.h>
#include "func.h"
int main()
{
setlocale(LC_CTYPE, "Russian");
baza bk;
bool p = true;
char sw;
Menu();
while (p)
{
sw = _getch();
switch (sw)
{
case '1':
system("cls");
Menu();
bk.vivodpt();
cout << endl;
bk.vivodzv();
break;
case '2':
system("cls");
Menu();
bk.Filtr1();
system("cls");
Menu();
break;
case '3':
system("cls");
bk.Edit();
system("cls");
Menu();
break;
case '4':
bk.WriteToFile();
system("cls");
Menu();
break;
case '5':
bk.Sortpt();
system("cls");
Menu();
break;
case '6':
bk.Sortzv();
system("cls");
Menu();
break;
case '7':
bk.Add();
system("cls");
Menu();
break;
case '8':
bk.Delet();
system("cls");
Menu();
break;
case 'c':
system("cls");
Menu();
break;
case 'x':
exit(0);
default:
break;
}
}
return 0;
}
Func.cpp
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <conio.h>
#include "func.h"
using namespace std;
void Menu()//
{
cout << "1) " << endl
<< "2)" << endl
<< "3) " << endl
<< "4) "<< endl
<< "5) " << endl
<< "6) "<< endl
<< "7) " << endl
<< "8) " << endl
<< "Z) " << endl
<< ")" << endl;
}
void Menu2()//
{
cout << "1)" << endl
<< "2)" << endl
<< "3)" << endl
<< "4)" << endl
<< "5) " << endl
<< "9)";
}
void MenuObshee()//
{
cout << "1)" << endl << "2)" << endl << "9)";
}
void Menuzv()//
{
cout << "1)" << endl << "2)" << endl << "3)" << endl
<< "4)" << endl << "5)" << endl << "6)" << endl << "7)" << endl << "9)";
}
void Menupt()//
|
|
{
cout << "1) " << endl << "2)" << endl << "3)" << endl << "4)" << endl
<< "5) " << endl << "6) " << endl << "7)" << endl << "9)";
}
zhivotnoe::zhivotnoe(){}
void zhivotnoe::GetName(char buf[])
{
strcpy(buf, name);
}
void zhivotnoe::GetRazmer(char buf[])
{
strcpy(buf, razmer);
}
void zhivotnoe::GetPol(char buf[])
{
strcpy(buf, pol);
}
void zhivotnoe::GetSemeistvo(char buf[])
{
strcpy(buf, semeistvo);
};
void ptic::GetAreal(char buf[])
{
strcpy(buf, arealobitania);
};
void ptic::GetChisl(int &buf)
{
buf = chislennostSemeistvoa;
};
void ptic::GetVes(int &buf)
{
buf = ves;
};
void zver::GetPoroda(char buf[])
{
strcpy(buf, poroda);
};
void zver::GetOkras(char buf[])
{
strcpy(buf, okras);
};
void zver::GetVozrast(int &buf)
{
buf = vozrast;
};
void zver::SetPoroda(char buf[])
{
strcpy(poroda, buf);
};
void zver::SetOkras(char buf[])
{
strcpy(okras, buf);
};
void zver::SetVozrast(int &buf)
{
vozrast = buf;
};
void zhivotnoe::SetName(char buf[])
{
strcpy(name, buf);
}
void zhivotnoe::SetRazmer(char buf[])
{
strcpy(razmer, buf);
}
void zhivotnoe::SetPol(char buf[])
{
strcpy(pol, buf);
}
void zhivotnoe::SetSemeistvo(char buf[])
{
strcpy(semeistvo, buf);
}
void ptic::SetAreal(char buf[])
{
strcpy(arealobitania, buf);
}
void ptic::SetChisl(int buf)
{
chislennostSemeistvoa = buf;
}
void ptic::SetVes(int buf)
{
ves = buf;
}
zver::zver()
{}
zver::zver(FILE *file)
{
fscanf(file, "%s %s %s %s %s %s %d", name, pol, razmer, semeistvo, poroda, okras, &vozrast);
}
void zver::ZapisF(FILE *file)
{
fprintf(file, "%s %s %s %s %s %s %d", name, pol, razmer, semeistvo, poroda, okras, vozrast);
fprintf(file, "%c", '\n');
}
void zver::vivod()
{
cout << "* " << setw(10) << left << name << "* " << setw(3) << pol << "* " << setw(7)
<< razmer << "* " << setw(10) << semeistvo << "* " << setw(10) << poroda
<< "* " << setw(10) << okras << "* " << setw(7) << vozrast << "*" << endl;
}
ptic::ptic()
{}
ptic::ptic(FILE *file)
{
fscanf(file, "%s %s %s %s %s %d %d", name, pol, razmer, semeistvo, arealobitania, &chislennostSemeistvoa, &ves);
}
void ptic::vivod()
{
cout << "* " << setw(10) << left << name << "* " << setw(3) << pol << "* " << setw(10) << razmer
<< "* " << setw(12) << semeistvo << "* " << setw(11) << arealobitania << "* " << setw(10)
<< chislennostSemeistvoa << "* " << setw(3) << ves << "*" << endl;
}
void ptic::ZapisF(FILE *file)
{
fprintf(file, "%s %s %s %s %s %d %d", name, pol, razmer, semeistvo, arealobitania, chislennostSemeistvoa, ves);
fprintf(file,"%c", '\n');
};
zver::zver(int s)
{
cout << endl << "Vvedite novie dannie (name, pol, sem-vo, razmer, poroda, okras, vozrast):" << endl;
cin >> name >> pol >> razmer >> semeistvo >> poroda >> okras >> vozrast;
}
baza::baza()
{
FILE *f1 = fopen("1.txt", "r");
FILE *f2 = fopen("2.txt", "r");
fscanf(f1, "%d", &kolzv);
fscanf(f2, "%d", &kolpt);
maxzv = kolzv + (kolzv / 2);
maxpt = kolpt + (kolpt / 2);
pt = new ptic[maxpt];
zv = new zver[maxzv];
int kol = 0;
while (!feof(f1))
{
zver bufzv(f1);
zv[kol] = bufzv;
kol++;
}
int kol1 = 0;
while (!feof(f2))
{
ptic bufpt(f2);
pt[kol1] = bufpt;
kol1++;
}
fclose(f1);
fclose(f2);
}
void baza::vivodzv()
{
cout << "* " << setw(10) << left << "" << "* " << setw(3) << "" << "* " << setw(7) << "" << "* "
<< setw(10) << "" << "* " << setw(10) << "" << "* " << setw(10) << "" << "* " << setw(7)
|
|
<< "" << "*" << endl;
for (int i = 0; i<kolzv; i++)
{
zv[i].vivod();
}
}
void baza::vivodpt()
{
cout << "* " << setw(10) << left << "" << "* " << setw(3) << "" << "* " << setw(10)
<< "" << "* " << setw(12) << "" << "* " << setw(10) << "- -" << "* " << setw(10)
<< " " << "* " << setw(2) << "" << "*" << endl;
for (int i = 0; i<kolpt; i++)
{
pt[i].vivod();
}
}
void baza::Filtr1()//
{
bool p = true;
char fil;
char str1[15], str2[15];
system("cls");
Menu2();
cout << endl << " ";
char namefile[20];
cin >> namefile;
FILE *fout = fopen(namefile, "w");
while (p)
{
fil = _getch();
switch (fil)
{
case '1':
system("cls");
Menu2();
cout << " ";
cin >> str1;
cout << "*" << setw(10) << left << "" << "* " << setw(3) << "" << "* " << setw(10)
<< "" << "* " << setw(10) << "" << "* " << setw(10) << "- -" << "* " << setw(10)
<< "- " << "* " << setw(2) << "" << "*" << endl;
for (int i = 0; i < kolpt; i++)
{
pt[i].GetName(str2);
if (strcmp(str1, str2) == 0){ pt[i].vivod(); pt[i].ZapisF(fout); }
}
cout << "* " << setw(7) << left << "" << "* " << setw(3) << "" << "* " << setw(10) << "" << "* "
<< setw(10) << "" << "* " << setw(10) << "" << "* " << setw(10) << "" << "* " << setw(7)
<< "" << "*" << endl;
for (int i = 0; i < kolzv; i++)
{
zv[i].GetName(str2);
if (strcmp(str1, str2) == 0){ zv[i].vivod(); zv[i].ZapisF(fout); }
}
break;
case '2':
system("cls");
Menu2();
cout << " ";
cin >> str1;
cout << "*" << setw(10) << left << "" << "* " << setw(3) << "" << "* " << setw(10)
<< "" << "* " << setw(10) << "" << "* " << setw(10) << "- -" << "* " << setw(10)
<< "- " << "* " << setw(2) << "" << "*" << endl;
for (int i = 0; i < kolpt; i++)
{
pt[i].GetPol(str2);
if (strcmp(str1, str2) == 0){ pt[i].vivod(); pt[i].ZapisF(fout); }
}
cout << "* " << setw(7) << left << "" << "* " << setw(3) << "" << "* " << setw(10) << "" << "* "
<< setw(10) << "" << "* " << setw(10) << "" << "* " << setw(10) << "" << "* " << setw(7)
<< "" << "*" << endl;
for (int i = 0; i < kolzv; i++)
{
zv[i].GetPol(str2);
if (strcmp(str1, str2) == 0){ zv[i].vivod(); zv[i].ZapisF(fout); }
}
break;
case '3':
system("cls");
Menu2();
cout << " ";
cin >> str1;
cout << "*" << setw(10) << left << "" << "* " << setw(3) << "" << "* " << setw(10)
<< "" << "* " << setw(10) << "" << "* " << setw(10) << "- -" << "* " << setw(10)
<< "- " << "* " << setw(2) << "" << "*" << endl;
for (int i = 0; i < kolpt; i++)
{
pt[i].GetRazmer(str2);
if (strcmp(str1, str2) == 0){ pt[i].vivod(); pt[i].ZapisF(fout); }
}
cout << "* " << setw(7) << left << "" << "* " << setw(3) << "" << "* " << setw(10) << "" << "* "
<< setw(10) << "" << "* " << setw(10) << "" << "* " << setw(10) << "" << "* " << setw(7)
<< "" << "*" << endl;
for (int i = 0; i < kolzv; i++)
{
zv[i].GetRazmer(str2);
if (strcmp(str1, str2) == 0){ zv[i].vivod(); zv[i].ZapisF(fout); }
}
break;
case '4':
system("cls");
Menu2();
cout << " ";
cin >> str1;
cout << "*" << setw(10) << left << "" << "* " << setw(3) << "" << "* " << setw(10)
<< "" << "* " << setw(10) << "" << "* " << setw(10) << "- -" << "* " << setw(10)
<< "- " << "* " << setw(2) << "" << "*" << endl;
for (int i = 0; i < kolpt; i++)
{
pt[i].GetSemeistvo(str2);
if (strcmp(str1, str2) == 0){ pt[i].vivod(); pt[i].ZapisF(fout); }
}
cout << "* " << setw(7) << left << "" << "* " << setw(3) << "" << "* " << setw(10) << "" << "* "
<< setw(10) << "" << "* " << setw(10) << "" << "* " << setw(10) << "" << "* " << setw(7)
<< "" << "*" << endl;
for (int i = 0; i < kolzv; i++)
{
zv[i].GetSemeistvo(str2);
if (strcmp(str1, str2) == 0){ zv[i].vivod(); zv[i].ZapisF(fout); }
}
case '5':
system("cls");
Menu2();
cout << " ";
cin >> str1;
cout << "*" << setw(10) << left << "" << "* " << setw(3) << "" << "* " << setw(10)
<< "" << "* " << setw(10) << "" << "* " << setw(10) << "- -" << "* " << setw(10)
<< "- " << "* " << setw(2) << "" << "*" << endl;
for (int i = 0; i < kolpt; i++)
{
pt[i].GetAreal(str2);
if (strcmp(str1, str2) == 0){ pt[i].vivod(); pt[i].ZapisF(fout); }
}
cout << "* " << setw(7) << left << "" << "* " << setw(3) << "" << "* " << setw(10) << "" << "* "
<< setw(10) << "" << "* " << setw(10) << "" << "* " << setw(10) << "" << "* " << setw(7)
<< "" << "*" << endl;
for (int i = 0; i < kolzv; i++)
{
zv[i].GetPoroda(str2);
if (strcmp(str1, str2) == 0){ zv[i].vivod(); zv[i].ZapisF(fout); }
}
break;
case '9':
p = false;
break;
default:
break;
}
}
fclose(fout);
}
void baza::Edit()
{
// 1- 2- 9-
bool p = true;
char ed;
MenuObshee();
while (p)
{
ed = _getch();
switch (ed)
{
case '1':
Edit2();
system("cls");
MenuObshee();
break;
case '2':
Edit3();
system("cls");
MenuObshee();
break;
case '9':
p = false;
break;
default:
break;
}
}
}
void baza::Edit2()//
{
system("cls");
cout << "Vvedite nomer: ";
int nomt; //
cin >> nomt;
if ((nomt <= kolzv) && (nomt > 0)) //
{
bool p = true;
char ed;
system("cls");
Menuzv();
while (p)
{
//1- , 2-, 3-, 4-, 9-
ed = _getch();
switch (ed)
{
case '1':
cout << endl << "Vvedite novoe name" << endl;
char bufname[11];
cin >> bufname;
zv[nomt - 1].SetName(bufname);
system("cls");
Menuzv();
break;
case '2':
cout << endl << "Vvedite pol " << endl;
char bufpol[11];
cin >> bufpol;
zv[nomt - 1].SetPol(bufpol);
system("cls");
Menuzv();
break;
case '3':
cout << endl << "Vvedite razmer" << endl;
char bufpodsem[11];
cin >> bufpodsem;
zv[nomt - 1].SetRazmer(bufpodsem);
system("cls");
Menuzv();
break;
case '4':
cout << endl << "Vvedite sem-vo" << endl;
char bufsemeistvo[11];
cin >> bufsemeistvo;
zv[nomt - 1].SetSemeistvo(bufsemeistvo);
system("cls");
Menuzv();
break;
case '5':
cout << endl << "Vvedite porodu" << endl;
char bufpor[11];
cin >> bufpor;
zv[nomt - 1].SetPoroda(bufpor);
system("cls");
Menuzv();
case '6':
cout << endl << "Vvedite okras" << endl;
char bufokr[11];
cin >> bufokr;
zv[nomt - 1].SetOkras(bufokr);
system("cls");
Menuzv();
case '7':
cout << endl << "Vvedite vozrast" << endl;
int bufvoz;
cin >> bufvoz;
zv[nomt - 1].SetVozrast(bufvoz);
system("cls");
Menuzv();
break;
case '9':
p = false;
break;
default:
break;
}
}
}
else
{
cout << "Oshibka! Vvedite drugoy nomer\n";
system("pause");
}
}
void baza::Edit3()//
{
cout << endl << "Vvedite nomer ptic";
int nomc; //
cin >> nomc;
if ((nomc <= kolpt) && (nomc > 0))
{
bool p = true;
char ed;
system("cls");
Menupt();
while (p)
{
//1- , 2-, 3-, 4-, 9-
ed = _getch();
switch (ed)
{
case '1':
cout << endl << "Vvedite novoe name" << endl;
char bufname[11];
cin >> bufname;
pt[nomc - 1].SetName(bufname);
system("cls");
Menupt();
break;
case '2':
cout << endl << "Vvedite pol" << endl;
char bufpol[11];
cin >> bufpol;
pt[nomc - 1].SetPol(bufpol);
system("cls");
Menupt();
break;
case '3':
cout << endl << "Vvedite noviy razmer" << endl;
char bufpodsem[11];
cin >> bufpodsem;
pt[nomc - 1].SetRazmer(bufpodsem);
system("cls");
Menupt();
break;
case '4':
cout << endl << "Vvedite sem-vo" << endl;
char bufsemeistvo[11];
cin >> bufsemeistvo;
pt[nomc - 1].SetSemeistvo(bufsemeistvo);
system("cls");
Menupt();
case '5':
cout << endl << "Vvedite Areal obitania" << endl;
char bufareal[11];
cin >> bufareal;
pt[nomc - 1].SetAreal(bufareal);
system("cls");
Menupt();
case '6':
cout << endl << "Vvedite Chislennost semeistvoa" << endl;
int bufchisl;
cin >> bufchisl;
pt[nomc - 1].SetChisl(bufchisl);
system("cls");
Menupt();
case '7':
cout << endl << "Vvedite ves" << endl;
int bufves;
cin >> bufves;
pt[nomc - 1].SetVes(bufves);
system("cls");
Menupt();
case '9':
p = false;
break;
default:
break;
}
}
}
else
{
cout << "Oshibka! Vvedite drugoy nomer\n";
system("pause");
}
};
ptic::ptic(int s)
{
//
cout << endl << "Vvedite novie dannie (name, semeistvo, pol, arealobitania, chislennostSemeistvoa,ves):" << endl;
cin >> name >> razmer >> pol >> semeistvo >> arealobitania >> chislennostSemeistvoa >> ves;
};
void baza::WriteToFile()
{
//
cout << endl << "Vvedite nazvanie file (fout.txt)";
char namefile[20]; //
cin >> namefile;
FILE *fout = fopen(namefile, "w");
for (int i = 0; i < kolpt; i++) //
{
pt[i].ZapisF(fout);
}
for (int i = 0; i < kolzv; i++) //
{
zv[i].ZapisF(fout);
}
fclose(fout);
}
void baza::Sortpt() //
{
char sort;
bool p = true, ex = true;
ptic buf;
system("cls");
while (ex)
{
//1- , 2-,3-, 4-, 5- , 6- , 7-
// 2 2- (i- i+1-) i-
system("cls");
Menupt();
cout << endl;
vivodpt();
sort = _getch();
switch (sort)
{
case '1':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolpt - 1; i++){
pt[i].GetName(str1); pt[i + 1].GetName(str2);
if (strcmp(str1, str2) == 1){ buf = pt[i]; pt[i] = pt[i + 1]; pt[i + 1] = buf; p = true; }
}
}
break;
case '2':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolpt - 1; i++){
pt[i].GetPol(str1); pt[i + 1].GetPol(str2);
if (strcmp(str1, str2) == 1){ buf = pt[i]; pt[i] = pt[i + 1]; pt[i + 1] = buf; p = true; }
}
}
break;
case '3':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolpt - 1; i++){
pt[i].GetRazmer(str1); pt[i + 1].GetRazmer(str2);
if (strcmp(str1, str2) == 1){ buf = pt[i]; pt[i] = pt[i + 1]; pt[i + 1] = buf; p = true; }
}
}
break;
case '4':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolpt - 1; i++){
pt[i].GetSemeistvo(str1); pt[i + 1].GetSemeistvo(str2);
if (strcmp(str1, str2) == 1){ buf = pt[i]; pt[i] = pt[i + 1]; pt[i + 1] = buf; p = true; }
}
}
break;
case '5':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolpt - 1; i++){
pt[i].GetAreal(str1); pt[i + 1].GetAreal(str2);
if (strcmp(str1, str2) == 1){ buf = pt[i]; pt[i] = pt[i + 1]; pt[i + 1] = buf; p = true; }
}
}
break;
case '6':
p = true;
while (p){
p = false;
int ch1, ch2;
for (int i = 0; i < kolpt - 1; i++){
pt[i].GetChisl(ch1); pt[i + 1].GetChisl(ch2);
if (ch1 > ch2){ buf = pt[i]; pt[i] = pt[i + 1]; pt[i + 1] = buf; p = true; }
}
}
break;
case '7':
p = true;
while (p){
p = false;
int ch1, ch2;
for (int i = 0; i < kolpt - 1; i++){
pt[i].GetVes(ch1); pt[i + 1].GetVes(ch2);
if (ch1 > ch2){ buf = pt[i]; pt[i] = pt[i + 1]; pt[i + 1] = buf; p = true; }
}
}
break;
case '9':
ex = false;
break;
default:
break;
}
}
}
void baza::Sortzv() //
{
char sort;
bool p = true, ex = true;
zver buf;
system("cls");
while (ex)
{
//1- , 2-,3-, 4-, 5-, 6-, 7-
// 2 2- (i- i+1-) i-
system("cls");
Menuzv();
cout << endl;
vivodzv();
sort = _getch();
switch (sort)
{
case '1':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolzv - 1; i++){
zv[i].GetName(str1); zv[i + 1].GetName(str2);
if (strcmp(str1, str2) == 1){ buf = zv[i]; zv[i] = zv[i + 1]; zv[i + 1] = buf; p = true; }
}
}
break;
case '2':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolzv - 1; i++){
zv[i].GetPol(str1); zv[i + 1].GetPol(str2);
if (strcmp(str1, str2) == 1){ buf = zv[i]; zv[i] = zv[i + 1]; zv[i + 1] = buf; p = true; }
}
}
break;
case '3':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolzv - 1; i++){
zv[i].GetRazmer(str1); zv[i + 1].GetRazmer(str2);
if (strcmp(str1, str2) == 1){ buf = zv[i]; zv[i] = zv[i + 1]; zv[i + 1] = buf; p = true; }
}
}
break;
case '4':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolzv - 1; i++){
zv[i].GetSemeistvo(str1); zv[i + 1].GetSemeistvo(str2);
if (strcmp(str1, str2) == 1){ buf = zv[i]; zv[i] = zv[i + 1]; zv[i + 1] = buf; p = true; }
}
}
break;
case '5':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolzv - 1; i++){
zv[i].GetPoroda(str1); zv[i + 1].GetPoroda(str2);
if (strcmp(str1, str2) == 1){ buf = zv[i]; zv[i] = zv[i + 1]; zv[i + 1] = buf; p = true; }
}
}
break;
case '6':
p = true;
while (p){
p = false;
char str1[11], str2[11];
for (int i = 0; i < kolzv - 1; i++){
zv[i].GetOkras(str1); zv[i + 1].GetOkras(str2);
if (strcmp(str1, str2) == 1){ buf = zv[i]; zv[i] = zv[i + 1]; zv[i + 1] = buf; p = true; }
}
}
break;
case '7':
p = true;
while (p){
p = false;
int ch1, ch2;
for (int i = 0; i < kolzv - 1; i++){
zv[i].GetVozrast(ch1); zv[i + 1].GetVozrast(ch2);
if (ch1 > ch2){ buf = zv[i]; zv[i] = zv[i + 1]; zv[i + 1] = buf; p = true; }
}
}
break;
case '9':
ex = false;
break;
default:
break;
}
}
}
void baza::Add()
{
//
//1- , 2-
bool p = true;
char add;
system("cls");
MenuObshee();
while (p)
{
add = _getch();
switch (add)
{
case '1':
{
if (kolzv < maxzv) //
{
zver bufzv(0); // ,
zv[kolzv] = bufzv;
kolzv++;
system("cls");
MenuObshee();
}
else
{
cout << "Dostignuto maximalnoe kol-vo zvashnih koshek";
}
break;
}
case '2':
{
if (kolpt < maxpt) //
{
ptic bufpt(0);// ,
pt[kolpt] = bufpt;
kolpt++;
system("cls");
MenuObshee();
}
else
{
cout << "Dostignuto maximalnoe kol-vo ptih koshek";
}
break;
}
case '9':
p = false;
break;
default:
break;
}
}
}
void baza::Delet()
{
//
//1- 2-
bool p = true;
char del;
system("cls");
MenuObshee();
while (p)
{
del = _getch();
switch (del)
{
case '1':
cout << endl << "Vvedite nomer zver";
int nomt; //
cin >> nomt;
if ((nomt > 0) && (nomt <= kolzv))//,
{
for (int i = nomt; i < kolzv; i++)
zv[i - 1] = zv[i];
kolzv--;//
system("cls");
MenuObshee();
}
else
cout << "Takogo nomera netu";
break;
case '2':
cout << endl << "Vvedite nomer ptic";
int nomk;
cin >> nomk;
if ((nomk > 0) && (nomk <= kolpt))
{
for (int i = nomk; i < kolpt; i++)
pt[i - 1] = pt[i];
kolpt--;
system("cls");
MenuObshee();
}
else
cout << "Takogo nomera netu";
break;
case '9':
p = false;
break;
default:
break;
}
}
}
func.h
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <stdio.h>
#include <iomanip>
#include <process.h>
#include <conio.h>
#include <string.h>
using namespace std;
class zhivotnoe
{
protected:
char name[15];
char razmer[15];
char pol[3];
char semeistvo[20];
public:
zhivotnoe();
void verh();
void GetName(char buf[]);
void GetRazmer(char buf[]);
void GetPol(char buf[]);
void GetSemeistvo(char buf[]);
void SetName(char buf[]);
void SetRazmer(char buf[]);
void SetPol(char buf[]);
void SetSemeistvo(char buf[]);
};
class zver: public zhivotnoe
{
private:
char poroda[20];
char okras[10];
int vozrast;
public:
zver();
zver(int s);
zver(FILE *file);
void vivod();
void ZapisF(FILE *file);
void Setvozrast();
void GetPoroda(char buf[]);
void GetOkras(char buf[]);
void GetVozrast(int &buf);
void SetPoroda(char buf[]);
void SetOkras(char buf[]);
void SetVozrast(int &buf);
};
class ptic: public zhivotnoe
{
protected:
char arealobitania[20];
int chislennostSemeistvoa;
int ves;
public:
ptic();
ptic(int s);
ptic(FILE *file);
void vivod();
void ZapisF(FILE *file);
void GetAreal(char buf[]);
void GetChisl(int &buf);
void GetVes(int &buf);
void SetAreal(char buf[]);
void SetChisl(int buf);
void SetVes(int buf);
};
class baza
{
protected:
zver* zv;
ptic* pt;
int kolzv;
int kolpt;
int maxzv;
int maxpt;
public:
baza();
void vivodzv();
void vivodpt();
void Filtr1();
void Edit();
void Edit2();
void Edit3();
void WriteToFile();
void Sortzv();
void Sortpt();
void Add();
void Delet();
};
void Menu();
void Menu2();
void MenuObshee();
void Menuzv();
void Menupt();