1. Trang chủ
  2. » Công Nghệ Thông Tin

Bai tap thuc hanh java

60 1,3K 20

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 0,95 MB

Nội dung

Bài tập tham khảo về kỹ thuật lập trình với ngôn ngữ Java (có code và minh họa kết quả cụ thể)

Trang 1

BÀI THỰC HÀNH SỐ 1 Bài 1 : Viết chương trình nhập 1,2 hoặc 3 số nguyên dương Nếu người dùng nhập

một số nguyên a, chương trình sẽ hiển thị diện tích của hình tròn có bán kính là a Nếu người dùng nhập vào hai số nguyên a và b thì chương trình sẽ hiển thị diện tích hình chữ nhật có chiều dài a, chiều rộng là b Nếu người dùng nhập vào 3 số nguyên a,b và c thì chương trình trước tiên sẽ kiểm tra các số có phải là 3 cạnh của tam giác không? Nếu đúng , chương trình sẽ hiển thị diện tích của tam giác có chiều dài 3 cạnh là a,b, c; ngược lại, chương trình sẽ hiển thị thông điệp “ không phải là độ dài ba cạnh của một tam giác”

Code :

import java.util.Scanner;

public class Bai1 {

public static int a = 0, b = 0, c = 0;

public void nhap() {

Scanner sc = new Scanner(System.in);

Trang 2

public static boolean kiemtra(int a, int b, int c) {

if ((a + b > c) && (a + c > b) && (b + c > a)) {

public static void main(String args[]) {

Bai1 b1 = new Bai1();

//Khong nhap gan gia tri = 0;

b1.nhap();

if (a != 0 && b == 0 && c == 0) {

Trang 3

public class Bai1 extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

Trang 5

taResut = new JTextArea(5, 40);

taResut.setFont(new Font("Arial", Font.BOLD, 14));

Integer.parseInt(c));

else {

if (!a.equals("") && !b.equals(""))

msg = dientichhcn(Integer.parseInt(a), Integer.parseInt(b));

Trang 6

else if (!a.equals("") && !c.equals(""))

msg = dientichhcn(Integer.parseInt(a), Integer.parseInt(c));

else if (!b.equals("") && !c.equals(""))

msg = dientichhcn(Integer.parseInt(b), Integer.parseInt(c));

public static String dientichhinhtron(int r) {

String str = "Dien tich hinh tron = " + (Math.PI * r * r);

return str;

}

public static String dientichhcn(int a, int b) {

String str = "Dien tich hcn = " + (a * b);

Trang 7

str = "Dien tich tam giac = " + s;

public static void main(String args[]) {

new Bai1("Thuc hanh Java");

}

}

Demo chương trình :

Trang 8

Bài 2: Viết chương trình hiển thị tẩt cả các số n từ 10 đến 1000 có tính chất sau:

tổng cảu tất cả các số trong n bằng tích của tất cả các số có trong n Ví dụ số: 123 có tính chất này, vì 1+2+3=1*2*3

Code :

public class Bai2 {

public static int n, i = 0;

public void hienthi() {

Trang 9

public static void main(String args[]) {

Bai2 b2 = new Bai2();

Trang 11

public void display() {

int a[] = new int[10];

public static void main(String args[]) {

new bai2s("Bai 2 - Thuc hanh Java");

Trang 12

}

}

Kết quả chạy Demo:

Bài 3: Viết chương trình nhập số tự nhiên n (n=1,2,…) và kiểm tra biểu diễn nhị

phân của nó có đối xứng hay không ?

Ví dụ: n=9, biểu diễn nhị phân của nó là 1001 là đối xứng

Còn nếu n=10 , biểu diễn nhị phân của nó là 1010 là không đối xứng

Code :

import java.util.*;

public class Bai3 {

public static int n, m, k;

public void nhap() {

Scanner scanner = new Scanner(System.in);

public void dectobin(int n) {

int[] mang = new int[4];

Trang 13

public static void main(String args[]) {

Bai3 b3 = new Bai3();

Trang 14

Kết quả chạy Demo:

Trang 16

public void tinhdoixung(int n) {

int bin[] = new int[32];

for (int i = 0; i < len; i++)

s1 += bin[i] * Math.pow(2, i);

for (int j = len - 1; j >= 0; j )

s2 += bin[j] * Math.pow(2, (len - j - 1));

String msg = "Bieu dien nhi phan cua " + p + " la: ";

for (int i = len - 1; i >= 0; i )

msg += bin[i];

if (s1 == s2)

msg += " la doi xung!";

else

Trang 17

msg += " la khong doi xung!";

Trang 18

Bài 1 : Viết chương trình nhận một chuỗi và hiển thị các nguyên âm xuất hiện trong

chuỗi Ví dụ : Nếu nhập là “Nguyen” thì hiển thị u,y,e

public class XauGUI extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private JPanel p1, p2, center;

Trang 19

p1.add(tf1);

add(p1, BorderLayout.NORTH);

center = new JPanel();

// center.setBorder(BorderFactory.createTitledBorder( "Chuc nang")); center.setLayout(new FlowLayout(FlowLayout.CENTER));

bt1 = new JButton("Kiem tra");

public static void main(String args[]) {

new XauGUI("Kiem tra nguyen am co trong xau");

}

public void kiemtra() {

str = tf1.getText();

for (int i = 0; i <= str.length(); i++) {

if (str.charAt(i) == 'a' || str.charAt(i) == 'e'

|| str.charAt(i) == 'i' || str.charAt(i) == 'o'

|| str.charAt(i) == 'u' || str.charAt(i) == 'y'

|| str.charAt(i) == 'A' || str.charAt(i) == 'E'

Trang 20

|| str.charAt(i) == 'I' || str.charAt(i) == 'O'

|| str.charAt(i) == 'U' || str.charAt(i) == 'Y') {

Kết quả chạy Demo:

Bài 3: a.Viết chương trình đếm số ký tự cho trước (Ví dụ ký tự ‘u’ trong một chuỗi

cho trước ( ví dụ: nguyen van nguyen)

Code:

import java.awt.*;

import java.awt.event.*;

Trang 21

private static String str, st;

private static int dem = 0;

public DemKyTuChoTruoc(String title) {

Trang 22

public static void main(String args[]) {

DemKyTuChoTruoc ds = new DemKyTuChoTruoc("Dem ky tu cho truoc");

public void dem() {

char[] ch = new char[st.length()];

for (int k = 0; k < st.length(); k++) {

ch[k] = st.charAt(k);

}

for (int l = 0; l < st.length(); l++) {

for (int m = 0; m < str.length(); m++) {

Trang 23

}

}

Kết quả chạy demo :

b Viết chương trình nhập vào một chuỗi và tạo ra bảng tần số xuất hiện của mỗi ký

public class Tanso extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private JLabel lb1;

private JPanel p1, p2;

private JTextField tf1;

private JButton ok;

private JTextArea ta;

public Tanso(String title) {

super(title);

setSize(500, 300);

addZoom();

setVisible(true);

Trang 24

public static void main(String args[]) {

Tanso d = new Tanso("Tan so xuat hien cua cac tu trong xau");

d.setVisible(true);

}

public void dem(String str) {

char[] chs = new char[str.length()];// Luu lai cac ky tu

int[] tmp = new int[str.length()];// Dem so lan ky tu xuat hien

for (int x = 0; x < str.length(); x++)

Trang 25

chs[x] = str.charAt(x);// Luu char

for (int x = 0; x < str.length(); x++) {

for (int y = 0; y < str.length(); y++) {

for (int x = 0; x < str.length(); x++)

ta.append("Ky tu: " + chs[x] + " tan so = " + tmp[x] + "\n");

}

public void demtanso(String str) {

String s = str.toLowerCase();// Chuyen thanh cac chu viet thuong

ArrayList<Character> val = new ArrayList<Character>();

// Array List chua cac char trong String

boolean flag = true;

for (int x = 0; x < s.length(); x++)

Trang 26

// neu trung

}

int max = 0, tmp = 0, dem = 0;

int[] count = new int[val.size()]; // Dem so lan xuat hien cua cac char

for (int x = 0; x < val.size(); x++) {

max = tmp;// so lan ma max

count[x] = tmp;// gan lai so lan xuat hien

}

for (int x = 0; x < val.size(); x++)

ta.append("\t" + val.get(x) + "\t" + count[x] + "\n");

for (int i = 0; i < str.length(); i++) {

Trang 27

public class AnagramGui extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private JPanel p1, p2, p3;

private JLabel lb1, lb2, lb3;

private JTextField tf1, tf2;

private JButton bt1;

private static String str1, str2;

public AnagramGui(String title) {

super(title);

setSize(400, 200);

setLayout(new BorderLayout());

addZoom();

Trang 28

public static void main(String args[]) {

AnagramGui ag = new AnagramGui("Kiem tra chuoi Anagram");

ag.setVisible(true);

}

public void xuli() {

Trang 29

char[] ch1 = new char[str1.length()];

char[] ch2 = new char[str2.length()];

for (int i = 0; i < str1.length(); i++) {

for (int x = 0; x < ch1.length; x++) {

for (int y = 0; y < ch2.length; y++) {

Trang 31

Bài 1: Viết chương trình tính n! với 1<n<=1000

public class Giaithua extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

/** The factorial() method, using BigIntegers cached in a ArrayList */

public static synchronized BigInteger factorial(int x) {

if (x < 0)

throw new IllegalArgumentException("x must be non-negative."); for (int size = table.size(); size <= x; size++) {

BigInteger lastfact = (BigInteger) table.get(size - 1);

BigInteger nextfact = lastfact.multiply(BigInteger.valueOf(size));

Trang 32

public static void main(String arg[]) {

Giaithua gt = new Giaithua("Tinh giai thua");

gt.setVisible(true);

Trang 33

Bài 3:Viết chương trình tạo ra một ma trận (các phần tử của ma trận là ngẫu nhiên

hoặc nhập từ bàn phím) và hiển thị tất cả các điểm yên ngựa trong ma trận Điểm yên ngựa của ma trận là số trên hàng i và cột j và là số nhỏ nhất trong hàng i đồng thời cũng là số lớn nhất trong cột j

Trang 34

Matran matran;

JFrame frMain;

JButton btTaoMT, btHienThi, btXoa, btThoat;

JTextField tfDong, tfCot;

JTextArea taMatran, taHienThi;

pn1.add(new JLabel("So dong: "));

tfDong = new JTextField(5);

pn1.add(tfDong);

pn1.add(new JLabel("So cot: "));

tfCot = new JTextField(5);

Trang 37

mini = maxj = a[i][j];

// tim gia tri nho nhat tren hang i

public static void main(String[] args) {

// TODO Auto-generated method stub

Trang 38

private int m, n;

public Matran(int m, int n) {

Random rand = new Random();

this.m = m;

this.n = n;

this.a = new int[m][n];

for (int i = 0; i < m; i++)

this.a = new int[m][n];

for (int i = 0; i < m; i++)

Trang 39

}

}

Kết quả chạy Demo:

Bài 4: Viết chương trình tính tổ hợp

a với và

b

Code:

import java.util.Scanner;

public class Bai42 {

public long GT(int n) {

Trang 40

Bai42 b4 = new Bai42();

Scanner in = new Scanner(System.in);

System.out.println("Ket qua cau a:" + b4.Ca(k, n));

System.out.println("Ket qua cau b:" + b4.Cb(k, n));

}

}

Kết quả chạy Demo:

Trang 42

public void actionPerformed(ActionEvent ae) {

Object click = ae.getSource();

if (click == btThoat)

Trang 44

public BigInteger giaiThua(int n) {

BigInteger fact = new BigInteger("1");

for (int i = 1; i <= n; i++)

Trang 45

Bài 5: Cho một mảng số nguyên( dương và âm) Viết chương trình tìm mảng con

lớn nhất, tức là mảng con trong đó tổng các phần tử của nó là lớn nhất Ví dụ , nếu cho mảng dưới đây:

pn1.add(new JLabel("Nhap mang: "));

tfMang = new JTextField(30);

pn1.add(tfMang);

JPanel pnBorder = new JPanel(new BorderLayout());

frMain.add(pnBorder, BorderLayout.CENTER);

Trang 46

pn2 = new JPanel(new FlowLayout());

public void actionPerformed(ActionEvent ae) {

Object click = ae.getSource();

Trang 47

.setText("Mang con lon nhat dau tien la nhung so hien thi\n");

try {

int[] x = this.taoMang(tfMang.getText());

int len = x.length;

taHienThi.append("Mang vua nhap: ");

for (int i = 0; i < len; i++)

if (x[i] > 0 && x[i] < 10)

public void TimMangCon(int[] x, int n) {

int i = 0, j, start = 0, end = 0, k, sum, maxSum;

Trang 48

}

i++;

}

taHienThi.append("\nMang con lon nhat: ");

// in mang con lon nhat

public int[] taoMang(String chuoiMang) {

StringTokenizer str = new StringTokenizer(chuoiMang, " ");

int[] a = new int[str.countTokens()];

public static void main(String[] args) {

// TODO Auto-generated method stub

new Bai5();

}

}

Trang 49

Kết quả chạy Demo:

Bài 6:Cho một ma trận các số nguyên ( số dương và số âm) Viết chương trình tìm

ma trận con sao cho tổng tất cả các phần tử của nó là lớn nhất Ví dụ: Nếu mảng cho dưới đây:

Trang 50

a Viết chương trình tạo ra trò chơi puzzle như hình sau(các số là các button)

Trang 51

frMain = new JFrame("PuzzleGame");

for(int i = 0; i < item.length; i++){

menuItem = new JMenuItem(item[i]);

menuItem.addActionListener(this);

menu.add(menuItem);

}

btNumber = new JButton[arr.length];

for(int i=0; i < arr.length; i ++){

btNumber[i] = new JButton(arr[i]);

public void actionPerformed(ActionEvent ae){

String itemSelect = ae.getActionCommand();

public void go(){

int len = arr.length;

Trang 52

public static void main(String[] args) {

// TODO Auto-generated method stub

new PuzzleGame();

}

}

Kết quả chạy Demo:

Bài 7: Viết chương trình thực hiện các phép tính số học cơ bản như trong hình dưới

đây:

Trang 53

Khi người dùng nhất nút “C, textfield sẽ được xoá Khi người dùng kích vào nút

“=” thì chương trình sẽ tính toán biểu thức được nhập trước đó

Code :

import java.awt.*;

import java.awt.event.*;

public class casio extends Frame implements ActionListener {

private static final long serialVersionUID = 1L;

float kq;

Label lb1, lb2;

TextField tf1, tf2;

Panel p1, p2, p3, p31, p23;

Button cong, tru, nhan, chia, kqua, mot, hai, ba, bon, nam, sau, bay, tam,

chin, khong, sin, cos, tan, on, off, ac, del;

cong = new Button("+");

tru = new Button("-");

Trang 54

nhan = new Button("*");

chia = new Button("/");

kqua = new Button("=");

sin = new Button("SIN");

cos = new Button("COS");

tan = new Button("TAN");

off = new Button("OFF");

on = new Button("ON");

ac = new Button("AC");

del = new Button("DEL");

khong = new Button("0");

mot = new Button("1");

hai = new Button("2");

ba = new Button("3");

bon = new Button("4");

nam = new Button("5");

sau = new Button("6");

bay = new Button("7");

tam = new Button("8");

chin = new Button("9");

// chin.setVisible(false);

p1 = new Panel(new GridLayout(3, 1));

p2 = new Panel(new GridLayout(2, 1));

p3 = new Panel(new GridLayout(2, 3));

p31 = new Panel(new GridLayout(2, 2));

Trang 56

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

Trang 59

public static void main(String a[]) {

new casio("may tinh casio");

}

}

Kết quả chạy Demo:

Ngày đăng: 14/03/2014, 23:45

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w