Добавил:
ertikpol08
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:курсач / HW_SPPR_VAR5 / HW_SPPR_VAR5
.cpp// SPPR.cpp : Defines the entry point for the console application.
//
// -==Подключаемые файлы==-
#include "stdafx.h"
#include "stdio.h"
#include "malloc.h"
// -====-
int main()
{
// -==Список переменных==-
FILE *fText; // указатель на поток
char problem[1000]; // ввод проблемы
char *pArr_Alt; // массив альтернатив
char *pArr_Exp; // массив экспертов
int i, j, k; // индексы
int nAlter; // число альтернатив
int nExp; // число экспертов
int pArr_Rate[100]; // массив оценок
int buff; // буфер
int index; // буфер для индекса
int Summ_Range[100]; // суммарная оценка альтернативы
int buff_array[100]; // буффер для массива оценок альтернатив
// -====-
// -==Создание файла для записи==-
if ((fText = fopen("sppr_data.txt", "w+t")) == NULL)
{
perror("\nFILE NOT OPENED!\n");
return -1;
}
// -====-
// -==Ввод проблемы==-
printf("Enter your problem (without space): \n");
scanf("%s", &problem);
for (i = 0; i < 1000; i++)
if (problem[i] == '_')
problem[i] = ' ' ;
fprintf(fText, "PROBLEM: -=%s=-\n", &problem);
fprintf(fText, "======================================\n", &problem);
// -====-
// -==Ввод альтернатив==-
printf("Enter number alternatives: ");
scanf("%d", &nAlter);
fprintf(fText, "Entering %d alternatives\n======================================\n", nAlter);
pArr_Alt = (char*)malloc(nAlter);
for (i = 0;i < nAlter; i++)
{
Summ_Range[i] = 0;
printf("\tEnter %d alternative (without space): \n\t", i);
scanf("%s", &pArr_Alt[i]);
fprintf(fText, "\t%d alternative: %s\n\t==============================\n", i, &pArr_Alt[i]);
}
// -====-
// -==Определение количества экспертов==-
printf("Enter number of experts: ");
scanf("%d", &nExp);
fprintf(fText, "Entering %d experts\n======================================\n", nExp);
pArr_Exp = (char*)malloc(nExp);
// -====-
// -====-
printf("\nRANGE ALTERNATIVES METHOD\n");
fprintf(fText, "\nRANGE ALTERNATIVES METHOD\n");
// -====-
printf("Evaluate every alternative ball, from 0 to 9!\n");
// -==Оценивание экспертами альтернатив==-
for (j = 0; j < nExp; j++)
{
printf("%d expert: \n", j);
fprintf(fText, "\n======================================\n");
fprintf(fText, "%d expert evaluating like this: \n======================================\n", j);
for(i=0; i<nAlter;i++)
{
printf("\tEnter ball for %d alternative: \n\t", i);
scanf("%d", &pArr_Rate[i]);
fprintf(fText, "\t%d alternative ball value = %d\n", i, pArr_Rate[i]);
}
// -====-
// -==Строгое ранжирование альтернатив с помощью сортировки, методом прямого выбора==-
for(i=0; i<nAlter;i++)
{
index = i;
buff = pArr_Rate[index];
buff_array[i] = 0;
// -==Упорядочение альтернатив==-
for (k = i+1; k < nAlter; k++)
{
if (pArr_Rate[k] <= buff)
;
else
{
index = k;
buff = pArr_Rate[index];
pArr_Rate[index] = pArr_Rate[i];
pArr_Rate[i] = buff;
}
}
buff_array[i] = buff;
Summ_Range[i] += buff_array[i];
// -====-
printf(" ======================================\n\tRanged %d alternative rang is: %d\n", i, pArr_Rate[i]);
fprintf(fText, "====================================== \n\tRanged %d alternative rang is: %d\n", i, pArr_Rate[i]);
fprintf(fText, "======================================\n");
}
}
for (i=0; i<nAlter;i++)
{
printf(" ======================================\n\tsummary %d alternative rang is: %d\n", i, Summ_Range[i]);
fprintf(fText, "====================================== \n\tSummary %d alternative rang is: %d\n", i, Summ_Range[i]);
}
// -====-
return 0;
}
// -====-
Соседние файлы в папке HW_SPPR_VAR5