ﺑﺮﻧﺎﻣﻪﺳﺎزی ﭘﯿﺸﺮﻓﺘﻪ ﺟﺎوا ﻧﯿﻢﺳﺎل اول ٩٣-٩٢ ﻣﺪرس :ﭘﯿﻤﺎن دوداﻧ ﻪ داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ ﺗﻤﺮﯾﻦ ﺳﻮم ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ ١٨آﺑﺎن ١٣٩٢ .١ﻣﻮﻋﺪ ارﺳﺎل ﺗﻤﺮﯾﻦ ﺳﺎﻋﺖ ٨ﺻﺒﺢ روز ١٨آﺑﺎن اﺳﺖ و ﺑﻪ ﻫﯿﭻ ﻋﻨﻮان ﺗﻤﺪﯾﺪ ﻧﺨﻮاﻫﺪ ﺷﺪ. .٢ﺑﺎ ﻫﺮﮔﻮﻧﻪ ﺗﻘﻠﺐ ﺑﺮﺧﻮرد ﺟﺪی ﺧﻮاﻫﺪ ﺷﺪ. .٣ﻧﺎم ﮐﻼسﻫﺎ و ﺗﻮاﺑﻊ ﺑﺎﯾﺪ دﻗﯿﻘﺎ ﺑﺎ ﻧﺎم ذﮐﺮﺷﺪه در ﺗﻤﺮﯾﻦ ﯾ ﺑﺎﺷﺪ. .۴ﺗﻤﺮﯾﻦ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت ﺣﻀﻮری ﺗﺤﻮﯾﻞ داده ﺷﻮد و اﺳﺘﻔﺎده از ﮐﺎﻣﻨﺖ ،ﻧﺤﻮه ﻧﻮﺷﺘﻦ ﮐﻼس ﻫﺎ و ﺗﻮاﺑﻊ و ﺳﺎﺧﺘﺎر ﮐﺪ ﻧﻤﺮه ﺧﻮاﻫﺪ داﺷﺖ .ﺑﻨﺎﺑﺮاﯾﻦ ﻧﻤﺮه ﮐﺎﻣﻞ از ﺳﯿﺴﺘﻢ داوری ﺑﻪ ﻣﻌﻨﺎی ﻧﻤﺮه ﮐﺎﻣﻞ ﻧﺒﻮده و ﻓﻘﻂ ﺑﺨﺸ از ﻧﻤﺮه ﺷﻤﺎ ﺧﻮاﻫﺪ ﺑﻮد. .۵ﻫﺪف اﯾﻦ ﺗﻤﺮﯾﻦ آﺷﻨﺎﯾ ﺑﺎ وراﺛﺖ و اﺳﺘﻔﺎده ﻣﻨﺎﺳﺐ از ﮐﻼس ﻫﺎ و ﺗﻮاﺑﻊ اﺳﺖ ،ﺑﻨﺎﺑﺮاﯾﻦ رﻋﺎﯾﺖ اﯾﻦ ﻣﻮارد ﻧﻤﺮه ﺧﻮاﻫﺪ داﺷﺖ. .۶در ﺻﻮرت داﺷﺘﻦ ﻫﺮﮔﻮﻧﻪ ﻣﺸ ﻞ ٬ﺳﻮال ﺧﻮد را ﺑﺎ ﺗ ١ ﻣﻨﺎﺳﺐ در P iazzaﻣﻄﺮح ﮐﻨﯿﺪ. ﺳﺆال .١ﮐﺘﺎﺑﺨﺎﻧﻪ ) ۴٠ﻧﻤﺮه( ﮐﺘﺎﺑﺨﺎﻧﻪ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ .ﺑﺮای ﭘﯿﺎده ﺳﺎزی ﮐﻼس ﻫﺎ ﺑﺎﯾﺪ از ﻣﻔﻬﻮم وراﺛﺖ اﺳﺘﻔﺎده در اﯾﻦ ﺗﻤﺮﯾﻦ ﺷﻤﺎ ﺑﺎﯾﺪ ﯾ ﮐﻨﯿﺪ. در ﮐﺘﺎﺑﺨﺎﻧﻪ اﺷﺨﺎﺻ از ﻗﺒﯿﻞ ﻣﺘﺼﺪی ﮐﺘﺎﺑﺨﺎﻧﻪ و اﻋﻀﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ وﺟﻮد دارد .در ﮐﺘﺎﺑﺨﺎﻧﻪ ﮐﺘﺎب ﻫﺎی ﻣﺨﺘﻠﻔ از ﻗﺒﯿﻞ ﮐﺘﺎب داﺳﺘﺎن ،ﮐﺘﺎب ﻫﺎی ﻋﻠﻤ ،ﮐﺘﺎب ﻫﺎی ﭘﮋوﻫﺸ ﮐﻪ ﺷﺎﻣﻞ ﭘﺎﯾﺎن ﻧﺎﻣﻪ و ﻣﻘﺎﻟﻪ اﺳﺖ ﺑﻪ اﻋﻀﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ اﻣﺎﻧﺖ داده ﻣ ﺷﻮد. class Library در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ ﭘﯿﺎده ﺳﺎزی ﺷﻮﻧﺪ: ;)public Library ( String name ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم ﮐﺘﺎﺑﺨﺎﻧﻪ ﻣ ﺳﺎزد. ;)public void addBook (Book book ﯾ ﮐﺘﺎب را ﺑﻪ ﻟﯿﺴﺖ ﮐﺘﺎﺑﻬﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ. ﯾ ﮐﺘﺎب را از ﻟﯿﺴﺖ ﮐﺘﺎب ﻫﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ ﺣﺬف ﻣ ﮐﻨﺪ. ;)public void deleteBook (Book book public void addBorreowedBooks (Book borrowedBook , Member member , ;) LibraryDate borrowedDate ﯾ ﮐﺘﺎب را ﺑﻪ ﻟﯿﺴﺖ ﮐﺘﺎﺑﻬﺎی اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ .ﺑﻪ اﯾﻦ ﺗﺎﺑﻊ ﮐﺘﺎب اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه ،ﺷﺨﺼ ﮐﻪ آن را اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ و ﺗﺎرﯾﺦ اﻣﺎﻧﺖ ﮔﺮﻓﺘﻦ ﮐﺘﺎب داده ﻣ ﺷﻮد. ٢ public void deleteBorrowedBook (Book borrowedBook , LibraryDate ;) borrowedBackDate ﯾ ﮐﺘﺎب را از ﻟﯿﺴﺖ ﮐﺘﺎب ﻫﺎی اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه از ﮐﺘﺎﺑﺨﺎﻧﻪ ﺣﺬف ﻣﯿ ﻨﺪ .درواﻗﻊ ﮐﺘﺎب ﺑﺮﮔﺮداﻧﺪه ﻣ ﺷﻮد .ﺑﻪ اﯾﻦ ﺗﺎﺑﻊ ﮐﺘﺎب اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه ،ﺗﺎرﯾﺦ ﭘﺲ دادن ﮐﺘﺎب داده ﻣ ﺷﻮد. ;)( public void getBooks ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻧﺎم ﮐﺘﺎب ﻫﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ ﭼﺎپ ﺷﻮد. ;)( public void getBorrowedBooks ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻧﺎم ﮐﺘﺎب ﻫﺎی اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه از ﮐﺘﺎﺑﺨﺎﻧﻪ ﺑﻪ ﺗﺮﺗﯿﺒ ﮐﻪ از ﮐﺘﺎﺑﺨﺎﻧﻪ اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه اﻧﺪ ﭼﺎپ ﺷﻮد. ;)( public void getAvailableBooks ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻧﺎم ﮐﺘﺎب ﻫﺎی ﻣﻮﺟﻮد در ﮐﺘﺎﺑﺨﺎﻧﻪ ﭼﺎپ ﺷﻮد. ;) public void addLibrarian ( Librarian librarian ﯾ ﻣﺘﺼﺪی ﮐﺘﺎﺑﺨﺎﻧﻪ را ﺑﻪ ﻟﯿﺴﺖ ﻣﺘﺼﺪی ﻫﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ. ;)( public void getLibrarians ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ و ﺷﻤﺎره ﭘﺮﺳﻨﻠ ﻣﺘﺼﺪی ﻫﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ ﺑﻪ ﺗﺮﺗﯿﺒ ﮐﻪ ﺑﻪ اﯾﻦ ﮐﻼس اﺿﺎﻓﻪ ﺷﺪه اﻧﺪ ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﺑﯿﻦ آﻧﻬﺎ ﭼﺎپ ﻣ ﺷﻮد. ٣ ;) public void deleteLibrarian ( Librarian librarian ﯾ ﻣﺘﺼﺪی ﮐﺘﺎﺑﺨﺎﻧﻪ را از ﻟﯿﺴﺖ ﻣﺘﺼﺪی ﻫﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ ﺣﺬف ﻣ ﮐﻨﺪ. ;) public void addMember ( Member member ﯾ ﻧﻔﺮ را ﺑﻪ اﻋﻀﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ. ;)( public void getMembers ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ و ﺷﻤﺎره ﻋﻀﻮﯾﺖ اﻋﻀﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ ﺑﻪ ﺗﺮﺗﯿﺒ ﮐﻪ ﺑﻪ اﯾﻦ ﮐﻼس اﺿﺎﻓﻪ ﺷﺪه اﻧﺪ ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﺑﯿﻦ آﻧﻬﺎ ﭼﺎپ ﻣ ﺷﻮد. ;) public void deleteMember ( Member member ﯾ ﻧﻔﺮ را از اﻋﻀﺎی ﮐﺘﺎﺑﺨﺎﻧﻪ ﺣﺬف ﻣ ﮐﻨﺪ. class Book در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ;) public Book( String name , BookWriter writer ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم ﮐﺘﺎب و ﻧﺎم ﻧﻮﯾﺴﻨﺪه ﻣ ﺳﺎزد. ;)( public void getWriter ۴ ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻧﻮﯾﺴﻨﺪه را ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﭼﺎپ ﻣ ﮐﻨﺪ. ;)( public void getMemberBorrowed ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ و ﺷﻤﺎره ﻋﻀﻮﯾﺖ ﮐﺴ ﮐﻪ ﮐﺘﺎب را اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ اﺳﺖ ﺑﺎ ﯾ ﻣ ﺷﻮد. ﻓﺎﺻﻠﻪ ﭼﺎپ class ScienceBook در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ;) public ScienceBook ( String name , BookWriter writer , String scienceField ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم ﮐﺘﺎب و ﻧﺎم ﻧﻮﯾﺴﻨﺪه و زﻣﯿﻨﻪ ﻋﻠﻤ ﮐﺘﺎب ﻣ ﺳﺎزد. ;)( public void getInfo ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻧﺎم ﮐﺘﺎب و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻧﻮﯾﺴﻨﺪه و زﻣﯿﻨﻪ ﻋﻠﻤ ﮐﺘﺎب ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﺑﯿﻦ آﻧﻬﺎ ﭼﺎپ ﺷﻮد. class StoryBook در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ;) public StoryBook ( String name , BookWriter writer , String style ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم ﮐﺘﺎب و ﻧﺎم ﻧﻮﯾﺴﻨﺪه و ﺳﺒ ﮐﺘﺎب ﻣ ﺳﺎزد. ۵ ;)( public void getInfo ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻧﺎم ﮐﺘﺎب و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻧﻮﯾﺴﻨﺪه و ﺳﺒ ﮐﺘﺎب ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﺑﯿﻦ آﻧﻬﺎ ﭼﺎپ ﺷﻮد. class Researches در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ) public Researches ( String name , BookWriter writer , String universityName ; ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم ﺗﺤﻘﯿﻖ و ﻧﺎم ﻧﻮﯾﺴﻨﺪه و ﻧﺎم داﻧﺸ ﺎﻫ ﮐﻪ ﺗﺤﻘﯿﻖ در آن اﻧﺠﺎم ﺷﺪه اﺳﺖ ﻣ ﺳﺎزد. class Thesis در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: public Thesis ( String name , BookWriter writer , String professor , String ) universityName ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻋﻨﻮان ﭘﺎﯾﺎن ﻧﺎﻣﻪ ،ﻧﻮﯾﺴﻨﺪه ،ﻧﺎم اﺳﺘﺎدراﻫﻨﻤﺎ و ﻧﺎم داﻧﺸ ﺎﻫ ﮐﻪ ﺗﺤﻘﯿﻖ در آن اﻧﺠﺎم ﺷﺪه اﺳﺖ ﻣ ﺳﺎزد. ;)( public void getInfo ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻋﻨﻮان ﭘﺎﯾﺎن ﻧﺎﻣﻪ ،ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻧﻮﯾﺴﻨﺪه ،ﻧﺎم اﺳﺘﺎدراﻫﻨﻤﺎ و ﻧﺎم داﻧﺸ ﺎﻫ ﮐﻪ ﺗﺤﻘﯿﻖ در آن اﻧﺠﺎم ﺷﺪه اﺳﺖ ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﺑﯿﻦ آﻧﻬﺎ ﭼﺎپ ﺷﻮد. ۶ class Article در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: public Article ( String name , BookWriter writer , String universityName , ;)String journal , int year ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻋﻨﻮان ﻣﻘﺎﻟﻪ ،ﻧﻮﯾﺴﻨﺪه ،ﻧﺎم داﻧﺸ ﺎﻫ ﮐﻪ ﺗﺤﻘﯿﻖ در آن اﻧﺠﺎم ﺷﺪه اﺳﺖ ،ﻧﺎم ﻣﺠﻠﻪ ای ﮐﻪ ﻣﻘﺎﻟﻪ در آن ﭼﺎپ ﺷﺪه اﺳﺖ و ﺳﺎل ﭼﺎپ آن در ﻣﺠﻠﻪ ﻣ ﺳﺎزد. ;)( public void getInfo ﺑﺎ ﻓﺮاﺧﻮاﻧ اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻋﻨﻮان ﻣﻘﺎﻟﻪ ،ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻧﻮﯾﺴﻨﺪه ،ﻧﺎم داﻧﺸ ﺎﻫ ﮐﻪ ﺗﺤﻘﯿﻖ در آن اﻧﺠﺎم ﺷﺪه اﺳﺖ ،ﻧﺎم ﻣﺠﻠﻪ ای ﮐﻪ ﻣﻘﺎﻟﻪ در آن ﭼﺎپ ﺷﺪه اﺳﺖ و ﺳﺎل ﭼﺎپ آن در ﻣﺠﻠﻪ ،ﺑﺎ ﯾ ﻓﺎﺻﻠﻪ ﺑﯿﻦ آﻧﻬﺎ ﭼﺎپ ﺷﻮد. class Member در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ;) public Member ( String firstName , String lastName , int memberID ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻋﻀﻮ و ﺷﻤﺎره ﻋﻀﻮﯾﺖ ﻣ ﺳﺎزد. ;)( public void getBorrowedBooks ﻟﯿﺴﺖ ﮐﺘﺎب ﻫﺎی اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪه ﺗﻮﺳﻂ اﯾﻦ ﺷﺨﺺ را ﭼﺎپ ﻣ ﮐﻨﺪ. ;)( public int getPenalty ٧ ﺑﺎﯾﺪ در ﻫﻨ ﺎم اﻣﺎﻧﺖ ﮔﺮﻓﺘﻦ ﯾ ﮐﺘﺎب ﺗﺎرﯾﺦ اﻣﺎﻧﺖ ﮔﺮﻓﺘﻪ ﺷﺪن آن ﮐﺘﺎب ذﺧﯿﺮه ﺷﻮد .ﻫﺮ ﮐﺘﺎﺑ ﺑﻪ ﻣﺪت ٧روز اﻣﺎﻧﺖ داده ﻣ ﺷﻮد .اﮔﺮ ﺷﺨﺼ ﭘﺲ از ﭘﺎﯾﺎن ﻣﻬﻠﺖ ﺗﻌﯿﯿﻦ ﺷﺪه ﺑﻪ ﮐﺘﺎﺑﺨﺎﻧﻪ ﺑﺎزﮔﺮداﻧﺪ ﺑﺎﯾﺪ ﺑﻪ ازای ﻫﺮ روز ۵٠٠ ﺗﻮﻣﺎن ﺑﻪ ﮐﺘﺎﺑﺨﺎﻧﻪ ﺟﺮﯾﻤﻪ ﺑﺪﻫﺪ .در اﯾﻦ ﺗﺎﺑﻊ ﺑﺎﯾﺪ ﻣﻘﺪار ﺟﺮﯾﻤﻪ ﺑﺎزﮔﺮداﻧﺪه ﺷﻮد .ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﻣﻤ ﻦ اﺳﺖ ﭼﻨﺪ ﮐﺘﺎب را ﭘﺲ از ﻣﻬﻠﺖ ﺗﺤﻮﯾﻞ دﻫﺪ و ﺑﺎﯾﺪ ﻣﺠﻤﻮع ﺟﺮﯾﻤﻪ ﻫﺎ ﺑﺮﮔﺮداﻧﺪه ﺷﻮد. class Librarian در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ;) public Librarian ( String firstName , String lastName , int librarianID ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻋﻀﻮ و ﺷﻤﺎره ﮐﺎرﻣﻨﺪی ﻣ ﺳﺎزد. class BookWriter در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ;) public BookWriter ( String firstName , String lastName ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ ﻧﺎم و ﻧﺎم ﺧﺎﻧﻮادﮔ ﻋﻀﻮ ﻣ ﺳﺎزد. ;)( public void getWrittenBooks ﻧﺎم ﮐﺘﺎب ﻫﺎی ﻧﻮﺷﺘﻪ ﺷﺪه ﺗﻮﺳﻂ اﯾﻦ ﻧﻮﯾﺴﻨﺪه را ﭼﺎپ ﻣ ﮐﻨﺪ. ;)public void addWrittenBooks (Book book ﯾ ﮐﺘﺎب را ﺑﻪ ﻟﯿﺴﺖ ﮐﺘﺎب ﻫﺎی ﻧﻮﺷﺘﻪ ﺷﺪه ﺗﻮﺳﻂ اﯾﻦ ﻧﻮﯾﺴﻨﺪه اﺿﺎﻓﻪ ﻣ ﮐﻨﺪ. ٨ class LibraryDate از اﯾﻦ ﮐﻼس ﺑﺮای وارد ﮐﺮدن ﺗﺎرﯾﺦ ﮔﺮﻓﺘﻦ ﮐﺘﺎب ،ﻣﻬﻠﺖ ﺗﺤﻮﯾﻞ ﮐﺘﺎب ،ﻣﺤﺎﺳﺒﻪ ﺟﺮﯾﻤﻪ ﺑﺮﺣﺴﺐ دﯾﺮﮐﺮد ﺗﺎرﯾﺦ ﺑﺎزﭘﺲ دادن ﮐﺘﺎب اﺳﺘﻔﺎده ﻣ ﺷﻮد. در اﯾﻦ ﮐﻼس ﺑﺎﯾﺪ ﺗﻮاﺑﻊ زﯾﺮ را ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ: ;)public LibraryDate (int day , int month , int year ﮐﻼس را ﺑﺎ ﮔﺮﻓﺘﻦ روز و ﻣﺎه و ﺳﺎل ﻣ ﺳﺎزد. ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺑﺎﯾﺪ ﻫﻤﻪ ﻣﺎه ﻫﺎ را ٣٠روزه و درﻧﺘﯿﺠﻪ ﺳﺎل ﻫﺎ را ٣۶٠روزه درﻧﻈﺮ ﺑ ﯿﺮﯾﺪ. از اﯾﻦ ﮐﻼس ﺑﺮای وارد ﮐﺮدن ﺗﺎرﯾﺦ ﮔﺮﻓﺘﻦ ﮐﺘﺎب ،ﻣﻬﻠﺖ ﺗﺤﻮﯾﻞ ﮐﺘﺎب ،ﻣﺤﺎﺳﺒﻪ ﺟﺮﯾﻤﻪ اﺳﺘﻔﺎده ﻣ ﺷﻮد. ﻧ ﺎت ﻣﻮرد ﺗﻮﺟﻪ: •وﻗﺘ ﮐﺘﺎﺑ اﺿﺎﻓﻪ ﻣ ﺷﻮد ﺣﺘﻤﺎ ﺑﺎﯾﺪ از ﻧﻮع Thesis ، Article ، StoryBook ، ScienceBookﺑﺎﺷﺪ .درواﻗﻊ در زﻣﺎن اﺿﺎﻓﻪ ﺷﺪن ﺑﺎﯾﺪ ﻧﻮع آن ﻣﺸﺨﺺ ﺑﺎﺷﺪ. • ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ اﯾﻦ ﺳﻮال ﺑﺮای آﺷﻨﺎﯾ ﺑﺎ ﻣﻔﻬﻮم وراﺛﺖ ﺑﻮده و ﻧﻤﺮه ﮐﺎﻣﻞ از ﺟﺎج ﮔﺮﻓﺘﻦ ﺑﻪ ﻣﻌﻨ ﻧﻤﺮه ﮐﺎﻣﻞ ﻧﯿﺴﺖ و ﺑﺨﺶ زﯾﺎدی از ﻧﻤﺮه در ﺗﺤﻮﯾﻞ ﺣﻀﻮری ﺑﺮﺣﺴﺐ ﻧﺤﻮه اﺳﺘﻔﺎده ﻣﻨﺎﺳﺐ از وراﺛﺖ داده ﻣ ﺷﻮد. • ﺑﺎﯾﺪ ﺗﻮﺟﻪ ﮐﻨﯿﺪ ﮐﻪ ﺑﺮای ﭘﯿﺎده ﺳﺎزی ﮐﻼس ﻫﺎی ﮔﻔﺘﻪ ﺷﺪه ﺑﺎﯾﺪ از وراﺛﺖ اﺳﺘﻔﺎده ﮐﻨﯿﺪ و ﻣﻤ ﻦ اﺳﺖ ﻧﯿﺎز داﺷﺘﻪ ﺑﺎﺷﯿﺪ ﮐﻪ ﮐﻼس ﻫﺎی ﺟﺪﯾﺪی ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ. • در ﮐﻼس ﻫﺎی ﻣﻮﺟﻮد ﻧﯿﺰ ﻣﻤ ﻦ اﺳﺖ ﺗﻮاﺑﻊ دﯾ ﺮی ﻧﯿﺎز داﺷﺘﻪ ﺑﺎﺷﯿﺪ. • ﺗﻮاﺑﻊ و ﮐﻼس ﻫﺎی ﮔﻔﺘﻪ ﺷﺪه ﺣﺘﻤﺎ ﺑﺎﯾﺪ ﭘﯿﺎده ﺳﺎزی ﺷﻮﻧﺪ. • ﮐﻼس ﻫﺎی ﻧﻮﺷﺘﻪ ﺷﺪه ﺑﺎﯾﺪ ﻫﻤ در ﯾ ﻓﺎﯾﻞ ﺑﺎﺷﻨﺪ و ﻓﻘﻂ ﯾ ﮐﻼس publicﻣ ﺗﻮاﻧﯿﺪ داﺷﺘﻪ ﺑﺎﺷﯿﺪ)ﮐﻪ ﻫﻢ ﻧﺎم ﻓﺎﯾﻞ ﺑﺎﯾﺪ ﺑﺎﺷﺪ( .ﺑﻘﯿﻪ ﮐﻼس ﻫﺎ ﺑﺎﯾﺪ privateﺑﺎﺷﻨﺪ ).ﮐﻼس Libraryﺑﺎﯾﺪ publicﺑﻮده و ﺑﻘﯿﻪ ﮐﻼس ﻫﺎ privateﺑﺎﺷﻨﺪ( . ٩ ﺳﺆال .٢ﺑﺎزی ۶٠) Connect Fourﻧﻤﺮه( در اﯾﻦ ﺗﻤﺮﯾﻦ از ﺷﻤﺎ ﺧﻮاﺳﺘﻪ ﺷﺪه اﺳﺖ ﮐﻪ ﻣﻨﻄﻖ ﺑﺎزی Connect Fourرا ﭘﯿﺎده ﺳﺎزی ﮐﻨﯿﺪ. اﯾﻦ ﺑﺎزی ،ﯾ ﺑﺎزی دو ﻧﻔﺮه اﺳﺖ .ﯾ از ﺑﺎزﯾ ﻨﺎن دارای ﻣﻬﺮه ﻫﺎی ﻗﺮﻣﺰ و دﯾ ﺮی دارای ﻣﻬﺮه ﻫﺎی ﺳﯿﺎه اﺳﺖ. ﻫﺮ ﮐﺲ ﮐﻪ ﺑﺘﻮاﻧﺪ ﺣﺪاﻗﻞ ﭼﻬﺎر ﻣﻬﺮه اش را در ﯾ ﺳﻄﺮ ﯾﺎ در ﯾ ﺳﺘﻮن ﯾﺎ در ﯾ ﻗﻄﺮ ﮐﻨﺎر ﻫﻢ ﻗﺮار دﻫﺪ ﺑﺮﻧﺪه ی ﺑﺎزی اﺳﺖ و ﺑﺎزی ﺑﻪ ﭘﺎﯾﺎن ﻣ رﺳﺪ. در اﯾﻦ ﺑﺎزی ﻣﻬﺮه ﻫﺎ از ﺑﺎﻻ داﺧﻞ Boardﺑﺎزی اﻧﺪاﺧﺘﻪ ﻣ ﺷﻮﻧﺪ .در واﻗﻊ ﻣﻬﺮه ﻫﺎ روی ﻫﻢ ﻗﺮار ﻣ ﮔﯿﺮﻧﺪ .در ﺻﻮرت ﻧﯿﺎز ﻣ ﺗﻮاﻧﯿﺪ ﺑﻪ ﻟﯿﻨ زﯾﺮ ﻣﺮاﺟﻌﻪ ﮐﻨﯿﺪ. http://en.wikipedia.org/wiki/Connect_four در اﯾﻦ ﺗﻤﺮﯾﻦ ﺑﺮای ﺳﺎدﮔ ﮐﺎر ﻗﺴﻤﺖ ﮔﺮاﻓﯿ ﺳﺎزی ﮐﻼس ﻫﺎ و ﺗﻮاﺑﻊ ﺗﻮﺿﯿﺢ داده ﻣ ﺷﻮد. ﺑﺮﻧﺎﻣﻪ در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار داده ﻣ ﺷﻮد .در اداﻣﻪ ﻧﺤﻮه ی ﭘﯿﺎده { class Game )public Game(int row , int col ﺳﺎزﻧﺪه ی ﮐﻼس Gameاﺳﺖ ﮐﻪ ﯾ Boardﺑﺎ ﺗﻌﺪاد ﺳﻄﺮﻫﺎی rowو ﺗﻌﺪاد ﺳﺘﻮن ﻫﺎی colﻣ ﺳﺎزد. )( public char getTurn اﯾﻦ ﻣﺘﺪ ﻣﺸﺨﺺ ﮐﻨﻨﺪه ی ﻧﻮﺑﺖ ﺑﺎزﯾ ﻦ اﺳﺖ .اﮔﺮ ﻧﻮﺑﺖ ﻗﺮﻣﺰ ﺑﻮد ’ ‘rو اﮔﺮ ﻧﻮﺑﺖ ﺳﯿﺎه ﺑﻮد ’ ‘bﺑﺮ ﻣ ﮔﺮداﻧﺪ. ١٠ )public boolean drop(int col اﯾﻦ ﻣﺘﺪ ﺗﻼش ﻣ ﮐﻨﺪ ﮐﻪ ﯾ ﻣﻬﺮه را در ﺳﺘﻮن ﺷﻤﺎره colﺑﯿﻨﺪازد .اﮔﺮ آن ﺳﺘﻮن ﭘﺮ ﺑﻮد Falseو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت Trueﺑﺮ ﻣ ﮔﺮداﻧﺪ و ﻣﻬﺮه را در آن ﺳﺘﻮن ﻣ اﻧﺪازد. )( public Board getBoard اﯾﻦ ﻣﺘﺪ Boardﺑﺎزی را ﺑﺮ ﻣ ﮔﺮداﻧﺪ. )public char checkWinner (int col اﯾﻦ ﻣﺘﺪ ﭼ ﻣ ﮐﻨﺪ ﮐﻪ آﯾﺎ ﭘﺲ از ﮔﺬاﺷﺘﻪ ﺷﺪن ﻣﻬﺮه ای در ﺳﺘﻮن ﺷﻤﺎره colﮐﺴ ﺑﺮﻧﺪه ﺷﺪه اﺳﺖ ﯾﺎ ﻧﻪ .اﮔﺮ ﻗﺮﻣﺰ ﺑﺮﻧﺪه ﺷﺪه ﺑﻮد ’ ‘rو اﮔﺮ ﺳﯿﺎه ﺑﺮﻧﺪه ﺷﺪه ﺑﻮد ’ ‘bو اﮔﺮ ﺗﻤﺎم ﺧﺎﻧﻪ ﻫﺎی ﺟﺪول ﭘﺮ ﺷﺪه ﺑﻮدﻧﺪ و ﮐﺴ ﺑﺮﻧﺪه ﻧﺸﺪه ﺑﻮد ’ ‘nو در ﻏﯿﺮ اﯾﻦ ﺻﻮرت ’ ‘uﺑﺮ ﻣ ﮔﺮداﻧﺪ. )( public void changeTurn اﯾﻦ ﻣﺘﺪ ﻧﻮﺑﺖ را ﺑﻪ ﻧﻔﺮ ﺑﻌﺪی ﻣ دﻫﺪ. } { Class Board )public Board (int row , int col ﺳﺎزﻧﺪه ی ﮐﻼس Boardاﺳﺖ ﮐﻪ ﯾ Cellاﺳﺖ. Boardﺑﺎ rowﺳﻄﺮ و colﺳﺘﻮن ﻣ ﺳﺎزد .ﻫﺮ ﺧﺎﻧﻪ ی Boardﯾ )public void setCell (int row , int col , char type اﯾﻦ ﻣﺘﺪ در ﺧﺎﻧﻪ ای ﮐﻪ در ﺳﻄﺮ rowو ﺳﺘﻮن colﻗﺮار دارد ﻣﻬﺮه ای را ﮐﻪ ﺑﺎ ﮐﺎراﮐﺘﺮ typeﻣﺸﺨﺺ ﺷﺪه اﺳﺖ، ﻗﺮار ﻣ دﻫﺪ. ١١ )public Cell getCell (int row , int col ﺧﺎﻧﻪ ای ﮐﻪ در ﺳﻄﺮ rowو ﺳﺘﻮن colوﺟﻮد دارد را ﺑﺮ ﻣ ﮔﺮداﻧﺪ. )public int getHeight (int col اﯾﻦ ﻣﺘﺪ ﺗﻌﺪاد ﺧﺎﻧﻪ ﻫﺎی ﺧﺎﻟ در ﺳﺘﻮن ﺷﻤﺎره colرا ﺑﺮ ﻣ ﮔﺮداﻧﺪ. )( public String toString اﯾﻦ ﻣﺘﺪ Boardرا در ﻗﺎﻟﺐ ﯾ رﺷﺘﻪ ﻧﻤﺎﯾﺶ ﻣ دﻫﺪ ﺑﻪ اﯾﻦ ﺗﺮﺗﯿﺐ ﮐﻪ ﻫﺮ ﺧﺎﻧﻪ را ﺑﺎ ﯾ ﮐﺎراﮐﺘﺮ ﻧﺸﺎن ﻣ دﻫﺪ. ﻫﺮ ﺳﻄﺮ را در ﯾ ﺧﻂ ﻧﺸﺎن ﻣ دﻫﺪ و ﺑﯿﻦ ﻫﺮ دو ﮐﺎراﮐﺘﺮ در ﯾ ﺳﻄﺮ ﯾ spaceوﺟﻮد دارد .ﺧﺎﻧﻪ ﻫﺎی ﺧﺎﻟ را ﺑﺎ ’ ‘eو ﺧﺎﻧﻪ ﻫﺎﯾ ﮐﻪ در آن ﻫﺎ ﻣﻬﺮه ﻫﺎی ﻗﺮﻣﺰ وﺟﻮد دارﻧﺪ ﺑﺎ ’ ‘rو ﺧﺎﻧﻪ ﻫﺎﯾ ﮐﻪ در آن ﻫﺎ ﻣﻬﺮه ﻫﺎی ﺳﯿﺎه ﻗﺮار دارﻧﺪ ﺑﺎ ’ ‘bﻧﻤﺎﯾﺶ ﻣ دﻫﺪ. ﻣﺜﺎل : eeeee erbre rbrbr rbrbr brbrb } {Class Cell ﻫﺮ Cellﯾ typeدارد ﮐﻪ ﯾ ﮐﺎراﮐﺘﺮ اﺳﺖ و در اول ﮐﺎر ﺑﺎﯾﺪ ﺑﺎ ’ ‘eﻣﻘﺪار دﻫ ﺷﻮد .اﮔﺮ ﻣﻬﺮه ی ﻗﺮﻣﺰ در آن Cellﻗﺮار ﮔﺮﻓﺖ typeآن ﺑﺎﯾﺪ ﺑﺎ ’ ‘rﻣﻘﺪار دﻫ ﺷﻮد و ﺑﺮای ﻣﻬﺮه ی ﺳﯿﺎه typeآن ﺑﺎ ’ ‘bﻣﻘﺪار دﻫ ﻣ ﺷﻮد. )public void setType (char type اﯾﻦ ﻣﺘﺪ typeاﯾﻦ Cellرا ﺗﻐﯿﯿﺮ ﻣ دﻫﺪ. ١٢ )( public char getType اﯾﻦ ﻣﺘﺪ typeﯾ Cellرا ﺑﺮ ﻣ ﮔﺮداﻧﺪ. ﮐﻼس ﻫﺎی ﻗﺴﻤﺖ ﮔﺮاﻓﯿ ﺑﺮﻧﺎﻣﻪ را ﮐﻪ در اﺧﺘﯿﺎر ﺷﻤﺎ ﻗﺮار داده ﻣ ﺷﻮد ،در ﮐﻨﺎر اﯾﻦ ﮐﻼس ﻫﺎ ﻗﺮار دﻫﯿﺪ و ﺑﺮﻧﺎﻣﻪ را از ﮐﻼس Mainاﺟﺮا ﮐﻨﯿﺪ. ﺑﺪﯾﻬ اﺳﺖ ﮐﻪ اﯾﻦ ﺗﻤﺮﯾﻦ اﻣ ﺎن ﺗﺼﺤﯿﺢ آﻧﻼﯾﻦ ﻧﺪارد .ﺗﻤﺮﯾﻦ را ازﻃﺮﯾﻖ ﺳﺎﻣﺎﻧﻪی ﺷﺮﯾﻒ ﺟﺎج ﺛﺒﺖ ﺧﻮاﻫﯿﺪ ﮐﺮد وﻟ ﺑﺮرﺳ در زﻣﺎن ﺗﺤﻮﯾﻞ ﺣﻀﻮری ﻣﺸﺨﺺ ﺧﻮاﻫﺪ ﺷﺪ ﻣ ﺗﻮاﻧﯿﺪ ﺧﻮد ﺗﻮاﺑﻊ ،ﮐﻼس ﻫﺎ و ﻣﺘﻐﯿﺮﻫﺎﯾ ﺗﻌﺮﯾﻒ ﮐﻨﯿﺪ اﻣﺎ ﺑﺎﯾﺪ privateﺑﺎﺷﻨﺪ. ١٣
© Copyright 2025 Paperzz