Игра "Акинатор". Язык программирования: С++. Среда разработки: Microsoft Visual Studio 2010

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

size () - 1;

}return 0;

}* toguess:: getfResponse (int id)

{Tresponses [id]. response;

}toguess:: setResponse (int id, bool flag)

{

// if (flag)

// responses [id]. probability+=0.001;

}toguess:: newResponse (char* response)

{(int i=0; i<responses. size (); i++)

{(strcmp (responses [i]. response,response) ==0) return;

}

// Добавление новго ответа в базу;

s_response thisResponse;. idQuest = donequest;. probability = 0.001;. response = response;. push_back (thisResponse);

}

void toguess:: save ()

{ // деструктор

// сохранение базы

FILE* file=fopen ("responses. txt","w");(! file)

{<<"Error!"<<endl;;

}(int i=0; i<responses. size (); i++)

{(file,"%s /%i ",responses [i]. response,responses [i]. idQuest. size ());(int j=0; j<responses [i]. idQuest. size (); j++) fprintf (file,"%i ",responses [i]. idQuest [j]);(file,"%f/ \n",responses [i]. probability);

}(file);file1 ("questions. txt");(file1. fail ())

{<<"Error!"<<endl;;

}(int i=0; i<questions. size (); i++)

{<<"/"<<questions [i]. question<<" /"<<questions [i]. id<<" "<<endl;

}

}toguess:: newQuestion (char* q)

{

// новый вопрос_newQ;* newQ=new char [strlen (_newQ)];(newQ,_newQ);_question thisQuestion;

thisQuestion. id = maxid (questions) +1;. question = newQ;

for (int i=0; i<responses. size (); i++)

{(strcmp (responses [i]. response,q) ==0)

{[i]. idQuest. push_back (thisQuestion. id);

}

}. push_back (thisQuestion);

}toguess:: maxid (vector _questions)

{max=0;(int i=0; i<_questions. size (); i++)

{(_questions [i]. id>max) max=_questions [i]. id;

}max;

}toguess:: dellQuestion (int id)

{

// удаление вопроса(int i=0; i<Tresponses. size (); i++)

{(findInVector (Tresponses [i]. idQuest, id))

{(int j=0; j<Tresponses [i]. idQuest. size (); j++)

{(Tresponses [i]. idQuest [j] ==id) Tresponses [i]. idQuest [j] =-1;

}

}

}

}* toguess:: addspaces (char* str1)

{* str=new char [strlen (str1)];(str,str1);

// добавление пробелов(int i=0; i<strlen (str); i++)

{(str [i] ==_) str [i] = ;

}str;

}* toguess:: toniceview (char* str1)

{

// перевод str в номарлный вид (удаление _ и перевод из транслита)

int i=0;* str = new char [strlen (str1) +1];(i<strlen (str1))

{(str1 [i])

{A: str [i] =a; break;B: str [i] =b; break;C: str [i] =c; break;D: str [i] =d; break;F: str [i] =f; break;E: str [i] =e; break;G: str [i] =g; break;H: str [i] =h; break;I: str [i] =i; break;J: str [i] =j; break;K: str [i] =k; break;

case L: str [i] =l; break;

case M: str [i] =m; break;N: str [i] =n; break;O: str [i] =o; break;P: str [i] =p; break;Q: str [i] =q; break;R: str [i] =r; break;S: str [i] =s; break;T: str [i] =t; break;U: str [i] =u; break;V: str [i] =v; break;W: str [i] =w; break;X: str [i] =x; break;Y: str [i] =y; break;Z: str [i] =z; break;

default: str [i] =str1 [i];

}++;

}[strlen (str1)] =\0; temp;=0;(i<strlen (str))

{(str [i])

{a: temp. push_back (а); break;b: temp. push_back (б); break;c:(str [i+1] ==h) {temp. push_back (ч); i++; }temp. push_back (с); break;d: temp. push_back (д); break;f: temp. push_back (ф); break;e: temp. push_back (е); break;g: temp. push_back (г); break;h: temp. push_back (х); break;i: temp. push_back (и); break;j:(str [i+1] ==a) {temp. push_back (я); i++; }temp. push_back (й); break;k: temp. push_back (к); break;l: temp. push_back (л); break;m: temp. push_back (м); break;n: temp. push_back (н); break;o: temp. push_back (о); break;p:(str [i+1] ==h) {temp. push_back (ф); i++; }temp. push_back (п); break;q: temp. push_back (б); break;r: temp. push_back (р); break;s:(str [i+1] ==h) {temp. push_back (ш); i++; }temp. push_back (с); break;t: temp. push_back (т); break;u: temp. push_back (у); break;v: temp. push_back (в); break;w: temp. push_back (р); break;x: break;y: temp. push_back (у); break;z:(str [i+1] ==h) {temp. push_back (ж); i++; }temp. push_back (з); break;_: temp. push_back ( ); break;\: temp. push_back (ь); break;: temp. push_back (str [i]);

}++;

}*returnStr = new char [temp. size () +1];(int i=0; i<temp. size (); i++)

{[i] =temp [i];

}

// returnStr [temp. size ()] =? ;[temp. size ()] =\0;[0] =toupper (returnStr [0]);(temp. size () >8)addspaces (returnStr);return addspaces (str1);

}toguess:: havequestions ()

{(int i=0; i<Tresponses. size (); i++)

{(int j=0; j<Tresponses [i]. idQuest. size (); j++)

{(Tresponses [i]. idQuest [j]! =-1) return true;

}

}false;

}toguess:: populatQuestion ()

{maxCount = 0;mid = 0;(int _id=1; _id<=questions [questions. size () - 1]. id; _id++) // для каждого вопроса

{thisCount=0;(int i=0; i<Tresponses. size (); i++)

{(int j=0; j<Tresponses [i]. idQuest. size (); j++)

{(Tresponses [i]. idQuest [j] ==_id) thisCount++;(thisCount>maxCount)

{=thisCount;= _id;

}

}

}

}mid;

}

Литература

 

1.Герберт Шилдт "Самоучитель C++" БХВ-Петербург, 2003 г.687 стр.

2.MSDN

.С. Окулов Программирование в алгоритмах. Бином, 2007г

.Б. Страуструп Язык программирования С++

.Р. Лафоре ООП в С++

.Д. Либерти, Б. Джонс C++ за 21 день Вильямс

.Разработка приложений на MS Visual Studio. Учебный курс. (Официальное пособие Microsoft).

.В.М. Виртас Методы решения задач по информатике" Бином, 2007г