7 июня 2012 7.06.12 26 4971

[UPD 2 — экзамен сдан] Экзамен, программирование на С/С++, помощь…

+5

Всем привет!
Для начала — пара вступительных слов…

Я сейчас учусь по специальности «инфотехнологии в бизнесе», а ещё сейчас СЕССИЯ -_-
А если ближе к теме — то завтра в 15:00 по МСК у меня экзамен по программированию
Но так сложилось что программировать на С и С++ я не умею вообще, так же как и на любом другом языке. Почему? Балду гонял весь семестр… А по той причине, что у меня в группе умеющих программировать людей практически нет, а те кто умеют, наотрез отказываются помогать… А на всяких форумах за это просят деньги (чего нет). Я обращаюсь к дружелюбным жителям и не жителям блогов! Вы ведь не оставите меня в беде?

Огромная просьба! Те кто умеют программировать на С и/или С++ помогите мне пожалуйста завтра сдать экзамен!
Завтра в 15:00 по Московскому времени у меня начало. Если вариант экзамена будет предоставлен в цифровом виде, то я сразу же его добавлю сюда, если на бумаге то мне понадобится время, что бы его сюда перепечатать.
У вас будет время до 17:30 по Московскому времени.

Очень надеюсь на вашу помошь!
И начинаю благодарить заранее!

[UPD1] ПОЯВИЛСЯ ВАРИАНТ ЭКЗАМЕНА

Дан текстовый файл (файл для чтения во вложениях) с упрощённым каталогом выставки собак.

Структура текста следующая.

Собаки записаны по породам. внутри одной породы по классам. Запись каждой собаки состоит из номера участника, имени собаки, имён владельцев, названия населённого пункта, названия государства.

Каждая строка текста принадлежит одному из следующих видов:

* Порода — строка начинается номером стандарта в скобках.
* Название класса — строка, начинающаяся буквой.
* Запись собаки — строка, которая начинается номером без скобок. Имя собаки стоит после номера, начинается буквой и заканчивается перед текстом «om:» и кончаются перед запятой. Название населённого пункта начинается после первой запятой и заканчивается перед следующей. Название государства начинается после последней запятой и кончается переводом строки.

ЗАДАНИЯ

Провести анализ текста. Максимальное количество баллов можно получить, написав для каждой подзадачи отдельные функции.

Результат анализа вывести в файл.

Имена файлов (исходного файла и файла с результатами задавать параметрами в коммандной строке.
Задание 1. (макс. 40 баллов)

Вывести список классов и количество собак каждого класса по породам.
Вывдо должени иметь вид:


Класс1: порода1(количество), порода2(количество),…Класс2: порода1(количество), порода2(количество),…...

За это задание можно получить и 45 баллов, если разрешить пользователю выбирать язык, эстонский или английский. Выводить нужно названия на ваыбранном языке. Эстонские названия находятся в строке до наклонной черты, английские после.

Задание 2. (макс. 30 баллов)

Вывести список государств с количеством выставляемых собак и список их имён в следующем виде:

Государство 1 (кол-во)имя1имя2…Государство 2 (кол-во)имя1имя2...

(126) WELSH SPRINGERSPANJEL / WELSH SPRINGER SPANIEL
EMASED AVAKLASS / BITCHES OPEN CLASS
1 STANDARD-BEARER LEGEND om: Suvianna Virkkunen, Kangasala, Finland
EMASED TSHEMPIONIKLASS / BITCHES CHAMPION CLASS
2 STANDARD-BEARER URBAN LEGEND om: Suvianna Virkkunen, Kangasala, Finland
(109) CLUMBERSPANJEL / CLUMBER SPANIEL
ISASED JUUNIORIKLASS / DOGS JUNIOR CLASS
3 JAZZIN'S TAILOR MADE FOR SPICE TWICE om: Marianne Kostiainen & Ira Sarlin, Vaaksy, Finland
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
4 BIMBIK'S GIGILLE om: Heigo Tammiste & Katrin Juurak, Espoo, Finland
5 SPICE TWICE DOUBLE OR NOTHING om: Laura Saari & Ira Sarlin, Helsinki, Finland
ISASED AVAKLASS / DOGS OPEN CLASS
6 DON'S BOHEMIAN RHAPSPDY om: Katrin Juurak & Annica Hogstrom, Viljandimaa, Eesti
(167) AMEERIKA KOKKERSPANJEL / AMERICAN COCKER SPANIEL
ISASED KUTSIKAKLASS 6-9K. / DOGS PUPPIES 6-9 M.
7 HEAVENLY WAY'S TOUCH OF GOLD om: Karita Kempas & Elina Kempas, Karjaa, Finland
ISASED TSHEMPIONIKLASS / DOGS CHAMPION CLASS
8 HEAVENLY WAYS GOES WITH THE WIND om: Diana Saarepera, Tartumaa, Eesti
EMASED TSHEMPIONIKLASS / BITCHES CHAMPION CLASS
9 ACADIA'S AMERICAN TALE om: Karita Kempas & Elina Kempas, Karjaa, Finland
10 AFIRE'S BEAUTY DIRTY RICH om: Irmeli Julin, Jorvas, Helsinki,Finland
(5) INGLISE KOKKERSPANJEL / ENGLISH COCKER SPANIEL
ISASED JUUNIORIKLASS / DOGS JUNIOR CLASS
11 BENCHMARK LANSON GOLD om: Janne Muuga, Harjumaa, Eesti
12 FLASHDANCE HUNGRY EYES om: Susanne Berggren, Jarfalla, Sweden
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
13 FLASHDANCE HOT STUFF om: Sandra Borglund, Bro, Sweden
14 TaHTIMETSa KASTEHELMI om: Niina Launonen, Kuopio, Finland
ISASED VETERANIKLASS / DOGS VETERAN CLASS
15 NORTHWORTH JACKOFALLTRADES om: Eija Andersson, Aminnefors, Finland
ISASED TSHEMPIONIKLASS / DOGS CHAMPION CLASS
16 PUTTIFAR HAPPY GO LUCKY om: Ewa Wikermo Rajala, Lulea, Sweden
EMASED AVAKLASS / BITCHES OPEN CLASS
17 STARTAGUS GIVE ME HOPE om: Fransisco Guerrino & c/o Ewa Wikermo Rajala, Portugal
(314) HOLLANDI VaIKE VEELINNUKOER / SMALL DUTCH WATERFOWL DOG
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
18 BURNING REDS AMAZING NUMBER ONE om: Susanna Sistonen, Palokka, Finland
(123) PoLLUSPANJEL / FIELD SPANIEL
ISASED JUUNIORIKLASS / DOGS JUNIOR CLASS
19 GOLOWOREZ BOOTLEGGER om: Juha Revasmaki, Jarvenpaa, Finland
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
20 GOLOWOREZ BLING BLING om: Sari Nikkanen, Kerava, Finland
ISASED TSHEMPIONIKLASS / DOGS CHAMPION CLASS
21 GOLOWOREZ ZAPATEADO om: Sari Nikkanen & Sofi Salo, Kerava, Finland
(125) INGLISE SPRINGERSPANJEL / ENGLISH SPRINGER SPANIEL
ISASED JUUNIORIKLASS / DOGS JUNIOR CLASS
22 DINGOLINA'S FLAMING FELID om: Oona Hedenius & Jarmo Saviaro, Hameenlinna, Finland
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
23 ADAMANT'S FEELS LIKE FLYING om: Suvi Parviainen & c/o Tarja Hovila, Somero, Finland
24 BIMBIK’S HAILEY om: Liina Sepp & Katrin Juurak, Harjumaa, Eesti
ISASED NOORTEKLASS / DOGS INTERMEDIATE CLASS
25 ADAMANT'S FEELS WORTH WAITING om: Sari Kangaslampi, Nokia, Finland
26 BIMBIK'S FINCH om: Heigo Tammiste & Katrin Juurak, Espoo, Finland
ISASED TSHEMPIONIKLASS / DOGS CHAMPION CLASS
27 ADAMANT'S PRESS STOP om: Liina Sepp, Harjumaa, Eesti
EMASED NOORTEKLASS / BITCHES INTERMEDIATE CLASS
28 ADAMANT'S FEEL THE TRADITIONS om: Christina Boije, Somero, Finland
EMASED AVAKLASS / BITCHES OPEN CLASS
29 BOGALOOS YES ITS ME om: Katrin Juurak, Viljandimaa, Eesti
30 WILDOMAR'S KNOCKS YOU OUT om: Katrin Juurak & Kadri Kuurmann, Viljandimaa, Eesti
EMASED TSHEMPIONIKLASS / BITCHES CHAMPION CLASS
31 GOLDMOORE'S MAKE IT HAPPEN om: Tarja Hovila & Antti Hokkanen, Somero, Finland
(231) TIIBETI SPANJEL / TIBETAN SPANIEL
ISASED KUTSIKAKLASS 6-9K. / DOGS PUPPIES 6-9 M.
33 KAILASHI CHODEN om: Svetlana Veinbergs, Tallinn, Eesti
EMASED KUTSIKAKLASS 6-9K. / BITCHES PUPPIES 6-9 M.
34 KAILASHI CHOMOLUNGMA om: Merle Rohtmets, Tartumaa, Eesti
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
35 KRI KRIS UNBELIEVABLE SITA om: Jaana Hyttinen, Kulaa, Finland
36 VANESSAN INDICA om: Silja Lappetelainen, Polja, Finland
37 VANESSAN ISOLDE om: Silja Lappetelainen & Jennika Lappetelainen, Polja, Finland
ISASED VETERANIKLASS / DOGS VETERAN CLASS
38 VANESSAN PRESTON om: Silja Lappetelainen, Polja, Finland
ISASED NOORTEKLASS / DOGS INTERMEDIATE CLASS
39 LILILEIAN MOULIN ROUGE om: Tiina Ramo & Marja Salo, Vantaa, Finland
40 MILIISIN BEOWULF-SAN om: Jaana Hyttinen, Kulaa, Finland
ISASED AVAKLASS / DOGS OPEN CLASS
41 TASHI-GONG ROULETTE om: Katri Tauru, Orimattila, Finland
EMASED NOORTEKLASS / BITCHES INTERMEDIATE CLASS
42 MOW-ZOW LUCKY LADY om: Heidi Nousiainen, Kiuruvesi, Finland
EMASED AVAKLASS / BITCHES OPEN CLASS
43 TASHI-GONG MY SONG om: Katri Tauru, Orimattila, Finland
EMASED TSHEMPIONIKLASS / BITCHES CHAMPION CLASS
44 FJORDNECK KHA-ZA-NA FOR KAILASHI om: Merle Rohtmets & Aare Rohtmets, Tartumaa, Eesti
45 MOW-ZOW ISA-BELLA om: Heidi Nousiainen, Kiuruvesi, Finland
46 VANESSAN ESTARA om: Aune Savolainen & Silja Lappetelainen, Siilinjarvi, Finland
(128) KING CHARLES SPANJEL / KING CHARLES SPANIEL
ISASED AVAKLASS / DOGS OPEN CLASS
48 ULFI KARAJ om: Arja Makkeli, Vojakkala, Finland
EMASED AVAKLASS / BITCHES OPEN CLASS
49 RAPIDASH ELIZA DOLITTLE om: Arja Makkeli, Vojakkala, Finland
(136) CAVALIER KING CHARLES SPANJEL / CAVALIER KING CHARLES SPANIEL
EMASED KUTSIKAKLASS 6-9K. / BITCHES PUPPIES 6-9 M.
50 HELANDROS DREAM PEARL om: Heli Jarvet, Tartumaa, Eesti
ISASED JUUNIORIKLASS / DOGS JUNIOR CLASS
51 ROYAL FANTASY UP TO WILD COMET om: Kaire Kala & Urve Tipp, Harjumaa, Eesti
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
52 HELANDROS CHANTILLY LACE om: Heli Jarvet, Tartumaa, Eesti
53 HELANDROS YALE IVY LEAGUE om: Reelika Reinomagi & Heli Jarvet, Tartu, Eesti
ISASED NOORTEKLASS / DOGS INTERMEDIATE CLASS
54 HELANDROS WIZARD OF LOVE om: Heli Jarvet, Tartumaa, Eesti
ISASED TSHEMPIONIKLASS / DOGS CHAMPION CLASS
55 ANGEL'S PRIDE HARRISSON om: Reelika Reinomagi & Heli Jarvet, Tartu, Eesti
EMASED TSHEMPIONIKLASS / BITCHES CHAMPION CLASS
56 HELANDROS VIVIEN LEE om: Heli Jarvet & Merilin Niin, Tartumaa, Eesti
(206) JAAPANI CHIN / JAPANESE CHIN
EMASED JUUNIORIKLASS / BITCHES JUNIOR CLASS
58 HIN SATORI OBLACHKO LYUBVI om: Valentina Pikkov, Raplamaa, Eesti

#include #include #include using namespace std;

int decode(string line) {
string indicator = «om:»;
size_t found;
int check_1 = 0; // proverjaem est6 li u nas simvol /
int check_2 = 0; // proverjaem est6 li u nas simvol '('
int check_3 = 0; // proverjaem est6 li u nas simvol ')'
int length = line.length();
for (int i=0; i<length; i++) {
if (line.at(i) == '/') check_1 = 1;
if (line.at(i) == '(') check_2 = 1;
if (line.at(i) == ')') check_3 = 1;
}
found = line.find(indicator);
if (found!=string::npos) {
return 1; // etot string pokazivaet porodu
} else if (check_1 == 1 && check_2 == 0 && check_3 == 0) {
return 2; // etot string pokazivaet nazvanie klassa
} else if (check_1 == 1 && check_2 == 1 && check_3 == 1) {
return 3; // etot string pokazivaet zapis sobaki
} else {
return 0;
}
}

string translate(string multilang, int l) {
string delimieter = "/";
string est;
string eng;
size_t found;
int position;
found = multilang.find(delimieter);
if (found!=string::npos) {
position = int(found);
if (position > 1) {
est = multilang.substr(0, position);
eng = multilang.substr(position+2);
if (l == 1) return est;
if (l == 2) return eng;
}
}
}

int main(int argc, char* argv[]) {
char buffer[500];
int lang;
string lines[1000];
int dogs_total = 0;
int dogs_tmp = 0;
int dogs_in_class_tmp = 0;
int class_tmp = 0;
int breeds_total = 0;
int breeds_tmp = 0;
int class_total = 0;
int breeds[100]; // Maximum breed quantity
ifstream file;
if (argc>1) {
file.open(argv[1], ios::binary); // open file in binary mode
} else {
file.open(«eksamC25.txt», ios::binary); // open file in binary mode

}
if (!file.is_open()) {
cout << «Error opening file\n»;
}
cout << «Sisestage '1' eesti keeles info saamiseks. Enter '2' for English language information.\n»;
cin >> lang;
if (!(lang == 1 || lang == 2)) {
lang = 2;
cout << «Your default language is English \n»;
} else {
switch(lang) {
case 1:
cout << «Teie valik: Eesti keel \n»;
break;
case 2:
cout << «Your choice: English \n»;
break;

}
}
cout << endl << endl << "______________________" << endl;
int i=0;
while (!file.eof()) {
file.getline(buffer,500);
lines[i] = buffer;
i++;
}
for (int j=0; j<i; j++) {
if (decode(lines[j]) == 1) {
dogs_total++; // skolko sobak vsego
}
}
for (int k=108; k>=0; k--) {
if (decode(lines[k]) == 3) {
cout << "----------------------" << endl;
cout << translate(lines[k], lang) << endl;
cout << "----------------------" << endl;
cout << (float)dogs_tmp/dogs_total << "%" << endl;
cout << "______________________" << endl << endl << endl;
dogs_tmp = 0;
class_tmp = 0;
breeds_total++;
}
if (decode(lines[k]) == 2) {
cout << translate(lines[k], lang) << endl;
cout << (float)dogs_in_class_tmp/dogs_total << "%" << endl << endl;
dogs_in_class_tmp = 0;
class_total++;
}
if (decode(lines[k]) == 1) {
dogs_in_class_tmp++;
dogs_tmp++;
}

}

}

UPD 2 Экзамен сдан!
получил 36 баллов из 70…
плюс баллы за домашние задания… в общем зачёт получен!


Лучшие комментарии

pastebin.com/hGzGMnNA
pastebin.com/xkG2RKju (подправленная база)
Написал парсер, прогнал по первой задаче, два раза он поперхнулся. Во всяком случае в формулировке в задаче не сказано, что целостность данных может плавать, а даже наоборот. Поправил данные (всего то ничего было поправить) — заработало.

Смысл примерно такой — идешь по строке и разбираешь ее на ходу, чтобы не плодить вложенных циклов и не ползовать кучу невнятных условий используются регулярные выражения, которые собственно всю строку растаскивают на нужные нам кейворды, этот код можно расписать и без использования регулярок, смысл останется тем же, но кода будет больше.
Забыл сказать, скрипт на python'е, так что его сдать не получится. Можно только понять принцип.

Тут сайт где тебе могут помочь. Обычно там нубы выкладывают просьбы, а норм поцыки для поднятия своего ЧСВ им помагают:3
Даааа, такого я еще не видел. Если честно, то я понимаю твоих одногрупников.
я даже не с этого поразился. А с самой формулировки. У меня завтра экзамен, но я нихера не знаю, потому что нихера не делал. Одногрупники помогать не хотят(странно с чего бы это?), помогите мне. Тут даже не в деньгах дело, просто человек то должен понять что задаром ничего не бывает. Я понял бы еще, если проблемы какие или предмет не шибко важный. Но тут то прямым текстом. И я бы помог даже просто так, только С++ практически в глаза не видел, а С не профильный язык и мы его очень специализировано учим. Да и кстати разве делают экзамен по С и С++ разом? Одинн ОО другой нет. Да и интернет наверняка на экзамене отключат, как выложит
Четсно, я пока не умею в С++, только в Pascal и чуть-чуть в графическом Dеlphi…
Вот , там онлайн уроки, просмотри их, может быть, чему нибудь научишься…
к сожалению завтра я в это время лечу домой. Так бы с радостью помог — самому интересно
Если экзамен по C/C++ семестровый и программирование на нем началось в этом семестре, то ничего страшного на экзамене не будет. Если ты не один семестр пинал балду и вдобавок ты не на младших курсах — готовься к анальной каре (особенно, если с преподом повезет, а с ними как правило именно везет).

Ну что, не сдашь сейчас =), сдашь осенью как раз на каникулах почитаешь несколько интересных и умных книжек, зато потом пригодится. Да даже, если ты чудом экзамен сдашь (я в этом сильно сомневаюсь, особенно, если тебе зададут 1-2 контрольных вопроса по коду), все равно почитай.
Из книг не буду советовать что-то конкретное, скажу, что если сможешь осилить «Керниган и Ритчи Язык программирование C» (http://rutracker.org/forum/viewtopic.php?t=2388601) то ты сдашь экзамен вообще не напрягаясь.
очень смешно…
Давай я завтра выставлю сюда задание и посмотрю много ли ты нагуглишь…
пусть я и слоуслоупок, но… КРАСАВА, что я еще могу сказать
Читай также