двусвязный список фирмы. - инт номер - имя (стринг) - возраст (инт) - зарплата (дабл или флоат) функция вывода имен и функция полного вывода. поиск по имени. добавление.
//добавление: void addToEnd(Worker*head, Worker*nw); //в конец Worker*addToBegin(Worker*head, Worker*nw); //в начало void addToMiddle(Worker*head, Worker*nw, int a); //в указаное место
Firma*filling(Firma*head); //добавление в список новый елементов
void choice(Firma*A); //выводити имена и вызывает проверку или печать всех void scanName(Worker*head); //проверка на наличие нужного имени
void print(Worker*head,int a); void printName(Worker*head); //печать только имен void printAll(Worker*head);
int output(); //проверка на действие(выход)
int main() { Firma*A = new Firma; A = generate(A); //создание начального списка int x = 0; //переменная котоя будет ключем для выхожа while (x!=1) { A = filling(A); //добавление в список init2(A->head); //присвоение порядковый номеров choice(A); //переходная функция, которая вызывает проверку или печать всех x = output(); //присвоение значения ключа для выхода } return 0; }
void choice(Firma*A){ printName(A->head); cout << "Iskat' kogoto konkretno(1) ili vivesti vsex sotrydnikov(vse ostal'noe)? - "; string a; //переменная стринг на случай введения не чесельных значений cin >> a; string b = "1"; cout << "----------------------" << endl; if (a == b){ scanName(A->head); cout << "----------------------" << endl; } else{ printAll(A->head); }
} void scanName(Worker*head){ cout << "Kakoe imya iskat'? - "; string m; cin >> m; int a = 0; //счетчик для принта (для печати шапки со значениями) cout << "----------------------" << endl; while (head->next != NULL) { if (head->name == m){ a++; print(head,a); } head = head->next; } if (head->name == m){ a++; print(head,a); }
}
void printName(Worker*head){ while (head->next != NULL) { cout << head->name << endl; head = head->next; } cout << head->name << endl; cout << "----------------------" << endl; } void printAll(Worker*head){ int a = 0;