Final Java1 Exercise 2013

download Final Java1 Exercise 2013

of 73

Transcript of Final Java1 Exercise 2013

  • 8/12/2019 Final Java1 Exercise 2013

    1/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 1

    Khi: i Hc V Cao ng

    Nm 2013

    Hng dn:

    Bi tp thc hnh c chia theo Module

    Mi Module c thit kcho thi lng l 312 tit thc hnh ti lp

    vi shng dn ca ging vin.

    Ty theo stit phn b, mi tun hc c ththc hin nhiu Module.

    Sinh vin phi lm tt ccc bi tp trong cc Module tun tng ng.

    Nhng sinh vin cha han tt phn bi tp ti lp c trch nhim tlm

    tip tc nh.

    Cc bi c du (*) l cc bi tp nng cao dnh cho sinh vin kh gii.

  • 8/12/2019 Final Java1 Exercise 2013

    2/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 2

    MC LC

    Module 1: Program and Statement ................................................................................. 3

    Module 2: Objects and Primitive data .......................................................................... 22

    Module 3: Writing Class ................................................................................................ 29

    Module 4: Enhancing Class ........................................................................................... 38

    Module 5:

    Array and Collections .................................................................................. 43

    Module 6: Inheritance .................................................................................................... 48

    Module 7: ExceptionIO Stream ................................................................................. 51

    Module 8: Graphic User Interface ................................................................................ 54

  • 8/12/2019 Final Java1 Exercise 2013

    3/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 3

    Module 1:Program and Statement

    Ni dung kin thc thc hnh:

    + Sdng JDK bin dch v thc thi chngtrnh.

    + Sdng Eclipse son tho, bin dch v thc thi chng trnh.

    + Khai bo v sdng bin, i tng.+ Sdng cc cu trc iu khin.

    + Nhn dliu ti shm main.

    Bi tp 1:

    Mc ch:- Download v ci t c JDK.

    Yu cu:-

    Hy ti v ci t JDK

    Hng dn:

    bin dch c cc source code Java, my tnh ca chng ta phi c my o Java

    c c my o Java cc bn vo link bn di download bJDK

    http://www.oracle.com/technetwork/java/javase/downloads/index.html

    Sau khi click vo ng link bn trn, danh mc JAVA Kit shin thnh hnh bn di:

    http://www.oracle.com/technetwork/java/javase/downloads/index.htmlhttp://www.oracle.com/technetwork/java/javase/downloads/index.htmlhttp://duythanhcse.files.wordpress.com/2011/12/h1download.pnghttp://www.oracle.com/technetwork/java/javase/downloads/index.html
  • 8/12/2019 Final Java1 Exercise 2013

    4/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 4

    chn JDK Download, sau khi click chn Download th mt mn hnh mi sc hin thra,trong mn hnh mi ny ty vo cu hnh ca my tnh m chng ta chn tp tin Download chohp l.

    Gisrng my tnh ca bn 32bits, bn schn Windows x86 load. Sau khi load v ci tthnh cng bn vo Control Panel kim tra xem my o Java c ci t vo my haycha. Nu c biu tng Java nh hnh bn di th coi nh bn ci t thnh cng:

    http://duythanhcse.files.wordpress.com/2011/12/h3download.pnghttp://duythanhcse.files.wordpress.com/2011/12/h2download.pnghttp://duythanhcse.files.wordpress.com/2011/12/h3download.pnghttp://duythanhcse.files.wordpress.com/2011/12/h2download.png
  • 8/12/2019 Final Java1 Exercise 2013

    5/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 5

    Bi tp 2:

    Mc ch:

    - Thit lp c bin mi trng chy java c chcommand-line.

    Yu cu:

    - Hy thit lp bin mi trng chy c java c chcommand -line

    Hng dn:

    1. Bm chut phi vo biu tng Computer/ chn Properties

    2. Mt ca smi hin ln, chng ta chn Advanced System Settings

  • 8/12/2019 Final Java1 Exercise 2013

    6/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 6

    3. Ca sSystem Properties shin thra, chng ta vo tab Advanced, click chn buttonEnvironment VariablesCa sEnvironment variables shin thnh hnh bn di:

    4. Trong mc System variables, click chn button New.

    Mc Variable name, chng ta nhp vo bin JAVA_HOMEMc Variable value, chng ta copy ng dn ci t JDK vo y, trong v dny th JDKc ci t nh hnh minh ha. Tc l nu my ca bn ci JDK u th copy paste ngdn vo mc ny.

  • 8/12/2019 Final Java1 Exercise 2013

    7/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 7

    Sau khi chn OK, bn quan st trong vng System Variables, bin JAVA_HOME v gi trca

    n sxut hin nh hnh minh ha bn di:

  • 8/12/2019 Final Java1 Exercise 2013

    8/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 8

    5. Bc tip theo, cc bn tm ti bin Pathtrong mc System variables, click chn Edit:

    Trong mc Variable value, cc bn di chuyn ti cui, nhp vo cc gi trnh hnh minh ha :;%JAVA_HOME%\bin;.;

    6.

    Kim tra li cu hnh c chnh xc hay khng:kim tra xem my tnh ca bn ang ci JDK version bao nhiu, vo Start/ Run. Hoc g thp phm Windows+R hin thca sRun, trong ca sny cc bn g vo lnh cmdrinhn phm Enter.

  • 8/12/2019 Final Java1 Exercise 2013

    9/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 9

    Gjava versionkim tra JDK version.Gjavacversionkim tra javac version.

    Bi tp 3:

    Mc ch:- Vit c chng trnh Javabng notepad v bin dch bng command - line

    Yu cu:

    1. nh on code sau sdng Notepad:

    class Welcome{

    public static void main(String []arg)

    {System.out.println("\nMy first Java Program");

    }}

    2. Chn menu F ile Save Asv nh tn file Welcome.java(ging tn ca class)3. Chn Start Runv nh lnh cmdvo trong hp thoi Run4. Click vo button OKca scommand prompt xut hin. Thay i ng dn th mc

    lu file trong bc 3.5. Bin dch chng trnh sdng lnh javac6. Chy chng trnh sdng java

    Hng dn:

    Bi tp 4:

    Mc ch:

    - Sdng c Eclipse-

  • 8/12/2019 Final Java1 Exercise 2013

    10/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 10

    Yu cu:

    1.Khi ng EclipseSau khi download v gii nn, cc bn khi ng Eclipse sc giao din nh hnh bn di:

    thit lp Perspective: Vo menu Window/ Open Perspective/ chn Other

    Trong ca sOpen Perspective cc bn chn Javasau nhn nt OK.- Cch to Java Project:

  • 8/12/2019 Final Java1 Exercise 2013

    11/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 11

    -Vo menu File/ New/ Java Project

    Trong mc Project nameca ca sNew Java Project: Bn nhp tn projectvo mc ny,sau nhn Finish.By gita tin hnh to 1 class tn l HelloTeo113. Cc bn bm chut phi vo Project/ New/chn Class (xem hnh minh ha bn di).

  • 8/12/2019 Final Java1 Exercise 2013

    12/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 12

    Ca sNew Java Class sxut hin nh bn di:

    Nhn Finishto Class.Cc bn quan st trong hm main, y Ta vit dng lnh:

    System.out.println("HI...I'm Teo 113");Hm ny c tc dng xut dliu ra mn hnh trn nhng dng khc nhau.

  • 8/12/2019 Final Java1 Exercise 2013

    13/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 13

    bin dch v thc thi chng trnh, ta vo menu Run/Run (hoc nhn thp phm Ctrl+ F11)

    Sau khi chn Run, cc bn quan st ca sConsole bn di, kt qusc hin thra nhhnh minh ha.

    - Ch : Nu nh trong Project ca bn c cha Font chting vit th nhcu hnh dngUTF-8

  • 8/12/2019 Final Java1 Exercise 2013

    14/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 14

    Tmenu Project/ chn Properties (xem hnh minh ha bn trn). Sau khi chn Properties th casProperties for testshin thra (y testl tn Project). Cc bn chn Resource/ chnUTF-8 nh hnh bn di, sau chn OK thit lp cu hnh.

    Mc nh mi mt Project, Eclipse thit lp mc nh Build Automatically, Nu trong c trnhbin dch m xut hin nhng li m chng ta khng hiu bit nguyn nhn v sao th ta c thvo menu Project/ Clean

    Ca sClean sxut hin nh hnh bn di, nu mun clean ton bProject th bn chnClean all projects, cn nu mun chclean nhng project ring lth bn chn clean projectsselected below. Nhn OK tin hnh Clean.

  • 8/12/2019 Final Java1 Exercise 2013

    15/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 15

    Cc bn rng, nu nh mun tmnh Build Project th hy unchecked BuildAutomatically. Lc ny cc mc Build All, Build Projectsc hin thcho php chng tachn la chng.

    Mt sediting template hay dng:G sysoutsau nhn Ctrl-Spacebar scho System.out.println();G mainsau nhn Ctrl-Spacebar schopublic static void main(String[] args) {}.tm hiu thm, vo menu Window->Reference

  • 8/12/2019 Final Java1 Exercise 2013

    16/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 16

    Cc phm tt hay dng: Trong Eclipse, vo menu Help->Key Assitst hoc nhn thpCtrl-Shift-L hin th.

    1.

    Thc thi chng trnh:Nhn chuphi ln lp cn chy, chn menu Run As-> Java Application.

    2. MProject trong Eclipse

    Eclipse khng htrmproject trc tip nn bn khng c kiu double-click-for

    open thng thy, m bn phi import project vo workspace nh sau:Vo menu File->Import ri chn nh hnh

  • 8/12/2019 Final Java1 Exercise 2013

    17/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 17

    Nhn Next. Sau nhn nt Browse tm n th mc cha project.

    Chn Project cn import ri nhn Finish

    3. Export file jar tchy(executable jar file) trong eclipse

    Nhn chut phi ln Project cn export, chn Export.

  • 8/12/2019 Final Java1 Exercise 2013

    18/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 18

    Chn Runnable JAR file nh hnh. Nhn Next

    Chn Lauch configuration. Chn th mc cha cng nh tn file jar. Nhn Finish.Thc thi jar file di dng command-line:

    Nu Project ca bn c chGUI th bn c thmfile jar ca bn bng Java PlaformSE library nh hnh.

    Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    19/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 19

    Bi tp 5:

    Mc ch:

    - Thao tc vi ton ttrong Java.

    Yu cu:import java.util.*;public class MathOps {

    //method to print a string and an intstatic void printInt(String s, int i) {System.out.println(s + " = " + i);

    }//method to print a string and a floatstatic void printFloat(String s, float f) {System.out.println(s + " = " + f);

    }public static void main(String[] args) {

    Random random = new Random();int i, j, k;//Choose value from 1 to 100j = random.nextInt (100) + 1;k = random.nextInt (100) + 1;printInt("j", j);printInt("k" , k);i = j + k; printInt("j + k", i);i = j - k; printInt("j - k", i);i = j/ k; printInt("j/k", i);i = j * k; printInt("j * k", i);i = j % k; printInt("j % k", i);j %= k; printInt("j %= k" , j);// Floating-point number tettsfloat u, v, w; // also applies to doublesv = random.nextFloat ();w = random.nextFloat ();printFloat("v", v);printFloat("w", w);u = v + w; printFloat("v + w", u); // contdu = v - w; printFloat("v - w", u);u = v * w; printFloat("v * w", u);

    u = v / w; printFloat("v/w", u);//The following also works for char, byte, short, int, long, and doubleu += v; printFloat("u += v", u);u -= v; printFloat("u -= v", u);u *= v; printFloat("u *= v", u);u /= v; printFloat("u /= v", u);

    }}Kt quc xut ra l g? Gii thch cc ton ttrn.Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    20/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 20

    Bi tp 6:

    Mc ch:

    - Thao tc vi ton ttng tng gim

    Yu cu:

    public class AutoInc_DecOps {public static void main(String[] args) {

    int i = 1;System.out.println("i : " + i);System.out.println("++i : " + ++i); // Pre-incrementSystem.out.println("i++ : " + i++); // Post-incrementSystem.out.println("i : " + i);System.out.println("--i : " + --i); // Pre-decrementSystem.out.println("i-- : " + i--); // Post-decrement

    System.out.println("i : " + i);}

    }

    Kt quc xut ra l g? Gii thch.

    Hng dn:

    Bi tp 7:Mc ch:

    - Thao tc vi ton tlogic

    Yu cu:

    import java.util.*;public class Rel_LogOps {public static void main(String[] args) {

    Random random = new Random();int i = random.nextInt (100);int j = random.nextInt (100);// Using Relational OperatorsSystem.out.println("i = " + i);System.out.println("j = " + j);System.out.println("i > j is " + (i > j));System.out.println("i < j is " + (i < j));System.out.println("i >= j is " + (i >= j));System.out.println("i

  • 8/12/2019 Final Java1 Exercise 2013

    21/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 21

    System.out.println("i == j is " + (i == j));System.out.println("i != j is " + (i != j));//Using Logical Operators

    System.out.println("(i < 10) && (j

  • 8/12/2019 Final Java1 Exercise 2013

    22/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 22

    Module 2:Objects and Primitive data

    Ni dung kin thc thc hnh:

    - Dng lp Scanner nhp dliu- Sdng lp Math- Sdng lp String, lp Character- Vit hm (method)- Vit hm overload

    Bi tp 1:

    Mc ch:

    - S dng lp Scanner nhp s.- nh dng xut.- S dng lp Math.

    Yu cu:

    Vit chng trnh tnh thtch v din tch bmt ca mt hnh cu vi bn knh r nhp vo(r>=0). Kt quchcn ly 4 chsthp phn. Cng thc tnh:

    Thtch =

    Din tch bmt = 4PI*r2

    HD: Dng lp DecialFormat nh dng kt quvi 4 chsthp phn:DecialFormat df = newDecialFormat ("0.####");

    Hng dn:

    Bi tp 2:

    Mc ch:

    Yu cu:

    Vit chng trnh cho nhp vo kch thc 3 cnh a, b, c ca mt tam gic. Tnh vxut din tch ca tam gic, sdng cng thc Heron. Trc khi tnh phi kim tra xem 3sa, b, c c lp thnh mt tam gic khng (a, b, c lp thnh tam gic khi tng 2 sbt klun ln hn scn li).

    HD: Din tch = , bit s bng 1/2 chu vi tam gic.Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    23/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 23

    Bi tp 3:

    Mc ch:

    Yu cu:

    Vit chng trnh tnh khong cch gia 2 im c ta (x1,y1) v (x2,y2), bit cng thc

    tnh khong cch l: distance =Hng dn:

    Bi tp 4:

    Mc ch:

    + Nhp chui.

    + Ly tng k ttrong chui.Yu cu:

    Vit chng trnh cho nhp mt chui v in ra cc k ttrong chui ra mn hnh,mi k ttrn mt dng.

    HD: dng hm charAt(int)

    Hng dn:

    Bi tp 5:

    Mc ch:

    Yu cu:Vit chng trnh cho nhp mt chui v m skhong trng c trong chui .

    HD: dng hm isSpace(char) ca lp Character kim tra khong trng.Hng dn:

    Bi tp 6:

    Mc ch:

    Yu cu:Vit chng trnh cho nhp mt chui v in ra cc k tchci (a-z hoc A-Z) c trongchui.

    HD: dng hm isLetter(char) ca lp Character kim tra chci.Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    24/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 24

    Bi tp 7:

    Mc ch:- So snh 2 chui

    Yu cu:Vit chng trnh cho nhp vo hai chui, kim tra xem hai chui c bng nhau khng,

    khng phn bit chhoa chthng.

    Hng dn:

    Bi tp 8:

    Mc ch:- Ni chui

    Yu cu:Vit chng trnh cho nhp mt chui v mt snguyn n. Chng trnh in ra mt chuimi l chui c ghp tn ln chui nhp. Nu n

  • 8/12/2019 Final Java1 Exercise 2013

    25/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 25

    (i) Vit mt hm c tn square, hm c 1 tham sx kiu sthc. Hm ny tnh ton vtrvbnh phng ca x.

    (ii) a hm trn vo mt chng trnh v n c gi thc hin bi hm main. Testhm va vit bng cch thc hin vi ln, mi ln vi cc gi trtruyn khc nhau.

    Hng dn:

    Bi tp 11:

    Mc ch:

    Yu cu:Vit chng trnh trong c mt hm snhn mt tham snguyn, hm trvgi tr

    false nu s l schn, ngc li trvgi trtrue.Test hm va vit bng cch thc hin vi ln, mi ln vi cc gi trtruyn khc nhau.

    Hng dn:-

    Bi tp 12:

    Mc ch:

    Yu cu:

    Vit chng trnh gii phng trnh bc hai ax2

    + bx + c = 0, vit hm tnh delta.Hng dn:

    Bi tp 13:

    Mc ch:

    Yu cu:Vit hm alarm in ra cc chui Alarm!, mi chui trn mt dng. Hm alarm c

    mt tham skiu snguyn biu thcho sdng cn in, nu sny nhhn 1 th in ra cuthng bo li.Test hm va vit bng cch thc hin vi ln, mi ln vi gi trtruyn khc nhau.Hng dn:

    Bi tp 14:

    Mc ch:Yu cu:

  • 8/12/2019 Final Java1 Exercise 2013

    26/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 26

    Vit hm sumRange, hm c hai tham skiu snguyn biu thcho khong gi tr.Nu tham sthhai nhhn tham sthnht th xut ra mt thng bo li v trra gi tr0,ngc li hm trvtng ca cc gi trtrong khong .Test hm va vit bng cch thc hin vi ln, mi ln vi cc gi trtruyn khc nhau.Hng dn:

    Bi tp 15:

    Mc ch:

    Yu cu:Vit hm countA, hm ny nhn mt tham skiu String v trvsln xut hin k t

    Atrong chui .

    Test hm va vit bng cch thc hin vi ln, mi ln vi gi trtruyn khc nhau.Hng dn:

    Bi tp 16:

    Mc ch:- Vit hm overload.

    Yu cu:(i) Vit hm average, hm c hai tham skiu snguyn, hm trvgi trtrung bnh ca

    hai s.(ii)Overload hm average vi ba tham snguyn, hm trvgi trtrung bnh ca ba s.

    Test cc hm va vit bng cch thc hin vi ln, mi ln vi cc gi trtruyn khc nhau.

    Hng dn:

    Bi tp 17:

    Mc ch:

    Yu cu:

    Vit hm multiConcat, hm nhn mt tham skiu String v mt snguyn n, hmtrvmt chui mi l chui c ghp tn ln chui trong tham s. Nu n

  • 8/12/2019 Final Java1 Exercise 2013

    27/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 27

    Bi tp 18:

    Mc ch:

    Yu cu:Vit chng trnh xut ra dy sFibonacci, Yu cu phi vit 2phng thc. Phng

    thc 1 dng trvsFibonacci ti vtr thk bt k. Phng thc 2 dng xut dy sFibonacci t1n.

    Dy Fibonacci : 1 1 2 3 5 8 13 21 34 - SFib thk = (sFib thk-1) + (sFib thk-2), tc l 13 =8+5, 21=13+8- 2 sFib u tin trong dy lun lun l 1

    Hng dn:

    Bi tp 19:

    Mc ch:

    Yu cu:Hy vit phng thc tn Panlyndrome nhn 1 tham sc kiu String v trvtrue nu

    tham sl chui panlyndrome (chui panlyndromel chui c chui o ngc bng chnh n,v dmadam)

    Hng dn:publicstaticbooleanisPanlyndrome(String s)

    { for(inti=0;i

  • 8/12/2019 Final Java1 Exercise 2013

    28/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 28

    Hng dn:

    Bi tp 21:

    Mc ch:

    Yu cu:Vit chng trnh chi game on s, m tgame nh sau:- Khi to ban u ngi chi c 5 im- My tng Randomngu nhin 1 st0->5 (sny skhng xut ra, chdng so

    snh vi ssm ngi chi on- Ngi chi on s, Nu on ng th + 1 im vo im khi to, ngc li -1 im (Ch

    l c xut thng bo khi ngi chi on trng hay on sai)- Khi ngi chi khng cn im no th thng bo Game Over- Nu ngi chi tch ly c 10 im th thng bo Congratulations! You Win!

    Hng dn:Random rd=newRandom();intso=rd.nextInt(6);

    Bi tp 22:

    Mc ch:

    Yu cu:

    Vit hm xut ra 5 hnh bn di (Vit 5 hm ring bit, mi hm cha 2 vng lp)

    Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    29/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 29

    Module 3:Writing Class

    Ni dung kin thc thc hnh:

    - Khai bo v sdng lp- Vit cc lp vi mi quan hcomposition

    Bi tp 1:

    Mc ch:

    - Tm hiu cch vit lp trong Java.

    Yu cu:

    Cho lp Distance nh sau:

    Tm hiu lp ny v gii thch kt qu. Nu chng trnh bli, hy sa li.

    Hng dn:-

    Bi tp 2:

    Mc ch:- Bit cch vit v sdng overloaded constructors.

    Yu cu:- Cho cc lp sau, hy tm hiu v gii thch cch sdng lp Time. Cho bit kt quca

    chng trnh l g?

  • 8/12/2019 Final Java1 Exercise 2013

    30/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 30

    // Time.java

    import java.text.DecimalFormat;public class Time {private int hour; // 0 - 23private int minute; // 0 - 59private int second; // 0 - 59// Time constructor initializes each instance variable to zero. Ensures that Time object// starts in a consistent state.public Time() {setTime( 0, 0, 0 );}// Time constructor: hour supplied, minute and second defaulted to 0public Time( int h ) {setTime( h, 0, 0 );}// Time constructor: hour and minute supplied, second defaulted to 0public Time( int h, int m ) {setTime( h, m, 0 );}// Time constructor: hour, minute and second suppliedpublic Time( int h, int m, int s ) {setTime( h, m, s );}// Time constructor: another Time object suppliedpublic Time( Time time ) {setTime( time.hour, time.minute, time.second );}// Set a new time value using universal time. Perform// validity checks on data. Set invalid values to zero.private void setTime( int h, int m, int s ) {// hour = ( ( h >= 0 && h < 24 ) ? h : 0 );if (( h >= 0 && h < 24 ))hour = h;else hour =0;minute = ( ( m >= 0 && m < 60 ) ? m : 0 );second = ( ( s >= 0 && s < 60 ) ? s : 0 );}// convert to String in universal-time formatpublic String toUniversalString() {DecimalFormat twoDigits = new DecimalFormat( "00" );return twoDigits.format( hour ) + ":" + twoDigits.format( minute ) + ":" +

    twoDigits.format( second );}// convert to String in standard-time formatpublic String toString() {DecimalFormat twoDigits = new DecimalFormat( "00" );return ( (hour == 12 || hour == 0) ? 12 : hour % 12 ) + ":" + twoDigits.format( minute ) +":" + twoDigits.format( second ) + ( hour < 12 ? " AM" : " PM" );}}

  • 8/12/2019 Final Java1 Exercise 2013

    31/73

  • 8/12/2019 Final Java1 Exercise 2013

    32/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 32

    System.out.println( "Month " + theMonth + " invalid. Set to month 1." );}year = theYear; // could validate yearday = checkDay( theDay ); // validate daySystem.out.println( "Date object constructor for date " + toString() );}

    private int checkDay( int testDay ) {

    int daysPerMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };// check if day in range for monthif ( testDay > 0 && testDay

  • 8/12/2019 Final Java1 Exercise 2013

    33/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 33

    return lastName + ", " + firstName + " Hired: " + hireDate.toDateString() + " Birthday: " +birthDate.toDateString();}}

    //EmployeeTest.java

    import javax.swing.JOptionPane;public class EmployeeTest {public static void main( String args[] ) {Date birth = new Date( 7, 24, 1949 );Date hire = new Date( 3, 12, 1988 );Employee employee = new Employee( "Bob", "Jones", birth, hire );JOptionPane.showMessageDialog( null, employee.toEmployeeString(),"Testing Class Employee", JOptionPane.INFORMATION_MESSAGE );System.exit( 0 );}}

    Hng dn:-

    Bi tp 4:

    Mc ch:

    Yu cu:Vit lp HinhTron dng tnh din tch v chu vi hnh trn tbn knh. Vit hm main

    test lp ny.Hng dn:

    Bi tp 5:

    Mc ch:-

    Yu cu:

    (i) Xy dng lp CHinhTamGiac nh sau:CHinhTamGiac

    - ma : int- mb : int- mc : int+ CHinhTamGiac()+ CHinhTamGiac(a: int, b: int, c: int)+ getCanhA() : int+ setCanhA(v : int) : void

  • 8/12/2019 Final Java1 Exercise 2013

    34/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 34

    + getCanhB() : int+ setCanhB(v : int) : void+ getCanhC() : int+ setCanhC(v : int) : void+ laTamGiac() : boolean+ laTamGiac(int, int, int) : boolean+ getChuVi() : int

    + getDienTich() : doubleTrong :

    c tnh ma, mb, mc l ba cnh ca tam gic.

    i to CHinhTamGiac(int, int, int): yu cu kim tra:o nu gi trtruyn c sm th thng bo v gn thuc tnh tng ng bng 0;

    o nu 3 gi trtruyn vo khng lp thnh mt hnh tam gic th thng bo "Khngphi hnh tam gic" v gn 3 thuc tnh bng 0.

    HD : ba gi trlp thnh mt hnh tam gic khi v chkhi tng hai cnh bt klun ln

    hn cnh cn li.setCanhA, setCanhB, setCanhC cng yu cu phi kim tra gi trgn c lsdng v lp thnh tam gic hay khng, nu khng th khng gn (gili gi trc).

    getChuVi(), getDienTich(): tnh chu vi v din tch ca tam gic.

    laTamGiac(): trvgi trtrue khi ba gi trma, mb, mc lp thnh mt hnh tamgic, ngc li trvgi trfalse.

    laTamGiac(int, int, int): trvgi trtrue khi ba gi tra, b, c lp thnh mthnh tam gic, ngc li trvgi trfalse.

    (ii) Vit hm main kim tra lp CHinhTamGiac theo yu cu sau:Cho nhp vo 3 gi trsnguyn v khi to hnh tam gic c cc cnh ng vi 3 gi tr

    ny, nu 3 gi trny khng lp thnh tam gic th thng bo, ngc li th tnh v xut ra chu viv din tch ca n.Hng dn:

    Bi tp 6:

    Mc ch:-

    Yu cu:(i) Xy dng lp NhanVien nh sau:

    NhanVien

    - maNV : String- soSP : int+ NhanVien()+ NhanVien (ma: String, sp : int)

  • 8/12/2019 Final Java1 Exercise 2013

    35/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 35

    + getMaNV() : String+ setMaNV(ma : String) : void+ getSoSP() : int+ setSoSP(sp : int) : void+ coVuotChuan() : boolean+ getTongKet() : String+ getLuong(): double

    + XuatTieuDe() : static void+ toString() : String

    rong cc hm khi to v cc hm setSoSP, khi gn gi trcho thuc tnh soSP th cnkim tra gi tr c phi l sdng khng, nu l sdng th mi gn gi trcho thuctnh, ngc li th gn bng 0.

    coVuotChuan() : trvtrue nu soSP > 500, ngc li trvfalse.Gii thch: hm ny dng kim tra xem slng sn phm ca nhn vin c vt qu slng chun hay khng.

    getTongKet() : trvch"Vt" khi soSP > 500, ngc li trng (c ths

    dng hm coVuotChuan() kim tra).getLuong() : trvlng ca mt nhn vin, lng n theo sn phm vi n gi c

    bn cho 1 sn phm l 20000, v nu ssn phm ca nhn vin vt chun th phn vtchun c tnh n gi l 30000.

    XuatTieuDe() : xut tiu gm cc ct : m nhn vin, ssn phm, lng, tngkt.

    toString() : trvchui cha thng tin ca nhn vin gm cc ct: M nhn vin(maNV), Ssn phm (soSP), Lng v Tng kt.

    (ii) Vit hm main kim tra lp NhanVien theo yu cu sau:To 2 nhn vin vi cc thuc tnh cho ngi dng nhp vo. Xut ra cc thng tin ca

    h, gm m, ssn phm, lng, tng kt.Hng dn:

    Bi tp 7:

    Mc ch:

    Yu cu:(i) Xy dng lp CNhanVien, bit:n lt l cc thuc tnh h, tn v ssn phm ca nhn vin.

    t hm khi to CNhanVien(String, String, int), hm ny skhi to h, tn, ssnphm ca nhn vin; hm phi kim tra ssn phm l sln hn hoc bng 0, nu l sm th gn gi trcho mSoSP bng 0.

    t cc hm ly v gn gi trcho thuc tnh ca lp (cc hm get/set).t hm getLuong() tnh lng cho nhn vin, lng = ssn phm * n gi, vi

    n gi ty thuc vo ssn phm nh sau:

  • 8/12/2019 Final Java1 Exercise 2013

    36/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 36

    Ssn phm n gi

    1 - 199 0.5

    200 - 399 0.55

    400 - 599 0.6

    600 trln 0.65

    t hm LonHon(CNhanVien nv2): hm ny trvgi trtrue khi ssn phm (mSoSP)ln hn ssn phm ca nv2, ngc li trvfalse

    (ii) Vit hm main sdng lp CNhanVien theo yu cu sau:Cho ngi dng nhp vo 2 nhn vin, mi nhn vin nhp vo h, tn, ssn phm ca

    h. Hy tnh v xut ra lng ca tng nhn vin. So snh v xut ra thng bo nhn vin noc ssn phm nhiu hn v nhiu hn bao nhiu. Dng 2 cch so snh: dng hm LonHon v

    khng dng hm LonHon.Hng dn:

    Bi tp 8:

    Mc ch:-

    Yu cu:

    Xy dng lp SinhVien vi cc thuc tnh ca sinh vin l m sinh vin, htn, im l thuyt,im thc hnh. Vit hm main cho php thc hin:

    (i) Nhp thng tin cho mt sinh vin.

    (ii) Tnh im trung bnh ca sinh vin (im trung bnh = (lt+dth)/2).

    (iii) Xut thng tin sinh vin v cho bit kt quhc tp ca sinh vin (u khi im trungbnh >=5, ngc li l Rt).

    Hng dn:

    Bi tp 9:

    Mc ch:-

    Yu cu:

    Xy dng lp NhanVien, bit cu trc ca mt nhn vin nh sau:- M NV: kiu snguyn

  • 8/12/2019 Final Java1 Exercise 2013

    37/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 37

    - Htn: kiu chui.- a ch: kiu chui.- CBQL: kiu logic, c gi trtrue nu nhn vin ny l cn bqun l.Vit hm main cho php khi to mt si tng thuc lp NhanVien, sau in ra m, htnca cc nhn vin l cn bqun l.

    Hng dn:

    Bi tp 10:

    Mc ch:- Vit cc lp vi mi quan hcu thnh, tp hp (aggregation)

    Yu cu:Cho lc cc lp nh sau :

    Hy ci t theo m hnh ny. Vit hm main cho nhp vo mt sStudent v xut ra cc thng

    tin .Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    38/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 38

    Module 4:Enhancing Class

    Ni dung kin thc thc hnh:

    - Cch truyn tham strong Java- Cch sdng tkha static- Vit Interface v thc thi

    Bi 1:

    Mc ch:- Hiu cch truyn tham scho hm trong Java.

    Yu cu:

    Cho cc lp di y, cho bit kt quchng trnh v gii thch.

    // Num.javapublic class Num{

    private int value;public Num (int update){value = update;}

    public void setValue (int update){

    value = update;}public String toString (){return value + "";}}// ParameterTester.java

    public class ParameterTester{

    public static void changeValues (int f1, Num f2, Num f3){System.out.println ("Before changing the values:");System.out.println ("f1\tf2\tf3");System.out.println (f1 + "\t" + f2 + "\t" + f3 + "\n");f1 = 999;f2.setValue (888);f3 = new Num (777);System.out.println ("After changing the values:");System.out.println ("f1\tf2\tf3");

  • 8/12/2019 Final Java1 Exercise 2013

    39/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 39

    System.out.println (f1 + "\t" + f2 + "\t" + f3 + "\n");}

    public static void main (String[] args){int a1 = 111;

    Num a2 = new Num (222);Num a3 = new Num (333);

    System.out.println ("Before calling changeValues:");System.out.println ("a1\t a2\t a3");System.out.println (a1 + "\t" + a2 + "\t" + a3 + "\n");changeValues (a1, a2, a3);System.out.println ("After calling changeValues:");System.out.println ("a1\t a2\t a3");System.out.println (a1 + "\t" + a2 + "\t" + a3 + "\n");}}

    Hng dn:

    Bi tp 2:

    Mc ch:- Hiu cch sdng thuc tnh v hm static.

    Yu cu:Cho cc lp di y, cho bit kt quchng trnh v gii thch.// NhanSu.java

    class HoSo {static int soNguoi;String hoTen;HoSo( String ht ){hoTen = ht;soNguoi++;}static void tongKet(){System.out.println( "Ho khau nay co " + soNguoi +" nguoi" );}void xuatHoTen(){

    System.out.println( hoTen );}}

    public class NhanSu{public static void main( String argv[] ){HoSo n1 = new HoSo( "Tran Van Lang" );HoSo n2 = new HoSo( "Le Thi Binh Minh" );HoSo n3 = new HoSo( "Tran Thuy Thuc Trinh" );

  • 8/12/2019 Final Java1 Exercise 2013

    40/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 40

    HoSo n4 = new HoSo( "Tran Thuy Anh Quynh" );HoSo.tongKet();n1.xuatHoTen();n2.xuatHoTen();n3.xuatHoTen();n4.xuatHoTen();}

    }

    Hng dn:

    Bi tp 3:

    Mc ch:- Tm hiu cch vit v sdng interface.

    Yu cu:Ci t cc lp theo m hnh di y:

    Hng dn:

    Bi tp 4:

  • 8/12/2019 Final Java1 Exercise 2013

    41/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 41

    Mc ch:- Tm hiu cch vit v sdng interface

    Yu cu:- Thit kclass theo m hnh bn di, sinh vin la chn ni dung thch hp cho tng

    phng thc cth.

    Hng dn:

    Bi tp 5:

    Mc ch:- Tm hiu cch vit abstract class

    Yu cu:- Hy thit kclass hp l theo m hnh UML di y, du - l private, du # l

    protected, du + l public

  • 8/12/2019 Final Java1 Exercise 2013

    42/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 42

    Vit thm class TestMain kim tra class Staff, phng thc payday() sxut ton bbng lng chi tit cho mi nhn vin ti thi im tnh lng, cch tnh lng cho mi nhnvin l khc nhau da vo cc thuc tnh c m ttrong mi class.Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    43/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 43

    Module 5:Array and Collections

    Ni dung kin thc thc hnh:

    - Thao tc trn mng dliu c s- Thao tc trn mng i tng- Vit lp tp hp sdng mng v ArrayList- Sp xp mng i tng vi Comparable interface

    Bi 1:

    Mc ch:- Sdng mng.

    Yu cu:

    Vit chng trnh cho nhp mng n snguyn vi cc gi trngu nhin. Xut tng, gitrnhnht ca mng. Sp xp mng.Yu cu vit hm xl mng.Hng dn:

    -

    Bi tp 2:

    Mc ch:

    Yu cu:Lm li bi tp 1 bng cch vit lp RandomArrayxl mng.

    HD: lp RandomArray c 2 thuc tnh l mng snguyn v vtr hin hnh, trong vit hmthm 1 phn tvo mng ti vtr hin hnh, hm in mng, hm tnh tng mng, hm tm gi trnhnht, hm sp xp mng.

    Hng dn:-

    Bi tp 3:

    Mc ch:-

    Yu cu:Lm li bi tp 2 bng cch sdng ArrayList thay cho mng thng thng.

    HD: lp RandomArray chc 1 thuc tnh l mng snguyn.Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    44/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 44

    Bi tp 4:

    Mc ch:

    Yu cu:Thao tc trn mng snguyn, vit hm thc hin cc yu cu sau:

    -

    Nhp / xut mng nguyn bt k- Tm kim gi trbt knhp vo tbn phm- Xut tt ccc snguyn ttrong mng- Sp xp mng: BubbleSort, SelectionSort, InsertionSort, QuickSort- Xa mt gi trbt ktrong mng- Kim tra mng c i xng hay khng

    Hng dn:

    Bi tp 5:

    Mc ch:

    - Vit v sdng lp mng i tng.

    Yu cu:(i) Vit lp Circle, bit lp c mt thuc tnh l radius (bn knh). Vit hm getArea() tnh dintch hnh trn, v hm toString() trvchui gm bn knh v din tch hnh trn. Kim tra lpCircle.(ii) Vit lp CircleCollection, trong vit cc hm:

    + addCircle: thm 1 hnh trn vo mng;+getSize: ly slng hnh trn trong mng;+getCircle/setCircle: ly/gn hnh trn ti vtr xc nh trong mng;+toString: trvthng tin ca tp cc hnh trn trong mng;+ Hm tnh tng din tch hnh trn;+ Hm tm din tch ln nht;+ Hm ly hnh trn c din tch nhnht.

    (iii) Vit chng trnh to mt mng N hnh trn, vi bn knh c pht sinh ngu nhin. Thchin cc yu cu sau:

    - Xut thng tin ca cc hnh trn nhp.

    - Xut tng din tch ca chng.- Xut din tch ln nht.- Xut thng tin hnh trn c din tch nhnht.

    Hng dn:

    Bi tp 6:

  • 8/12/2019 Final Java1 Exercise 2013

    45/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 45

    Mc ch:- Sdng ArrayList.

    Yu cu:Sa li bi v dCDColection.java trong gio trnh: sdng ArrayList thay cho mng

    thng thng.Hng dn:

    -

    Bi tp 7:

    Mc ch:

    Yu cu:(i) Sdng lp NhanVien vit trong bi tp 6 Module 3, vit lp DanhSachNhanVien vicc yu cu sau:

    1. Thm mt nhn vin vo danh sch (mi nhn vin cho nhp vo m nhn vin v s

    sn phm).2. Ly thng tin ca tt cnhn vin, xut dng bng vi cc ct: m nhn vin, ssn

    phm, lng, tng kt.3. Ly tng snhn vin.4. Ly thng tin ca cc nhn vin c ssn phm vt chun.5. m snhn vin c ssn phm khng vt chun.6. Tnh tng lng ca cc nhn vin vt chun.7. Ly nhn vin c ssn phm t nht.8. Ly nhn vin c lng cao nht.9. Ly nhn vin khng vt chun c lng cao nht.

    10. Ly tng lng ca tt cnhn vin.11. Tm kim nhn vin theo m nhp vo, trvnhn vin tm thy.12. Sp xp mng nhn vin tng dn theo ssn phm.13. Xa 1 nhn vin ti vtr nhp vo.

    (ii) Vit chng trnh cho nhp mng n nhn vin v thc hin cc yu cu trong (i)Ch : ty chn sdng ArrayList thay hoc mng thng thng.Hng dn:

    Bi tp 8:

    Mc ch:

    Yu cu:- Vit chng trnh cho nhp vo danh sch sinh vin ca mt trng v xut danh sch

    theo tng lp. Bit rng trng c nhiu lp v mt lp c nhiu sinh vin. Lp gm ccthng tin: m lp, tn lp, s s. Sinh vin gm cc thng tin: m sinh vin, htn, nisinh, m lp.

  • 8/12/2019 Final Java1 Exercise 2013

    46/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 46

    Hng dn:

    Bi tp 9:

    Mc ch:

    Yu cu:

    Vit chng trnh qun l bn hng c m tnh bn di, yu cu dng ArrayList:Mi mt danh mc sn phm sc nhiu sn phm, thng tin danh mc sn phm gm: Mdanh mc, tn danh mc. Thng tin sn phm gm: m sn phm, tn sn phm, gi c, xut x.

    - Vit hm cho php thng tin danh mc sn phm v sn phm- Xut danh sn phm thuc mt danh mc bt knhp vo tbn phm- Cho php cp nht thng tin sn phm- Xa sn phm bt ktrong danh mc- Thng k tng gi trca cc mt hng

    - Lit k cc sn phm c xut xttrung quc

    Hng dn:

    Bi tp 10:

    Mc ch:

    Yu cu:

    Vit chng trnh cho php nhp lin tc cc gi trtrong khong t1

    100. Sau khi ktthc qu trnh nhp dliu th xut thng tin nh yu cu bn di:

    Hng dn:- Nu ngi sdng nhp 4,5,4,3, 100,91. Th 110 sxut hin 4 du *. 91100 xut

    hin 2 du *. Cc vng cn li trng.

    Bi tp 11:

  • 8/12/2019 Final Java1 Exercise 2013

    47/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 47

    Mc ch:Lu i tng: Object SerializableYu cu:

    - Tt ccc class phi implementsSerializable:o

    public class SanphamimplementsSerializable{}o public class DanhMucSanPhamimplementsSerializable{}

    - Vit mt class MyFilec 2 phng thc:o

    Lu i tng:publicstaticvoidluuDoiTuong(Object obj, String fileName){

    try{

    FileOutputStream fOut=newFileOutputStream(fileName);ObjectOutputStream out=newObjectOutputStream(fOut);out.writeObject(obj);out.close();

    }catch(Exception ex){

    ex.printStackTrace();}

    }o c i tng

    publicstaticObject docDoiTuong(String fileName){

    try{

    FileInputStream fIn=newFileInputStream(fileName);ObjectInputStream in=newObjectInputStream(fIn);Object o=in.readObject();in.close();returno;

    }catch(Exception ex){

    ex.printStackTrace();}returnnull;

    }- Trong testMain:

    DanhMucSanPham dsDienTu=(DanhMucSanPham )MyFile.docDoiTuong("luuluu.data");if(dsDienTu!=null)

    System.out.println(dsDienTu);MyFile.luuDoiTuong(dsDienTu, "luuluu.data");

    Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    48/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 48

    Module 6:Inheritance

    Ni dung kin thc thc hnh:

    - To lp con ktha tlp cha .- a hnh thng qua ktha

    Bi 1:

    Mc ch:- Cch vit lp ktha.

    Yu cu:Cho cc lp sau:// Vehicle.java

    public class Vehicle{private int numOfWheels;public Vehicle(int x){numOfWheels = x;}

    public void drive() {System.out.println(Driving a vehicle);}}//Car.java

    public class Car extends Vehicle{private int numOfDoors;public Car(int d, int w) {numOfDoors = d;super(w);}

    public void drive() {System.out.println(Driving a car);}}a. Bsung cc hm get/set cho cc lp.

    b. Lp Car bli bin dch. Hy sa li.c. Gislp Car c sa li, kt quchng trnh l g khi vit:TH1:Car audi = new Car();Car.drive();TH2:Car p = new Car(2, 4);

    p.drive();Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    49/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 49

    Bi tp 2:

    Mc ch:

    Yu cu:- Ci t cho lc sau:

    Trong :+ toString(): xut gi trx, y, radius ca Point hoc Circle tng ng (x, y xut kiu ta[x,y])+ setRadius(): kim tra gi tra vo.

    + getDiameter(): tnh ng knh hnh trn.+ getCircumference(): tnh chu vi hnh trn.+ getArea(): tnh din tch hnh trn.+ Hm main() yu cu nhp mt mng n i tng Circle, xut ra ng knh, chu vi,din tch ca chng, kt quhin th2 sl.

    Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    50/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 50

    Bi tp 3:

    Mc ch:Yu cu:a. Xy dng lp hnh chnht vi cc thuc tnh l chiu di, chiu rng, vit cc hm tnhchu vi, din tch ca n.

    b. Xy dng lp hnh vung tha klp hnh chnht.c. Vit chng trnh tnh chu vi, din tch hnh vung vi di nhp vo.Hng dn:

    Bi tp 4:

    Mc ch:- Vit a hnh thng qua ktha

    Yu cu:a. Vit lp Shape, lp ny chc mt hm l draw() khng c tham sv khng trvgi tr,

    chxut ra dng chDrawing a Shape.b. Vit lp Rectangle ktha tlp Shape. Thm vo lp Rectangle hai thuc tnh l chiu div chiu rng (snguyn). Vit cc hm khi to v cc hm get/set cho lp ny, ch gi trgn cho 2 thuc tnh nm trong [1, 15].Trong lp Rectangle, vit li hm draw() ca lp Shape vra hnh chnht bi cc du *,vi slng du * mi cnh ty thuc vo cc thuc tnh chiu di v chiu rng. V dthuctnh chiu di v chiu rng ln lt l 7 v 3 th hm draw() vc hnh:*******

    * *

    *******

    c. Vit lp RightTriangle ktha tlp Shape. Thm vo lp RightTriangle mt thuc tnh lcnh vung (snguyn). Vit cc hm khi to v cc hm get/set cho lp ny, ch gi trgncho thuc tnh nm trong [1, 20].

    Trong lp RightTriangle, vit li hm draw() ca lp Shape vra hnh tam gic vung bicc du *, vi slng du * mi cnh ty thuc vo cc thuc tnh cnh vung. V dthuctnh cnh vung l 4 th hm draw() vc hnh:***

    ***

    ****d. Vit lp Artist, lp ny c hm drawShape(), hm ny khng trvgi trv c mt thamskiu Shape, trong hm ny gi hm draw() vhnh ty theo tham sShape truyn vo.e. Vit lp ArtistDemo, lp ny cha hm main(): khai bo bin Shape; dng bin ny khito cho i tng Rectangle vi chiu di l 8, chiu rng l 4; to i tng Artist vhnhchnht ny; dng li bin Shape khi to cho i tng RightTriangle vi cnh l 20,dng i tng Artist vhnh tam gic ny. Vit li hm main ny vi cc gi trchiu di,chiu rng, cnh vung do ngi dng nhp vo.Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    51/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 51

    Module 7:ExceptionIO Stream

    Ni dung kin thc thc hnh:

    - Xl dliu vi try-catch- Nm ngoi l- To lp ngoi lring- Lu tri tng vo tp tin

    Bi 1:

    Mc ch:- Kim tra dliu nhp ca ngi dng bng cch sdng try-catch.

    Yu cu:Vit chng trnh cho nhp vo 2 snguyn, xut kt quphp chia 2 sny. Yu cu

    kim tra vic nhp s(khng c nhp ch), php chia cho 0.Hng dn:

    Bi tp 2:

    Mc ch:- Kim tra dliu nhp ca ngi dng bng cch vit lp xl ngoi l.

    Yu cu:- Lm li bi 1 vi yu cu kim tra vic nhp 2 sphi l sdng, vit lp xl ring.

    Hng dn:

    Bi tp 3:

    Mc ch:- Kim tra dliu nhp ca ngi dng bng cch vit lp xl ngoi l.

    Yu cu:

    -

    Vit lp xl ngoi lStringTooLongException, lp ny gip thng bo 1 chui no c qu nhiu k t.

    - Vit hm main, cho ngi dng nhp vo tng chui cho n khi ngi dng nhpDONE. Khi mt chui c nhp vo, cn kim tra xem chui c vt qu 20 k tkhng, nu vt th chng trnh thng bo cho ngi dng bit v kt thc chngtrnh. Yu cu sdng lp StringTooLongException xl li ny.

    Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    52/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 52

    Bi tp 4:

    Mc ch:- Kim tra dliu nhp ca ngi dng bng cch vit lp xl ngoi l.

    Yu cu:- Lm li bi 3 vi yu cu nu ngi dng nhp vo mt chui vt qu 20 k tth

    chng trnh thng bo li v vn tip tc thc hin.

    Hng dn:-

    Bi tp 5:

    Mc ch:

    Yu cu:- Hy to mt class tn l OutOfRangeExceptionkim tra vic nhp dliu ca ngisdng. Sinh vin hy to thm mt class sdng OutOfRangException. V dnhyu cu nhp vo 1 sn c gi trt-113 ti 113 tbn phm, nu khng nm trongon gi trny th dng OutOfRangException thng bo li.

    Hng dn:-

    Bi tp 6:

    Mc ch:- Thc hnh IOException

    Yu cu:a)

    Vit hm cho php lu tp tin di dng text file, yu cu khi to l 10 dng, mi dngsc 10 sngu nhin cch nhau bi du ;. Xem hnh minh ha

    b) Tip theo vit hm cho php c tp tin tcu a, xut ra tng gi trca cc phn ttrnmi dng.

    Ghi ch: Trng hp ny c thpht sinh li IOException.

  • 8/12/2019 Final Java1 Exercise 2013

    53/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 53

    Hng dn:Sinh vin xem cch lu tp tin di dng TextFile v cch c dliu ln. Tv dny hy kthp vi StringTokenizerhoc hm splittin hnh tch strong qu trnh c tng dng dliu, cng dn cc gi trny l chng ta sc tng gi trcc phn tngu nhin trn midng.Hm lu TextFile:publicstaticvoidluuTextFile(String filename)

    { try{

    FileOutputStream fOut=newFileOutputStream(filename);PrintWriter print=newPrintWriter(fOut, true);Random rd=newRandom();for(inti=0;i

  • 8/12/2019 Final Java1 Exercise 2013

    54/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 54

    Module 8:Graphic User Interface

    Ni dung kin thc thc hnh:

    - Mc ch ca Module ny gip cc sinh vin hiu c LayoutManager, CommonControl, Event, DialogBox, Advanced Control

    Bi tp 1:

    Mc ch:- Thc hnh cch hin thca sWindows trong Java

    Yu cu:

    Hy hin thca strn, yu cu vit class ktha tJFrameHng dn:

    Gii thch:

  • 8/12/2019 Final Java1 Exercise 2013

    55/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 55

    Bi tp 2:

    Mc ch:- Thc hnh vFlowLayout

    Yu cu:FlowLayout cho php add cc control trn cng mt dng, khi no ht chcha n st

    ng xung dng, ta cng c thiu chnh hng xut hin ca control. Mc nh khi mtJPanel c khi to th bn thn lp cha ny sc kiu Layout l FlowLayout.

    Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    56/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 56

    Bi tp 3:Mc ch:

    - Thc hnh vBoxLayout

    Yu cu:BoxLayout cho php add cc control theo dng hoc ct, ti mi vtr add n chchp

    nhn 1 control, do mun xut hin nhiu control ti mt vtr th bn nn add vtr l 1JPanel ri sau add cc control khc vo JPanel ny.

    BoxLayout.X_AXIS : Cho php add cc control theo hng ttri qua phi.

    BoxLayout.Y_AXIS:Cho php add cc control theo hng ttrn xung di.

    BoxLayoutskhng tng xung dng khi ht chcha, tc l cc control sbche khutnu nh thiu khng gian cha n.

    Hng dn:

  • 8/12/2019 Final Java1 Exercise 2013

    57/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 57

    Bi tp 4: Thc hnh vBorderLayoutMc ch:

    - Thc hnh vBoxLayout

    Yu cu:BorderLayout gip chng ta hin thcc control theo 5 vng: North, South, West, East, Center

    Nu nh khng c 4 vng :North, West, South, East. Th vng Center strn y ca s, thngthng khi a cc control JTable, JTree, ListView, JScrollpane ta thng a vo vngCenter n c thtco gin theo kch thc ca sgip giao din p hn.

    Bi tp 5:

    Thit kgiao din nhsau:

    Hot ng: Chng trnh cho php thay i nh dng chtrong JTextField khi nhn chncheckbox tng ng.

  • 8/12/2019 Final Java1 Exercise 2013

    58/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 58

    Bi tp 6:

    Thit kgiao din nhsau:

    Hot ng: Chng trnh cho php thay i nh dng ca chtrong JTextField khinhn chn radiobutton tng ng.

    Bi tp 7:

    Thit kgiao din gii phng trnh bc 2:

    Hng dn: Sinh vin phi xc nh Layout Manager trc, ta cng c thkhp cc Layout thit kgiao din, t tn control theo yu cu bn diTn Control Tn Bin Control M tJTextField txtSoa Dng nhp gi trcho aJTextField txtSob Dng nhp gi trcho bJTextField txtSoc Dng nhp gi trcho cJTextField txtKetqua Dng hin thkt quJButton btnGiai Vit lnh giiphng trnhJButton btnXoaTrang Xa ton bdliu trong dlJButton btnThoat Vit lnh thot chng trnhJLabel lblTieuDe Gii Phng Trnh Bc 2

  • 8/12/2019 Final Java1 Exercise 2013

    59/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 59

    Bi tp 8:

    Thit kgiao din thc hin cc php ton : + - * :

    Khi bm nt Gii th ty thuc vo php ton c chn m kt quthc hin khc nhau.Bi tp 9:

    Thit kgiao din nhsau:

    Hot ng: Khi ngi dng chn mt dng trn JList th dng shin ra trn JLabel bn

    trn. Yu cu thit lp:

    + Ni dung trong JLabel c canh gia, to ng vin, i mu nn, i mu chcho JLabel.

    + Khng cho php chn nhiu dng trn JList.

    + Khi chng trnh hin ln th dng u tin phi c chn.

    Bi tp 10:

    Thit kgiao din nhsau:

  • 8/12/2019 Final Java1 Exercise 2013

    60/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 60

    Chng trnh cho php ngi dng sao chp cc mc chn trong JList bn tri quaJList bn phi khi nhn nt Copy>>>.

    Dliu trong cc JList phi c c tfile ra v khi nhn nt ng chng trnhth chng trnh scho php lu dliu thay i trong JList bn phi vo file.Thm vo chngtrnh menu lu, ng, sao chp.

    Bi tp 11:

    Thit kgiao din nhsau:

    JComboBox cha sn mt stn file hnh, khi chng trnh hin ln th cho xut hinhnh utin ln JLabel.

    Hot ng: Khi ngi dng chn tn hnh no trong JComboBox th chng trnh shinhnh ra label.

    Bi tp 12:

    Thit kgiao din nhsau: giao din gm 2 JButton v 1 JList c thanh cun.

    Hot ng: Chng trnh cho php thm v xa mt mc trong JList nhsau:

    + Khi ngi dng nhn nt Add Philosopherth chng trnh hin ra mt ca scho nhp

  • 8/12/2019 Final Java1 Exercise 2013

    61/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 61

    + Khi ngi dng nhn nt Remove Selected Philosopherth chng trnh sxa mc angchn trong JList, trc khi xa phi hi xc nhn li, nu khng chn mc no xa th phithng bo.

    Bi tp 13:

    Thit kgiao din nhhnh sau:

    Yu cu xl:+ Khi nhn nt Add Itemth thm ni dung nhp vo JList, cnh bo ngi

    dng trng hp trng nhp hoc nhp trng dliu c.

    + Khi nhn nt Remove Itemth cho php xa cc dng ang chn trong JList,trc khi xa phi hi xc nhn li, cnh bo ngi dng trng hp khng chn m xa.

    + Khi nhn nt Edit Itemth cho php sa ni dung dng ang chn thnh nidung mi trong nhp liu.

    + Khi nhn chn mt dng trn JList th hin ni dung dng ln nhp liu.

    Bi tp 14:

    Thit kgiao din nh hnh bn di v thc hin cc thao tc theo yu cu:

  • 8/12/2019 Final Java1 Exercise 2013

    62/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 62

    - Chng trnh cho php nhp vo cc snguyn tgiao din trong phn nhp thng tin,Khi ngi snhp gi trvo JTextField v click nt Nhp th scp nhp dliuxung JList, Nu checked vo Cho nhp sm th cc sm mi c php a voJList cn khng th thng bo li.

    - Chn tc v, sinh vin phi thc hin ton bcc yu cu- Nt ng chng trnh: shin ththng bo hi ngi sdng c mun ng hay

    khng.

    Bi tp 15:

    Vit chng trnh i mu panel dng JSlider nhhnh:

    Bi tp 16:

    Thit kgiao din nhhnh bn di:

    + Khi ngi dng nhn nt Add Philosopherth chng trnh ln lt hin ra cc

  • 8/12/2019 Final Java1 Exercise 2013

    63/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 63

    ca scho nhp vo First Name, Last Name v Years, sau acc thng tin ny lnJTable

    + Khi ngi dng nhn nt Remove Selected Philosopherth chng trnh sxamc ang chn trong JTable, nu khng chn mc no xa th phi thng bo, trc khixa phi hi xc

    Bi tp 17:

    Vit chng trnh qun l Account

    Bi tp 18:

    i. Vit lp NhanVien vi cc yu cu sau:

    Thuc tnh: m nhn vin (String), phn xng (String), ssn phm (int).

    Cc hm khi to.

    Cc hm get/set.

    Hm getChuan(): trvgi tr300 nu l phn xng A, cn li trv

    500. (chc cc phn xng l A, B, C, D).

    Hm VuotChuan(): trv true khi ssn phm vt chun (chun ty theo phnxng), ngc li trvfalse.

    Hm TinhLuong(): trvlng ca nhn vin, lng = ssn phm * ngi, nu ssn phm vt chun th phn vt c tnh n gi l 30000, cn li tnh n gi l 20000.

    Hm toString(): trvm nhn vin.

    ii. Thit kgiao din nhhnh bn di

    Giao din cho nhp m nhn vin, ssn phm, chn phn xng. Yu cu Tinlng c nh dng nhhnh.

  • 8/12/2019 Final Java1 Exercise 2013

    64/73

  • 8/12/2019 Final Java1 Exercise 2013

    65/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 65

    - Cho php cp nht thng tin- Cho php lu / c danh mc sn phm- Yu cu sdng JMenuBar, JList, JTable, JCombobox,

    Bi tp 20:

    (i).Vit lp SinhVien vi yu cu sau:

    Thuc tnh: m sinh vin (String), htn (String), m lp (String), im mn 1(double), im mn 2 (double).Cc hm khi to.Cc hm get/set.Hm DiemTrungBinh(): trvim trung bnh ca 2 mn hc.Hm KetQua(): trvukhi im trung bnh >=5, ngc li l Rt.Hm toString(): trvm sinh vin.

    (ii) Thit kgiao din nhhnh bn di

    Giao din cho nhp m sinh vin, htn, chn m lp, nhp im mn 1, mn 2.

    Menu Write Data to diskdng lu dliu xung cng

    Menu Open Data from diskc dlitcngMenu Exitdng thot chng trnh

  • 8/12/2019 Final Java1 Exercise 2013

    66/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 66

    Yu cu xl:+ Nt Kt qu: xut ra im trung bnh v kt quca sinh vin ang nhp (xem hnh). Ch nhp im mn 1 v mn 2 phi l s.

    + Nt Thm: thm mt sinh vin vo table vi cc ct nhhnh. Ch khng c thm khi:- Khng nhp dliu.- im mn 1 v mn 2 khng phi l s.- Trng m sinh vin.

    + Nt Xa: xa mt sinh vin ang chn trn table. Ch phi hi trc khi xa vkhng c xa khi cha chn dng no.

    + Khi chn 1 dng trn table th hin thng tin sinh vin ln cc nhp liu (xem hnh).

    Bi tp 21:

    Thit kgiao din v thc hin nhhnh bn di:

    Chng trnh cho php thm 1 nt con hoc nt anh em ca nt ang chn khi ngi dng nhnnt Add Childhoc Add Sibling,nt Deletesxa nt ang chn.

  • 8/12/2019 Final Java1 Exercise 2013

    67/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 67

    Bi tp 22:

    (i) Vit lp SinhVien vi yu cu sau:Thuc tnh: m sinh vin (String), htn (String), gii tnh (boolean), m lp

    (String).Cc hm khi to.

    Cc hm get/set.Hm toString(): trvchui thng tin gm: m sinh vinhtngii tnh.(ii) Thit kgiao din nhhnh bn di:

    Yu cu giao din: Trn JTree c sn nt gc DS lopv cc nt con l cc m lp: NCTH2A,NCTH2B, NCTH2C, NCTH2K.

    Yu cu xl:

    + Nt Thm: thm mt sinh vin vo lp ang chn trn JTree (xem hnh). Ch khng cthm khi:

    - Khng nhp dliu.- Khng chn m lp trn JTree.

    - Trng m sinh vin.+ Nt Xa: xa sinh vin ang chn trn JTree. Ch phi hi trc khi xa v khng cxa khi:

    - Khng chn nt mun xa.- Chn vo nt gc hoc nt m lp.

    + Khi chn nt sinh vin th hin thng tin sinh vin ln cc nhp liu (xem hnh).

  • 8/12/2019 Final Java1 Exercise 2013

    68/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 68

    Bi tp 23:

    Thc hnh vto Menu. Yu cu thit kMenu theo hnh sau, ng vi mi menu item sinh vinhy ci t coding hin ththngbo l ang chn menu no.

    Hng dn:JMenuBarJMenuJMenuItem. Phi bit kt hp cc class ny.

    MenuBar sadd Menu, Menu sadd MenuItem, ri gi setJMenuBar(menuBar);

    Yu cu gilp Menu ging nh chng trnh Foxit Reader:

    Menu File c giao din nhtrn

    Menu Edit c giao din nh trn

  • 8/12/2019 Final Java1 Exercise 2013

    69/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 69

    Bi tp 24:

    Thc hnh vJToolBar, tng tnh cu 12, gilp Toolbar ca chng trnh Foxit Reader,ng vi mi lnh trn JToolBar, sinh vin hy xutt thng bo ang sdng chc nng no.

    Hng dn: to cc JButton ri add vo JToolBar

    Bi tp 25:

    Thc hnh vTimer class

    Dng class Timer thit kng dng ImageAnimation.

    Giao din sc 2 JButton: Start v Stop. Khi bm Start chng trnh shin thhnh nh tun ttrong mng 10 hnh nh c sn. Bm Stop tm dng duyt hnh nh. Xem hnh yu cu

    Hng dn: Dng CardLayout v Timer

    importjava.awt.*;

    importjava.awt.event.*;

    importjavax.swing.*;publicclassImageAnimation extendsJFrame{

    privatestaticfinallongserialVersionUID= 1L;

    Timer timer;

    privateintpos=1;

    publicImageAnimation(String title)

    {

    super(title);

    timer=newTimer(500, null);

    }

    publicvoiddoShow()

  • 8/12/2019 Final Java1 Exercise 2013

    70/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 70

    {

    setSize(500,550);

    setLocationRelativeTo(null);setDefaultCloseOperation(EXIT_ON_CLOSE);

    addControl();

    setVisible(true);

    }

    publicvoidaddControl()

    {JPanel pnBorder=newJPanel();pnBorder.setLayout(newBorderLayout());

    JPanel pnNorth=newJPanel();

    JButton btnStart=newJButton("Start");JButton btnStop=newJButton("Stop");

    pnNorth.add(btnStart);pnNorth.add(btnStop);

    pnBorder.add(pnNorth,BorderLayout.NORTH);

    finalJPanel pnCenter=newJPanel();

    pnCenter.setLayout(newCardLayout());

    pnBorder.add(pnCenter,BorderLayout.CENTER);pnCenter.setBackground(Color.RED);

    JPanel []pnArr=newJPanel[10];

    addImage(pnCenter,pnArr);

    showImage(pnCenter,"card1");btnStart.addActionListener(newActionListener() {

    publicvoidactionPerformed(ActionEvent arg0) {

    timer.start();timer.addActionListener(newTimerPanel(pnCenter));

    }});

    btnStop.addActionListener( newActionListener() {

    publicvoidactionPerformed(ActionEvent arg0) {timer.stop();

    }

    });

    Container con=getContentPane();

    con.add(pnBorder);

    }

    privatevoidaddImage(JPanel pnCenter,JPanel []pnArr){

    for(inti=0;i

  • 8/12/2019 Final Java1 Exercise 2013

    71/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 71

    }

    privateclassTimerPanel implementsActionListener

    {JPanel pn=null;

    publicTimerPanel(JPanel pn) {

    this.pn=pn;

    }

    publicvoidactionPerformed(ActionEvent arg0) {

    showImage(pn,"card"+pos);pos++;

    if(pos>=10)

    pos=1;

    }}

    publicstaticvoidmain(String[] args) {;ImageAnimation imgUi=newImageAnimation("Image Animation!");

    imgUi.doShow();

    }}

    Bi tp 26:

    Ci tin bi tp 10. Chng trnh scho php c danh sch cc hnh nh bt ktrong a.

    Hng dn:

    importjava.awt.*;

    importjava.awt.event.*;importjava.io.File;

    importjavax.swing.*;

    publicclassImageAnimation2 extendsJFrame{

  • 8/12/2019 Final Java1 Exercise 2013

    72/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    Trang 72

    privatestaticfinallongserialVersionUID= 1L;

    Timer timer;

    privateintpos=0;

    publicImageAnimation2(String title)

    {

    super(title);

    timer=newTimer(500, null);

    }

    publicvoiddoShow(){

    setSize(500,550);

    setLocationRelativeTo(null);

    setDefaultCloseOperation(EXIT_ON_CLOSE);addControl();

    setVisible(true);}

    publicvoidaddControl()

    {JPanel pnBorder=newJPanel();

    pnBorder.setLayout(newBorderLayout());

    JPanel pnNorth=newJPanel();JButton btnBrowser=newJButton("Browser");

    JButton btnStart=newJButton("Start");

    JButton btnStop=newJButton("Stop");

    pnNorth.add(btnBrowser);pnNorth.add(btnStart);

    pnNorth.add(btnStop);

    pnBorder.add(pnNorth,BorderLayout.NORTH);

    finalJPanel pnCenter=newJPanel();pnCenter.setLayout(newCardLayout());

    pnBorder.add(pnCenter,BorderLayout.CENTER);

    pnCenter.setBackground(Color.RED);

    btnStart.addActionListener(newActionListener() {

    publicvoidactionPerformed(ActionEvent arg0) {

    timer.start();

    timer.addActionListener(newTimerPanel(pnCenter));

    }

    });

    btnStop.addActionListener( newActionListener() {

    publicvoidactionPerformed(ActionEvent arg0) {timer.stop();

    }});

    btnBrowser.addActionListener(newActionListener() {

    publicvoidactionPerformed(ActionEvent arg0) {JFileChooser jfc=newJFileChooser();

    jfc.setMultiSelectionEnabled(true);

    if(jfc.showOpenDialog(null)==JFileChooser.APPROVE_OPTION)

    {File []files=jfc.getSelectedFiles();

    for(inti=0;i< files.length;i++)

    {

  • 8/12/2019 Final Java1 Exercise 2013

    73/73

    i Hc Cng Nghng Nai Khoa Cng NghThng Tin

    File f=files[i];

    ImageIcon icon=newImageIcon(f.getPath());

    JPanel pn=newJPanel();

    JLabel lbl=newJLabel(icon);

    pn.add(lbl);

    pnCenter.add(pn,"card"+i);

    }

    showImage(pnCenter, "card0");}

    }

    });

    Container con=getContentPane();con.add(pnBorder);

    }

    publicvoidshowImage(JPanel pn,String cardName)

    {

    CardLayout cl=(CardLayout)pn.getLayout();cl.show(pn, cardName);

    }

    privateclassTimerPanel implementsActionListener{

    JPanel pn=null;

    publicTimerPanel(JPanel pn) {

    this.pn=pn;}

    publicvoidactionPerformed(ActionEvent arg0) {

    showImage(pn,"card"+pos);pos++;

    if(pos>=pn.getComponentCount())pos=0;

    }

    }publicstaticvoidmain(String[] args) {;

    ImageAnimation2 imgUi=newImageAnimation2("Image Animation!");

    imgUi.doShow();

    }

    }