Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.46 KB | None | 0 0
  1. /*
  2. //workshop7-zadatak1
  3. #include<stdafx.h>
  4. #include<iostream>
  5. #include<cstring>
  6. using namespace std;
  7.  
  8. struct ucenik{
  9. char *ime;
  10. char *prezime;
  11. char spol;
  12. int ocjene[5];
  13. };
  14.  
  15. void unos(ucenik *a)
  16. {
  17. char imp[20];
  18. cin.ignore();
  19. cout<<"Unesite ime ucenika:";cin.getline(imp,19);
  20. a->ime=new char [strlen(imp)+1];
  21. strcpy_s(a->ime,strlen(imp)+1,imp);
  22. cout<<"Unesite prezime ucenika:";cin.getline(imp,19);
  23. a->prezime=new char[strlen(imp)+1];
  24. strcpy_s(a->prezime,strlen(imp)+1,imp);
  25. cout<<"Unesite spol M/Z:"; cin>>a->spol;
  26. for (int i=0; i<5; i++)
  27. {
  28. cout<<"Unesite "<<i+1<<". ocjenu:";
  29. cin>>a->ocjene[i];
  30. }
  31. cin.ignore();
  32. }
  33. void ispis(ucenik a)
  34. {
  35. cout<<"Ime i prezime:"<<a.ime<<" "<<a.prezime<<endl;
  36. cout<<"Spol:"<<a.spol<<endl;
  37. cout<<"Ocjene:";
  38. for(int i=0; i<5; i++)
  39. {
  40. cout<<a.ocjene[i]<<" ";
  41. }
  42. }
  43. ucenik * najprezime(ucenik *a, int vel)
  44. {
  45. int max=strlen(a[0].prezime);
  46. ucenik *poknamax=&a[0];
  47. for (int i=1; i<vel; i++)
  48. {
  49. int vel=strlen(a[i].prezime);
  50. if(vel>max) poknamax=a+i;
  51. }
  52. return poknamax;
  53. }
  54. void pronadjirijec(ucenik *a,int vel, char niz[])
  55. {
  56. for (int i=0; i<vel; i++)
  57. {
  58. if(strstr(a[i].ime,niz)!=NULL)
  59. ispis(a[i]);
  60. }
  61. }
  62. void prezime(ucenik *a,int vel, char niz[])
  63. {
  64. for (int i=0; i<vel; i++)
  65. {
  66. if(strstr(a[i].prezime,niz)!=NULL)
  67. ispis(a[i]);
  68. }
  69. }
  70. float prosjek(ucenik a)
  71. {
  72. float suma=0;
  73. for(int i=0; i<5; i++)
  74. {
  75. suma+=a.ocjene[i];
  76. }
  77. return suma/5;
  78. }
  79. void sortiraj(ucenik *niz, int vel)
  80. {
  81. for (int i=0; i<vel-1; i++)
  82. {
  83. for (int j=i; j<vel; j++)
  84. {
  85. if(prosjek(niz[i])>prosjek(niz[j])) niz[i]=niz[i];
  86. else
  87. {
  88. ucenik temp=niz[i];
  89. niz[i]=niz[j];
  90. niz[j]=temp;
  91. }
  92. }
  93. }
  94. }
  95. void malvelslov (ucenik *a)
  96. {
  97. for(int i=0; i<strlen(a->ime); i++)
  98. {
  99. if( islower(a->ime[i])) a->ime[i]=(char)toupper(a->ime[i]);
  100. else a->ime[i]=(char)tolower(a->ime[i]);
  101. }
  102. }
  103. int vokali(ucenik *a)
  104. {
  105. int brojac=0;
  106. for(int i=0; i<strlen(a->prezime);i++)
  107. {
  108. if(a->prezime[i]=='a' || a->prezime[i]=='e'|| a->prezime[i]=='i'|| a->prezime[i]=='o'|| a->prezime[i]=='u'
  109. || a->prezime[i]=='A'|| a->prezime[i]=='E'|| a->prezime[i]=='O'|| a->prezime[i]=='U') brojac++;
  110. }
  111. return brojac;
  112. }
  113. void dealociraj(ucenik *a, int vel)
  114. {
  115. for (int i=0; i<vel; i++)
  116. {
  117. delete [] a[i].ime;
  118. delete [] a[i].prezime;
  119. }
  120. }
  121. int main()
  122. {
  123. int vel;
  124. cout<<"koliko ucenika zelite unijeti:";cin>>vel;
  125. ucenik *niz=new ucenik[vel];
  126. for(int i=0; i<vel; i++)
  127. {
  128. unos(niz+i);
  129. }
  130. for (int i=0; i<vel;i++)
  131. {
  132. cout<<endl;
  133. ispis(niz[i]);
  134. }
  135. ucenik *maxu=najprezime(niz,vel);
  136. cout<<endl<<"Ucenik koji ima najduze prezime je:"<<endl;
  137. ispis(*maxu);
  138. int velniz=-1;
  139. for (int i=0; i<vel; i++)
  140. {
  141. if(strstr(niz[i].ime,"mir")!=NULL) velniz++;
  142. }
  143. if (velniz<0) cout<<endl<<"Nema ucenika sa kombinacijom slova mir u imenu!"<<endl;
  144. else
  145. {
  146. cout<<endl<<"Ucenici sa kombinacijom slova mir u imenu su:"<<endl;
  147. pronadjirijec(niz,vel,"mir");
  148. }
  149. sortiraj(niz,vel);
  150. for (int i=0; i<vel; i++)
  151. malvelslov(niz+i);
  152. cout<<endl;
  153. for (int i=0; i<vel;i++)
  154. {
  155. cout<<endl;
  156. ispis(niz[i]);
  157. cout<<endl;
  158. }
  159. for (int i=0; i<vel;i++)
  160. cout<<endl<<"Ucenik "<<i+1<<" u prezimenu ima "<<vokali(niz+i)<<" vokala."<<endl;
  161. char niz2[20];
  162. cout<<endl<<"Unesite ime po kojem zelite pretraziti:";
  163. cin.getline(niz2,19);
  164. pronadjirijec(niz,vel,niz2);
  165. cout<<endl<<"Unesite prezime po kojem zelite pretraziti:";
  166. cin.getline(niz2,19);
  167. prezime(niz,vel,niz2);
  168. dealociraj(niz,vel);
  169. delete [] niz;
  170. niz=NULL;
  171. system("Pause>0");
  172. return 0;
  173. }*/
  174. /*
  175. //workshop7-zadatak2
  176. #include<stdafx.h>
  177. #include<iostream>
  178. #include<cstring>
  179. using namespace std;
  180.  
  181. struct ljubimac {
  182. char *ime;
  183. int dob;
  184. char *vrsta;
  185. char spol;
  186. char *datum[3];
  187. char *vrstacjep[3];
  188. };
  189. void unos(ljubimac *a)
  190. {
  191. cin.ignore();
  192. char znakovi[20];
  193. cout<<"Unesite ime vaseg ljubimca:"; cin.getline(znakovi,19);
  194. a->ime=new char [strlen(znakovi)+1];
  195. strcpy_s(a->ime,strlen(znakovi)+1,znakovi);
  196. cout<<"Unesite dob vaseg ljubimca u mj:"; cin>>a->dob;
  197. cin.ignore();
  198. cout<<"Unesite vrstu vaseg ljubimca:";cin.getline(znakovi,19);
  199. a->vrsta=new char [strlen(znakovi)+1];
  200. strcpy_s(a->vrsta,strlen(znakovi)+1,znakovi);
  201. cout<<"unesite spol vaseg ljubimca m/z:"; cin>>a->spol;
  202. cin.ignore();
  203. for (int i=0; i<3; i++)
  204. {
  205. cout<<"unesite datum:"; cin.getline(znakovi,19);
  206. a->datum[i]=new char[strlen(znakovi)+1];
  207. strcpy_s(a->datum[i],strlen(znakovi)+1,znakovi);
  208. }
  209. for (int i=0; i<3; i++)
  210. {
  211. cout<<"unesite vrstu cjepiva:"; cin.getline(znakovi,19);
  212. a->vrstacjep[i]=new char[strlen(znakovi)+1];
  213. strcpy_s(a->vrstacjep[i],strlen(znakovi)+1,znakovi);
  214. }
  215. }
  216. void ispis(ljubimac a)
  217. {
  218. cout<<endl;
  219. cout<<"Ime ljubimca:"<<a.ime<<endl;
  220. cout<<"Dob ljubimca:"<<a.dob<<endl;
  221. cout<<"Vrsta ljubimca:"<<a.vrsta<<endl;
  222. cout<<"Spol ljubimca:"<<a.spol<<endl;
  223. for (int i=0; i<3; i++)
  224. {
  225. cout<<"Datum:"<<a.datum[i]<<endl;
  226. cout<<"Cjepivo:"<<a.vrstacjep[i]<<endl;
  227. }
  228. }
  229. void pronadji(ljubimac *a,int vel, char niz[])
  230. {
  231. bool test=true;
  232. for (int i=0; i<vel; i++)
  233. {
  234. if(strstr(a[i].vrsta,niz)!=NULL)
  235. {
  236. ispis(a[i]);
  237. test=false;
  238. }
  239. }
  240. if(test)
  241. cout<<endl<<"ne postoji ljubimac sa tom vrstom!"<<endl;
  242. }
  243. void pronadjidatum(ljubimac *a,int vel, char niz[])
  244. {
  245. bool test=true;
  246. for (int i=0; i<vel; i++)
  247. {
  248. for(int j=0; j<3; j++)
  249. {
  250. if(strstr(a[i].datum[j],niz)!=NULL)
  251. {
  252. ispis(a[i]);
  253. test=false;
  254. }
  255. }
  256. }
  257. if(test)
  258. cout<<endl<<"ne postoji ljubimac koji ima taj datum!"<<endl;
  259. }
  260. void najime(ljubimac *a, int vel)
  261. {
  262. ljubimac *pok=a;
  263. for(int i=1; i<vel; i++)
  264. {
  265. if(strlen(a[i].ime)<strlen(pok->ime)) *pok=a[i];
  266. }
  267. ispis(*pok);
  268. }
  269. ljubimac *manjiod13 (ljubimac *a,int vel,int &vel2)
  270. {
  271. for(int i=0; i<vel; i++)
  272. {
  273. if(a[i].dob<13) vel2++;
  274. }
  275. if (vel2==0) {cout<<"Nema ljubimaca koji su mladji od 13 mjeseci!"<<endl; return NULL;}
  276. else {
  277. ljubimac *niz2=new ljubimac [vel2];
  278. int j=0;
  279. for(int i=0;i<vel; i++)
  280. {
  281. if(a[i].dob<13)
  282. {niz2[j]=a[i];
  283. j++;
  284. }
  285. }
  286. return niz2;
  287. delete []niz2;
  288. }
  289.  
  290. }
  291. void imena(ljubimac *a,int vel)
  292. {
  293. bool provjera=false;
  294. for(int i=0; i<vel; i++)
  295. {
  296. for (int j=i+1; j<vel; j++)
  297. {
  298. if(strcmp(a[i].ime,a[j].ime) !=0) cout<<"Ne postoje ljubimci sa istim imenima!"<<endl;
  299. else provjera=true;
  300. }
  301. }
  302. if(provjera) cout<<"Postoje ljubimci sa istim imenima!"<<endl;
  303. }
  304. void dealociraj(ljubimac *a,int vel)
  305. {
  306. for (int i=0; i<vel; i++)
  307. {
  308. delete [] a[i].ime;
  309. delete [] a[i].vrsta;
  310. for (int j=0; j<3; j++)
  311. {
  312. delete [] a[i].datum[j];
  313. delete [] a[i].vrstacjep[j];
  314. }
  315. }
  316. }
  317. int main()
  318. {
  319. int broj;
  320. char vrsta2[29];
  321. cout<<"unesite koliko zelite ljubimaca:"; cin>>broj;
  322. ljubimac *niz=new ljubimac [broj];
  323. for(int i=0; i<broj; i++)
  324. unos(niz+i);
  325. for(int i=0; i<broj; i++)
  326. ispis(niz[i]);
  327. cout<<"unesite vrstu po kojoj zelite pretraziti:"; cin.getline(vrsta2,19);
  328. pronadji(niz,broj,vrsta2);
  329. char datum[20];
  330. cout<<"unesite datum po kojem zelite naci ljubimca:"; cin.getline(datum,19);
  331. cout<<endl;
  332. pronadjidatum(niz,broj,datum);
  333. cout<<endl<<"ljubimac sa najkracim imenom je:"<<endl;
  334. najime(niz,broj);
  335. int brojmanj=0;
  336. cout<<endl<<"ljubimci koji su mladji od 13 mj:"<<endl;
  337. ljubimac *manji=manjiod13(niz,broj,brojmanj);
  338. for(int i=0; i<brojmanj; i++)
  339. ispis(manji[i]);
  340. imena(niz,broj);
  341. dealociraj(niz,broj);
  342. delete [] niz;
  343. niz=NULL;
  344. manji=NULL;
  345. system ("pause>0");
  346. return 0;
  347. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement