Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.09.2014, 10:52   #1
AlyaU
 
Регистрация: 30.09.2014
Сообщений: 8
Печаль С++ Классы

Написала программу, но возникли проблемы. Не могу вывести нужные параметры в матрице.
Код:
// ConsoleApplication4.cpp : Defines the entry point for the console application.
//
Код:
#include "stdafx.h"
#include <stdio.h>
#include <string>
#include <conio.h>
#include <iostream>
#include <Windows.h>
using namespace std;

class Medicoments
{
protected:
	string name, disease; int price;
public:
	Medicoments(){ name = "Название"; disease ; price = 999999 ; 
	};
	Medicoments(string name1,string disease1, int price1)
	{name = name1; disease = disease1; price = price1;
	}
	Medicoments(const Medicoments *t)
	{
		name = t->name;
		disease = t->disease;
		price = t->price;
	}
	Medicoments scan()
	{
		string name2, disease2; int price2;
		int i = 0;
		Medicoments b;
		
			std::cout << "Введите название препарата, заблевание, цену:";
			std::cout << "\n";
			std::cin >> name2 >> disease2 >> price2;		
		return b;	
	}
	void print()
	{
		setlocale(0, "");
		std::cout << name << "\t" << disease << "\t" << price << "\n";
	};
	int pr()
	{
		return price;
	}
	string nam()
	{
		return name;
	}
	string dis()
	{
		return disease;
	}
};
void price(Medicoments *p, int n)
{

	std::cout << "Введите цену препарата:";
	int price2;
	std::cin >> price2;
	for (int i = 0; i < n; i++)
	{
		if (price2 <= p[i].pr())
			p[i].print();
	}
}
void dis(Medicoments *p, int n)
{
	cout << "Введите название препарата:";
	string disease2;
	cin >> disease2;
	for (int i = 0; i < n; i++)
	{
		if (disease2 == p[i].dis());
		
	}
}
void nam(Medicoments *p, int n)
{
	cout << "Введите название препарата:";
	string name2;
	cin >> name2;
	for (int i = 0; i < n; i++)
	{
		if (name2 == p[i].dis());
		
	}
}
int main(string edit,string name, int num)
{
	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	int n;
	cout << "Введите кол-во препаратов: " << "\n";
	cin >> n; //кол-во записей в таблице
	Medicoments *p;//динамический массив прессы
	p = new Medicoments[n];
	for (int i = 0; i < n; i++)
	{
		p[i].scan();//запись массива
	}
	cout << "Таблица: \n";
	for (int i = 0; i < n; i++)
	{
		p[i].print();//выво на экран всего массива
		cout << "\n";
	}
	cout << "Поиск: \n";
	cout << "1. Названию препарата \n";
	cout << "2. Заболеванию \n";
	cout << "3. Цене препарата \n";
	cout << "Введите тип поиска (цифру): ";
	int type;
	cin >> type;
	cout << "\n";
	switch (type)
	{
	case 1:
		price(p, n);
		break;
	case 2:
		nam(p, n);
		break;
	default:
		break;
	}
	delete[] p;
	getch();
}

Последний раз редактировалось AlyaU; 30.09.2014 в 11:04.
AlyaU вне форума Ответить с цитированием
Старый 30.09.2014, 11:03   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что что что не можешь??
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2014, 11:05   #3
AlyaU
 
Регистрация: 30.09.2014
Сообщений: 8
По умолчанию

После введения всех данных, у меня должна выводится матрица(таблица) со всеми этими данными, не выходит. По которой потом ведется поиск.
AlyaU вне форума Ответить с цитированием
Старый 30.09.2014, 11:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Это что?:
Цитата:
string name2, disease2; int price2;
И как оно связано с
Цитата:
string name, disease; int price;
которые ты выводить хочешь?
Наверное тебе нужно было написать
Код:
	Medicoments scan()
	{
			std::cout << "Введите название препарата, заблевание, цену:";
			std::cout << "\n";
			std::cin >> name >> disease >> price;		
	}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2014, 11:16   #5
AlyaU
 
Регистрация: 30.09.2014
Сообщений: 8
По умолчанию

Ниже я вывожу таблицу со всеми данными, вот в эту таблицу мне нужно все оформить. И я что-то запуталась с конструктором по умолчанию. То,что я пишу там, то и выходит в таблице. В этом собственно и проблема.
AlyaU вне форума Ответить с цитированием
Старый 30.09.2014, 11:19   #6
AlyaU
 
Регистрация: 30.09.2014
Сообщений: 8
По умолчанию

Если я напишу так, как сказали Вы, то при компиляция он выдает ошибку - Medicoments::scan: должна возвращать значение.
AlyaU вне форума Ответить с цитированием
Старый 30.09.2014, 11:54   #7
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Чтобы не возвращало, void нужно написать, так как у вас массив и возвращение не требуется. У Stilet правильно написано за исключением того, что не нужно возвращать значение.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 30.09.2014, 11:55   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А подумать? Зачем тебе возвращать значение из scan()? Ты все равно его не присваиваешь. Поставь там void.
Цитата:
правильно написано за исключением
Ну я то думал что автор догадается...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.09.2014, 17:19   #9
AlyaU
 
Регистрация: 30.09.2014
Сообщений: 8
По умолчанию

Я не могу это убрать, у меня все связано,далее, в конце, после вывода массива, осуществляется поиск через switch.
Также Medicoments scan() у меня связан с параметром по умолчанию. Я что-то не понимаю или уже запуталась. Спасибо Вам.

Последний раз редактировалось AlyaU; 30.09.2014 в 17:21.
AlyaU вне форума Ответить с цитированием
Старый 30.09.2014, 17:54   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

От горе... Ну пропиши там return nil...
Раз все так связано то ИМХО весь код фтопку и заново написать но уже по другому, чтоб таких "связей" не было.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы _yaroslav_ Общие вопросы C/C++ 21 18.02.2013 05:38
Классы Тёма_) Общие вопросы C/C++ 12 06.04.2012 09:38
Классы в C# Lucky777 Помощь студентам 1 27.04.2011 01:41
Классы Fallenangel Помощь студентам 17 25.04.2011 23:48