2 00:00:00,000 --> 00:00:02,760 >> SPIKA 1: Hebu kuandika mpango huo humshauri mtumiaji kwa majina na 3 00:00:02,760 --> 00:00:04,700 nyumba ya wanafunzi watatu. 4 00:00:04,700 --> 00:00:08,840 Sasa, kuhifadhi majina hayo na nyumba tunaweza kutumia, nini, vigezo sita. 5 00:00:08,840 --> 00:00:12,260 Masharti tatu kwa majina, na mwingine masharti tatu kwa nyumba, 6 00:00:12,260 --> 00:00:16,560 lakini sisi tayari kujua kwamba tunaweza kusafisha kwamba kanuni kwa kutumia arrays badala yake, 7 00:00:16,560 --> 00:00:20,220 kwa mfano safu ya ukubwa 3 kwa ajili ya majina matatu, na safu nyingine ya 8 00:00:20,220 --> 00:00:22,110 ukubwa 3 kwa ajili ya nyumba. 9 00:00:22,110 --> 00:00:25,870 Lakini zinageuka tunaweza safi hii up zaidi bado, na kwa kweli kuweka wale 10 00:00:25,870 --> 00:00:30,520 majina na nyumba pamoja, ili jina mwanafunzi na nyumba yake 11 00:00:30,520 --> 00:00:34,940 ni kwa namna fulani zimegawanywa, hivyo kusema, katika variable moja. 12 00:00:34,940 --> 00:00:39,095 >> Kwa kufanya hivyo, ingawa, sisi haja ya kutangaza mwenyewe data aina yetu, aina yetu wenyewe katika C, 13 00:00:39,095 --> 00:00:42,660 kwamba waandishi wa C alifanya si lazima kufikiri ya miaka iliyopita. 14 00:00:42,660 --> 00:00:45,630 Kwa kufanya hivyo tunaweza kutumia neno la typedef, pamoja na 15 00:00:45,630 --> 00:00:47,200 nyingine keyword struct. 16 00:00:47,200 --> 00:00:48,160 Hebu tuangalie. 17 00:00:48,160 --> 00:00:50,650 Ndani ya structs.h, nimekuwa tayari kujipatia kuanza kwa 18 00:00:50,650 --> 00:00:52,560 ikiwa ni pamoja na maktaba CS50. 19 00:00:52,560 --> 00:00:57,640 Mimi nina ijayo kwenda aina struct typedef, na kisha brace curly. 20 00:00:57,640 --> 00:01:01,370 Ndani ya struct, mimi nina kwenda kwa bayana kwamba mwanafunzi atakuwa na 21 00:01:01,370 --> 00:01:04,960 string kuitwa jina, na mwingine string kuitwa nyumba. 22 00:01:04,960 --> 00:01:08,430 Mimi nina kwenda kisha kufunga braces yangu curly, na bayana kwamba jina la 23 00:01:08,430 --> 00:01:11,420 aina hii mpya data itakuwa mwanafunzi. 24 00:01:11,420 --> 00:01:15,550 Kwa maneno mengine, kupitia syntax hii na mimi alitangaza data mpya aina ya yangu mwenyewe 25 00:01:15,550 --> 00:01:19,910 ambayo haikuwepo wakati uliopita, na ndani ya aina hii data ni data mbili 26 00:01:19,910 --> 00:01:24,270 mashamba au wanachama data, mtu mmoja aitwaye jina, mtu mmoja aitwaye nyumba, wote wawili ambao 27 00:01:24,270 --> 00:01:25,630 ni ya kamba aina. 28 00:01:25,630 --> 00:01:27,690 >> Hebu sasa kutumia aina hii katika mpango halisi. 29 00:01:27,690 --> 00:01:30,210 30 00:01:30,210 --> 00:01:34,090 Katika structs0.c, nimekuwa vile vile kujipatia mwenyewe ilianza tayari kwa baadhi 31 00:01:34,090 --> 00:01:36,999 boilerplate, na mimi nina sasa kwenda kutumia data hii 32 00:01:36,999 --> 00:01:39,100 aina mwanafunzi, kama ifuatavyo. 33 00:01:39,100 --> 00:01:42,450 Mimi kwanza kwenda kutangaza safu ya aina mwanafunzi, mimi itabidi 34 00:01:42,450 --> 00:01:43,920 kuwaita safu wanafunzi - 35 00:01:43,920 --> 00:01:44,630 wingi - 36 00:01:44,630 --> 00:01:49,360 na mimi itabidi bayana kwamba ukubwa wake itakuwa tatu, ambayo, angalia, ni thamani ya 37 00:01:49,360 --> 00:01:50,880 WANAFUNZI mara kwa mara - 38 00:01:50,880 --> 00:01:51,890 katika miji mikuu yote - 39 00:01:51,890 --> 00:01:54,930 kwamba nimepata alitangaza hapa, mapema katika faili. 40 00:01:54,930 --> 00:01:58,280 Hebu sasa iterate juu ya wale watatu wanafunzi, na kuchochea user kwa 41 00:01:58,280 --> 00:02:00,050 majina yao na nyumba. 42 00:02:00,050 --> 00:02:05,422 >> kwa int i kupata 0, i ni chini ya kuliko ile ya mara kwa mara, i + +. 43 00:02:05,422 --> 00:02:08,600 Na sasa ndani ya mwili wa hii kwa ajili kitanzi, mimi nina kwenda magazeti nje kitu 44 00:02:08,600 --> 00:02:11,470 kama jina mwanafunzi. 45 00:02:11,470 --> 00:02:14,890 Mimi kisha kwenda kwa kweli kupata kwamba jina mwanafunzi na kubainisha 46 00:02:14,890 --> 00:02:17,290 wanafunzi mabano i. 47 00:02:17,290 --> 00:02:21,550 Kwa maneno mengine nataka i-th mwanafunzi katika safu kuitwa wanafunzi, lakini sasa 48 00:02:21,550 --> 00:02:25,340 Nataka kupata wakati huo i-th mwanafunzi jina, na kwa kufanya hivyo, mimi naenda kutumia 49 00:02:25,340 --> 00:02:30,160 . operator, ili kupata katika shamba ndani ya maalum ya struct. 50 00:02:30,160 --> 00:02:37,100 Basi, mimi bayana wanafunzi mabano i jina. anapata thamani ya kurudi kwa GetString (). 51 00:02:37,100 --> 00:02:40,310 Wakati huo huo, mimi nina kwenda magazeti nje kitu sawa, akisema mwanafunzi 52 00:02:40,310 --> 00:02:45,410 nyumba, na sasa mimi nina kwenda bayana kwamba i-th shamba wanafunzi nyumba 53 00:02:45,410 --> 00:02:49,480 atakuwa kupata thamani ya kurudi kwa mwingine wito kwa GetString (). 54 00:02:49,480 --> 00:02:52,350 >> Sasa hebu kufanya kitu kwa hawa watatu majina na nyumba ya wanafunzi ', 55 00:02:52,350 --> 00:02:56,230 kitu rahisi kama uchapishaji kila nje katika hukumu. 56 00:02:56,230 --> 00:03:07,580 kwa int i kupata 0, tena i ni chini ya wanafunzi, i + +, printf "% s ni katika% s. 57 00:03:07,580 --> 00:03:12,600 backslash n ", na sasa napenda kuziba katika maadili ya mashamba ya hizo mbili, 58 00:03:12,600 --> 00:03:19,055 wanafunzi mabano i. jina, comma, wanafunzi mabano i. nyumba, karibu 59 00:03:19,055 --> 00:03:21,290 paren, semicolon. 60 00:03:21,290 --> 00:03:23,020 >> Na sasa mimi haja ya kufanya jambo moja zaidi. 61 00:03:23,020 --> 00:03:26,600 Chini ya faili hili, mimi haja ya bure kumbukumbu kwamba zilizotengwa kwa ajili ya 62 00:03:26,600 --> 00:03:30,290 nyuma ya pazia na GetSring (), ambayo bila shaka wito malloc, ili 63 00:03:30,290 --> 00:03:32,500 kutenga kumbukumbu kwa masharti user aina. 64 00:03:32,500 --> 00:03:35,720 Lakini kwa hili ni rahisi. 65 00:03:35,720 --> 00:03:42,610 kwa int i kupata 0, i ni chini ya wanafunzi, i + +, na ndani ya mwili wa 66 00:03:42,610 --> 00:03:48,670 hii kwa kitanzi, mimi nina tu kwenda kutoa bure wanafunzi bracket i jina., 67 00:03:48,670 --> 00:03:52,300 na bure wanafunzi mabano i. nyumba. 68 00:03:52,300 --> 00:03:55,620 >> Sasa, tumekuwa wazi kutumika tatu kwa loops katika mpango huu, wakati kwa kweli mimi 69 00:03:55,620 --> 00:03:58,800 inaweza kuwa tu kutumika moja, lakini hii ni tu kwa ajili ya maandamano, ili 70 00:03:58,800 --> 00:04:02,850 tunaweza kutaja katika tatu tofauti hatua nini hasa sisi ni kufanya. 71 00:04:02,850 --> 00:04:06,120 Sisi ni kwanza kupata jina na nyumba kwa kila mmoja wa wanafunzi, sisi ni kisha 72 00:04:06,120 --> 00:04:08,900 uchapishaji nje jina na nyumba kwa kila mmoja wa wanafunzi tatu, na 73 00:04:08,900 --> 00:04:11,910 kisha tunakwenda bure kumbukumbu kutumiwa na kila mmoja wa wanafunzi. 74 00:04:11,910 --> 00:04:15,310 Lakini hakika tunaweza wameweza kuchanganya hili katika moja kubwa kwa kitanzi. 75 00:04:15,310 --> 00:04:18,650 >> Hebu sasa kuokoa, kukusanya, na kuendesha mpango huu. 76 00:04:18,650 --> 00:04:26,850 kufanya structs 0. / structs 0, mwanafunzi jina, hebu kutoa Daudi, yeye itabidi kuishi 77 00:04:26,850 --> 00:04:31,580 katika Mather House, jina mwanafunzi, hebu kusema Lauren, yeye itabidi kuishi katika Leverett 78 00:04:31,580 --> 00:04:36,590 House, jina mwanafunzi, Rob, yeye itabidi kuishi katika Kirkland House. 79 00:04:36,590 --> 00:04:39,440 Na hakika, David ni katika Mather, Lauren ni katika Leverett, 80 00:04:39,440 --> 00:04:40,810 na Rob ni katika Kirkland. 81 00:04:40,810 --> 00:04:43,425