Учебни материали

Споделени от колеги - с преглед преди изтегляне.

Програмиране и програмни езици Синтез и Анализ на Алгоритми

Курсова работа по САА

Курсова работа DOCX 103 сваляния 10.02.2016

Русенски Университет "Ангел Кънчев" Катедра ЕЕА Курсова работа 1 по Синтез и Анализ на Алгоритми на …………………. студент … курс специалност: Компютърни системи и технологии гр. … , фак .№ …. Русе, ……….. г. Разработил:.............. Проверил:.............. Условие на задачата: 3. Телефонен указател се въвежда от клавиатурата в следния формат: Name : David Goss Surname : Burns Tel : 230239 Name : John Silver Surname : Adams Tel : 436784 Name : Ana Nowak Surname : Burns Tel : 213154 … Да се разработи програма,която изпълнява следните функции: - Създава двоично дърво на търсене,съдържащо информация само за фамилиите и честотата им на срещане в указателя(ключ на търсене – фамилия); · Извежда информация(от създаденото двоично дърво на търсене)за броя на лицата със зададена(от клавиатурата) фамилия; [Извежда информация (от създаденото двоично дърво на търсене) за броя на лицата с най-често срещаната фамилия. ] · Извежда информацията, сортирана във възходящ ред на ключа(речникова подредба); Код на програмата: # include < iostream > # include < string > using namespace std ; struct Item { //структура , един елемент от дървото. char sname [31]; int broi ; Item *L, *R; }; typedef Item * Point ; // Указател към елементите на дървото. Point root ; // Коренът на дървото , от тип указател void Add_S_tree ( char x[31], Point &p) // Създаване на дървото { if (p==NULL) { p= new Item ; strcpy (p-> sname ,x); p-> broi =1; p->L=NULL; p->R=NULL; } else if ( strcmp (x,p-> sname )<0) Add_S_tree (x,p->L); else if ( strcmp (x,p-> sname )>0) Add_S_tree (x,p->R); else p-> broi++ ; } int CountF ( char k[31], Point p) { // функция за извеждане на броя повторения на дадено име К. if (p) { if ( strcmp (p-> sname ,k)==0){ return p-> broi ; } else return CountF (k,p->R)+ CountF (k,p->L); } else return 0; } void print ( Point p) { //принтиране във възходящ ред if (p) { print (p->L); cout <<p-> sname << endl ; print (p->R);} } void main (){ root =NULL; char ch ; char x[31]; int j=0; while (j==0) { cout << " Shte Vyvejdate li? (Y/N) " ; cin >> ch ; if ( ch == ' n' || ch == 'N' ) j++ ; else { cout << " Vavedete Familno ime : " ; cin >>x; Add_S_tree (x, root ); } } char k[31]; cout << " Tyrsene broi lica po familiq ? (Y/N)" ; cin >> ch ; if ( ch == ' n' || ch == 'N' ) {} else { cout << " Vavedete Familiq za tyrsene na broi : " ; cin >>k; cout << " Broqt e: " << CountF (k, root )<< endl ; } cout << " Printirane na informaciqta ? (Y/N)" ; cin >> ch ; if ( ch == ' n' || ch == 'N' ) {} else { cout << " Printirane vyv vyzhodqsht red : " << endl ; print ( root ); } cout << endl ; system ( " pause " ); } center 2922270 7 2a 5 10 9 L L R 3 R R R 0 0 7 2a 5 10 9 L L R 3 R R R За реализация на програмата са използвани две процедури и една функция. Те обработват дървото на търсене което се състои от елементи от тип Struct със полета sname от тип char за въвеждане на фамилиите , broi от тип integer

Преглед на началото - целият файл след изтегляне

Описание

Програма,която изпълнява следните функции:
- Създава двоично дърво на търсене,съдържащо информация само за фамилиите и честотата им на срещане в указателя(ключ на търсене – фамилия);
-Извежда информация(от създаденото двоично дърво на търсене)за броя на лицата със зададена(от клавиатурата) фамилия;
[Извежда информация (от създаденото двоично дърво на търсене) за броя на лицата с най-често срещаната фамилия. ]
-Извежда информацията, сортирана във възходящ ред на ключа(речникова подредба);

0 коментара

Все още няма коментари. Бъдете първият, който ще коментира.

За да коментирате, трябва да сте влезли в профила си.

Влезте