ﺑﺮﻧﺎﻣﻪﺳﺎزی ﭘﯿﺸﺮﻓﺘﻪ ﺟﺎوا ﻧﯿﻢﺳﺎل اول ٩٣-٩٢ ﻣﺪرس :ﭘﯿﻤﺎن دوداﻧﮕﻪ داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺗﻤﺮﯾﻦ دوم ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ ۴آﺑﺎن ١٣٩٢ .١ﺗﻤﺮﯾﻦ ﺑﻪ ﻫﯿﭻ ﻋﻨﻮان ﺗﻤﺪﯾﺪ ﻧﺨﻮاﻫﺪ ﺷﺪ. .٢ﺑﺎ ﻫﺮﮔﻮﻧﻪ ﺗﻘﻠﺐ ﺑﺮﺧﻮرد ﺟﺪی ﺧﻮاﻫﺪ ﺷﺪ. .٣ﻧﺎم ﮐﻼسﻫﺎ و ﺗﻮاﺑﻊ ﺑﺎﯾﺪ دﻗﯿﻘﺎ ﺑﺎ ﻧﺎم ذﮐﺮﺷﺪه در ﺗﻤﺮﯾﻦ ﯾ ﺑﺎﺷﺪ. .۴در ﺻﻮرت داﺷﺘﻦ ﻫﺮﮔﻮﻧﻪ ﻣﺸ ﻞ ٬ﺳﻮال ﺧﻮد را ﺑﺎ ﺗﮓ ﻣﻨﺎﺳﺐ در P iazzaﻣﻄﺮح ﮐﻨﯿﺪ. ١ ﺳﺆال .١ﻣﺎﺗﺮﯾﺲ ) ٣٠اﻣﺘﯿﺎز( در اﯾﻦ ﺗﻤﺮﯾﻦ ﻣ ﺧﻮاﻫﯿﻢ ﺑﻪ ﮐﻤ دﻫﯿﻢ: ﮐﻼس ﯾ ﻣﺎﺗﺮﯾﺲ ٣در ٣را ﻣﺪلﺳﺎزی ﮐﻨﯿﻢ و ﺗﻮاﺑﻊ ﻣﺨﺘﻠﻔ را روی آن اﻧﺠﺎم public class Matrix ;) public Matrix ( double [ ][ ] elements ﯾ آراﯾﻪ ٣در ٣از ورودی ﻣ ﮔﯿﺮد و ﮐﻼس را ﻣ ﺳﺎزد. ;)( public Matrix ﮐﻼس را ﻣ ﺳﺎزد و ﻫﻤﻪی ﺧﺎﻧﻪﻫﺎی آن را ٠در ﻧﻈﺮ ﻣ ﮔﯿﺮد. ;) public Matrix add( Matrix other ﯾ ﻣﺎﺗﺮﯾﺲ دﯾ ﺮ در ورودی ﻣ ﮔﯿﺮد و آن را ﺑﺎ ﻣﺎﺗﺮﯾﺲ ﻣﻮﺟﻮد ﺟﻤﻊ ﻣ ﮐﻨﺪ ،ﺳﭙﺲ ﺣﺎﺻﻞ را در ﯾ ﺑﺮﻣ ﮔﺮداﻧﺪ. ﻣﺎﺗﺮﯾﺲ ﺟﺪﯾﺪ ;) public Matrix sub( Matrix other ﯾ ﻣﺎﺗﺮﯾﺲ دﯾ ﺮ در ورودی ﻣ ﮔﯿﺮد و آن را از ﻣﺎﺗﺮﯾﺲ ﻣﻮﺟﻮد ﮐﻢ ﻣ ﮐﻨﺪ ،ﺳﭙﺲ ﺣﺎﺻﻞ را در ﯾ ﺑﺮﻣ ﮔﺮداﻧﺪ. ﻣﺎﺗﺮﯾﺲ ﺟﺪﯾﺪ ;) public Matrix elementMult ( Matrix other ﯾ ﻣﺎﺗﺮﯾﺲ دﯾ ﺮ در ورودی ﻣ ﮔﯿﺮد و آن را ﺑﺎ ﻣﺎﺗﺮﯾﺲ ﻣﻮﺟﻮد ﻧﻈﯿﺮ ﺑﻪ ﻧﻈﯿﺮ ﺿﺮب ﻣ ﮐﻨﺪ) ،ﯾﻌﻨ ﻫﺮ دراﯾﻪ ﻣﺎﺗﺮﯾﺲ ﺧﺮوﺟ ﺿﺮب دراﯾﻪﻫﺎی ﻣﻌﺎدﻟﺶ در ﻣﺎﺗﺮﯾﺲ ﻣﻮﺟﻮد و ﻣﺎﺗﺮﯾﺲ ورودی اﺳﺖ( ﺳﭙﺲ ﺣﺎﺻﻞ را در ﯾ ﻣﺎﺗﺮﯾﺲ ﺟﺪﯾﺪ ﺑﺮﻣ ﮔﺮداﻧﺪ. ٢ ;) public Matrix matrixMult ( Matrix other ﯾ ﻣﺎﺗﺮﯾﺲ دﯾ ﺮ در ورودی ﻣ ﮔﯿﺮد و آن را در ﻣﺎﺗﺮﯾﺲ ﻣﻮﺟﻮد ﺿﺮب ﻣﺎﺗﺮﯾﺴ ﻣ ﮐﻨﺪ ،ﺳﭙﺲ ﺣﺎﺻﻞ را در ﯾ ﻣﺎﺗﺮﯾﺲ ﺟﺪﯾﺪ ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public Matrix opposite دراﯾﻪﻫﺎی ﻣﺎﺗﺮﯾﺲ را ﻗﺮﯾﻨﻪ ﻣ ﮐﻨﺪ و آن را در ﯾ ﻣﺎﺗﺮﯾﺲ ﺟﺪﯾﺪ ﺑﺮﻣ ﮔﺮداﻧﺪ) .ﺧﻮد ﻣﺎﺗﺮﯾﺲ را ﻋﻮض ﻧﻤ ﮐﻨﺪ(. ;)( public Matrix transpose ﺗﺮاﻧﻬﺎده ﻣﺎﺗﺮﯾﺲ را در ﯾ ﻣﺎﺗﺮﯾﺲ ﺟﺪﯾﺪ ﺑﺮﻣ ﮔﺮداﻧﺪ) .ﺧﻮد ﻣﺎﺗﺮﯾﺲ را ﻋﻮض ﻧﻤ ﮐﻨﺪ(. ;)( public double determinant دﺗﺮﻣﯿﻨﺎن ﻣﺎﺗﺮﯾﺲ را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public Matrix inverse در ﺻﻮرت وﺟﻮد ﻣﻌﮑﻮس ﻣﺎﺗﺮﯾﺲ را در ﯾ ﻣﺎﺗﺮﯾﺲ ﺟﺪﯾﺪ ﺑﺮﻣ ﮔﺮداﻧﺪ )ﺧﻮد ﻣﺎﺗﺮﯾﺲ را ﻋﻮض ﻧﻤ ﮐﻨﺪ( و اﮔﺮ ﻣﺎﺗﺮﯾﺲ ﻣﻌﮑﻮس ﻧﺪاﺷﺖ )دﺗﺮﻣﯿﻨﺎن آن ٠ﺑﻮد )راﻫﻨﻤﺎﯾﯽ ﺳﻮال را ﺣﺘﻤﺎ ﺑﺨﻮاﻧﯿﺪ!(( nullﺑﺮﮔﺮداﻧﺪ .ﺑﺮای ﻣﻌﮑﻮس ﮐﺮدن ﻣﺎﺗﺮﯾﺲ ﻣﯿﺘﻮاﻧﯿﺪ از ﻟﯿﻨﮏ زﯾﺮ ﮐﻤ ﺑ ﯿﺮﯾﺪ: http://www.wikihow.com/Inverse-a-3X3-Matrix ;)( public String toString ﻣﺎﺗﺮﯾﺲ را در ﺳﻪ ﺳﻄﺮ ﺑﻪ ﺻﻮرت روﺑﺮو در ﯾ رﺷﺘﻪ ﺑﺮﮔﺮداﻧﺪ: ٣ 3.0 2.1 1.0 2.0 1.0 0.0 0.0 2.0 4.0 ﺑﯿﻦ ﻫﺮ دو ﻋﺪد ﯾ ﻓﺎﺻﻠﻪ و در آﺧﺮ ﻫﺮ ﺳﻪ ﺧﻂ ﯾ ﮐﺎراﮐﺘﺮ آﺧﺮ ﺧﻂ ) (\nﺑﺎﺷﺪ) .ﺣﻮاﺳﺘﺎن ﺑﺎﺷﺪ ﮐﻪ آﺧﺮ ﺧﻄﻮط ﻓﺎﺻﻠﻪ اﺿﺎﻓﻪ ﻧﺒﺎﺷﺪ) (.دﻗﺖ اﻋﺸﺎر ﻫﻤﺎﻧ ﺑﺎﺷﺪ ﮐﻪ ﺑﻪ ﺻﻮرت ﭘﯿﺶﻓﺮض در ﺟﺎوا وﺟﻮد دارد(. راﻫﻨﻤﺎﯾﯽ :ﻫﻨﮕﺎم ﮐﺎر ﮐﺮدن ﺑﺎ اﻋﺪاد اﻋﺸﺎری ) floatو ( doubleﺑﺮای ﭼ ﮐﺮدن اﯾﻦ ﮐﻪ ﯾ ﻋﺪد ﺑﺮاﺑﺮ ٠اﺳﺖ ﯾﺎ ﺧﯿﺮ ﺑﻬﺘﺮ اﺳﺖ ﺑﻪ ﺟﺎی اﯾﻦ ﮐﻪ آن را ﺑﺎ ﻋﻤ ﺮ == ﺑﺎ ٠ﻣﻘﺎﯾﺴﻪ ﮐﻨﯿﻢ ﭼ ﮐﻨﯿﻢ ﮐﻪ آﯾﺎ آن ﻋﺪد در ﺑﺎزهای ﻧﺰدﯾ ٠ ﻫﺴﺖ ﯾﺎ ﻧﻪ .ﯾﻌﻨ ﺑﻪ ﺟﺎی: ;double a . . . } … { )if(a == 0 ﺑﻨﻮﯾﺴﯿﻢ: } … { )if(a > -0.000001 && a < 0.000001 ﭼﻮن در ﮐﺎر ﺑﺎ اﯾﻦ ﻣﻘﺎدﯾﺮ ﻣﻤ ﻦ اﺳﺖ دﻗﺖ ﮐﻢ ﺑﺎﺷﺪ و ﻋﺪد ﺷﻤﺎ ﭘﺲ از ﻣﺤﺎﺳﺒﺎت دﻗﯿﻘﺎ ٠ﻧﺸﻮد) .اﯾﻦ ﮐﺎر را ﻣ ﺗﻮان ﺑﺮای ﻫﺮ ﻋﺪد ﻏﯿﺮﺻﻔﺮی ﻫﻢ اﻧﺠﺎم داد(. ۴ ﺳﺆال .٢ﺑﺎزی ﺑﯿﻨﮕﻮ )دﺑﺮﻧﺎ( ) ٣٠اﻣﺘﯿﺎز( ﻣ ﺧﻮاﻫﯿﻢ ﺑﺎزی ﺑﯿﻨﮕﻮ را ﺷﺒﯿﻪ ﺳﺎزی ﮐﻨﯿﻢ ،اﯾﻦ ﺑﺎزی ﺑﻪ اﯾﻦ ﺻﻮرت اﺳﺖ ﮐﻪ ﻫﺮ ﺑﺎزﯾ ﻦ ﭼﻨﺪ ﮐﺎرت ٣در ۵دارد ﮐﻪ روی ﻫﺮ ﺧﺎﻧﻪی ﮐﺎرتﻫﺎ ﯾ از اﻋﺪاد ١ﺗﺎ ٩٠ﻧﻮﺷﺘﻪ ﺷﺪه اﺳﺖ .در ﻫﺮ ﻣﺮﺣﻠﻪ ﺑﻪ ﺻﻮرت رﻧﺪوم ﯾ ﻋﺪد ﺧﻮاﻧﺪه ﻣ ﺷﻮد و ﺑﺎزﯾ ﻨﺎن ﺑﺎﯾﺪ در ﺻﻮرت وﺟﻮد اﯾﻦ ﻋﺪد در ﮐﺎرتﻫﺎی ﺧﻮد آن را ﻋﻼﻣﺖ ﺑﺰﻧﻨﺪ ،اوﻟﯿﻦ ﺑﺎزﯾ ﻨ ﮐﻪ ﯾ ردﯾﻒ ۵ﺗﺎﯾﯽ از ﮐﺎرتﻫﺎﯾﺶ ﭘﺮ ﺷﻮد ﺑﺮﻧﺪه ﺑﺎزی اﺳﺖ .ﮐﻼسﻫﺎی اﯾﻦ ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ: public class Bingo ;) public Bingo ( Player [ ] players ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﯾ آراﯾﻪ از ﺑﺎزﯾ ﻦﻫﺎ ﻣ ﺳﺎزد. ;) public String play(int number ﺗﺎﺑﻊ اﺻﻠ اﺟﺮای ﺑﺎزی اﺳﺖ ﮐﻪ ﻋﺪد ﺧﻮاﻧﺪهﺷﺪه را ﺑﻪ ﻋﻨﻮان ورودی ﻣ ﮔﯿﺮد ﺑﺮای ﻫﻤﻪ ﺑﺎزﯾ ﻨﺎن اﮔﺮ اﯾﻦ ﻋﺪد در ﮐﺎرتﻫﺎﯾﺸﺎن وﺟﻮد داﺷﺖ آن را ﻋﻼﻣﺖ ﻣ زﻧﺪ و در ﺻﻮرﺗ ﮐﻪ ﮐﺴ ﺑﺮﻧﺪه ﺷﻮد ﻧﺎم ﺑﺮﻧﺪه را ﺑﺮﻣ ﮔﺮداﻧﺪ در ﻏﯿﺮ اﯾﻨﺼﻮرت ﯾ رﺷﺘﻪ ﺧﺎﻟ )””( ﺑﺮﻣ ﮔﺮداﻧﺪ) .اﮔﺮ ﭼﻨﺪ ﺑﺎزﯾ ﻦ ﻫﻤﺰﻣﺎن ﺑﺮﻧﺪه ﺷﻮﻧﺪ ﯾ رﺷﺘﻪ ﺷﺎﻣﻞ اﺳﻢ ﻫﻤﻪی آنﻫﺎ را ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﺑﺮﻣ ﮔﺮداﻧﺪ ،ﺑﻪ ﻃﻮر ﻣﺜﺎل: ””Player1 Player2 Player3 ( class Player ;) public Player ( String name , Card[ ] cards ﮐﻼس ﺑﺎزﯾ ﻦ را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم ﺑﺎزﯾ ﻦ و آراﯾﻪای از ﮐﺎرتﻫﺎ ﻣ ﺳﺎزد. ;)( public String getName ﻧﺎم ﺑﺎزﯾ ﻦ را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public Card[ ] getCards ۵ ﮐﺎرتﻫﺎی ﺑﺎزﯾ ﻦ را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public boolean isWinner ﭼ ﻣ ﮐﻨﺪ ﮐﻪ آﯾﺎ ﺑﺎزﯾ ﻦ ﺑﺮﻧﺪه ﺷﺪه اﺳﺖ ﯾﺎ ﻧﻪ؟ ;) public void markNumber (int number ﯾ ﻋﺪد در ورودی ﻣ ﮔﯿﺮد و در ﻫﻤﻪی ﮐﺎرتﻫﺎی ﺑﺎزﯾ ﻦ در ﺻﻮرت وﺟﻮد آن را ﻋﻼﻣﺖ ﻣ زﻧﺪ. class Card ;) public Card(int[ ][ ] numbers ﯾ آراﯾﻪی ٣در (int[٣][۵]) ۵از اﻋﺪاد ﻣ ﮔﯿﺮد و ﮐﺎرت را ﺑﺎ آن ﭘﺮ ﻣ ﮐﻨﺪ. ;) public int getNumber (int row , int column ﻋﺪد درون ﺧﺎﻧﻪی ﻣﺸﺨﺺﺷﺪه در ورودی را ﺑﺮﻣ ﮔﺮداﻧﺪ) .ﺷﻤﺎره ﺳﻄﺮﻫﺎ و ﺳﺘﻮنﻫﺎی ﻫﺮ ﮐﺎرت از ﯾ ﻣ ﺷﻮﻧﺪ( ﺷﺮوع ;) public boolean isMarked (int row , int column اﮔﺮ ﺧﺎﻧﻪی ﻣﺸﺨﺺﺷﺪه در ورودی ﻋﻼﻣﺖزدهﺷﺪه ﺑﺎﺷﺪ trueﺑﺮﻣ ﮔﺮداﻧﺪ) .ﺷﻤﺎره ﺳﻄﺮﻫﺎ و ﺳﺘﻮنﻫﺎی ﻫﺮ ﮐﺎرت از ﯾ ﺷﺮوع ﻣ ﺷﻮﻧﺪ( ;) public void markNumber (int number اﮔﺮ ﻋﺪد دادهﺷﺪه در ورودی در ﮐﺎرت ﺑﺎﺷﺪ آن را ﻋﻼﻣﺖ ﻣ زﻧﺪ .ﯾ ۶ ﻧﻤﻮﻧﻪ ﺗﺎﺑﻊ mainﺑﺮای ﺳﻮال: public static void main( String [ ] args) { int[ ][ ] numbers1 = {{10 , 30, 45, 66, 82} , {3, 25, 11, 63, 78} , {22 , 4, 13, 46, 90}}; Card[ ] cards1 = new Card [1]; cards1 [0] = new Card( numbers1 ); int[ ][ ] numbers2 = {{19 , 53, 61, 32, 6}, {11 , 44, 56, 73, 81} , {78 , 31, 69, 9, 23}}; Card[ ] cards2 = new Card [1]; cards2 [0] = new Card( numbers2 ); Player [ ] players = new Player [2]; players [0] = new Player (" Player1 ", cards1 ); players [1] = new Player (" Player2 ", cards2 ); Bingo bingo = new Bingo( players ); Random random = new Random (); String winners = ""; while ( winners . equals ("")) { int number = random . nextInt (90) + 1; winners = bingo.play( number ); } System .out. println ( winners ); } ٧ ﺳﺆال .٣داﻧﺸ ﺎه ﺷﺮﯾﻒ ) ۴٠اﻣﺘﯿﺎز( در اﯾﻦ ﺗﻤﺮﯾﻦ ﺑﺎﯾﺪ ﯾ داﻧﺸ ﺎه را ﭘﯿﺎدهﺳﺎزی ﮐﻨﯿﻢ .ﺷﺮح ﮐﻼسﻫﺎ و ﺗﻮاﺑﻊ آن ﺑﻪ ﺻﻮرت زﯾﺮ اﺳﺖ: public class University ;)public University ( String name ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم داﻧﺸ ﺎه ﻣ ﺳﺎزد. ;)( public University ﮐﻼس را ﻣ ﺳﺎزد و ﻧﺎم آن را ﺑﻪ ﺻﻮرت ﭘﯿﺶﻓﺮض ” “Sharifﻗﺮار ﻣ دﻫﺪ. ;)( public String getName ﻧﺎم داﻧﺸ ﺎه را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public Department [ ] getDepartments داﻧﺸ ﺪهﻫﺎی داﻧﺸ ﺎه را در ﯾ آراﯾﻪ ﺑﺮﻣ ﮔﺮداﻧﺪ. داﻧﺸﺠﻮﻫﺎی داﻧﺸ ﺎه از در ﯾ آراﯾﻪ ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public Student [ ] getStudents ;)( public EbneSina getEbneSina ﺳﺎﺧﺘﻤﺎن اﺑﻦﺳﯿﻨﺎی داﻧﺸ ﺎه را ﺑﺮﻣ ﮔﺮداﻧﺪ! ٨ public void addDepartment ( Department department ); .داﻧﺸ ﺪه ﻣ ﮔﯿﺮد و آن را ﺑﻪ داﻧﺸ ﺪهﻫﺎی داﻧﺸ ﺎه اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ ﯾ public void addStundent ( Student student ); .داﻧﺸﺠﻮ ﻣ ﮔﯿﺮد و آن را ﺑﻪ داﻧﺸﺠﻮﻫﺎی داﻧﺸ ﺎه اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ ﯾ class Department public Department ( String name); .ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم داﻧﺸ ﺪه ﻣ ﺳﺎزد public String getName (); .ﻧﺎم داﻧﺸ ﺪه را ﺑﺮﻣ ﮔﺮداﻧﺪ public Professor [ ] getProfessors (); .اﺳﺘﺎدﻫﺎی داﻧﺸ ﺪه را ﺑﺮﻣ ﮔﺮداﻧﺪ public Course [ ] getCourses (); .درسﻫﺎی داﻧﺸ ﺪه را ﺑﺮﻣ ﮔﺮداﻧﺪ public Room[ ] getRooms (); ٩ اﺗﺎقﻫﺎی داﻧﺸ ﺪه را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public Professor getManager رﯾﯿﺲ داﻧﺸ ﺪه را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;) public void addProfessor ( Professor professor ﯾ اﺳﺘﺎد ﻣ ﮔﯿﺮد و آن را ﺑﻪ اﺳﺘﺎدﻫﺎی داﻧﺸ ﺪه اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ. ) public boolean addCourse ( Course course , Room room , Professor professor ﯾ درس را ﺑﻪ ﻫﻤﺮاه اﺗﺎق )ﻟﺰوﻣ ﻧﺪارد از اﺗﺎقﻫﺎی ﺧﻮد داﻧﺸ ﺪه ﺑﺎﺷﺪ ،ﻣ ﺗﻮاﻧﺪ از اﺗﺎقﻫﺎی داﻧﺸ ﺪهﻫﺎی دﯾ ﺮ و ﯾﺎ ﺳﺎﺧﺘﻤﺎن اﺑﻦﺳﯿﻨﺎ ﺑﺎﺷﺪ( و اﺳﺘﺎدش )اﺳﺘﺎد ﺣﺘﻤﺎ ﯾ از اﺳﺎﺗﯿﺪ ﺧﻮد داﻧﺸ ﺪه اﺳﺖ( ﻣ ﮔﯿﺮد و آن را ﺑﻪ درسﻫﺎی داﻧﺸ ﺪه اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ .اﮔﺮ اﺗﺎق در ﺳﺎﻋﺖ آن درس ﺧﺎﻟ ﺑﻮد ﺑﺎﯾﺪ درس اﺿﺎﻓﻪ ﺷﻮد و trueﺑﺮﮔﺮداﻧﺪه ﺷﻮد و در ﺻﻮرت ﺗﺪاﺧﻞ داﺷﺘﻦ ﺑﺎ درسﻫﺎی دﯾ ﺮ آن اﺗﺎق درس ﻧﺒﺎﯾﺪ اﺿﺎﻓﻪ ﺷﻮد و falseﺑﺮﮔﺮداﻧﺪه ﺷﻮد) .ﺑﺎ اﺳﺘﺎد در اﯾﻦ ﻗﺴﻤﺖ ﮐﺎری ﻧﺪارﯾﻢ! وﻟ ﺑﺎﯾﺪ در ورودی ﮔﺮﻓﺘﻪ ﺷﻮد .ﻣﺮﺑﻮط ﺑﻪ ﻗﺴﻤﺖ اﻣﺘﯿﺎزی ﺳﻮال ﻣ ﺷﻮد(. ;)public void addRoom (Room room ﯾ اﺗﺎق ﻣ ﮔﯿﺮد و آن را ﺑﻪ اﺗﺎقﻫﺎی داﻧﺸ ﺪه اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ. ;) public void setManager ( Professor manager ﯾ اﺳﺘﺎد ﻣ ﮔﯿﺮد و آن را ﺑﻪ ﻋﻨﻮان رﯾﯿﺲ داﻧﺸ ﺪه ﺗﻌﯿﯿﻦ ﻣ ﮐﻨﺪ) .ﻟﺰوﻣ ﻧﺪارد ﮐﻪ از اﺳﺘﺎدﻫﺎی ﻫﻤﺎن داﻧﺸ ﺪه ﺑﺎﺷﺪ(. class Professor ;)public Professor ( String name ١٠ ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم اﺳﺘﺎد ﻣ ﺳﺎزد. ;)( public String getName ﻧﺎم اﺳﺘﺎد را ﺑﺮﻣ ﮔﺮداﻧﺪ. class Student ;)public Student ( String name , int id ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم داﻧﺸﺠﻮ و ﺷﻤﺎره داﻧﺸﺠﻮﯾﯽ ﻣ ﺳﺎزد. ;)( public String getName ﻧﺎم داﻧﺸﺠﻮ را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)( public int getID ﺷﻤﺎره داﻧﺸﺠﻮﯾﯽ داﻧﺸﺠﻮ را ﺑﺮﻣ ﮔﺮداﻧﺪ. ;) public boolean register ( Course course داﻧﺸﺠﻮ را در درس داده ﺷﺪه ﺛﺒﺖ ﻧﺎم ﻣ ﮐﻨﺪ .اﮔﺮ ﻇﺮﻓﯿﺖ درس ﭘﺮ ﺷﺪه ﺑﺎﺷﺪ falseﺑﺮﻣ ﮔﺮداﻧﺪ. ;) public void withdraw ( Course course داﻧﺸﺠﻮ را از ﻟﯿﺴﺖ درس دادهﺷﺪه ﺣﺪف ﻣ ﮐﻨﺪ. ١١ class Course public Course ( String name , String weekday , int startTime , int finishTime , int capacity ); . ﺳﺎﻋﺖ ﭘﺎﯾﺎن و ﻇﺮﻓﯿﺘﺶ ﻣ ﺳﺎزد، ﺳﺎﻋﺖ ﺷﺮوع، روز ﻫﻔﺘﻪ،درس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم درس public String getName (); .ﻧﺎم درس را ﺑﺮﻣ ﮔﺮداﻧﺪ public String getWeekday (); .روز ﻫﻔﺘﻪ درس را ﺑﺮﻣ ﮔﺮداﻧﺪ public int getStartTime (); .ﺳﺎﻋﺖ ﺷﺮوع درس را ﺑﺮﻣ ﮔﺮداﻧﺪ public int getFinishTime (); .ﺳﺎﻋﺖ ﭘﺎﯾﺎن درس را ﺑﺮﻣ ﮔﺮداﻧﺪ public int getEmptyPositions (); .ﺗﻌﺪاد ﺑﺎﻗ ﻣﺎﻧﺪه از ﻇﺮﻓﯿﺖ درس را ﺑﺮﻣ ﮔﺮداﻧﺪ class Room public Room(int id); ١٢ ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﺷﻤﺎره اﺗﺎق ﻣ ﺳﺎزد. ;)( public int getID ﺷﻤﺎره اﺗﺎق را ﺑﺮﻣ ﮔﺮداﻧﺪ. class EbneSina ;)( public EbneSina ﮐﻼس را ﻣ ﺳﺎزد. ;)( public Room[ ] getRooms اﺗﺎقﻫﺎی ﺳﺎﺧﺘﻤﺎن اﺑﻦﺳﯿﻨﺎ را در ﯾ آراﯾﻪ ﺑﺮﻣ ﮔﺮداﻧﺪ. ;)public void addRoom (Room room ﯾ اﺗﺎق ﻣ ﮔﯿﺮد و آن را ﺑﻪ ﺳﺎﺧﺘﻤﺎن اﺑﻦﺳﯿﻨﺎ اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ. راﻫﻨﻤﺎﯾﯽ :ﺑﺮای ﻧﮕﻪداری داﻧﺸ ﺪهﻫﺎ ،اﺗﺎقﻫﺎ ،درسﻫﺎ و داﻧﺸﺠﻮﻫﺎ از آراﯾﻪ اﺳﺘﻔﺎده ﻧﮑﻨﯿﺪ )از ArrayListﯾﺎ ﮐﻼسﻫﺎی ﻣﺸﺎﺑﻪ اﺳﺘﻔﺎده ﮐﻨﯿﺪ (.ﭼﻮن آنﻫﺎ ﻗﺎﺑﻠﯿﺖ اﺿﺎﻓﻪ ﮐﺮدن ﻋﻀﻮ ﻧﺪارﻧﺪ .ﻓﻘﻂ ﻫﻨﮕﺎم ﺗﻮﻟﯿﺪ ﺧﺮوﺟ ﻣﺘﺪﻫﺎ آنﻫﺎ را ﺑﻪ آراﯾﻪ ﺗﺒﺪﯾﻞ ﮐﻨﯿﺪ) .در Arraylistﺑﺮای اﯾﻦ ﮐﺎر ﻣﺘﺪ )( toArrayوﺟﻮد دارد(. ١٣ ﻗﺴﻤﺖ اﻣﺘﯿﺎزی ) ٢٠اﻣﺘﯿﺎز( .١ﻣﺘﺪ زﯾﺮ را ﺑﻪ ﮐﻼس Departmentاﺿﺎﻓﻪ ﮐﻨﯿﺪ: public void changeDepartment ( Professor professor , Department ) newDepartment ﯾ از اﺳﺘﺎدﻫﺎی آن داﻧﺸ ﺪه را ﺑﻪ ﻫﻤﺮاه ﯾ داﻧﺸ ﺪه دﯾ ﺮ ﻣ ﮔﯿﺮد و آن اﺳﺘﺎد را از اﺳﺘﺎدﻫﺎی داﻧﺸ ﺪه اول ﺣﺬف ﮐﺮده و او را ﺑﻪ اﺳﺘﺎدﻫﺎی داﻧﺸ ﺪه دوم اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ و ﺗﻤﺎم درسﻫﺎﯾﯽ ﮐﻪ آن اﺳﺘﺎد اراﺋﻪ ﻣ داد را ﺣﺬف ﻣ ﮐﻨﺪ) .ﺣﺬف ﮐﺮدن ﯾ درس ﺷﺎﻣﻞ ﺣﺬف ﮐﺮدن آن درس از داﻧﺸ ﺪهای ﮐﻪ در آن ﻗﺮار دارد ﻫﻢ ﻣ ﺷﻮد و ﺑﺎﯾﺪ ﺣﻮاﺳﺘﺎن ﺑﻪ داﻧﺸﺠﻮﻫﺎﯾﯽ ﮐﻪ در ﻟﯿﺴﺖ آن درس ﻫﺴﺘﻨﺪ ﻫﻢ ﺑﺎﺷﺪ(. .٢در ﺗﺎﺑﻊ addCourseدر ﮐﻼس Departmentﺑﺎﯾﺪ اﯾﻦ را ﭼ ﮐﻨﯿﺪ ﮐﻪ آﯾﺎ اﺳﺘﺎد دادهﺷﺪه در ﺳﺎﻋﺖ درس دادهﺷﺪه درس دﯾ ﺮی ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ و در ﺻﻮرت ﺗﺪاﺧﻞ درس را اﺿﺎﻓﻪ ﻧﮑﻨﯿﺪ و falseﺑﺮﮔﺮداﻧﯿﺪ. .٣در ﺗﺎﺑﻊ registerدر ﮐﻼس Studentﺑﺎﯾﺪ ﭼ ﮐﻨﯿﺪ ﮐﻪ آن داﻧﺸﺠﻮ در آن ﺳﺎﻋﺖ درس دﯾ ﺮی ﻧﺪاﺷﺘﻪ ﺑﺎﺷﺪ و در ﺻﻮرت ﺗﺪاﺧﻞ داﻧﺸﺠﻮ را در آن درس ﺛﺒﺖ ﻧﺎم ﻧﮑﻨﯿﺪ و falseﺑﺮﮔﺮداﻧﯿﺪ. ١۴ ﻧﮑﺎت • ﺑﺮای ﺟﻮاب دادن ﺳﻮاﻻت ﻣ ﺗﻮاﻧﯿﺪ ﻫﺮ ﮐﻼس ﯾﺎ ﻣﺘﺪ دﯾ ﺮی ﮐﻪ ﻣ ﺧﻮاﻫﯿﺪ ﻧﻮﺷﺘﻪ و اﺳﺘﻔﺎده ﮐﻨﯿﺪ وﻟ ﮐﻼسﻫﺎ و ﻣﺘﺪﻫﺎﯾﯽ ﮐﻪ در ﺻﻮرت ﺳﻮال آﻣﺪهاﻧﺪ ﺣﺘﻤﺎ ﺑﺎﯾﺪ ﺑﺎ ﻫﻤﺎن ﺳﺎﺧﺘﺎر ﮔﻔﺘﻪﺷﺪه ﭘﯿﺎدهﺳﺎزی ﺷﺪه ﺑﺎﺷﻨﺪ. • در ﻫﺮ ﻓﺎﯾﻞ ﺟﺎوا ﻓﻘﻂ ﯾ ﮐﻼس publicﻣ ﺗﻮاﻧﺪ وﺟﻮد داﺷﺘﻪ ﺑﺎﺷﺪ) .ﮐﻪ ﻫﻢﻧﺎم ﻓﺎﯾﻞ ﺑﺎﯾﺪ ﺑﺎﺷﺪ (.ﺑﺮای اﯾﻦ ﮐﻪ ﭼﻨﺪ ﮐﻼس در ﯾ ﻓﺎﯾﻞ داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﺑﺎﯾﺪ ﻓﻘﻂ ﭘﺸﺖ ﯾ از آنﻫﺎ ﻋﺒﺎرت publicرا ﺑ ﺬارﯾﺪ .در ﺻﻮرت ﺳﻮالﻫﺎ ﮐﻼسﻫﺎﯾﯽ ﮐﻪ ﺑﺎﯾﺪ publicﺑﺎﺷﻨﺪ ﻣﺸﺨﺺ ﺷﺪهاﻧﺪ .ﺷﻤﺎ ﺑﺎﯾﺪ ﻫﻤﻪی ﮐﻼسﻫﺎی ﺧﻮد را در ﯾ ﻓﺎﯾﻞ ﺑﻔﺮﺳﺘﯿﺪ. • ﺑﺮای ﻫﯿﭻﮐﺪام از ﺳﻮالﻫﺎ ﻻزم ﻧﯿﺴﺖ ﺗﺎﺑﻊ mainﻧﻮﺷﺘﻪ ﺷﻮد .ﻓﻘﻂ ﺧﻮد ﮐﻼسﻫﺎ و ﻣﺘﺪﻫﺎی ﻣﺸﺨﺺﺷﺪه ﮐﺎﻓ اﺳﺖ. ١۵
© Copyright 2025 Paperzz