تمریه سری ديم درس بروامه وًیسی شئگرا مًعد ارسال :شىبه 41آبان 4931 تٌْام حاتوی هحوذ چگیٌی توشیي سشی اٍل تشًاهِ ساصی ضیءگشا هْلت تحَیل :شىبه 41آبان 4931 وکات کلی دس ایي توشیي ضوا تشًاهِی اجشایی ًویًَیسیذ ٍ کاسی کِ اًجام هیدّیذ ،پیادُساصی چٌذ کالس است. هطخػات کلی سَالّای ایي توشیي تِ ایي ضشح است: توشیي وام کالس وام فایل ومره توشیي 1 MiniExcel MiniExcel.java 20 توشیي 2 Polynomial Polynomial.java 35 توشیي 3 FourInARow FourInARow.java 35 توشیي 4 Management Management.java 30 ّ ذف ایي توشیي ،آصهایص دسک ضوا اص هفَْم ضئگشایی ٍ تکاسگیشی ایي هفَْم دس ػول است .پس اص ایي توشیي ضوا تایذ تشاحتی تتَاًیذ هذلّای سادُ جْاى ٍاقؼی سا تػَست ضئگشایی هذل کٌیذ. تشای اسسال توشیي تِ آدسس صیش هشاجؼِ کٌیذ: http://arsh.co.ir/java901/ تَجِ ًواییذ کِ تایذ ّش کذام اص فایلّای .javaسا تغَس جذاگاًِ اسسال ًواییذ$ .تغَس دقیقتشً ،ثایذ تواهی آًْا سا zipکٌیذ!# هَػذ تحَیل ساػت $ 11:59ضة #سٍص ضٌثِ 14آتاى تَدُ ٍ تِ ّیچ ػٌَاى توذیذ ًخَاّذ ضذ. ً "20وشُ ،اص 24ساػت تا 25ساػت ،تِ اصای ّش 2دقیقِ هَجة کسش ضذى ً "1وشُی دیگش ٍ تیي 25ساػت تا 48ساػت تاػث کسش ضذى ً "50وشُ هیضَد .تأخیش تیطتش اص 48ساػت قاتل قثَل ًیست. قغغ تَدى ایٌتشًت خَاتگاُ ،کٌذی پایگاُ ایٌتشًتی داًطکذُ ،توام ضذى کاست ایٌتشًت ٍ … ّیچکذام دلیل هَجْی تشای تأخیش ًیستٌذ .تٌاتشایي پیطٌْاد هیضَد جَابّای خَد سا دس داوشکده اسسال کٌیذ. اص آًجایی کِ هوکي است تػحیح تِ ضکل خَدکاس اًجام ضَد دس ًتیجِ ػذم سػایت ًکات ظشیف هاًٌذ ًام هتذّا ٍ ...هَجة اختالل دس سًٍذ تػحیح ً ٍ$وشُ #خَاّذ ضذ. توشیي سشی دٍم تشًاهِ ساصی ضیءگشا تأخیش تا 1ساػت ،تِ اصای ّش 3دقیقِ هَجة کسش ضذى ً "1وشُ ،اص 1ساػت تا 24ساػت هَجة کسش ضذى 1 تالش تشای استفادُ اص هٌاتغ سیستن هاًٌذ کاست غذا ٍ پشیٌتش ٍ ًَضتي تِ فایل ٍ ...هٌجش تِ دسیافت ًوشُی غفش دس ایي توشیي هیضَد. کالسّا ٍ هتذّای گفتِ ضذُ دس آىّا حذاقلّای الصم ّستٌذ .یؼٌی ضوا هیتَاًیذ تشای ساحتتش ضذى پیادُ- ساصیتاى یا ضئگشاتش ضذى کذتاى تِ ایي کالسّا هتذّای دیگشی اضافِ کٌیذ یا تِ کل توشیي کالسّای دیگشی اضافِ کٌیذٍ .لی دقت داضتِ تاضیذ کِ کالسّای گفتِ ضذُ ٍ هتذّای آًْا تایذ تِ ّویي ضکل، هَجَد تاضٌذ .تَجِ کٌیذ کِ توام هتغیشّای داخلی ضوا دس سَال ّای 4 ٍ 2تایذ Privateتاضٌذ. سَاالت خَد سا تا فشستادى ایویل تِ آدسس java-91-1 @gmail.comهغشح کٌیذ. ً حَُ تحَیل حضَسی توشیي هتؼاقثاً اػالم خَاّذ ضذ. تمریه MiniExcel :4 دس ایي تشًاهِ قػذ داسین تشًاهِی غفحِ گستشدُی سادُای تٌَیسین .دس ایي تشًاهِ یک جذٍل هاًٌذ Excelداسین کِ دس ّش یک اص خاًِّای آى هی تَاًذ یک ػذد یا یک فشهَل تاضذ .تواهی اػذاد اص ًَع ّ intستٌذّ .ش خاًِ یک فیلذٍ$یژگی #تِ ًام containsداسد کِ فشهت آى تِ ایي ضکل است: .1اگش دس خاًِ فشهَل تَد ٍ هثالً قشاس تَد خاًِی ) (0,0تا خاًِی ) (1,0جوغ ضَد فیلذ containsتِ غَست صیش است: =0 0+1 0 .2اگش دس خاًِ ػذد تَد تِ غَست صیش است: =56 دس فشهَلّا ّویطِ تٌْا دٍ خاًِ تا ّن & یا – یا %یا /هیضًَذ .ضوا تایذ دس ایي سَال دٍ کالس تِ ًامّای Block ٍ MiniExcelپیادُساصی کٌیذ کِ کالس Publicضوا ّواى MiniExcelتاضذ. توشیي سشی دٍم تشًاهِ ساصی ضیءگشا 2 {Class Block ;)(public int getRow ;)(public int getColumn ;)(public String getContains ;)(public String getType ;)public Block(int row,int column } ایي کالس تشای پیادُساصی ّش یک اص خاًِّای جذٍل است. تاتغ اٍل تشهیگشداًذ کِ خاًِ ،دسسغش چٌذم قشاس داسد .دقت ضَد کِ خاًِی تاال سوت چپ خاًِی #0 ،0$ هیتاضذ. تاتغ دٍم تشهیگشداًذ خاًِ ،دس ستَى چٌذم قشاس داسد. تاتغ سَم فیلذ ّ containsش Blockسا تشهیگشداًذ کِ دس تاال تَضیح آى دادُ ضذ. )(ًَ :getTypeع آى خاًِ سا تشهیگشداًذ .اگش خاًِ خالی تَد ػثاست nullتشگشداًذُ هیضَد اگش دس آى فشهَل تَد ػثاست ٍ formulaاگش دس آى ػذد ثاتت تَد ػثاست .number {Class MiniExcel ;)(public int getRowNum ;)(public int getColumnNum ;)(public Block[][] getBlocks ;)public void deleteBlockContains(int row, int column ;)public void fill(int row,int column, String contains ;)public String toStringSpecialBlock(int row, int column ;)public MiniExcel(int rowNum, int columnNum } )(ً :getRowNumطاىگش تؼذاد سغشّای جذٍل است. )( :getBlocksیک آسایِی دٍ تؼذی کِ خاًِّای ّ tableستٌذ. )( :deleteBlockContainsهحتَیات یک خاًِی خاظ سا پاک هیکٌذ. )( :fillیک خاًِی خاظ سا تا فشهت گفتِ ضذُ پش هی کٌذ. توشیي سشی دٍم تشًاهِ ساصی ضیءگشا )(ً :getColumnNumطاىگش تؼذاد ستَىّای جذٍل است. 3 )( :toStringSpecialBlockهقذاس خاظ یک خاًِ کِ تایذ تِ کاستش ًطاى دادُ ضَد سا تشهیگشداًذ .اگش دس خاًِ ػذد ثاتت رخیشُ ضذُ است هقذاس آى ػذد تشگشداًٌذُ هیضَد .اها اگش داخل خاًِ فشهَل رخیشُ ضذُ تاضذ حاغل آى فشهَل سا تشهیگشداًذ .هثالً اگش تاتغ getContainsیک Blockهقذاس صیش سا تشگشداًذ: =0 0+1 0 ٍ تا ایي فشؼ کِ دس خاًِی ) (0,0ػذد ٍ 2دس خاًِی ) (1,0ػذد 3رخیشُ ضذُ تاضذ تایذ ػثاست 5تشگشداًذُ ضَد! )( :MiniExcelایي تاتغ constructorکالس است کِ ٍسٍدی آى تؼذاد سغش ٍ ستَىّای تاتغ است. دس ایي تشًاهِ ّیچ حالت خاظٍ ،سٍدی غیشاستاًذاسد ،ػولیات هٌغقی غیشاستاًذاسد ٍ ...تِ کالس ضوا دادُ ًویضَدّ .ذف اص عشاحی ایي سَال تٌْا سفاُ حال ضواست. ًوَداس UMLکالسّای تاال تِ غَست صیش است. Class MiniExcel Block )+ Block(int row,int column )+ MiniExcel(int rowNum,int columnNum + getRow() : int + getRowNum() : int + getColumn() : int + getColumnNum() : int + getContains() : String ][][+ getBlocks() : Block + getType() : String + deleteBlockContains(int row, int column) : void + fill(int row,int column, String contains) : void توشیي سشی دٍم تشًاهِ ساصی ضیءگشا 4 + toStringSpecialBlock(int row, int column): String چىد جمله ای:2 تمریه .دس ایي توشیي هیخَاّین کالس چٌذ جولِای سا تٌَیسین ِ تَجِ ًواییذ ک.کالس اٍل کالس اػذاد گَیا ٍ کالس دٍم کالس چٌذ جولِایّایی تا ضشایة گَیا هیتاضذ class Rational{ Rational(int x, int y); // y > 0; x/y Rational(String s); int getNumerator(); // x int getDenominator (); // y boolean equals(Rational other); String toString(); } class Polynomial{ Polynomial(String init); Polynomial polyAdd(Polynomial other); Polynomial polyMultiply(Polynomial other); Polynomial polySubtract(Polynomial other); Polynomial polyDivide(Polynomial other); Polynomial polyPow(int pow); // pow > 0 Rational getValue(Rational point); boolean equals(Polynomial other); int getDegree(); String toString(); توشیي سشی دٍم تشًاهِ ساصی ضیءگشا } 5 .تَاى جولِّای چٌذ جولِای اػذادی غحیح ٍ ًاهٌفی است یؼٌی.تَجِ ًواییذ کِ اػذادی کِ دس کالس گَیا ًگْذاسی هیضًَذ تایذ سادُ تشیي حالت هوکي سا داضتِ تاضٌذ :ًَِ تِ ػٌَاى ًو.تایذ ّوَاسُ تضسگتشیي هقسَم ػلیِ غَست ٍ هخشج یک تاضذ Rational rational = new Rational("-4/6"); System.out.println(rational.getNumerator()); -2 System.out.println(rational.getDenominator()); 3 System.out.println(rational.toString()); -2/3 ;)"rational = new Rational("4/2 2 ;))(System.out.println(rational. getNumerator 1 ;))(System.out.println(rational.getDenominator 2 ;)")(System.out.println("rational.toString دس کالس اػذاد گَیا ،تاتغ )( toStringخشٍجی اص ًَع سضتِ داسد .دس غَستی کِ ػذد ها غحیح تاضذ سضتِ تشاتش غَست کسش هیضَد ٍ دس غیش ایي غَست تایذ اتتذا غَست کسش ،تؼذ اص آى ػالهت « ٍ »/تؼذ هخشج کسش ًَضتِ ضَد .تِ عَس هثال: … 1/2, 1, 0, -2/3, تَجِ ًواییذ constructorایي کالس تایذ تتَاًذ ایي سضتِ سا تِ ػٌَاى ٍسٍدی تگیشد ٍ یک ًوًَِ اص اػذاد گَیا تساصد .تَجِ کٌیذ سضتِی ٍسٍدی تِ عَس قغغ استاًذاسد استٍ .سٍدی ایي تاتغ ّواًٌذ خشٍجی تاتغ )( toStringهیتاضذ .تاتغ )(ّ equalن چک هی کٌذ کِ ػذد گَیای ها تا ػذد گَیای ٍسٍدی تشاتش است یا ًِ True$دس غَست تشاتشی.# Constructorکالس چٌذجولِای :ایي تاتغ اص یک سضتِ ،چٌذجولِای تا ضشایة گَیا هیساصد .تَجِ کٌیذ تَاىّای جولِّای آى دس سضتِی ٍسٍدیً ،ضٍلی است .تِ عَس هثال سضتِی « »x^3+x+x^2+1/2یک سضتِی هجاص ًیست ٍ تش خالف آى « »3/4*x^3+x^2+x+1/2یک سضتِی هجاص است$ .هتغیش ّوَاسُ ٍ x دس سضتِ فاغلِ ًذاسین ٍ تضویي هی ضَد ،سضتِ استاًذاسد است .#تاتغ )( getValueهقذاس تاتغ سا دس ًقغِی گَیای هَسد ًظش حساب هیکٌذ .تاتغ )( toStringتایذ چٌذ جولِای سا تِ فشهت سضتِ تِ تشتیة ًضٍلی تَاى تٌَیسذ .تِ عَس هثال «.»x^4+x^2+3/2 تمریه :9چهارتایی ها دس ایي تاصی یک جذٍل nدس mتایی ٍجَد داسد .دس ّش هشحلِ یک تاصیکي $قشهض یا صسد #یکی اص ستَىّای جذٍل سا توشیي سشی دٍم تشًاهِ ساصی ضیءگشا 6 اًتخاب هیکٌذ ٍ هْشُای داخل آى هیاًذاصد .دقت کٌیذ ضشٍع تاصی تا تاصیکي قشهض است .هْشُی اًذاختِ ضذُ تا جایی پاییي هیسٍد کِ هْشُای سش ساُ آى قشاس ًذاضتِ تاضذ یا تِ تِ جذٍل تشسذّ .ش ٍقت تاصیکٌی تَاًست چْاس خاًِی پطت سش ّن افقی ،ػوَدی یا اسیة سا اص آى خَد کٌذ تشًذُی تاصی است .اگش خاًِّا توام ضذ ٍلی تاصیکٌی تشًذُی تاصی ًطذ تاصی هساٍی توام ضذُ است. تشای اًجام ایي تاصی تِ ایي آدسس هشاجؼِ کٌیذ: http://www.donutgames.com/play/four_in_a_row ضوا تایذ کالس ،FourInARowکالس ٍ Tableکالس Blockسا تِ غَست صیش پیادُ ساصی کٌیذ .دقت کٌیذ کِ ّش سِ کالس سا دس یک فایل تایذ رخیشُ کٌیذ .کالس FourInARowتایذ Publicتاضذ. .1کالس :Block {Class Block ;)public Block(row,column ;)(public int getRow ;)(public int getColumn ;)(public char getBlockType } )( :getRowضواسُی سغش خاًِی هَسد ًظش سا تش هیگشداًذ .دقت کٌیذ کِ خاًِی تاال سوت چپ خاًِی #0,0$هحسَب هیضَد. )( :getColumnضواسُی ستَى خاًِی هَسد ًظش سا تش هیگشداًذ. )(ًَ :getBlockTypeع خاًِی هَسد ًظش سا تش هیگشداًذ .اگش Rتَد یؼٌی هْشُی قشهض دس خاًِ قشاس داسد ،اگش Yتَد یؼٌی هْشُی صسد دس خاًِ قشاس داسد ٍ اگش Eتَد یؼٌی خاًِ خالی است. )ّ :Block(row,columnواى عَس کِ حذس صدیذ ایي خاًِ constructorایي کالس است. .2کالس Table {Class Table ;)public Table(rowNum, columnNum ;)(public Block[][] getBlocks ;)(public int getRowNum ;)(public int getColumnNum )( :getBlocksیک آسایِی دٍ تؼذی کِ خاًِّای tableیا ّواى تختِی تاصی ّستٌذ سا تشهیگشداًذ. )( :getRowNumتؼذاد سغشّای جذٍل سا تشهیگشداًذ. )( :getColumnNumتؼذاد ستَىّای جذٍل سا تشهیگشداًذ. )( :Tableایي تاتغ constructorکالس است کِ ٍسٍدی آى تؼذاد سغش ٍ ستَى جذٍل است. .3کالس FourInARow توشیي سشی دٍم تشًاهِ ساصی ضیءگشا } 7 {Public class FourInARow ;)public FourInARow(table ;)(public Table getTable ;)(public char getTurn ;)public String play(char turn,int column } )( :getTableجذٍل هشتَط تِ تاصی سا تشهیگشداًذ. )( :getTurnتشهیگشداًذ ًَتت کذام تاصیکي است .اگش ًَتت تاصیکي قشهض تَد ٍ Rاگش ًَتت تاصیکي صسد تَد Y سا تشهیگشداًذ. )( :fourInARowایي تاتغ constructorکالس است کِ ٍسٍدی آى یک جذٍل یا ّواى تختِی تاصی است. )(ّ :playواى عَس کِ دس تاصی هطاّذُ کشدیذ ّش ًَتت تاصی یک تاصیکي تایذ دس یک ستَى هْشُی خَد سا تیٌذاصد .ایي هتذ ایي کاس سا اًجام هیدّذ .اگش تا غذا صدى ایي هتذ ػولیات غیشهٌغقی اص تاصیکٌاى ،هثالً اًذاختي هْشُ تِ خاسج جذٍل یا تِ ستَى پش هطاّذُ ضَد تایذ ػثاست errorتشگشداًذُ ضَد .دقت کٌیذ اگش تؼذ اص غذا صدى ایي هتذ تاصی توام ضذُ تاضذ ،اگش تاصیکٌی دس تاصی تشًذُ ضذُ تاضذ تایذ هتٌاسة تا تشًذُی تاصی ،پیغام Yellow winsیا Red winsتشگشداًذُ ضَد ٍ اگش تاصی تشًذُ ًذاضتِ تاضذ پیغام Equalتشگشداًذُ ضَد. پس اص اٍلیي تاسی کِ یکی اص ایي 3حالت هزکَس سخ داد ،دس غذا صدُ ضذىّای تؼذی ایي تاتغّ ،یچ ػولی ًثایذ سخ دّذ ٍ تٌْا سضتِی خالی سا تشگشداًذ. FourInARow )+ FourInARow(table ][][+ getBlocks() : Block + getTable() : Table + getRowNum() : int + getTurn() : char توشیي سشی دٍم تشًاهِ ساصی ضیءگشا 8 Table + play(char turn,int column) : String + getColumnNum() : int )+ Table(rowNum,columnNum Block )+ Block(row,column + getRow() : int + getColumn() : int + getBlockType() : char آقای جلوخاوی:1 تمریه تِ دستیاس آهَصضی دسس جاٍا هشاجؼِ کشد ٍ دسخَاستی هثٌی تش عشاحی تشًاهِای تشای، دیشٍص آقای جلَخاًی .هذیشیت ًحَُی اختػاظدّی کالسّای داًطکذُ دادُ است class Course(){ public Course(String name, int courseID, int classNum); public void setTimeSlices(TimeSlice[] classTimeSlices, TimeSlice TATimeSlice, TimeSlice[] examTimeSlice); public int getCoursID(); public String toString() } class Time(){ public Time(int hour, int minute); public String toString(); } class TimeSlice(){ public TimeSlice(int day, int week, Time startTime, Time finishTime); // week >= 0 public String toString(); } class Management{ public Management(); public void reset(); public int reset(int day); public boolean remove(int courseID); public boolean add(Course course); توشیي سشی دٍم تشًاهِ ساصی ضیءگشا public boolean isFree(TimeSlice timeSlice); 9 } .ّا تشای هقذاس دّی هتغیشّای داخلی استفادُ هیضًَذConstructor . سا تاص هیگشداًذcourseID هقذاس هتغیشgetCourseID() تاتغّای . است24 هیتاضٌذ ٍ ساػت کوتش اص30 توام صهاىّا داسای دقیقِای هضشب فشهت ایي. تایذ سضتِای حاهل اعالػات هَجَد سا تِ ػٌَاى خشٍجی تذّذ، تاتغ اٍل3 دسtoString() تاتغّای تؼذ هقذاس،»;« تؼذ ػالهت، اتتذا اسن،Constructor سضتِ تِ ایي غَست است کِ تِ تشتیة هتغیشّای هتغیش ،تؼذ ” “, ”$ “,تشای هتغیش آخش الصم ًویتاضذ .#ػالٍُ تش ساختاس گفتِ ضذُ تایذ دٍس کل سضتِ ،پشاًتض تاضذ .تِ عَس هثال تشای کالس Timeتا ساػت ٍ 13دقیقِی 30داسین: ”)“(hour=13, minute=30 یا تشای کالس TimeSliceداسین: ”))“(day=4, week=0, startTime=(hour=3, minute=0), finishTime=(hour=5, minute=0 یا تشای کالس Courseداسین: ”)“(name=C, courseID=24021, classNum=101 دس کالس ،TimeSliceهتغیش weekدس غَستی کِ 0تاضذ ًطاى دٌّذُی آى است کِ ایي قغؼِی صهاًی، هتٌاٍب است ٍ ّش ّفتِ سٍی هیدّذ .دس غَست هثثت تَدىً ،طاى دٌّذُی ضواسُی ّفتِی هشتَعِ هیتاضذ. دس کالس TimeSliceتاصُّا تِ غَست تستِ-تاص اًذ .یؼٌی ) [1،2کِ دس آى 1اتتذا ٍ 2اًتْا است. دس کالس Courseتاتغ ،setTimeSliceهقذاس ّTimeSliceای هشتَط تِ کالسّای ،EXAM ،TA Classسا هطخع هیکٌذ. دس کالس Managementتاتغ )( resetتوام اعالػات هَجَد سا پاک هیکٌذ ٍ تؼذ اص آى فشؼ ضذُ ّیچ دسسی دس سیستن ثثت ًطذُ است. تاتغ ) reset(int dayدسسّایی کِ یکی اص کالسّای هَسد ًیاص آىّا دس ایي سٍص است سا ،حزف هیکٌذ. خشٍجی ایي تاتغ تؼذاد ایي دسسّای حزف ضذُ هیتاضذ. دس تاتغ ) add(Course courseدسس هَسد ًظش سا دس غَست ًذاضتي تذاخل تا تقیِ دسسّای هَجَد دس لیست دسٍس داًطکذُ اضافِ هیکٌذً .کتِی قاتل تَجِ ایي است کِ صهاًی کِ یک Courseدس لیست آقای جلَخاًی ٍاسد ضذً ،ثایذ صهاى کالسّای آى تَسظ تاتغ setTimesliceتغییش کٌذ .صیشا ایي تغییش صیش ًظش توشیي سشی دٍم تشًاهِ ساصی ضیءگشا 10 آقای جلَخاًی غَست ًگشفتِ است. تاتغ ) remove(int courseIDدسس هَسد ًظش سا دس غَست ٍجَد ،اص لیست آقای جلَخاًی حزف هیکٌذ. تاتغ )ّ isFree(TimeSlice timesliceن یک قغؼِ صهاًی هیگیشد ٍ دس غَستی کِ خالی تاضذ Trueتش هیگشداًذ. هَفق تاضیذ
© Copyright 2025 Paperzz