Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 33
Благодарности: 12

Профиль | Отправить PM | Цитировать


Cutegirl1645, ну не знаю какие были требования к выполнению задания, но вот я так сделал, компилится без ошибок, все работает, проверку на ошибки сама доделаешь, а то я и так полтора часа назад курить собирался, да на твой пост наткнулся.

в общем:

main.cpp:
Код: Выделить весь код
//Написать программу, которая подводит итоги конкурса "5 лучших товаров года". Оценка товара производится
//по пятибалльной системе. Программа должна получать от пользователя число людей, давших товару определенный
//бал, вычислить общее количество проголосовавших за данный товар людей и число набранных баллов, и после этого 
//упорядочить список (методом пузырька с простым алгоритмом) в соответствии с набранным количеством баллов.
//Сортировку оформить в виде функции.

#include <iostream>
#include "rus8.h"
#include "goods.h"
using namespace std;

int main()
{
	rus();

	goods *arr = new goods[g];

	get_point(arr);
	set_people(arr);
	set_spoint(arr);
	get_result(arr);
	print_result(arr);

	delete [] arr;

	return 0;

}
goods.h
Код: Выделить весь код
#pragma once
#include <iostream>
using namespace std;

const int sp = 5;  // size point кол-во баллов в системе оценивания
const int sn = 30; // size name макс кол-во символов в названии товара
const int g = 5; // кол-во товаров

struct goods
{
	int poin[sp];
	char name[sn];
	int spoint;
	int people;
};

void get_point(goods *);
void set_people(goods *);
void set_spoint(goods *);
void get_result(goods *);
void print_result(goods *);
goods.cpp
Код: Выделить весь код
#include "goods.h"

void get_point(goods *arr)
{
	for(int i = 0; i < g ; i++)
	{
		cout << "Введите наименование (макс длинна 30 символов) : ";
		cin >> arr[i].name;
		for (int q = 0; q < sp; q++)
		{
			cout << endl << "Введите кол-во людей оценивших этот товар в " << (q+1) << " балл(а)";
			cin >> arr[i].poin[q];
		}
	}
	cout << endl;
}

void set_people(goods *arr)
{
	for(int i = 0; i < g; i++)
	{
		arr[i].people = 0;
		for(int q = 0; q < sp; q++)
			arr[i].people = (arr[i].people + arr[i].poin[q]);
	}
}

void set_spoint(goods *arr)
{
	for(int i = 0; i < g; i++)
	{
		arr[i].spoint = 0;
		for(int q = 0; q < sp; q++)
			arr[i].spoint += (arr[i].poin[q]*(q+1));
	}
}
void get_result(goods *arr)
{
	goods temp;

	for(int i = 0; i < g; i++)
	{
		for(int q = (g-1); q > i; q--)
		{
			if(arr[q-1].spoint < arr[q].spoint)
			{
				temp = arr[q-1];
				arr[q-1] = arr[q];
				arr[q] = temp;
			}
		}
	}
}


void print_result(goods *arr)
{
	for(int i = 0; i < g; i++)
	{
		cout << (i+1) << "-е место занял товар : " << arr[i].name << endl;
		cout << "Набравший : " << arr[i].spoint << " баллов" << endl;
		cout << "Всего проголосовавших за этот товар : " << arr[i].people << endl << endl;
	}
}
rus8.h
Код: Выделить весь код
#ifndef _RUS_H
    #define _RUS_H

    #include <locale.h>

    inline void rus( void ) 
    {     
        setlocale( LC_CTYPE, ".1251" );
        setlocale( LC_MONETARY, ".1251" );

        return;
    }

#endif
с тебя пиво, я думаю оно того стоит) даже если не за прогу, то в утеху мне, за то. что я сегодня экзамен по программированию провалил...

Последний раз редактировалось Lisiy_egik, 20-01-2010 в 14:17.

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:23, 20-01-2010 | #57