Advertisement
Guest User

Untitled

a guest
Jan 19th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 27.03 KB | None | 0 0
  1.  
  2. #include <stdio.h>
  3. #include <string.h>
  4. #include <stdio.h>
  5.  
  6. #define DIM 100
  7.  
  8.  
  9. int errore() {
  10. printf("\nScusa ma non ho capito cosa mi stai chiedendo,\nprova a scriverlo in modo diverso\n\n");
  11. }
  12.  
  13.  
  14. int codicefiscale () {
  15. char sesso, nome[100], cognome[100], mese1[100], luogo[100], giorno2[100], mese2, anno3[100], codice_fiscale[100], lavoro[100], val, vet_voc_nom[100], vet_con_nom[100], vet_voc_cog[100], vet_con_cog[100], anno1[100], comune[4], codice[16], cod[4];
  16. int i, j, k, mese, giorno, giorno1, anno, anno2, altezza, peso, giorni, r1, r2, r3, r4, r5, voc_nom=0, con_nom=0, voc_cog=0, con_cog=0;
  17. srand(time(NULL));
  18. r1 = rand()%2;
  19. switch (r1) {
  20. case 0:
  21. sesso = 'M';
  22. break;
  23. case 1:
  24. sesso = 'F';
  25. break;
  26. }
  27. switch (r1) {
  28. case 0:
  29. r2 = rand()%17;
  30. break;
  31. case 1:
  32. r2 = rand()%12+17;
  33. break;
  34. }
  35. switch (r2) {
  36. case 0:
  37. strcpy (nome, "Marco");
  38. break;
  39. case 1:
  40. strcpy (nome, "Matteo");
  41. break;
  42. case 2:
  43. strcpy (nome, "Mattia");
  44. break;
  45. case 3:
  46. strcpy (nome, "Tommaso");
  47. break;
  48. case 4:
  49. strcpy (nome, "Ubaldo");
  50. break;
  51. case 5:
  52. strcpy (nome, "Fabrizio");
  53. break;
  54. case 6:
  55. strcpy (nome, "Pietro");
  56. break;
  57. case 7:
  58. strcpy (nome, "Alessandro");
  59. break;
  60. case 8:
  61. strcpy (nome, "Carlo");
  62. break;
  63. case 9:
  64. strcpy (nome, "Salvatore");
  65. break;
  66. case 10:
  67. strcpy (nome, "Giovanni");
  68. break;
  69. case 11:
  70. strcpy (nome, "Massimo");
  71. break;
  72. case 12:
  73. strcpy (nome, "Maurizio");
  74. break;
  75. case 13:
  76. strcpy (nome, "Alberto");
  77. break;
  78. case 14:
  79. strcpy (nome, "Andrea");
  80. break;
  81. case 15:
  82. strcpy (nome, "Vittorio");
  83. break;
  84. case 16:
  85. strcpy (nome, "Nicola");
  86. break;
  87. case 17:
  88. strcpy (nome, "Alessia");
  89. break;
  90. case 18:
  91. strcpy (nome, "Claudia");
  92. break;
  93. case 19:
  94. strcpy (nome, "Desiree");
  95. break;
  96. case 20:
  97. strcpy (nome, "Milena");
  98. break;
  99. case 21:
  100. strcpy (nome, "Serena");
  101. break;
  102. case 22:
  103. strcpy (nome, "Margherita");
  104. break;
  105. case 23:
  106. strcpy (nome, "Manuela");
  107. break;
  108. case 24:
  109. strcpy (nome, "Annalisa");
  110. break;
  111. case 25:
  112. strcpy (nome, "Michela");
  113. break;
  114. case 26:
  115. strcpy (nome, "Giovanna");
  116. break;
  117. case 27:
  118. strcpy (nome, "Elisabetta");
  119. break;
  120. case 28:
  121. strcpy (nome, "Maddalena");
  122. break;
  123. }
  124. r3 = rand()%41;
  125. switch (r3) {
  126. case 0:
  127. strcpy (cognome, "Rossi");
  128. break;
  129. case 1:
  130. strcpy (cognome, "Bianchi");
  131. break;
  132. case 2:
  133. strcpy (cognome, "Foladini");
  134. break;
  135. case 3:
  136. strcpy (cognome, "Ferretti");
  137. break;
  138. case 4:
  139. strcpy (cognome, "Invernizzi");
  140. break;
  141. case 5:
  142. strcpy (cognome, "Bingo");
  143. break;
  144. case 6:
  145. strcpy (cognome, "Brenta");
  146. break;
  147. case 7:
  148. strcpy (cognome, "Bandi");
  149. break;
  150. case 8:
  151. strcpy (cognome, "Magno");
  152. break;
  153. case 9:
  154. strcpy (cognome, "Lasagna");
  155. break;
  156. case 10:
  157. strcpy (cognome, "Gatti");
  158. break;
  159. case 11:
  160. strcpy (cognome, "Nimmo");
  161. break;
  162. case 12:
  163. strcpy (cognome, "Castagna");
  164. break;
  165. case 13:
  166. strcpy (cognome, "Bianchi");
  167. break;
  168. case 14:
  169. strcpy (cognome, "Lenticchie");
  170. break;
  171. case 15:
  172. strcpy (cognome, "landini");
  173. break;
  174. case 16:
  175. strcpy (cognome, "Bonsante");
  176. break;
  177. case 17:
  178. strcpy (cognome, "Cafolla");
  179. break;
  180. case 18:
  181. strcpy (cognome, "Dicondina");
  182. break;
  183. case 19:
  184. strcpy (cognome, "Brivio");
  185. break;
  186. case 20:
  187. strcpy (cognome, "Merli");
  188. break;
  189. case 21:
  190. strcpy (cognome, "Brizzio");
  191. break;
  192. case 22:
  193. strcpy (cognome, "Segalini");
  194. break;
  195. case 23:
  196. strcpy (cognome, "Gaglio");
  197. break;
  198. case 24:
  199. strcpy (cognome, "Indietri");
  200. break;
  201. case 25:
  202. strcpy (cognome, "Stabilo");
  203. break;
  204. case 26:
  205. strcpy (cognome, "Facchetti");
  206. break;
  207. case 27:
  208. strcpy (cognome, "Facchinetti");
  209. break;
  210. case 28:
  211. strcpy (cognome, "Rizzio");
  212. break;
  213. case 29:
  214. strcpy (cognome, "Secchi");
  215. break;
  216. case 30:
  217. strcpy (cognome, "Esposito");
  218. break;
  219. case 31:
  220. strcpy (cognome, "Scognamiglio");
  221. break;
  222. case 32:
  223. strcpy (cognome, "Fiorini");
  224. break;
  225. case 33:
  226. strcpy (cognome, "Lopresti");
  227. break;
  228. case 34:
  229. strcpy (cognome, "Lapaura");
  230. break;
  231. case 35:
  232. strcpy (cognome, "Brambilla");
  233. break;
  234. case 36:
  235. strcpy (cognome, "Fumagalli");
  236. break;
  237. case 37:
  238. strcpy (cognome, "Biondi");
  239. break;
  240. case 38:
  241. strcpy (cognome, "Verga");
  242. break;
  243. case 39:
  244. strcpy (cognome, "Tempro");
  245. break;
  246. case 40:
  247. strcpy (cognome, "Lasagna");
  248. break;
  249. }
  250. mese = rand()%12;
  251. switch (mese) {
  252. case 0:
  253. strcpy (mese1, "Gennaio");
  254. giorni = 31;
  255. break;
  256. case 1:
  257. strcpy (mese1, "Febbraio");
  258. giorni = 28;
  259. break;
  260. case 2:
  261. strcpy (mese1, "Marzo");
  262. giorni = 31;
  263. break;
  264. case 3:
  265. strcpy (mese1, "Aprile");
  266. giorni = 30;
  267. break;
  268. case 4:
  269. strcpy (mese1, "Maggio");
  270. giorni = 31;
  271. break;
  272. case 5:
  273. strcpy (mese1, "Giugno");
  274. giorni = 30;
  275. break;
  276. case 6:
  277. strcpy (mese1, "Luglio");
  278. giorni = 31;
  279. break;
  280. case 7:
  281. strcpy (mese1, "Agosto");
  282. giorni = 31;
  283. break;
  284. case 8:
  285. strcpy (mese1, "Settembre");
  286. giorni = 30;
  287. break;
  288. case 9:
  289. strcpy (mese1, "Ottobre");
  290. giorni = 31;
  291. break;
  292. case 10:
  293. strcpy (mese1, "Novembre");
  294. giorni = 30;
  295. break;
  296. case 11:
  297. strcpy (mese1, "Dicembre");
  298. giorni = 31;
  299. break;
  300. }
  301. giorno = rand()%giorni+1;
  302. anno = rand()%29+1970;
  303. r4 = rand()%31;
  304.  
  305. switch (r4) {
  306. case 0:
  307. strcpy (luogo, "Torino");
  308. strcpy (cod, "L219");
  309. break;
  310. case 1:
  311. strcpy (luogo, "Milano");
  312. strcpy (cod, "F205");
  313. break;
  314. case 2:
  315. strcpy (luogo, "Roma");
  316. strcpy (cod, "H501");
  317. break;
  318. case 3:
  319. strcpy (luogo, "Napoli");
  320. strcpy (cod, "F839");
  321. break;
  322. case 4:
  323. strcpy (luogo, "Verona");
  324. strcpy (cod, "L781");
  325. break;
  326. case 5:
  327. strcpy(luogo, "Firenze");
  328. strcpy (cod, "D612");
  329. break;
  330. case 6:
  331. strcpy(luogo, "Aosta");
  332. strcpy (cod, "A326");
  333. break;
  334. case 7:
  335. strcpy(luogo, "Bolzano");
  336. strcpy (cod, "A952");
  337. break;
  338. case 8:
  339. strcpy (luogo, "Venezia");
  340. strcpy (cod, "L736");
  341. break;
  342. case 9:
  343. strcpy (luogo, "Genova");
  344. strcpy (cod, "D969");
  345. break;
  346. case 10:
  347. strcpy (luogo, "Alessandria");
  348. strcpy (cod, "A182");
  349. break;
  350. case 11:
  351. strcpy (luogo, "Como");
  352. strcpy (cod, "C933");
  353. break;
  354. case 12:
  355. strcpy (luogo, "Bologna");
  356. strcpy (cod, "A944");
  357. break;
  358. case 13:
  359. strcpy(luogo, "Pescara");
  360. strcpy (cod, "G482");
  361. break;
  362. case 14:
  363. strcpy(luogo, "Lecce");
  364. strcpy (cod, "E506");
  365. break;
  366. case 15:
  367. strcpy(luogo, "Palermo");
  368. strcpy (cod, "G273");
  369. break;
  370. case 16:
  371. strcpy (luogo, "Casalpusterlengo");
  372. strcpy (cod, "B910");
  373. break;
  374. case 17:
  375. strcpy (luogo, "Verbania");
  376. strcpy (cod, "L746");
  377. break;
  378. case 18:
  379. strcpy (luogo, "Pavia");
  380. strcpy (cod, "G388");
  381. break;
  382. case 19:
  383. strcpy (luogo, "Varese");
  384. strcpy (cod, "L682");
  385. break;
  386. case 20:
  387. strcpy (luogo, "Brescia");
  388. strcpy (cod, "B157");
  389. break;
  390. case 21:
  391. strcpy(luogo, "Perugia");
  392. strcpy (cod, "G478");
  393. break;
  394. case 22:
  395. strcpy(luogo, "Salerno");
  396. strcpy (cod, "H703");
  397. break;
  398. case 23:
  399. strcpy(luogo, "Messina");
  400. strcpy (cod, "F158");
  401. break;
  402. case 24:
  403. strcpy (luogo, "Catanzaro");
  404. strcpy (cod, "C352");
  405. break;
  406. case 25:
  407. strcpy (luogo, "Siena");
  408. strcpy (cod, "I726");
  409. break;
  410. case 26:
  411. strcpy (luogo, "Trieste");
  412. strcpy (cod, "L424");
  413. break;
  414. case 27:
  415. strcpy (luogo, "Cagliari");
  416. strcpy (cod, "B354");
  417. break;
  418. case 28:
  419. strcpy (luogo, "Catania");
  420. strcpy (cod, "C351");
  421. break;
  422. case 29:
  423. strcpy(luogo, "Taranto");
  424. strcpy (cod, "L049");
  425. break;
  426. case 30:
  427. strcpy(luogo, "Sassari");
  428. strcpy (cod, "I452");
  429. break;
  430. case 31:
  431. strcpy(luogo, "Lodi");
  432. strcpy (cod, "E648");
  433. break;
  434. }
  435. altezza = rand()%50+150;
  436. if (altezza<175) {
  437. peso = rand()%15+60;
  438. }
  439. else {
  440. peso = rand()%30+75;
  441. }
  442. if (anno<1995) {
  443. r5 = rand()%24;
  444. switch (r5) {
  445. case 0:
  446. strcpy (lavoro, "Impiegato/a");
  447. break;
  448. case 1:
  449. strcpy (lavoro, "Insegnante");
  450. break;
  451. case 2:
  452. strcpy (lavoro, "Avvocato");
  453. break;
  454. case 3:
  455. strcpy (lavoro, "Infermiere");
  456. break;
  457. case 4:
  458. strcpy (lavoro, "Dottore");
  459. break;
  460. case 5:
  461. strcpy (lavoro, "Operaio");
  462. break;
  463. case 6:
  464. strcpy (lavoro, "Dentista");
  465. break;
  466. case 7:
  467. strcpy (lavoro, "Disoccupato/a");
  468. break;
  469. case 8:
  470. strcpy (lavoro, "Architetto");
  471. break;
  472. case 9:
  473. strcpy (lavoro, "Ingegnere");
  474. break;
  475. case 10:
  476. strcpy (lavoro, "Cameriere");
  477. break;
  478. case 11:
  479. strcpy (lavoro, "Cuoco");
  480. break;
  481. case 12:
  482. strcpy (lavoro, "Pusher");
  483. break;
  484. case 13:
  485. strcpy (lavoro, "Idraulico");
  486. break;
  487. case 14:
  488. strcpy (lavoro, "Farmacista");
  489. break;
  490. case 15:
  491. strcpy (lavoro, "Cassiere/a");
  492. break;
  493. case 16:
  494. strcpy (lavoro, "Autista");
  495. break;
  496. case 17:
  497. strcpy (lavoro, "Magazziniere/a");
  498. break;
  499. case 18:
  500. strcpy (lavoro, "Barista");
  501. break;
  502. case 19:
  503. strcpy (lavoro, "Bidello/a");
  504. break;
  505. case 20:
  506. strcpy (lavoro, "Segretario/a");
  507. break;
  508. case 21:
  509. strcpy (lavoro, "Web Designer");
  510. break;
  511. case 22:
  512. strcpy (lavoro, "Parrucchiere/a");
  513. break;
  514. case 23:
  515. strcpy (lavoro, "Modello/a");
  516. break;
  517. }
  518. }
  519. else {
  520. strcpy (lavoro, "Studente/essa");
  521. }
  522. printf ("\n*********************\n\n");
  523. printf ("Nome: %s\n", nome);
  524. printf ("Cognome: %s\n", cognome);
  525. printf ("Sesso: %c\n", sesso);
  526. printf ("Giorno: %d\n", giorno);
  527. printf ("Mese: %s\n", mese1);
  528. printf ("Anno: %d\n", anno);
  529. printf ("Luogo: %s\n", luogo);
  530. printf ("Altezza: %d cm\n", altezza);
  531. printf ("Peso: %d Kg\n", peso);
  532. printf ("Lavoro: %s\n", lavoro);
  533. i=0;
  534. while (nome[i] != '\0') {
  535. if (nome[i] >= 'a' && nome[i] <= 'z')
  536. nome[i] = nome[i] - 32;
  537. i++;
  538. }
  539. i=0;
  540. while (cognome[i] != '\0') {
  541. if (cognome[i] >= 'a' && cognome[i] <= 'z')
  542. cognome[i] = cognome[i] - 32;
  543. i++;
  544. }
  545. if (sesso == 'm')
  546. sesso = 'M';
  547. else
  548. if (sesso == 'f')
  549. sesso = 'F';
  550. for (i=0;i<strlen(nome);i++) {
  551. if (nome[i]=='A' || nome[i]=='E' || nome[i]=='I' || nome[i]=='O' || nome[i]=='U') {
  552. vet_voc_nom[voc_nom] = nome[i];
  553. voc_nom++;
  554. }
  555. else {
  556. vet_con_nom[con_nom] = nome[i];
  557. con_nom++;
  558. }
  559. }
  560. j=strlen(vet_con_nom);
  561. k=strlen(vet_voc_nom);
  562. if (j<3) {
  563. for (i=0;i<j;i++)
  564. nome[i]=vet_con_nom[i];
  565. for (i=j;i<j+k-1;i++)
  566. nome[i]=vet_voc_nom[i];
  567. for (i=j+k;i<3;i++)
  568. nome[i]='X';
  569. }
  570. else
  571. if (j==3) {
  572. for (i=0;i<3;i++)
  573. nome[i]=vet_con_nom[i];
  574. }
  575. else
  576. if (j>3) {
  577. nome[0]=vet_con_nom[0];
  578. nome[1]=vet_con_nom[2];
  579. nome[2]=vet_con_nom[3];
  580. }
  581. for (i=0;i<strlen(cognome);i++) {
  582. if (cognome[i]=='A' || cognome[i]=='E' || cognome[i]=='I' || cognome[i]=='O' || cognome[i]=='U') {
  583. vet_voc_cog[voc_cog] = cognome[i];
  584. voc_cog++;
  585. }
  586. else {
  587. vet_con_cog[con_cog] = cognome[i];
  588. con_cog++;
  589. }
  590. }
  591. j=strlen(vet_con_cog);
  592. k=strlen(vet_voc_cog);
  593. if (j<3) {
  594. for (i=0;i<j;i++)
  595. cognome[i]=vet_con_cog[i];
  596. for (i=j;i<j+k-1;i++)
  597. cognome[i]=vet_voc_cog[i];
  598. for (i=j+k;i<3;i++)
  599. cognome[i]='X';
  600. }
  601. else {
  602. for (i=0;i<3;i++)
  603. cognome[i]=vet_con_cog[i];
  604. }
  605. if (sesso=='F')
  606. giorno=giorno+40;
  607. sprintf(giorno2, "%d", giorno);
  608. if (giorno2[1]=='\0') {
  609. giorno2[1]=giorno2[0];
  610. giorno2[0]='0';
  611. }
  612. switch (mese) {
  613. case 0:
  614. mese2='A';
  615. break;
  616. case 1:
  617. mese2='B';
  618. break;
  619. case 2:
  620. mese2='C';
  621. break;
  622. case 3:
  623. mese2='D';
  624. break;
  625. case 4:
  626. mese2='E';
  627. break;
  628. case 5:
  629. mese2='H';
  630. break;
  631. case 6:
  632. mese2='L';
  633. break;
  634. case 7:
  635. mese2='M';
  636. break;
  637. case 8:
  638. mese2='P';
  639. break;
  640. case 9:
  641. mese2='R';
  642. break;
  643. case 10:
  644. mese2='S';
  645. break;
  646. case 11:
  647. mese2='T';
  648. break;
  649. }
  650. anno2=anno/100*100;
  651. anno=anno-anno2;
  652. sprintf(anno3, "%d", anno);
  653.  
  654. //strcat(codice, cod);
  655. //printf("\n%s", codice);
  656.  
  657. j=0;
  658. for (i=0;i<3;i++) {
  659. codice[i]=cognome[j];
  660. j++;
  661. }
  662. j=0;
  663. for (i=3;i<6;i++) {
  664. codice[i]=nome[j];
  665. j++;
  666. }
  667. j=0;
  668. for (i=6;i<8;i++) {
  669. codice[i]=anno3[j];
  670. j++;
  671. }
  672. codice[8]=mese2;
  673. j=0;
  674. for (i=9;i<11;i++) {
  675. codice[i]=giorno2[j];
  676. j++;
  677. }
  678. j=0;
  679. for (i=11;i<15;i++) {
  680. codice[i]=cod[j];
  681. j++;
  682. }
  683.  
  684. int somma=0, resto;
  685. for (i=0;i<15;i++) {
  686. if (i%2==0) {
  687. switch (codice[i]) {
  688. case '0':
  689. val = 1;
  690. break;
  691. case '1':
  692. val = 0;
  693. break;
  694. case '2':
  695. val = 5;
  696. break;
  697. case '3':
  698. val = 7;
  699. break;
  700. case '4':
  701. val = 9;
  702. break;
  703. case '5':
  704. val = 13;
  705. break;
  706. case '6':
  707. val = 15;
  708. break;
  709. case '7':
  710. val = 17;
  711. break;
  712. case '8':
  713. val = 19;
  714. break;
  715. case '9':
  716. val = 21;
  717. break;
  718. case 'A':
  719. val = 1;
  720. break;
  721. case 'B':
  722. val = 0;
  723. break;
  724. case 'C':
  725. val = 5;
  726. break;
  727. case 'D':
  728. val = 7;
  729. break;
  730. case 'E':
  731. val = 9;
  732. break;
  733. case 'F':
  734. val = 13;
  735. break;
  736. case 'G':
  737. val = 15;
  738. break;
  739. case 'H':
  740. val = 17;
  741. break;
  742. case 'I':
  743. val = 19;
  744. break;
  745. case 'J':
  746. val = 21;
  747. break;
  748. case 'K':
  749. val = 2;
  750. break;
  751. case 'L':
  752. val = 4;
  753. break;
  754. case 'M':
  755. val = 18;
  756. break;
  757. case 'N':
  758. val = 20;
  759. break;
  760. case 'O':
  761. val = 11;
  762. break;
  763. case 'P':
  764. val = 3;
  765. break;
  766. case 'Q':
  767. val = 6;
  768. break;
  769. case 'R':
  770. val = 8;
  771. break;
  772. case 'S':
  773. val = 12;
  774. break;
  775. case 'T':
  776. val = 14;
  777. break;
  778. case 'U':
  779. val = 16;
  780. break;
  781. case 'V':
  782. val = 10;
  783. break;
  784. case 'W':
  785. val = 22;
  786. break;
  787. case 'X':
  788. val = 25;
  789. break;
  790. case 'Y':
  791. val = 24;
  792. break;
  793. case 'Z':
  794. val = 23;
  795. break;
  796. }
  797. somma=somma+val;
  798. }
  799. else {
  800. switch (codice[i]) {
  801. case '0':
  802. val = 0;
  803. break;
  804. case '1':
  805. val = 1;
  806. break;
  807. case '2':
  808. val = 2;
  809. break;
  810. case '3':
  811. val = 3;
  812. break;
  813. case '4':
  814. val = 4;
  815. break;
  816. case '5':
  817. val = 5;
  818. break;
  819. case '6':
  820. val = 6;
  821. break;
  822. case '7':
  823. val = 7;
  824. break;
  825. case '8':
  826. val = 8;
  827. break;
  828. case '9':
  829. val = 9;
  830. break;
  831. case 'A':
  832. val = 0;
  833. break;
  834. case 'B':
  835. val = 1;
  836. break;
  837. case 'C':
  838. val = 2;
  839. break;
  840. case 'D':
  841. val = 3;
  842. break;
  843. case 'E':
  844. val = 4;
  845. break;
  846. case 'F':
  847. val = 5;
  848. break;
  849. case 'G':
  850. val = 6;
  851. break;
  852. case 'H':
  853. val = 7;
  854. break;
  855. case 'I':
  856. val = 8;
  857. break;
  858. case 'J':
  859. val = 9;
  860. break;
  861. case 'K':
  862. val = 10;
  863. break;
  864. case 'L':
  865. val = 11;
  866. break;
  867. case 'M':
  868. val = 12;
  869. break;
  870. case 'N':
  871. val = 13;
  872. break;
  873. case 'O':
  874. val = 14;
  875. break;
  876. case 'P':
  877. val = 15;
  878. break;
  879. case 'Q':
  880. val = 16;
  881. break;
  882. case 'R':
  883. val = 17;
  884. break;
  885. case 'S':
  886. val = 18;
  887. break;
  888. case 'T':
  889. val = 19;
  890. break;
  891. case 'U':
  892. val = 20;
  893. break;
  894. case 'V':
  895. val = 21;
  896. break;
  897. case 'W':
  898. val = 22;
  899. break;
  900. case 'X':
  901. val = 23;
  902. break;
  903. case 'Y':
  904. val = 24;
  905. break;
  906. case 'Z':
  907. val = 25;
  908. break;
  909. }
  910. somma=somma+val;
  911. }
  912. }
  913. resto=somma%26;
  914. switch (resto) {
  915. case 0:
  916. j = 'A';
  917. break;
  918. case 1:
  919. j = 'B';
  920. break;
  921. case 2:
  922. j = 'C';
  923. break;
  924. case 3:
  925. j = 'D';
  926. break;
  927. case 4:
  928. j = 'E';
  929. break;
  930. case 5:
  931. j = 'F';
  932. break;
  933. case 6:
  934. j = 'G';
  935. break;
  936. case 7:
  937. j = 'H';
  938. break;
  939. case 8:
  940. j = 'I';
  941. break;
  942. case 9:
  943. j = 'J';
  944. break;
  945. case 10:
  946. j = 'K';
  947. break;
  948. case 11:
  949. j = 'L';
  950. break;
  951. case 12:
  952. j = 'M';
  953. break;
  954. case 13:
  955. j = 'N';
  956. break;
  957. case 14:
  958. j = 'O';
  959. break;
  960. case 15:
  961. j = 'P';
  962. break;
  963. case 16:
  964. j = 'Q';
  965. break;
  966. case 17:
  967. j = 'R';
  968. break;
  969. case 18:
  970. j = 'S';
  971. break;
  972. case 19:
  973. j = 'T';
  974. break;
  975. case 20:
  976. j = 'U';
  977. break;
  978. case 21:
  979. j = 'V';
  980. break;
  981. case 22:
  982. j = 'W';
  983. break;
  984. case 23:
  985. j = 'X';
  986. break;
  987. case 24:
  988. j = 'Y';
  989. break;
  990. case 25:
  991. j = 'Z';
  992. break;
  993. }
  994. codice[15]=j;
  995. for (i=0;i<16;i++)
  996. printf ("%c", codice[i]);
  997. printf ("\n\n*********************\n\n");
  998. }
  999.  
  1000.  
  1001. int casuale() {
  1002. int numminimo, nummassimo, numcasuale;
  1003. inseriscinum:
  1004. printf("Puoi dirmi il numero minimo che puo' essere estratto?\nNumero minimo= ");
  1005. scanf("%d", &numminimo);
  1006. printf("e il numero massimo?\nNumero massimo= ");
  1007. scanf("%d", &nummassimo);
  1008.  
  1009. estrazione:
  1010. srand(time(NULL));
  1011. numcasuale=rand()%nummassimo+1;
  1012. if(nummassimo<=numminimo){
  1013. printf("\ni numeri inseriti non vanno bene:\nil numero massimo non puo' essere\nminore del numero minimo\n\n");
  1014. goto inseriscinum;
  1015. }
  1016. if(numcasuale>=numminimo) {
  1017. printf("\nil numero estratto e': %d\n", numcasuale);
  1018. }
  1019. else {
  1020. goto estrazione;
  1021. }
  1022. printf("Posso fare ancora qualcosa per te?\n\n");
  1023. }
  1024.  
  1025.  
  1026. int calcolatrice() { //da finire
  1027.  
  1028. int scelta;
  1029. float num1, num2;
  1030. char s[DIM];
  1031. char si[DIM] = {'s','i','\0'};
  1032. char si1[DIM] = {'S','i','\0'};
  1033.  
  1034. printf("\n\nBenvenuto, questa e' la tua calcolatrice\nper ora posso eseguire solo questi calcoli:\n\n");
  1035. printf("Seleziona con il relativo numero una delle seguenti operazione\n\n");
  1036. printf("1)Addizione\n");
  1037. printf("2)Sottrazione\n");
  1038. printf("3)Divisione\n");
  1039. printf("4)Moltiplicazione\n");
  1040.  
  1041. scelta:
  1042. printf("\nScegli l'operazione che devo eseguire: ");
  1043. scanf("%d", &scelta);
  1044.  
  1045. if((scelta<1) || (scelta>4)) {
  1046. printf("\nScelta non valida\n");
  1047. goto scelta;
  1048. }
  1049.  
  1050. switch(scelta) {
  1051. case 1:
  1052. printf("\n\nInserire il primo numero: ");
  1053. scanf("%f", &num1);
  1054. printf("\nInserire il secondo numero: ");
  1055. scanf("%f", &num2);
  1056. printf("\n\n%f + %f = %f", num1, num2, num1+num2);
  1057. printf("\n\ndevi fare qualche altro calcolo? (rispondere 'si' o 'no')\n\n");
  1058. gets(s);
  1059. if((strcmp(s,si)==0) || (strcmp(s,si1)==0)) {
  1060. goto scelta;
  1061. }
  1062. break;
  1063. case 2:
  1064. printf("\n\nSottrazione funziona\n");
  1065. break;
  1066. case 3:
  1067. printf("\n\nDivisione funziona\n");
  1068. break;
  1069. case 4:
  1070. printf("\n\nMoltiplicazione funziona\n");
  1071. break;
  1072. }
  1073.  
  1074. }
  1075.  
  1076. /*
  1077. int comestai() {
  1078.  
  1079. char t[DIM];
  1080.  
  1081. if((strcmp(t,comestai)==0) || (strcmp(t,comestai1)==0) || (strcmp(t,comestai1_1)==0) || (strcmp(t,comestai1_2)==0) || (strcmp(t,comeva)==0) || (strcmp(t,comeva1)==0) || (strcmp(t,comeva1_1)==0) || (strcmp(t,comeva1:2)==0)) {
  1082.  
  1083. printf("\n\nTutto bene grazie, tu?");
  1084. printf("\n\nAbbastanza bene dai, tu?\n\n");
  1085. printf("\n\n...\n\n");
  1086. printf("\n\n...\n\n");
  1087. printf("\n\n...\n\n");
  1088. printf("\n\n...\n\n");
  1089.  
  1090. }
  1091.  
  1092. }
  1093. */
  1094.  
  1095. int lanciomoneta() {
  1096. int lanciocasuale;
  1097. int contoallarovescia=3;
  1098.  
  1099. printf("\nSto per lanciare una moneta...\n");
  1100.  
  1101. /*while(contoallarovescia != -1) {
  1102. if(contoallarovescia != 0) {
  1103. printf("\n\t%d", contoallarovescia);
  1104. }
  1105. contoallarovescia--;
  1106. sleep(1);
  1107. }
  1108.  
  1109. if(contoallarovescia == -1) {*/
  1110.  
  1111. printf("\n 3");
  1112. sleep(1);
  1113. printf("\n 2");
  1114. sleep(1);
  1115. printf("\n 1");
  1116. sleep(1);
  1117. srand(time(NULL));
  1118. lanciocasuale=rand()%2+1;
  1119. if(lanciocasuale==1) {
  1120. printf("\n\nE' uscita: testa\n\n");
  1121. }
  1122. if(lanciocasuale==2) {
  1123. printf("\n\nE' uscita: croce\n\n");
  1124. }
  1125. //}
  1126. }
  1127.  
  1128.  
  1129. int main() {
  1130.  
  1131. //utili per il programma
  1132.  
  1133. int err, cas, lancio, calc,codfisc;
  1134. float num1, num2;
  1135.  
  1136. //stringhe relative al nome
  1137.  
  1138. char nome1[DIM] = {'C','o','m','e',' ','t','i',' ','c','h','i','a','m','i','?','\0'};
  1139. char nome1_1[DIM] = {'c','o','m','e',' ','t','i',' ','c','h','i','a','m','i','?','\0'};
  1140. char nome1_2[DIM] = {'C','o','m','e',' ','t','i',' ','c','h','i','a','m','i','\0'};
  1141. char nome1_3[DIM] = {'c','o','m','e',' ','t','i',' ','c','h','i','a','m','i','\0'};
  1142.  
  1143. //stringhe su come sta
  1144. /*
  1145. char comestai[DIM] = {'c','o','m','e',' ','s','t','a','i','?','\0'}; //devo ancora farla
  1146. char comestai1[DIM] = {'C','o','m','e',' ','s','t','a','i','?','\0'}; //"
  1147. char comestai1_1[DIM] = {'c','o','m','e',' ','s','t','a','i','\0'}; //"
  1148. char comestai1_2[DIM] = {'C','o','m','e',' ','s','t','a','i','\0'}; //"
  1149. char comeva[DIM] = {'C','o','m','e',' ','v','a','?','\0'}; //"
  1150. char comeva1[DIM] = {'c','o','m','e',' ','v','a','?','\0'}; //"
  1151. char comeva1_1[DIM] = {'c','o','m','e',' ','v','a','\0'}; //"
  1152. char comeva1_2[DIM] = {'C','o','m','e',' ','v','a','\0'}; //"
  1153. */
  1154. //stringa sul nome
  1155.  
  1156. char nome2[DIM] = {'n','o','m','e','?','\0'};
  1157. char nome2_1[DIM] = {'N','o','m','e','?','\0'};
  1158. char nome2_2[DIM] = {'n','o','m','e','\0'};
  1159. char nome2_3[DIM] = {'N','o','m','e','\0'};
  1160.  
  1161. //stringhe relative alla sua identità
  1162.  
  1163. char chisei[DIM] = {'c','h','i',' ', 's','e','i','?','\0'};
  1164. char chisei1[DIM] = {'C','h','i',' ', 's','e','i','?','\0'};
  1165. char chisei1_1[DIM] = {'c','h','i',' ', 's','e','i','\0'};
  1166. char chisei1_2[DIM] = {'C','h','i',' ', 's','e','i','\0'};
  1167.  
  1168. //stringhe su come sta
  1169. char comestai[DIM] = {'c','o','m','e',' ','s','t','a','i','?','\0'};
  1170. char comestai1[DIM] = {'C','o','m','e',' ','s','t','a','i','?','\0'};
  1171. char comestai1_1[DIM] = {'c','o','m','e',' ','s','t','a','i','\0'};
  1172. char comestai1_2[DIM] = {'C','o','m','e',' ','s','t','a','i','\0'};
  1173.  
  1174. char comeva[DIM] = {'c','o','m','e',' ','v','a','?','\0'};
  1175. char comeva1[DIM] = {'C','o','m','e',' ','v','a','?','\0'};
  1176. char comeva1_2[DIM] = {'c','o','m','e',' ','v','a','\0'};
  1177. char comeva1_3[DIM] = {'C','o','m','e',' ','v','a','\0'};
  1178.  
  1179. //stringhe relative alla sua utilità
  1180.  
  1181. char cosapuoifare[DIM] = {'c','o','s','a',' ','p','u','o','i',' ','f','a','r','e','?','\0'};
  1182. char cosapuoifare1[DIM] = {'C','o','s','a',' ','p','u','o','i',' ','f','a','r','e','?','\0'};
  1183. char cosapuoifare1_1[DIM] = {'c','o','s','a',' ','p','u','o','i',' ','f','a','r','e','\0'};
  1184. char cosapuoifare1_2[DIM] = {'C','o','s','a',' ','p','u','o','i',' ','f','a','r','e','\0'};
  1185.  
  1186. char cosasaifare[DIM] = {'c','o','s','a',' ','s','a','i',' ','f','a','r','e','?','\0'};
  1187. char cosasaifare1[DIM] = {'C','o','s','a',' ','s','a','i',' ','f','a','r','e','?','\0'};
  1188. char cosasaifare1_1[DIM] = {'c','o','s','a',' ','s','a','i',' ','f','a','r','e','\0'};
  1189. char cosasaifare1_2[DIM] = {'C','o','s','a',' ','s','a','i',' ','f','a','r','e','\0'};
  1190.  
  1191. char acosaservi[DIM] = {'a',' ', 'c','o','s','a',' ','s','e','r','v','i','?','\0'};
  1192. char acosaservi1[DIM] = {'A',' ', 'c','o','s','a',' ','s','e','r','v','i','?','\0'};
  1193. char acosaservi1_1[DIM] = {'a',' ', 'c','o','s','a',' ','s','e','r','v','i','\0'};
  1194. char acosaservi1_2[DIM] = {'A',' ', 'c','o','s','a',' ','s','e','r','v','i','\0'};
  1195.  
  1196. char cosafai[DIM] = {'c','o','s','a',' ','f','a','i','?','\0'};
  1197. char cosafai1[DIM] = {'C','o','s','a',' ','f','a','i','?','\0'};
  1198. char cosafai1_1[DIM] = {'c','o','s','a',' ','f','a','i','\0'};
  1199. char cosafai1_2[DIM] = {'C','o','s','a',' ','f','a','i','\0'};
  1200.  
  1201. //estrazione di un numero casuale
  1202.  
  1203. char estrazione[DIM] = {'e','s','t','r','a','i',' ','u','n',' ','n','u','m','e','r','o',' ','a',' ','c','a','s','o','\0'};
  1204. char estrazione1[DIM] = {'E','s','t','r','a','i',' ','u','n',' ','n','u','m','e','r','o',' ','a',' ','c','a','s','o','\0'};
  1205. char estrazione1_1[DIM] = {'E','s','t','r','a','i',' ','u','n',' ','n','u','m','e','r','o',' ','c','a','s','u','a','l','e','\0'};
  1206. char estrazione1_2[DIM] = {'e','s','t','r','a','i',' ','u','n',' ','n','u','m','e','r','o',' ','c','a','s','u','a','l','e','\0'};
  1207. char estrazione1_3[DIM] = {'E','s','t','r','a','i',' ','u','n',' ','n','u','m','e','r','o','\0'};
  1208. char estrazione1_4[DIM] = {'e','s','t','r','a','i',' ','u','n',' ','n','u','m','e','r','o','\0'};
  1209.  
  1210. char estrazione1_5[DIM] = {'d','i','m','m','i',' ','u','n',' ','n','u','m','e','r','o',' ','a',' ','c','a','s','o','\0'};
  1211. char estrazione1_6[DIM] = {'D','i','m','m','i',' ','u','n',' ','n','u','m','e','r','o',' ','a',' ','c','a','s','o','\0'};
  1212. char estrazione1_7[DIM] = {'d','i','m','m','i',' ','u','n',' ','n','u','m','e','r','o',' ','c','a','s','u','a','l','e','\0'};
  1213. char estrazione1_8[DIM] = {'D','i','m','m','i',' ','u','n',' ','n','u','m','e','r','o',' ','c','a','s','u','a','l','e','\0'};
  1214. char estrazione1_9[DIM] = {'E','s','t','r','a','z','i','o','n','e',' ','c','a','s','u','a','l','e','\0'};
  1215. char estrazione1_10[DIM] = {'e','s','t','r','a','z','i','o','n','e',' ','c','a','s','u','a','l','e','\0'};
  1216.  
  1217. //stringa lancia una moneta
  1218.  
  1219. char lanciaunamoneta[DIM] = {'L','a','n','c','i','a',' ','u','n','a',' ','m','o','n','e','t','a','\0'};
  1220. char lanciaunamoneta1[DIM] = {'l','a','n','c','i','a',' ','u','n','a',' ','m','o','n','e','t','a','\0'};
  1221. char lanciaunamoneta1_1[DIM] = {'t','i','r','a',' ','u','n','a',' ','m','o','n','e','t','a','\0'};
  1222. char lanciaunamoneta1_2[DIM] = {'t','i','r','a',' ','u','n','a',' ','m','o','n','e','t','a','\0'};
  1223.  
  1224. //stringa calcolatrice
  1225.  
  1226. char calcolatr[DIM] = {'c','a','l','c','o','l','a','t','r','i','c','e','\0'};
  1227. char calcolatr1[DIM] = {'C','a','l','c','o','l','a','t','r','i','c','e','\0'};
  1228.  
  1229. //stringa codice fiscale
  1230.  
  1231. char codic[DIM] = {'c','o','d','i','c','e',' ','f','i','s','c','a','l','e','\0'};
  1232. char codic1[DIM] = {'C','o','d','i','c','e',' ','f','i','s','c','a','l','e','\0'};
  1233.  
  1234. char inventa[DIM] = {'i','n','v','e','n','t','a',' ','u','n','a',' ','i','d','e','n','t','i','t','a','\0'};
  1235. char inventa1[DIM] = {'I','n','v','e','n','t','a',' ','u','n','a',' ','i','d','e','n','t','i','t','a','\0'};
  1236.  
  1237. //stringa prova
  1238.  
  1239. char prova[DIM] = {'p','r','o','v','a','\0'}; //per ora funziona con la calcolatrica
  1240. char prova2[DIM] = {'p','r','o','v','a','2','\0'}; //per ora funziona con il codice fiscale
  1241.  
  1242. //stringhe inserite dall'utente
  1243. char t[DIM];
  1244. char z[DIM];
  1245. char si2[DIM] = {'s','i','\0'};
  1246. char si2_1[DIM] = {'S','i','\0'};
  1247.  
  1248.  
  1249. printf("\nCiao sono ... il tuo assistente vocale, cosa posso fare per te?\n");
  1250. chiedimi:
  1251. gets(t);
  1252.  
  1253. if((strcmp(t,nome1) == 0) || (strcmp(t, nome1_1)==0) || (strcmp(t, nome1_2)==0) || (strcmp(t, nome1_3)==0) || (strcmp(t,nome2) == 0) || (strcmp(t, nome2_1)==0) || (strcmp(t, nome2_2)==0) || (strcmp(t, nome2_3)==0)) {
  1254. printf("\nMi chiamo ...\n\n");
  1255. }
  1256.  
  1257. else {
  1258. if((strcmp(t,chisei)==0) || (strcmp(t,chisei1)==0) || (strcmp(t,chisei1_1)==0) || (strcmp(t,chisei1_2)==0)) {
  1259. printf("\nSono ... il tuo assistente, posso rispondere alle tue domande\ne magari anche aiutarti a risolvere i tuoi problemi,\nchideimi qualcosa!\n\n");
  1260. }
  1261.  
  1262. else {
  1263. if((strcmp(t,cosapuoifare)==0) || (strcmp(t,cosapuoifare1)==0) || (strcmp(t,cosapuoifare1_1)==0) || (strcmp(t,cosapuoifare1_2)==0) || (strcmp(t,acosaservi)==0) || (strcmp(t,acosaservi1)==0) || (strcmp(t,acosaservi1_1)==0) || (strcmp(t,acosaservi1_2)==0) || (strcmp(t,cosafai)==0) || (strcmp(t,cosafai1)==0) || (strcmp(t,cosafai1_1)==0) || (strcmp(t,cosafai1_2)==0) || (strcmp(t,cosasaifare)==0) || (strcmp(t,cosasaifare1)==0) || (strcmp(t,cosasaifare1_1)==0) || (strcmp(t,cosasaifare1_2)==0)) {
  1264. printf("\nPosso aiutarti in qualsiasi modo,\nfacendo tutto quello che mi chiederai.\nPer ora sono sono in grado di:\n\n1) Farti compagnia parlando di qualsiasi cosa;\n2) Raccontarti una barzelletta;\n3) Estrarre un numero a caso;\n4) Impostare un Timer;\n5) Attivare un cronometro;\n6) Fare dei calcoli al posto tuo;\n (per usare questa funzione, scrivere: calcolatrice)\n\n");
  1265. }
  1266.  
  1267. else {
  1268. if((strcmp(t,estrazione)==0) || (strcmp(t,estrazione1)==0) || (strcmp(t,estrazione1_1)==0) || (strcmp(t,estrazione1_2)==0) || (strcmp(t,estrazione1_3)==0) || (strcmp(t,estrazione1_4)==0) || (strcmp(t,estrazione1_5)==0) || (strcmp(t,estrazione1_6)==0) || (strcmp(t,estrazione1_7)==0) || (strcmp(t,estrazione1_8)==0) || (strcmp(t,estrazione1_9)==0) || (strcmp(t,estrazione1_10)==0)) {
  1269. cas=casuale();
  1270. }
  1271. //da risolvere questo problema, mi stampa errore sempre dopo l'estrazione
  1272.  
  1273. }
  1274.  
  1275. }
  1276. }
  1277.  
  1278. if((strcmp(t,lanciaunamoneta)==0) || (strcmp(t,lanciaunamoneta1)==0) || (strcmp(t,lanciaunamoneta1_1)==0) || (strcmp(t,lanciaunamoneta1_2)==0)) {
  1279.  
  1280. lancio=lanciomoneta();
  1281.  
  1282. goto chiedimi;
  1283. }
  1284.  
  1285. if((strcmp(t,calcolatr)==0) || (strcmp(t,calcolatr1)==0)) {
  1286.  
  1287. calc=calcolatrice();
  1288.  
  1289. goto chiedimi;
  1290. }
  1291.  
  1292. if((strcmp(t,codic)==0) || (strcmp(t,codic1)==0) || (strcmp(t,inventa)==0) || (strcmp(t,inventa1)==0)) {
  1293.  
  1294. printf("\n\nVa bene, ecco qua una identità finta con anche il codice fiscale\n\n");
  1295.  
  1296. identita:
  1297. codfisc=codicefiscale();
  1298.  
  1299. printf("\n\nti serve un'altra identita'? (rispondere 'si' o 'no')\n\n");
  1300. gets(z);
  1301. if((strcmp(z,si2)==0) || (strcmp(z,si2_1)==0)) {
  1302. goto identita;
  1303. }
  1304.  
  1305. goto chiedimi;
  1306. }
  1307. //if((strcmp(t,nome1) != 0) || (strcmp(t, nome1_1)!=0) || (strcmp(t, nome1_2)!=0) || (strcmp(t, nome1_3)!=0) || (strcmp(t,nome2)!=0) || (strcmp(t, nome2_1)!=0) || (strcmp(t, nome2_2)!=0) || (strcmp(t, nome2_3)!=0) || (strcmp(t,chisei)!=0) || (strcmp(t,chisei1)!=0) || (strcmp(t,chisei1_1)!=0) || (strcmp(t,chisei1_2)!=0) || (strcmp(t,cosapuoifare)!=0) || (strcmp(t,cosapuoifare1)!=0) || (strcmp(t,cosapuoifare1_1)!=0) || (strcmp(t,cosapuoifare1_2)!=0) || (strcmp(t,acosaservi)!=0) || (strcmp(t,acosaservi1)!=0) || (strcmp(t,acosaservi1_1)!=0) || (strcmp(t,acosaservi1_2)!=0) || (strcmp(t,cosafai)!=0) || (strcmp(t,cosafai1)!=0) || (strcmp(t,cosafai1_1)!=0) || (strcmp(t,cosafai1_2)!=0) || (strcmp(t,cosasaifare)!=0) || (strcmp(t,cosasaifare1)!=0) || (strcmp(t,cosasaifare1_1)!=0) || (strcmp(t,cosasaifare1_2)!=0) || (strcmp(t,estrazione)!=0) || (strcmp(t,estrazione1)!=0) || (strcmp(t,estrazione1_1)!=0) || (strcmp(t,estrazione1_2)!=0) || (strcmp(t,estrazione1_3)!=0) || (strcmp(t,estrazione1_4)!=0) || (strcmp(t,estrazione1_5)!=0) || (strcmp(t,estrazione1_6)!=0) || (strcmp(t,estrazione1_7)!=0) || (strcmp(t,estrazione1_8)!=0) || (strcmp(t,estrazione1_9)!=0) || (strcmp(t,estrazione1_10)!=0)) {
  1308.  
  1309. //err=errore();
  1310. //}
  1311.  
  1312. goto chiedimi;
  1313. return 0;
  1314. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement