.


:




:

































 

 

 

 


. main().




 

, , :

- : , , ;

- , , , , .

, , 2 :

1 - ;

2 - .

1 main(). , . . .

1:

--------------------------------

--------------------------------

1: ;

2: ;

3:

--------------------------------

main(). . :

void NullWork(Worker work[],Worker *loc_number[],const int n).

 

, , . , , .

3- 1. :

 

int EnterMenu(const int size_menu).

 

- , . , 0 .

3 1 .

2 1 :

 

bool ExtMm(Worker work[],Worker *loc_number[],const int n).

 

, . . , , , . true. false. , , .

1 2 1 :

 

void MainMenu(Worker[],Worker *[],const int).

 

2. , , . , . , .

 

int main():

 

void NullWork(Worker[],Worker *[],const int):

 

 

 

 

int EnterMenu(const int):

 

 

 

bool ExtMm(Worker[],Worker[],const int):

 

 

 

void MainMenu(Worker[],Worker *[],const int):

2:

------------------------------

------------------------------

1: ;

2: ;

3: ;

4: ;

5: ;

------------------------------

 

1: :

 

void AddMm(Worker work[],Worker *loc_number[],const int n).

 

: , , . . , , . , , . . :

bool SortWork(char str1[],char str2[]).

 

( ) . true, str1[] > str2[], false, str1[] <= str2[].

 

2: :

 

void DelMm(Worker *loc_number[],const int n).

 

: , . , , . , , b false. , , .

4: :

 

void SaveMm(Worker work[],const int n).

 

: , . , . , , .

 

5: - :

 

bool ExitMm(bool save).

 

, : , . , . bool save true , 2 4: . false. , bool save, , , , :

------------------

1: ;

2: ;

------------------

 

3: :

 

void InformMm(Worker *loc_number[],const int n).

 

:

 

-----------------------------------

-----------------------------------

1: ;

2: ;

3: ;

4: ;

-----------------------------------

 

:

- ;

- ;

- .

 

void AddMm(Worker[],Worker *[],const int):

 

 

bool SortWork(char str1[],char str2[]):

 

 

 

void DelMm(Worker *[],const int):

 

 

void SaveMm(Worker [],const int):

 

bool ExitMm(bool save):

 

 

 

void InformMm(Worker *[],const int):

 

 

 

.exe . ( 1), , ( 2). ( 3).

ENTER. , . , , , .

2, , . , , .

, 1 , :

- ( 1) ;

- ( 2) ;

- ( 3) ;

- ( 4) ;

- ( 5) .

, ( ). , .

. 4, .

5, : . , :

- ( 1) ;

- ( 2) .

, .

3 :

- ( 1) ;

- ( 2) ;

- ( 3) ;

- ( 4) .

 

. . . .

, , .

 

 

 

1. /++. / . . . .: , 2012. 461.: .

2. - ++ 4- . / . . .: , 2012. - 928.: .

 

 

1.

stdafx.h

 

#include<conio.h>

#include<fstream>

#include<iostream>

#include<iomanip>

using namespace std;

 

 

struct Worker{

char surname[20]; //

double salary; //

bool be; // .

//

};

 

 

//

 

void MainMenu(Worker work[],Worker *loc_number[],const int n);

 

// , ,

//const int size_menu ,

 

int EnterMenu(const int size_menu);

 

//

 

void AddMm(Worker work[],Worker *loc_number[],const int n);

 

//

 

void DelMm(Worker *loc_number[],const int n);

 

//

 

void InformMm(Worker *loc_number[],const int n);

 

//

void SaveMm(Worker work[],const int n);

 

//

 

bool ExtMm(Worker work[],Worker *loc_number[],const int n);

 

//

 

bool SortWork(char str1[],char str2[]);

 

// . ,

//

 

bool ExitMm(bool save);

 

// Worker

 

void NullWork(Worker work[],Worker *loc_number[],const int n);

 

 

stdafx.cpp

 

 

#include "stdafx.h"

 

void MainMenu(Worker work[],Worker *loc_number[],const int n){

bool save=false; //

enum CHOISE_MM {add_mm=1,del_mm,inform_mm,save_mm,exit_mm};

int point_mm;

do{

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

cout<<" "<<endl;

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

cout<<"1: ;"<<endl<<endl;

cout<<"2: ;"<<endl<<endl;

cout<<"3: ;"<<endl<<endl;

cout<<"4: ;"<<endl<<endl;

cout<<"5: ;"<<endl<<endl;

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

point_mm=EnterMenu(exit_mm);

switch(point_mm){

case 0:

break;

case add_mm:

AddMm(work,loc_number,n);

save=false;

break;

case del_mm:

DelMm(loc_number,n);

save=false;

break;

case inform_mm:

InformMm(loc_number,n);

break;

case save_mm:

save=true;

SaveMm(work,n);

break;

case exit_mm:

if(ExitMm(save)) point_mm=0;

break;

}

}while(point_mm!=exit_mm);

NullWork(work,loc_number,n);

system("cls");

return;

}

int EnterMenu(const int size_menu){

int i=0;

char ent[20];

// , , , - // ,

//

cin>>ent;

i=atoi(&ent[0]);

if ((i<1)||(i>size_menu)){

cout<<ent<<" - . ";

_getch();

i=0;

}

system("cls");

return i;

}

void AddMm(Worker work[],Worker *loc_number[],const int n){

Worker *work_buf=0;

// bool

bool place=false;

int i=0,k=0;

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

if (work[i].be==false){

place=true; //

break;

}

}

// for place = true // .

// loc_number[0]==0

if (!place){

cout<<" . !"<<endl;

_getch();

system("cls");

return;

}

//-----------------------------------------------------------------------------

cout<<" : ";

cin>>work[i].surname;

cout<<" : ";

cin>>work[i].salary;

work[i].be=true;

 

//

for(i=1;i<n-1;i++){

for(k=0;k<n-i;k++){

if(SortWork((*loc_number[k]).surname,(*loc_number[k+1]).surname) && ((*loc_number[k+1]).be==true)){

work_buf=loc_number[k];

loc_number[k]=loc_number[k+1];

loc_number[k+1]=work_buf;

}

}

}

system("cls");

return;

}

bool SortWork(char str1[],char str2[]){

int i=0;

do{

if(str1[i]>str2[i]) {

return true;

break;

}else if(str1[i]<str2[i]) break;

i++;

}while((str1[i]!='\0')&&(str2[i]!='\0'));

return false;

}

void DelMm(Worker *loc_number[],const int n){

bool is=false;

char del_surname[20];

unsigned int i=0,k=0;

cout<<" , : ";

cin>>del_surname;

do{

if((*loc_number[i]).be){ //

for(k=0;k<strlen(del_surname);k++){

if(del_surname[k]!=(*loc_number[i]).surname[k]){

is=false; //

break;

}else is=true; //is=true -

}

if(is) break;

}

i++;

}while(static_cast<int>(i)<n);

if(!is){

cout<<" "<<del_surname<<" ";

_getch();

cout<<endl;

}

if(is){

strcpy_s((*loc_number[i]).surname,"0");

(*loc_number[i]).salary=0;

(*loc_number[i]).be=false;

}

system("cls");

}

void SaveMm(Worker work[],const int n){

 

char name[20];

cout<<" : ";

cin>>name;

ofstream fptr(name);

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

if(work[i].be){

fptr.write(reinterpret_cast<char*>(&work[i].be),sizeof(bool));

fptr.write(work[i].surname,20);

fptr.write(reinterpret_cast<char*>(&work[i].salary),sizeof(double));

}

}

fptr.close();

system("cls");

return;

}

bool ExtMm(Worker work[],Worker *loc_number[],const int n){

Worker *work_buf=0;

char data_base[20];

cout<<" : ";

cin>>data_base;

ifstream fptr;

fptr.open(data_base);

if(!fptr){

cout<<" \""<<data_base<<"\" ! "<<endl;

_getch();

system("cls");

return false;

}

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

fptr.read(reinterpret_cast<char*>(&work[i].be),sizeof(bool));

fptr.read(work[i].surname,20);

fptr.read(reinterpret_cast<char*>(&work[i].salary),sizeof(double));

}

fptr.close();

//

for(int i=1;i<n-1;i++){

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

if(SortWork((*loc_number[k]).surname,(*loc_number[k+1]).surname) && ((*loc_number[k+1]).be==true)){

work_buf=loc_number[k];

loc_number[k]=loc_number[k+1];

loc_number[k+1]=work_buf;

}

}

}

system("cls");

return true;

}

bool ExitMm(bool save){

if(!save){

enum CHOISE_EM{back_em=1,output_em};

int point_em;

cout<<" ."<<

endl<<" !"<<endl<<endl;

do{

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

cout<<"1: ; "<<endl<<endl;

cout<<"2: ; "<<endl<<endl;

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

point_em=EnterMenu(output_em);

switch(point_em){

case 0:

break;

case back_em:

return true; //

case output_em:

return false; //

}

}while(!point_em);

}

return false;

}

void InformMm(Worker *loc_number[],const int n){

 

double total=0,max=0;

int k;

enum CHOISE_MM {out_im=1,total_im,max_im,exit_im};

int point_im;

do{

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

cout<<" "<<endl;

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

cout<<"1: ;"<<endl<<endl;

cout<<"2: ;"<<endl<<endl;

cout<<"3: ;"<<endl<<endl;

cout<<"4: ;"<<endl<<endl;

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

point_im=EnterMenu(exit_im);

switch(point_im){

case 0:

break;

case out_im:

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

cout<<" | "<<endl;

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

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

if((*loc_number[i]).be==false) continue;

cout.setf(ios::left);

cout<<setw(20)<<(*loc_number[i]).surname<<setw(20)<<(*loc_number[i]).salary<<endl;

}

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

_getch();

break;

case total_im:

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

if((*loc_number[i]).be==false) continue;

total+=(*loc_number[i]).salary;

}

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

cout<<" = "<<total<<endl;

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

total=0;

_getch();

break;

case max_im:

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

if((*loc_number[i]).be==false) continue;

if((*loc_number[i]).salary > max) {

max=(*loc_number[i]).salary;

k=i;

}

}

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

cout<<" : "<<endl;

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

cout<<" | "<<endl;

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

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

if((*loc_number[i]).salary==max){

cout.setf(ios::left);

cout<<setw(20)<<(*loc_number[i]).surname<<setw(20)<<(*loc_number[i]).salary<<endl;

}

}

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

_getch();

break;

case exit_im:

break;

}

system("cls");

}while(point_im!=exit_im);

return;

}

void NullWork(Worker work[],Worker *loc_number[],const int n){

// Worker

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

strcpy_s(work[i].surname,"0");

work[i].salary=0;

work[i].be=false;

loc_number[i]=&work[i];

}

return;

}

 

 

.cpp

 

// . . .cpp. 5.

 

#include "stdafx.h"

 

int main()

{

system("chcp 1251");

system("cls");

const int n=100;

// Worker

Worker work[n];

// Worker

// Worker

Worker *number[n];

// Worker

NullWork(work,number,n);

 

enum CHOISE_MMD {create_mmd=1,extract_mmd,exit_mmd};

int point_mmd;

do{

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

cout<<" "<<endl;

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

cout<<"1: ;"<<endl<<endl;

cout<<"2: ;"<<endl<<endl;

cout<<"3: ;"<<endl<<endl;

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

point_mmd=EnterMenu(exit_mmd);

switch(point_mmd){

case 0:

break;

case create_mmd: //

MainMenu(work, number,n);

break;

case extract_mmd: //

if(!ExtMm(work,number,n))break;

MainMenu(work, number,n);

break;

case exit_mmd:

break;

}

}while(point_mmd!=exit_mmd);

return 0;

}

 

 





:


: 2016-11-12; !; : 318 |


:

:

80% - .
==> ...

1567 - | 1427 -


© 2015-2024 lektsii.org - -

: 0.275 .