Автор:
unreal
Описание: Как-то так
Язык: C++
/*
* File: main.cpp
* Author: unreal
*
* Created on 17 Февраль 2011 г., 20:42
*/
#include <cstdlib>
#include <stdlib.h>
#include <iostream>
#define ITEM_BUF_SIZE 256
using namespace std;
struct item * list_store();
void list_find(struct item *head); // Поиск по наименованию
void item_print(struct item *curr); // Вывод информации о одной записи
void list_print(struct item *head); // Вывод информации о всех запиях
void del_item(struct item *head); // Удаление записи
struct item * add_item(struct item *head); // Добавление записи в начало списка
/*
*
*
*/
struct item{
char data_arriv[ITEM_BUF_SIZE]; // Дата прихода товара
char data_outho[ITEM_BUF_SIZE]; // Дата отправки товара
char name[ITEM_BUF_SIZE]; // Наименование товара
int num; // Колличество
struct item *next; // Указатель на следующую структуру
} *lhead;
int main(int argc, char** argv) {
short temp;
do{
cout << "*** Главное меню ***" << endl;
cout << "[1] Создание списка" << endl;
cout << "[2] Добавить запись" << endl;
cout << "[3] Удалить запись" << endl;
cout << "[4] Просмотреть список" << endl;
cout << "[5] Поиск по наименованию" << endl;
cout << "[6] Выход" << endl;
cin >> temp;
switch(temp){
case 1:
lhead = list_store();
break;
case 2:
lhead = add_item(lhead);
break;
case 3:
del_item(lhead);
break;
case 4:
list_print(lhead);
break;
case 5:
list_find(lhead);
break;
case 6:
return 0;
default: cout << "ERROR" << endl;
}
} while(1);
return 0;
}
struct item *list_store(){
struct item *prior, *temp;
char ctemp;
lhead = prior = temp = new struct item;
cout << "Создание списка. Ввод данных: " << endl;
cout << "Дата прихода(Год.Месяц.День/Часы.Минуты):"; cin >> temp->data_arriv;
cout << "Дата отправления(Год.Месяц.День/Часы.Минуты):"; cin >> temp->data_outho;
cout << "Наименование товара: "; cin >> temp->name;
cout << "Количество: "; cin >> temp->num;
cout << "Завершить?(Y/N): ";
cin >> ctemp;
if (ctemp != 'Y'){
do{
temp = new struct item;
cout << "Ввод данных: " << endl;
cout << "Дата прихода(Год.Месяц.День/Часы.Минуты):"; cin >> temp->data_arriv;
cout << "Дата отправления(Год.Месяц.День/Часы.Минуты):"; cin >> temp->data_outho;
cout << "Наименование товара: "; cin >> temp->name;
cout << "Количество: "; cin >> temp->num;
prior->next = temp;
prior = temp;
cout << "Завершить? (Y/N) :";
cin >> ctemp;
} while(ctemp != 'Y');
} else {
temp->next = NULL;
}
return lhead;
}
void list_find(struct item *head){
struct item *curr = head;
char temp[ITEM_BUF_SIZE];
cout << "Введите наименование товара: ";
cin >> temp;
while(curr != NULL){
if(!strcmp(curr->name, temp)){
item_print(curr);
}
curr = curr->next;
}
}
void item_print(struct item *curr){
cout << "Дата прихода(Год.Месяц.День/Часы.Минуты):" << curr->data_arriv << endl;
cout << "Дата отправления(Год.Месяц.День/Часы.Минуты):" << curr->data_outho << endl;
cout << "Наименование товара: " << curr->name << endl;
cout << "Количество: " << curr->num << endl;
}
void list_print(struct item *head){
struct item *curr = head;
int i = 1;
cout << "*** Список товаров ***" << endl;
while(curr != NULL){
cout << "*** Запись " << i << "***"<< endl;
item_print(curr);
curr = curr->next;
i++;
}
}
void del_item(struct item *head){
struct item *curr = head, *temp;
char ctemp[ITEM_BUF_SIZE];
cout << "Введите наименование товара: "; cin >> ctemp;
if(curr){
if(!strcmp(curr->name, ctemp)){
lhead = curr->next;
free(curr);
return;
}
}
while(curr){
if((temp = curr->next) && !strcmp(temp->name, ctemp)){
curr->next = curr->next->next;
free(temp);
}
curr = curr->next;
}
}
struct item * add_item(struct item *head){
struct item *curr = head, *temp;
temp = new struct item;
cout << "Ввод данных: " << endl;
cout << "Дата прихода(Год.Месяц.День/Часы.Минуты):"; cin >> temp->data_arriv;
cout << "Дата отправления(Год.Месяц.День/Часы.Минуты):"; cin >> temp->data_outho;
cout << "Наименование товара: "; cin >> temp->name;
cout << "Количество: "; cin >> temp->num;
temp->next = lhead;
return temp;
}
|
Последние размещения:
123123123 (PHP)
ksurent (Perl)
ksurent (Bash)
guata (Plain Text)
biophreak (Plain Text)
Raik (PHP)
MUSbKA (Plain Text)
MUSbKA (Plain Text)
nekitozzz (C++)
nekitozzz (Plain Text)
nekitozzz (C++)
ksurent (Perl)
MUSbKA (C++)
stalin_alex (C++)
dzantiev (Plain Text)
unreal (C++)
eug2b (Plain Text)
|