Форум программистов, компьютерный форум CyberForum.ru

массив структур и функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Таймер не работает в Turbo C++ http://www.cyberforum.ru/cpp-beginners/thread41094.html
Реализовал таймер в Visual C++. #include "stdafx.h" #include <iostream.h> #include <conio.h> #include <time.h> #include <stdio.h> #include <stdlib.h> const int N=100000000;
C++ не могу завершить код :( он меняет 1 слово из фаила example.txt затем создоёт vasea-out.txt с уже изменёным текстом.. но он меняет только 1 слово.. как сделать чтобы он менял болише слов к приемру в example.txt написано "Вася хороший мальчик" водим "Вася хороший" затем водим "Жора плохой" и получаем в vase-out.txt "Жора плохой мальчик" за ранее спасибо #include <iostream> #include <fstream> http://www.cyberforum.ru/cpp-beginners/thread41093.html
C++ MS VC++ 6.0:Как "подавить" выдачу конкретных варнингов в конкретных местах?
Не хочу, чтобы выдавались конкретные варнинги, относящиеся к определённым областям заданных файлов. Как это сделать. Про "Warning Level" в насторйках студии я в курсе. Но мне нужно подавить варнинг с конкретным номером (К примеру C4244). И только в определённых местах заданных файлов. В том числе в системных файлах библиотек компилятора. Можно это как либо сделать?
Последний метод итераций C++
Здравсвуйте программисты! Спасибо за ответы на предыдущие посты. Осталось решить методом итераций систему уравнений. Вчера Сазари мне подсказал как делать методом Зейделя, осталось методом итераций. Вот попробывал собрать код методом итераций, но дело в том,что результат системы уравнений равен по -1, все 4 уравнения, подскжаите пожалуйста где в данном коде мождет быть проблемма. Загвоздка в...
C++ не переводит из string в char* http://www.cyberforum.ru/cpp-beginners/thread41080.html
помогите пожалуйста задание: операции со строками с использованием шаблона string #include <algorithm> #include <iostream> #include <string> #include <conio.h> using namespace std;
C++ Задание на функции Помогите решить задачку на функции С++ , что б работало в CodeGear Составить программу вычисления суммы факториалов всех четных чисел от m до n, где n! - функция. подробнее

Показать сообщение отдельно
FRITS
Сообщений: n/a

массив структур и функции - C++

20.06.2009, 15:21. Просмотров 1080. Ответов 0
Метки (Все метки)

Разработать модель прайс-листов по комплектующим.

Каждую единицу оборудования должна описывать соответствующая структура (например, структура, описывающая видеокарты или мониторы), объект которой может входить в прайс-лист. Соответственно, прайс-лист - это массив структур, каждая из которых хранит один из вариантов оборудования и его цену.

Написать функции для создания, удаления, заполнения и распечатки прайс-листа. Также написать функции для вставки нового элемента в прайс-лист, удаления произвольного элемента из прайс-листа и сортировке элементов прайс-листа по типу оборудования или по его цене.

Добавлено через 22 часа 31 минуту 27 секунд
Ну хоть и никто не ответил!!!
Я сам смостерил

//Модель прайс листа
#include <iostream.h>
#include <string.h>

enum {ChoiceAddEnd=1, ChoiceInsert, ChoiceSort, ChoicePrint, ChoiceDelete, ChoiceDeleteAll, ChoiceQuit};

int Menu();
void AddLine();
void Insert();
void Sort();
void Print();
void Delete();
void DeleteAll();
const int col=50;
struct Price { //Структура прайса
char vid[15];
char name[25];
float cena;
}pr[col]; //количество наименований
int j=0;
int sum,i;

//////////////////////////////////////////////////////////////////

void main()
{
int choice = ChoiceAddEnd;

while (choice != ChoiceQuit) // Пока не выбран пункт ВЫХОД
{
choice = Menu(); // Вывод меню
cin.ignore(1);
switch (choice) // Выбор пункта меню
{
case ChoiceAddEnd:
AddLine();
break;

case ChoiceInsert:
Insert();
break;

case ChoiceSort:
Sort();
break;

case ChoicePrint:
Print();
break;

case ChoiceDelete:
Delete();
break;

case ChoiceDeleteAll:
DeleteAll();
break;

case ChoiceQuit:
break;

default: // В остальных случаях
cout << "Error in choice!\n";
break;
}
}
}

///////////////////////////////////////////////////////////////////

int Menu()
// Вывод меню
{
int choice;
cout << "\n\t\t<<<<<******* Menu *******>>>>>\n\n";
cout << "1-Add 2-Insert 3-Sort 4-Print 5-Delete 6-DeleteAll 7-Quit\n";
cin >> choice; // Выбор пункта меню
if(choice < 0 || choice > 7) // Проверка выбора
choice = 0;
return choice; // Возвращение выбранного пункта
}

//////////////////////////////////////////////////////////////////

void AddLine()
{
cout<<"\nSkolko vvesti naimenovaniy? ";
cin>>j;
if (sum!=0){j=j+sum;};
for (i=sum; i < j; i++)
{
cout << "\nVid complect.: ";
cin >> pr[i].vid;

cout << "Name is: ";
cin>>pr[i].name;

cout << "Cena is: ";
cin >> pr[i].cena;

cout << endl;
++sum;
}
}

///////////////////////////////////////////////////////////////

void Insert()
{
int k,x=1;
cout << "Input position # (0-" << sum << "): ";
cin >> k;
while(k < 0 || k > sum) // Проверка на ошибочный ввод
{
cout << "Error !!!\nInput position # (0-" << sum << "): ";
cin >> k;
}
if(sum==0)
{
sum++;
cout << "\nVid complect.: ";
cin >> pr[i].vid;

cout << "Name is: ";
cin>>pr[i].name;

cout << "Cena is: ";
cin >> pr[i].cena;
}
else
{
char v[15], n[25];
float c;
sum++;
cout << "\nVid complect.: ";
cin >> v;

cout << "Name is: ";
cin>>n;

cout << "Cena is: ";
cin >> c;
for (i=sum; i>=0; i--)
{
if (i==k)
{
strcpy(pr[i].vid, v);
strcpy(pr[i].name, n);
pr[i].cena=c;
}
if (k<i)
{
strcpy(pr[i].vid, pr[i-x].vid);
strcpy(pr[i].name, pr[i-x].name);
pr[i].cena=pr[i-x].cena;
}
}
}
}

///////////////////////////////////////////////////////////////

void Sort()
{
int y=0;
cout<<"\nVedite tip sortirovki (1-po tipu; 2-po cene): ";
cin>>y;
while(y < 1 || y > 2) // Проверка на ошибочный ввод
{
cout << "Error !!!\nInput position # (1-2): ";
cin >> y;
}
char v[15], n[25];
float c;
bool flag = true;// Флаг окончания сортировки
if (y==1)
{
for(int j = 1; ; j++)
{
for(int i = 0; i < sum - j; i++)
if(strcmp(pr[i].vid,pr[i+1].vid)==1)
{
strcpy(v, pr[i].vid);
strcpy(n, pr[i].name);
c=pr[i].cena;

strcpy(pr[i].vid, pr[i+1].vid);
strcpy(pr[i].name, pr[i+1].name);
pr[i].cena=pr[i+1].cena;

strcpy(pr[i+1].vid, v);
strcpy(pr[i+1].name, n);
pr[i+1].cena=c;

flag = false;
}
if(flag == true)
break;
flag = true;
}
}
else
{
for(int j = 1; ; j++)
{
for(int i = 0; i < sum - j; i++)
if(pr[i].cena > pr[i+1].cena)
{
strcpy(v, pr[i].vid);
strcpy(n, pr[i].name);
c=pr[i].cena;

strcpy(pr[i].vid, pr[i+1].vid);
strcpy(pr[i].name, pr[i+1].name);
pr[i].cena=pr[i+1].cena;

strcpy(pr[i+1].vid, v);
strcpy(pr[i+1].name, n);
pr[i+1].cena=c;

flag = false;
}
if(flag == true)
break;
flag = true;
}
}
}

///////////////////////////////////////////////////////////////

void Print()
{
for (i=0; i < sum; i++)
{
cout << "\nVid complect.: " <<pr[i].vid;
cout << "\tName is: " << pr[i].name;
cout << "\tCena is: " << pr[i].cena << "\n";
}
}

//////////////////////////////////////////////////////////////

void Delete()
{
int k,x=1;
sum--;
cout << "Delete position # (0-" << sum << "): ";
cin >> k;
while(k < 0 || k > sum) // Проверка на ошибочный ввод
{
cout << "Error !!!\nDelete position # (0-" << sum << "): ";
cin >> k;
}

for (i=0; i<=sum; i++)
{
if (i==k)
{
strcpy(pr[i].vid, pr[i+x].vid);
strcpy(pr[i].name, pr[i+x].name);
pr[i].cena=pr[i+x].cena;
}
if (k<i)
{
strcpy(pr[i].vid, pr[i+x].vid);
strcpy(pr[i].name, pr[i+x].name);
pr[i].cena=pr[i+x].cena;
}

}
}

/////////////////////////////////////////////////////////////

void DeleteAll()
{
char v[15], n[25];
float c=0;
for(int i = 0; i < sum; i++)
{
strcpy(pr[i].vid, v);
strcpy(pr[i].name, n);
pr[i].cena=c;
}
sum = 0;
}
///////////////////////////////К О Н Е Ц///////////////////////////////////////
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru