ﺑﺮﻧﺎﻣﻪﺳﺎزی ﭘﯿﺸﺮﻓﺘﻪ ﺟﺎوا
ﻧﯿﻢﺳﺎل اول ٩٣-٩٢
ﻣﺪرس :ﭘﯿﻤﺎن دوداﻧ ﻪ
داﻧﺸ ﺪهی ﻣﻬﻨﺪﺳ ﮐﺎﻣﭙﯿﻮﺗﺮ
ﺗﻤﺮﯾﻦ ﺳﻮم
ﻣﻮﻋﺪ ﺗﺤﻮﯾﻞ ١٨آﺑﺎن ١٣٩٢
.١ﻣﻮﻋﺪ ارﺳﺎل ﺗﻤﺮﯾﻦ ﺳﺎﻋﺖ ٨ﺻﺒﺢ روز ١٨آﺑﺎن اﺳﺖ و ﺑﻪ ﻫﯿﭻ ﻋﻨﻮان ﺗﻤﺪﯾﺪ ﻧﺨﻮاﻫﺪ ﺷﺪ.
.٢ﺑﺎ ﻫﺮﮔﻮﻧﻪ ﺗﻘﻠﺐ ﺑﺮﺧﻮرد ﺟﺪی ﺧﻮاﻫﺪ ﺷﺪ.
.٣ﻧﺎم ﮐﻼسﻫﺎ و ﺗﻮاﺑﻊ ﺑﺎﯾﺪ دﻗﯿﻘﺎ ﺑﺎ ﻧﺎم ذﮐﺮﺷﺪه در ﺗﻤﺮﯾﻦ ﯾ
ﺑﺎﺷﺪ.
.۴ﺗﻤﺮﯾﻦ ﺑﺎﯾﺪ ﺑﻪ ﺻﻮرت ﺣﻀﻮری ﺗﺤﻮﯾﻞ داده ﺷﻮد و اﺳﺘﻔﺎده از ﮐﺎﻣﻨﺖ ،ﻧﺤﻮه ﻧﻮﺷﺘﻦ ﮐﻼس ﻫﺎ و ﺗﻮاﺑﻊ و
ﺳﺎﺧﺘﺎر ﮐﺪ ﻧﻤﺮه ﺧﻮاﻫﺪ داﺷﺖ .ﺑﻨﺎﺑﺮاﯾﻦ ﻧﻤﺮه ﮐﺎﻣﻞ از ﺳﯿﺴﺘﻢ داوری ﺑﻪ ﻣﻌﻨﺎی ﻧﻤﺮه ﮐﺎﻣﻞ ﻧﺒﻮده و ﻓﻘﻂ ﺑﺨﺸ
از ﻧﻤﺮه ﺷﻤﺎ ﺧﻮاﻫﺪ ﺑﻮد.
.۵ﻫﺪف اﯾﻦ ﺗﻤﺮﯾﻦ آﺷﻨﺎﯾ ﺑﺎ وراﺛﺖ و اﺳﺘﻔﺎده ﻣﻨﺎﺳﺐ از ﮐﻼس ﻫﺎ و ﺗﻮاﺑﻊ اﺳﺖ ،ﺑﻨﺎﺑﺮاﯾﻦ رﻋﺎﯾﺖ اﯾﻦ ﻣﻮارد
ﻧﻤﺮه ﺧﻮاﻫﺪ داﺷﺖ.
.۶در ﺻﻮرت داﺷﺘﻦ ﻫﺮﮔﻮﻧﻪ ﻣﺸ ﻞ ٬ﺳﻮال ﺧﻮد را ﺑﺎ ﺗ
١
ﻣﻨﺎﺳﺐ در 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 2026 Paperzz