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

Определить структурированный тип, набор функций (в виде меню) для работы с массивом структур - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ зависает программа http://www.cyberforum.ru/cpp-beginners/thread223294.html
требуется всего лишь нарисовать график функции, но программа рисует только оси системы координат, после чего зависает, из-за чего такое может быть? //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <math.h> #include <Math.hpp>
C++ удаление пробелов между словами и буквами доброго времени суток, не могли бы вы мне помочь в создании программы которая удаляет удвоенные согласные в любом предложении, но чтоб удаляла а не заменяла на пробелк примеру чтоб было слово "удвоенное" вот так "удвоеая" а не "удвое ая", вот пример программы которую я показал учителю он утверждает что эта программа не удаляет а просто не видит эти символы: #include <iostream> #include... http://www.cyberforum.ru/cpp-beginners/thread223278.html
C++ Выбрать идущие подряд тройки цифр, упорядоченных по возрастанию. ( Не используя массивы )
Здравствуйте ! Помогите решить задание : Выбрать идущие подряд тройки цифр, упорядоченных по возрастанию. (Разрешаются только библиотеки iostream или stdio.h и не используя при этом массивы !!!) Спасибо.
Бинарное дерево C++
Здравствуйте.Прошу помощи.Никак не могу разобраться в задании.Нужно сделать бинарное дерево и с помощью дерева привести выражение к бесскобочной логике: (a*b+c)/(a-(d+a)).Что это значит?
C++ Only строки* http://www.cyberforum.ru/cpp-beginners/thread223255.html
Помогите пожалуйста с написанием программ через библиотеку <stdio.h> 1.Ввести строку и слово. Определить и вывести, сколько раз встречаются в строке буквы, перечисленные в слове. 2.Ввести строку и два слова. Вывести строку, в которой все вхождения первого слова заменены на второе слово.
C++ Найти либо максимум, либо минимум для трех задаваемых чисел Написать программу, которая находит максимум, либо минимум для трех задаваемых чисел. Вопрос: не могу понять что за минимум и максимум чисел такой!!! подробнее

Показать сообщение отдельно
snoop11
0 / 0 / 0
Регистрация: 05.12.2010
Сообщений: 26
02.01.2011, 18:16     Определить структурированный тип, набор функций (в виде меню) для работы с массивом структур
Здравствуйте. Помогите пожалуйста решить задачу по структурам. на С++. Вот текст задачи:

Определить структурированный тип, набор функций (в виде меню) для работы с массивом
структур. В структурированной переменной предусмотреть способ отметки ее как не
содержащей данных (т.е. «пустой»). Функции должны работать с массивом структур или с
отдельной структурой через указатели, а также при необходимости возвращать указатель на
структуру. В перечень обязательных функций входят:
- «очистка» структурированных переменных;
- поиск свободной структурированной переменной;
- ввод элементов (полей) структуры с клавиатуры;
- вывод элементов (полей) структуры с клавиатуры;
- поиск в массиве структуры и минимальным значением заданного поля;
дополнительные функции
- сортировка массива структур в порядке возрастания заданного поля (при сортировке
разрешается присваивание структурированных переменных);
- удаление заданного элемента;
- изменение (редактирование) заданного элемента.
Интерфейс пользователя осуществить в виде командного процессора:

Личная библиотека. Картотека домашней библиотеки: выходные данные книги (авторы,
название, издательство и так далее), раздел библиотеки (специальная литература, хобби,
домашнее хозяйство, беллетристика и так далее), происхождение (покупка, кража, подарок) и
наличие книги в данный момент. Выбор книг по автору, году; инвентаризация библиотеки
(вывод всего списка книг по категориям).
Происхождение реализовать с помощью перечисления.

Помогите пожалуйста кто может. помощи прошу т.к. заочник я и мне ни кто не обьяет как это всё делается. Делаю как понял. Вот моё подобие решения задачи. Выполнено примерно половина но не правильно. Помогите хотябы с этим пожалуйста.




Код
// 2.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
# include <iostream>				
# include <stdio.h>				
# include <cstring>
# include <windows.h>
#include  <locale> 
# define nam 30						//Название пункта
# define zap 30						//Кол-во структур
# define izd 30	
# define nazv 30	
# define razd 30	
# define prois 30	
# define nal 30	

int er;								//Переключатель

using namespace std;

struct katalog
{char avtor[nam];					
char nazvanie[nazv];				
char izdatelstvo[izd];				
};
struct razdel
{int razde[razd];};
struct proishozhdenie
{
int proishozhdeni[prois];
};
struct nalichie
{
int nalichi[nal];
};

int sch=0;							//Счетчик полных записей


void enter_new()					// ф-ция ввода новой структуры
{ char avtor,nazvanie,izdatelstvo;
int razdel,proishozhdenie;nalichie;
	if(sch<zap)
	{
		cout<<"Запись номер ";cout<<sch++;

		cout<< endl<<"Выходные данные книги"<<endl;

		cout<< endl<<"Автор"<<endl;
		cin >> avtor[sch].name;

		cout<< endl<<"Название"<<endl;
		cin >> nazvanie[sch].nazvanie;

		cout<< endl<<"Издательство"<<endl;
		cin >> izdatelstvo[sch].izdatelstvo;

		cout<<"Раздел библиотеки "<<endl;
	cout <<endl<<"1. специальная литература"<<endl;
		cout <<endl<<"2. хобби"<<endl;
		cout <<endl<<"3. домашнее хозяйство"<<endl;
		cout <<endl<<"4. беллетристика"<<endl;
		cin >>razdel[sch];

		cout<<"Происхождение "<<endl;
		cout <<endl<<"1. Покупка"<<endl;
		cout <<endl<<"2. Кража"<<endl;
		cout <<endl<<"3. Подарок"<<endl;
		cin>>proishozhdenie[sch];

		cout<<"Наличие в данный момент "<<endl;
		cout <<endl<<"1. Есть в наличии"<<endl;
		cout <<endl<<"2. Нет в наличии"<<endl;
		cin>>nalichie;
		
	}
	else cout<<"Запись не имеет смысла :(";
	
	cout<<"Что делать дальше?"<<endl;
	cin>>er;
}

	
void del()								//ф-ция удаления записи
{	int d;								//номер записи, которую нужно удалить
	cout<<"\nВведите номер записи, которую необходимо удалить"<<endl;
	cout<<"Если необходимо удалить все записи,нажмите '0'"<<endl;
	cin>>d;
	if (d!=0)
		{for (int de_1=(d-1);de_1<sch;de_1++)
			avtor[de_1]=avtor[de_1+1];
			sch=sch-1;
		}
	if (d==0)
		for(int i=0;i<zap;i++)
		katalog[i]=bad;
cout<<"Что делать дальше?"<<endl;
cin>>er;
}

void change()
	{int c;								//номер записи, которую нужно изменить
	 char per;
	cout<<"\nВведите номер записи"<<endl;
	cin>> c;
	do
		{
		cout<<"Введите: "<<endl;
		cout<<"1-для изменения Автора"<<endl;
		cout<<"2-для изменения Названия"<<endl;
		cout<<"3-для изменения Издательства"<<endl;
		cout<<"4-для изменения Раздела библиотеки\n";
		cout<<"5-для изменения Происхождения\n";
		cout<<"6-для изменения Наличия в данный момент\n";
		cout<<"7-для прекращения\n";
				cin>>per;
		switch (per)
			{
			case 1: cout<<"Введите новое имя ";
				cin>>avtor[c-1].name;break;
			case 2: cout<<"Введите новое название ";
				cin>>nazvanie[c-1].nazvanie;break;
			case 3: cout<<"Введите новое издательство  ";
				cin>>izdatelstvo[c-1].izdatelstvo;break;
			case 4: cout<<"Введите новый раздел библиотеки ";
				cin>>razdel[c-1].razdel;break;
			case 5: cout<<"Введите новую информацию о происхождении ";
				cin>>proishozhdenie[c-1].prois;break;
			case 6: cout<<"Введите новую информацию о наличии  ";
				cin>>nalichie[c-1].nal;break;
				cin>>per;
			}

		}while(per!=7);

	cout<<"Что делать дальше?"<<endl;
	cin>>er;
}

void out()				//ф-ция вывода записей
{
	int sw;					// переключатель
	int o;					//номер структ, кот. надо вывести
	cout<<endl<<"Введите: "<<endl;
	cout<<"1-если хотите вывести какую-либо запсь"<<endl;
	cout<<"2-если хотите вывести все записи"<<endl;
	cin>>sw;
	if(sw==1)
		{
		cout<<"Введите номер записи, которую нужно вывести"<<endl;
		cin>>o;
		cout<<endl;
		cout<<"имя автора ";cout<<avtor[o-1].name<<endl;
		cout<<"дату поступления";cout<<mas_student[o-1].date<<endl;
		cout<<"дату отчисления";cout<<mas_student[o-1].dat<<endl;
		}
	if(sw==2)
		{	for(int i=0;i<sw;i++)
			{
				cout<<"имя";cout<<mas_student[i].name<<endl;
			    cout<<"название ";cout>>nazvanie[i].nazvanie;
			    cout<<"издательство  ";cout>>izdatelstvo[i].izdatelstvo;
			    cout<<"раздел библиотеки ";cout>>razdel[i].razdel;
			    cout<<"происхождение ";cout>>proishozhdenie[i].prois;
			    cout<<"наличие  ";cout>>nalichie[i].nal;
			}
		}
	cout<<"Что делать дальше?"<<endl;
	cin>>er;
}



{int _tmain(int argc, _TCHAR* argv[])
{ 
		setlocale(LC_CTYPE, "Russian");

	cout<<"Записей пока нет"<<endl;
	cout<<"Введите:"<<endl;
	cout<<"1-для удаления записи"<<endl;
	cout<<"2-для ввода новой записи"<<endl;
	cout<<"3-для изменения записи"<<endl;
	cout<<"4-для вывода записи(ей)"<<endl;
	cout<<"5-для выхода"<<endl;
	cin>>er;

do
	{switch(er)
		{
		case 1:del();break;
		case 2:enter_new();break;
		case 3:change();break;
		case 4:out();break;

		}

	}
		while(er!=5);

}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru