[LT HĐT với Java] Bài tập lớp trừu tượng, phương thức trừu tượng trong Java [311016]

Bài tập lớp trừu tượng, phương thức trừu tượng trong Java:
 Xây dựng project tính lương cho nhân viên công ty ABC. Trong công ty có các loại đối tượng cần tính lương sau:
 1. Lập trình viên:
  Lương = Lương cơ bản + Thưởng tháng
   ( trong đó, thưởng tháng = 1,5 lương cơ bản nếu số ngày công >= 23; ngược lại thưởng tháng = 1 lương cơ bản).
 2. Nhân viên văn phòng:
  Lương = Hệ số lương * Lương cơ bản
  ( trong đó, hệ số lương khởi điểm =2.34, cứ sau 3 năm hệ số lương tăng thêm 0.33)
 3. Cán bộ quản lý:
  Lương = Hệ số lương * Lương cơ bản + Phụ cấp chức vụ
  ( trong đó, hệ số lương tính tương tự NV văn phòng; Phụ cấp chức vụ = 2,000,000đ nếu chức vụ là trưởng phòng, 1,500,000đ nếu chức vụ là phò phòng)
*Yêu cầu:
 + Sử dụng mô hình lớp kế thừa
 + Sử dụng phương thức khởi tạo trong mỗi lớp
 + Nhập thông tin, và in thông tin nhân viên.
--------
[Sử dụng Netbean]
Xây dựng project như hình vẽ


Trong đó, lớp NV là lớp trừu tượng; lớp LapTrinhVien kế thừa lớp NV; lớp NVVP kế thừa lớp NV; lớp CanBoQL kế thừa lớp NVVP.

//
/*
  lớp trừu tượng (abstract class) - lớp NV
 */


package lthdt_bai2_311016;
import java.util.Scanner;
/**
 *
 * @author tailieucntt.org
 */
public abstract class NV {
    String hoTen, loaiNV;
    final float LCB=1050000, HeSoLuongKhoiDiem=2.34f;
 
    // Khởi tạo (constructor)
    public NV(String hoTen, String loaiNV){
        this.hoTen=hoTen;
        this.loaiNV=loaiNV;
    }
 
    // Nhập thông tin
    void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.print("\n + Nhap thong tin nhan vien: ");
        System.out.print("\n - Ho va ten: ");
        hoTen=inp.nextLine();
     
    }
    // Phương thức trừu tượng, tính lương
    abstract float TinhLuong();
    // In thong tin
    void InTT(){
       System.out.print("\n + In thong tin NV: ");
       System.out.print("\n - Ho va ten: "+ hoTen);
       System.out.print("\n - Loai nhan vien: "+loaiNV);
       System.out.print("\n - Luong thang: "+TinhLuong());
    }
}
//

/*
 Lớp LapTrinhVien
 */

package lthdt_bai2_311016;
import java.util.Scanner;
/**
 *
 * @author tailieucntt.org
 */
class LapTrinhVien extends NV{
    int soNgayLV;
    // phương thức khởi tạo
    public LapTrinhVien(String hoTen, String loaiNV,int soNgayLV){
        super(hoTen,loaiNV);
        this.soNgayLV=soNgayLV;
    }
    // Nhâp thông tin
    void NhapTT(){
        super.NhapTT();
        loaiNV="Lap trinh vien";
        Scanner inp=new Scanner(System.in);
        System.out.print("\n - So ngay cong: ");
        soNgayLV=inp.nextInt();
    }
    // Tính lương
    float TinhLuong(){
        float thuongThang=0;
        if(soNgayLV>=23) thuongThang=1.5f*LCB;
        else thuongThang=LCB;
        return LCB+thuongThang;
     
    }
}

//
/*
 Lớp Nhân viên VP
 */

package lthdt_bai2_311016;
import java.util.Scanner;
/**
 *
 * @author tailieucntt.org
 */
public class NVVP extends NV{
    int soNamCT;
    // Phương thức khởi tạo
    public NVVP(String hoTen, String loaiNV, int soNamCT){
        super(hoTen,loaiNV);
        this.soNamCT=soNamCT;
    }
    // Nhập thông tin
    void NhapTT(){
        super.NhapTT();
        loaiNV="Nhan vien van phong";
        Scanner inp=new Scanner(System.in);    
        System.out.print("\n - So nam cong tac: ");
        soNamCT=inp.nextInt();
    }
    // Tính lương
    float TinhLuong(){      
        int soLanTangLuong=soNamCT/3;
        float heSoLuong=soLanTangLuong*0.33f+HeSoLuongKhoiDiem;
        return heSoLuong*LCB;
    }
 
}
// 
/*
 Lớp cán bộ quản lý
 */

package lthdt_bai2_311016;
import java.util.Scanner;
/**
 *
 * @author tailieucntt.org
 */
public class CanBoQL extends NVVP {
    String chucVu;
    // Phương thức khởi tạo
    public CanBoQL(String hoTen, String loaiNV, int soNamCT, String chucVu){
        super(hoTen,loaiNV,soNamCT);
        this.chucVu=chucVu;      
    }
    // Nhâp thông tin
    void NhapTT(){
        super.NhapTT();
        loaiNV="Can bo quan ly";
        Scanner inp=new Scanner(System.in);    
        System.out.print("\n - Chuc vu: ");
        chucVu=inp.nextLine();
    }
    // Tính lương
    float TinhLuong(){
        int soLanTangLuong=soNamCT/3;
        float heSoLuong=soLanTangLuong*0.33f+HeSoLuongKhoiDiem;
        float phuCapChucVu=0;
        if(chucVu.equals("Truong Phong")) phuCapChucVu=2000000;
        if(chucVu.equals("Pho Phong")) phuCapChucVu=1500000;
        return heSoLuong*LCB+phuCapChucVu;
    }
}

//
/* Lớp chính ( LTHDT_Bai2_311016) */

package lthdt_bai2_311016;
import java.util.Scanner;
/**
 *
 * @author tailieucntt.org
 */
public class LTHDT_Bai2_311016 {
 
    public static void main(String[] args) {
        int so=0;  
        Scanner inp=new Scanner(System.in);
     
        do{
         System.out.print("\n \n * Ban vui long lua chon: ");  
         System.out.print("\n 1- Lap trinh vien ");
         System.out.print("\n 2- Nhan vien van phong");
         System.out.print("\n 3- Can bo quan ly ");
         System.out.print("\n 4- Thoat khoi chuong trinh");
          System.out.print("\n \n Chon doi tuong nhan vien: ");
         so=inp.nextInt();
         if(so<1||so>4)
            System.out.print("\n * Nhap sai, lua chon lai");
         else{
            if(so==1){
             LapTrinhVien nv1 =new LapTrinhVien("Nguyen Van A","Lap Trinh Vien",1);
             nv1.NhapTT();
             nv1.InTT();
            }
            if (so==2){
             NVVP nv2=new NVVP("Nguyen Van A","Lap Trinh Vien",1) ;
             nv2.NhapTT();
             nv2.InTT();
            }
            if (so==3){
             CanBoQL nv3=new CanBoQL("Nguyen Van A","Lap Trinh Vien",1,"Truong phong") ;
             nv3.NhapTT();
             nv3.InTT();
            }
         }
        }while(so!=4);
    }
 
}

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Java core] Bài tập: Tính tổng giai thừa [311016]

Bài tập: Tính tổng giai thừa
 S=1!+2!+3!+...+n! (n là số nguyên dương, 1<n<10, nhập vào từ bàn phím)

-----------
[Sử dụng Netbean]
Xây dựng Project như hình vẽ


// Class LTHDT_Bai1_311016

package lthdt_bai1_311016;
import java.util.Scanner;

/**
 *
 * @author tailieucntt.org
 */

public class LTHDT_Bai1_311016 {
    static int n;
    // Nhap n
    static void NhapN(){
        System.out.print("\n + Nhap n:");
        Scanner inp=new Scanner(System.in);
        do{
            System.out.print("\n n=");
            n=inp.nextInt();
            if(n<1||n>10)
                System.out.print("\n Nhap lai n! ");
        }while(n<1||n>10);
    }
    // Tinh giai thua cua 1 so
   static long GiaiThua(int a){
        long gt=1;
        for(int i=1;i<=a;i++)
            gt=gt*i;
        return gt;
    }
    // Tinh tong giai thua
   static long TongGiaiThua(int n){
        long tongGT=0;
        for(int i=1;i<=n;i++)
            tongGT=tongGT+GiaiThua(i);
        return tongGT;
    }
    // In ket qua
  static void InKQ(){
       System.out.print("\n + Tong giai thua: "+TongGiaiThua(n));
   }
 
    public static void main(String[] args) {
        NhapN();
        InKQ();
       
    }
   
}

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Lập trình hướng đối tượng với Java] Ví dụ lớp trừu tượng (abstract class) [290916]

[Lập trình hướng đối tượng với Java] Ví dụ lớp trừu tượng (abstract class) [290916]
Xây dựng các class:
- Class NV (abstract)
 + Thuộc tính: Họ tên, địa chỉ, năm sinh, hệ số lương
 + Phương thức: Khởi tạo, nhập, tính lương (abstract), in thông tin
- Class LapTrinhVien kế thừa NV, bổ sung thêm
 + Thuộc tính: Số năm công tác
 + Phương thức: Tính lương
Trong đó: lương = hệ số lương * LCB + thưởng
(thưởng = 1,5 LCB nếu số năm công tác >10; ngược lại, thưởng = 1,0 LCB)
* Yêu cầu:
Nhập và in ra thông tin 01 nhân viên là lập trình viên
(họ tên, địa chỉ, năm sinh, lương)
------
Xây dựng Project như hình vẽ:


Code Java:

+ class NV

package vidu_loptruutuong_290916;
import java.util.Scanner;
public abstract class NV {
    // thuoc tinh
    final float LCB=1050000;
    String hoTen, diaChi;
    int namSinh;
    float heSoLuong;
 
    // Phuong thuc khoi tao
    public NV(String hoTen, String diaChi, int namSinh, float heSoLuong){
        this.hoTen=hoTen;
        this.diaChi=diaChi;
        this.namSinh=namSinh;
        this.heSoLuong=heSoLuong;
    }
 
    // Phuong thuc nhap thong tin
    public void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.println("\n * Nhap thong tin nhan vien: ");
        System.out.print("\n + Ho ten: ");
        hoTen=inp.nextLine();
        System.out.print("\n + Dia chi: ");
        diaChi=inp.nextLine();
        System.out.print("\n + Nam sinh: ");
        namSinh=inp.nextInt();
        System.out.print("\n + He so luong: ");
        heSoLuong=inp.nextFloat();
    }
 
    // Phuong thuc tinh luong (abstract)
    public abstract float TinhLuong();
 
    // In thong tin
    public void InTT(){
        System.out.print("\n * In thong tin nhan vien: ");
        System.out.print("\n + Ho ten: "+hoTen);
        System.out.print("\n + Dia chi: "+diaChi);
        System.out.print("\n + Nam sinh: "+namSinh);
        System.out.print("\n + He so luong: "+heSoLuong);
        System.out.print("\n + Luong thang: "+TinhLuong());
     
    }
}


+ class LapTrinhVien

package vidu_loptruutuong_290916;
import java.util.Scanner;
public class LapTrinhVien extends NV{
    // thuoc tinh
    int soNamCT;
 
    // phuong thuc khoi tao
    public LapTrinhVien(String hoTen, String diaChi, int namSinh, float heSoLuong,int soNamCT){
        super(hoTen, diaChi, namSinh, heSoLuong);
        this.soNamCT=soNamCT;
    }
 
    // phuong thuc nhap thong tin
    public void NhapTT(){
        super.NhapTT();
        Scanner inp=new Scanner(System.in);
        System.out.print("\n + So nam cont tac: ");
        soNamCT=inp.nextInt();
    }
 
    // phuong thuc tinh luong
    public float TinhLuong(){
        float thuong;
        if(soNamCT>10)
            thuong=(float)1.5*LCB;
        else thuong=LCB;
        return (heSoLuong*LCB+thuong);
    }
}


+ class ViDu_LopTruuTuong_290916

package vidu_loptruutuong_290916;

public class ViDu_LopTruuTuong_290916 {
    public static void main(String[] args) {
        // Khai bao doi tuong Lap trinh vien
        LapTrinhVien bill =new LapTrinhVien("","",1,1,1);
        bill.NhapTT();
        bill.InTT();
    }
 
}
----------


Cùng bạn tự học CNTT - tailieucntt.org

[KTLT C/C++] Chữa bài Test - Kỹ thuật lập trình 280916

[KTLT C/C++] Chữa bài Test - Kỹ thuật lập trình 280916

Câu 1:  Viết chương trình thực hiện
+ Nhập vào từ bàn phím n,m,x (sao cho: n,m là số nguyên thỏa mãn, 2<=n<=m<=10 ; x là số thực thỏa mãn, 1<=x<=5)
+ Tính:
  S1= m!/((m-n)!*n!)
  S2= x^1 / 1! + x^2 / 2! + ... + x^n /n!

--------
Code TC3.0

// Cau 1.
#include<iostream.h>
#include<conio.h>
#include<math.h>
// khai bao bien toan cuc
int m,n;
float x;
// Nhap m,n,x
void Nhap(){
// nhap n
cout<<"\n Nhap n:\n";
do{
cout<<"\n n= "; cin>>n;
if(n<2||n>10) cout<<"\n Nhap lai n!";
}  while (n<2||n>10);
// nhap m
cout<<"\n Nhap m:\n";
do{
cout<<"\n m= "; cin>>m;
if(m<n||m>10) cout<<"\n Nhap lai m!";
}  while (m<n||m>10);
// nhap x
cout<<"\n Nhap x:\n";
do{
cout<<"\n x= "; cin>>x;
if(x<1||x>5) cout<<"\n Nhap lai x!";
}  while (x<1||x>5);
}
// Tinh giai thua
long GiaiThua(int a){
long gt=1;
for(int i=1;i<=a;i++)
gt=gt*i;
return gt;
}
// Tinh S1
long Tinh_S1(int m, int n){
return GiaiThua(m)/(GiaiThua(n)*GiaiThua(m-n));
}
// Tinh S2
float Tinh_S2(int n, float x){
float s=0;
for(int i=1;i<=n;i++)
s=s+(float)pow(x,i)/GiaiThua(i);
return s;
}
// In Ket qua
void InKQ(){
cout<<"\n S1= "<<Tinh_S1(m,n);
cout<<"\n S2= "<<Tinh_S2(n,x);
}
// Ham main
void main(){
clrscr();
Nhap();
InKQ();
getch();
}



-----------------------------------
Câu 2: Viết các hàm thực hiện
+ Nhập từ bàn phím dãy số nguyên có n phần tử ( 3<=n<=100)
+ In dãy vừa nhập
+ Tìm số chẵn đầu tiên trong dãy
+ Đếm tất cả các số là bội của 3 và 5 trong dãy
+ Sắp xếp dãy tăng dần, in dãy đã sắp xếp
+ Loại bỏ các số trùng nhau trong dãy và in ra màn hình


Code TC3.0

// Cau 2.
#include<iostream.h>
#include<conio.h>

// khai bao bien toan cuc
int n,a[100];

// Nhap day so
void Nhap(){
// nhap n
cout<<"\n Nhap n:\n";
do{
cout<<"\n n= "; cin>>n;
if(n<3||n>100) cout<<"\n Nhap lai n!";
}  while (n<3||n>100);
// nhap mang
cout<<"\n Nhap mang:\n";
for(int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]="; cin>>a[i];
}
}
// In day
void InDay(){
cout<<"\n In day: \n";
for(int i=0;i<n;i++)
cout<<a[i]<<", ";
}
// Tim so chan dau tien trong day
void TimSoChan(){
for(int i=0;i<n;i++)
if(a[i]%2==0) break;
if(i<n) cout<<"\n So chan dau tien la: "<<a[i];
else
cout<<"\n Day khong ton tai so chan.";
}
// Dem boi cua 3,5
void DemBoi(){
int dem=0;
for(int i=0;i<n;i++)
if(a[i]%3==0 &&a[i]%5==0)
dem++;
cout<<"\n So cac so la boi cua 3 va 5: "<<dem;
}
// Sap xep day tang dan
void SapXep(){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
 if(a[i]>a[j])
  {
int t=a[i]; a[i]=a[j];a[j]=t;
  } // in day
InDay();
}
// Loai bo phan tu trung nhau
void LoaiPhanTuTrung(){
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
 if(a[i]==a[j])
  {
    for(int g=j;g<n-1;g++)
a[g]=a[g+1];
    n--;
  }
// In day
InDay();
}
// Ham main
void main(){
clrscr();
Nhap();
InDay();
TimSoChan();
DemBoi();
SapXep();
LoaiPhanTuTrung();
getch();
}



----------


Cùng bạn tự học CNTT - tailieucntt.org

[Lập trình Hướng đối tượng với Java] Ví dụ xây dựng lớp kế thừa trong Java [270916]

[Lập trình Hướng đối tượng với Java] Ví dụ xây dựng lớp kế thừa trong Java [270916]
Ví dụ xây dựng lớp kế thừa trong Java.
1. Xây dựng class SV
+ Thuộc tính:
- Mã sinh viên
- Tên sinh viên
- Năm sinh
- Giới tính
+ Phương thức:
- Nhập thông tin
- In thông tin
2. Xây dựng class SV_CNTT kế thừa (extends) class SV, bổ sung thêm
+ Thuộc tính:
- Học lớp
- Điểm: Lập trình Java(3tc), Cơ sở dữ liệu(3tc), Mạng máy tính(2tc),
Tiếng Anh(4tc)
(Điểm thi thỏa mãn, 0<= điểm <=10)
+ Phương thức
- Tính điểm trung bình
- Tính điểm tích lũy
*** Yêu cầu:
- Nhập vào thông tin của 1 sinh viên lớp CĐ CNTT
- In thông tin sinh viên vừa nhập (Mã SV, Họ tên, Năm sinh, giới tính,
Điểm trung bình, Điểm tích lũy).
---------------
Tạo project như hình vẽ dưới đây


Code:
+ class SV

// Xay dung lop cha (superclass)
package vidu_kethua_270916;
import java.util.Scanner;
public class SV {
    // thuoc tinh
    String maSV,hoTen,gioiTinh;
    int namSinh;
   
// phuong thuc
    // Nhap thong tin
    void NhapTT(){
        System.out.print("\n * NHAP THONG TIN SINH VIEN: ");
        Scanner inp=new Scanner(System.in);
        System.out.print("\n + Ma sinh vien: ");
        maSV=inp.nextLine();
        System.out.print("\n + Ho ten: ");
        hoTen=inp.nextLine();
        System.out.print("\n + Gioi tinh: ");
        gioiTinh=inp.nextLine();
        System.out.print("\n + Nam sinh: ");
        namSinh=inp.nextInt();      
    }
    // In thong tin
    void InTT(){
        System.out.print("\n * IN THONG TIN SINH VIEN: ");
        System.out.print("\n + Ma sinh vien: "+maSV);
        System.out.print("\n + Ho ten sinh vien: "+hoTen);
        System.out.print("\n + Gioi tinh: "+gioiTinh);
        System.out.print("\n + Nam sinh: "+namSinh);
    }
   
}

+ class SVCNTT
// Xay dung lop con (subclass)
package vidu_kethua_270916;
import java.util.Scanner;
public class SVCNTT extends SV{
    // thuoc tinh
    float dLapTrinh,dCSDL,dMang,dTA;
    // phuong thuc
    // nhap thong tin
    void NhapTT(){
        super.NhapTT();
        Scanner inp=new Scanner(System.in);
       
        do{
        System.out.print("\n + Diem lap trinh: ");
        dLapTrinh=inp.nextFloat();
        if(dLapTrinh<0||dLapTrinh>10)
            System.out.print("\n Nhap lai diem Lap trinh ");
        }while(dLapTrinh<0||dLapTrinh>10);
       
        do{
        System.out.print("\n + Diem CSDL: ");
        dCSDL=inp.nextFloat();
        if(dCSDL<0||dCSDL>10)
            System.out.print("\n Nhap lai diem CSDL ");
        }while(dCSDL<0||dCSDL>10);
       
        do{
        System.out.print("\n + Diem Mang may tinh: ");
        dMang=inp.nextFloat();      
        if(dMang<0||dMang>10)
             System.out.print("\n Nhap lai diem Mang ");
        }while(dMang<0||dMang>10);
       
        do{
        System.out.print("\n + Diem Tieng Anh: ");
        dTA=inp.nextFloat();
        if(dTA<0||dTA>10)
            System.out.print("\n Nhap lai diem Tieng Anh ");
        }while(dTA<0||dTA>10);
    }
    // tinh diem trung binh
    float DiemTB(){
        return (dLapTrinh*3+dCSDL*3+dMang*2+dTA*4)/12;
    }
    // tinh diem tich luy
    int DiemTichLuy(){
        int dTL;
        float d=DiemTB();
        if(d<4) dTL=0;
        else if(d<5.5) dTL=1;
        else if(d<7) dTL=2;
        else if(d<8.5) dTL=3;
        else dTL=4;
        return dTL;
    }
    // in thong tin
    void InTT(){
        super.InTT();
        System.out.print("\n + Diem Trung binh: "+ DiemTB());
        System.out.print("\n + Diem Trung binh: "+ DiemTichLuy());              
    }
}


+ class ViDu_KeThua_270916 (class chính)

package vidu_kethua_270916;

public class ViDu_KeThua_270916 {
 
    public static void main(String[] args) {
        // khai bao doi tuong sinh vien
        SVCNTT t=new SVCNTT();
        t.NhapTT();
        t.InTT();
    }
   
}


----------


Cùng bạn tự học CNTT - tailieucntt.org

ICT SUBMIT 2016 : Cách mạng số - cơ hội và thách thức

Diễn đàn cấp cao CNTT - TRƯỜNG Việt Nam 2016 mở ra cơ hội tớ lớn cho sinh viên CNTT nói riêng và sinh viên Việt Nam nói chung.

Thủ tướng Nguyễn Xuân Phúc,  có bài phát biểu quan trọng mang tính chi đạo cụ thể. Trong đó nhấn mạnh vai trò đặc biệt quan trọng của CNTT - TT.
Qua dự báo của các chuyên gia, nhà lãnh đạo hàng đầu thì nguồn nhân lực CNTT đăng và sẽ thiếu hụt cả về số lượng và chất lượng một cách nghiệm trọng.
Ông Trương Đinh Tuyển,  trong bài dẫn của mình đã chỉ ra những cơ hội phát triển kinh tế của Việt Nam đã bị bỏ lỡ. Ông cũng chỉ ra các thách thức mà chúng ta phải đối mặt.
Trong diễn đàn đã nhắc nhiều về cuộc cách mạng công nghiệp lần thứ tư. Trong cuộc cách mạng này các xứ thế nổi bật nhất được kể tới như Điện toán nhận thức, trí tuệ nhân tạo, IoT (thế giới vạn vật kết nối), dữ liệu lớn, ...
Ông Trương Gia Bình dẫn dắt diễn đàn quan trọng mà chủ đề là Startup, gắn liền với chủ đề Quốc gia khởi nghiệp.


Sau diễn đàn này Chính phủ sẽ ban hành một loạt các qui định hỗ trợ trợ, thúc đẩy Startup và ứng dụng CNTT - TT. 
Thời cơ tuyệt vời đã đến với Sinh viên CNTT nói riêng và sinh viên Việt Nam nói chung. 
Chúc các bạn thành công.

TxT đưa tin từ ICT SUBMIT 2016.

[Lập trình hướng đối tượng với Java] Ví dụ: Bài toán quản lý điểm [210916]

[Lập trình hướng đối tượng với Java] Ví dụ: Bài toán quản lý điểm 

Xây dựng Project quản lý điểm cho sinh viên.
Yêu cầu: In ra thông tin sinh viên
- Họ tên
- Lớp
- Tuổi
- Điểm tổng kết
- Điểm chữ
(Biết rằng, sinh viên đã có các điểm năm 1,2,3)

* Lưu ý:
Tạo Project QLDiem
Code:

// Class SinhVien
package qldiem; 
import java.util.Scanner; 
public class SinhVien {
    // thuộc tính
    private String hoTen,tenLop;
    private int tuoi;
    private float diem1,diem2,diem3;
   
    // phương thức NhapTT
    void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.print("\n Ho ten: ");      
        hoTen=inp.nextLine();
        System.out.print("\n Ten lop: ");
        tenLop=inp.nextLine();
        System.out.print("\n Tuoi: ");
        tuoi=inp.nextInt();
        System.out.print("\n Diem nam 1: ");
        diem1=inp.nextFloat();
        System.out.print("\n Diem nam 2: ");
        diem2=inp.nextFloat();
        System.out.print("\n Diem nam 3: ");
        diem3=inp.nextFloat();
    } 
    // Tính điểm
    private float TinhDiem(){
        return (diem1+diem2+diem3)/3;
    } 
    // Điểm chữ
    private char DiemChu(){
        char dChu;
        float dtb=TinhDiem();
        if (dtb<4) dChu='F';
        else if (dtb<5.5) dChu='D';
            else if (dtb<7) dChu='C';
                else if (dtb<8.5) dChu='B';
                    else dChu='A';
        return dChu;
    }
    // In thông tin
    void InTT(){
        System.out.println("\n "
                + "* IN THONG TIN SINH VIEN: "
                + "\n Ho ten: "+ hoTen
                + "\n Lop:" + tenLop
                + "\n Tuoi:" + tuoi
                + "\n Diem trung binh: "+TinhDiem()
                + "\n Diem chu: "+DiemChu());               
    }
}

// Class QLDiem (class chính)
package qldiem;
public class QLDiem {
 
    public static void main(String[] args) {
      // khai bao doi tuong
      SinhVien toto=new SinhVien();
      toto.NhapTT();
      toto.InTT();
   
    }
   
}

tailieucntt.org



----------


Cùng bạn tự học CNTT - tailieucntt.org

[Lập trình Hướng đối tượng với Java] Khai báo lớp (class) và đối tượng (object) [Ví dụ 210916]

[Lập trình Hướng đối tượng với Java] Khai báo lớp (class) và đối tượng (object) [Ví dụ 210916]

Sử dụng ngôn ngữ lập trình Java xây dựng Project BaiThi2 với các class sau:
- Class HinhHoc:
+ Thuộc tính: Tên hình
+ Phương thức: Khởi tạo, nhập thông tin (tên hình và số cạnh)
- Class HinhTron (hình tròn), kế thừa lớp HinhHoc, bổ sung thêm các thuộc tính và phương thức:
+ Thuộc tính: r (bán kính)
+ Phương thức: Nhập thông tin (kế thừa từ lớp HinhHoc; bố sung thêm nhập r), tính chu vi, tính diện tích, in kết quả.


* Lưu ý: 
Tạo project: KhaiBaoClass_Object.
Code:

package baithi2;
import java.util.Scanner;

// class HinhHoc
class HinhHoc{
    // thuoc tinh
    String tenHinh;
    // khoi tao
    public HinhHoc(String tenHinh){
        this.tenHinh=tenHinh;
    }
    // nhap thong tin
    void NhapTT(){
        Scanner inp=new Scanner(System.in);
        System.out.print("\n Nhap ten hinh: ");
        tenHinh=inp.nextLine();
    }
}
// class HinhTamGiac
class HinhTron extends HinhHoc{
    // thuoc tinh
    float r;
    // khoi tao
    public HinhTron(String tenHinh,float r){
        super(tenHinh);
        this.r=r;       
    }
    // Nhap thong tin
    void NhapTT(){
        super.NhapTT();
        Scanner inp=new Scanner(System.in);
        System.out.print("\n Nhap ban kinh: ");
        do{       
        System.out.print("\n + r: ");
        r=inp.nextFloat();
        if (r<=0)
            System.out.print("\n => Nhap lai ban kinh duong tron! ");
        }while(r<=0);
    }
    // Tinh chu vi
    float ChuVi(){
        return (float)(2*Math.PI*r);
    }
    // tinh dien tich
    float DienTich(){
        return (float)Math.PI*r*r;
    }

----------


Cùng bạn tự học CNTT - tailieucntt.org
    // In ket qua
    void InKQ(){
        System.out.print("\n In ket qua: ");
        System.out.print("\n + Ten hinh: "+tenHinh);
        System.out.print("\n + Chu vi: "+ChuVi());
        System.out.print("\n + Dien tich : "+DienTich());               
    }
}

// class chính
public class BaiThi2 {  
    public static void main(String[] args) {
        // khai bao doi tuong
        HinhTron tr=new HinhTron("",1);
        tr.NhapTT();
        tr.InKQ();
    }
   

}


tailieucntt.org

[Java core] Bài tập cấu trúc điều khiển và mảng [210916]

[Java core] Bài tập cấu trúc điều khiển và mảng [210916]

Sử dụng ngôn ngữ lập trình Java viết chương trình thực hiện (6 điểm):
- Nhập vào từ bàn phím dãy số nguyên dương có n phần tử (2< n < 20)
- In dãy số vừa nhập
- In ra màn hình số lớn nhất
Sắp xếp dãy số trên theo thứ tự tăng dần.


------------------
* Lưu ý:
Tạo project: Vidu210916
Code:

package Vidu210916;
import java.util.Scanner;

public class Vidu210916 {
  
    public static void main(String[] args) {
        // khai bao
        int [] a = new int[20];
        int n;
       
        // Nhap day so
        Scanner inp=new Scanner(System.in);
        do{
            System.out.print("\n n= ");
            n=inp.nextInt();
            if (n<2||n>20)
                System.out.print("\n Nhap lai n ");
        }while (n<2||n>20);
       
   
        for(int i=0;i<n;i++)
        {
            System.out.print("\n a["+i+"]= ");
            a[i]=inp.nextInt();
        }
       
        // in day so
        System.out.print("\n In day vua nhap: \n");
        for(int i=0;i<n;i++)       
            System.out.print(a[i]+", ");
           
        // in so lon nhat
        int max=a[0];
        for(int i=0;i<n;i++)       
            if(a[i]>max) max=a[i];
        System.out.print("\n So nho nhat: "+max);
       
        // Sap xep day tang dan
        for(int i=0;i<n-1;i++)       
            for (int j=i+1;j<n;j++)
            if(a[j]<a[i])
            {
                int t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
        
        System.out.print("\n Day da sap xep");                      
        for(int i=0;i<n-1;i++)       
            System.out.print(a[i]+", ");                      
    }   
}
tailieucntt.org

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Bài viết hay] Hãy trả lời những câu hỏi sau, trước khi quyết định trở thành một nhà phát triển độc lập.

[Bài viết hay] Hãy trả lời những câu hỏi sau, trước khi quyết định trở thành một nhà phát triển độc lập.

Lập trình viên độc lập

Tôi có nên trở thành một nhà phát triển độc lập?

Đây là một câu hỏi tôi chắc chắn rằng rất nhiều người sẽ bỏ qua trước khi họ bắt đầu cuộc hành trình của họ như là một nhà phát triển độc lập. Có một số thành công với những mục tiêu của họ, một số thì không. Tôi nghĩ trước khi bắt đầu bạn thực sự nên tự hỏi bản thân một số câu hỏi và nghiêm túc trả lời chúng càng thực tế càng tốt để tránh những "thất vọng" về sau. Nếu bạn muốn làm điều đó để trải nghiệm thì bạn có thể bỏ qua, bởi vì bạn sẽ tìm thấy được niềm vui của bạn. Nhưng nếu bạn muốn làm điều đó như một nghề nghiệp thực sự, bạn nên đọc những câu hỏi sau đây và trả lời chúng một cách thực tế nhất.

1. Trở thành một nhà phát triển độc lập vì bạn thích thế hay bạn muốn tạo dựng sự nghiệp theo con đường này? 

Đối với nhiều người, đây thực sự chỉ là một sở thích hay một cái gì đó họ làm bán thời gian trong khi họ tìm kiếm một công việc toàn thời gian. Quyết định trở thành một nhà phát triển độc lập toàn thời gian mà không nhận thấy được những khó khăn đã được chứng minh là sẽ trở thành một thảm họa chứ không phải là một giấc mơ trở thành sự thật. Để có được một sản phẩm để ra bán, bạn sẽ phải đảm nhiệm rất nhiều công việc. Nếu bạn thực hiện dự án của bạn một mình, ở mức độ tối thiểu bạn cần code, thiết kế scene/level, tạo video/audio, tạo/chỉnh sửa hình ảnh, test, quản lý tài khoản, và tiếp thị sản phẩm của bạn. Nếu bạn không thể làm tất cả những điều này, bạn cần phải tìm kiếm một đội hoặc sẽ phải đối mặt với một chuỗi dài của sự thất vọng và lo lắng.

2. Bạn có đủ khả năng về tài chính cũng như làm chủ cảm xúc khi thất bại? 

Nó sẽ xảy ra, chắn chắn là thế. Nếu trò chơi đầu tiên bạn làm mà đạt được thành công vang dội tức là bạn chỉ vừa trúng số mà thôi. Nhiều khả năng nó sẽ lấy đi của "một chút" thời gian và tiền bạc. Và nếu như bạn không thể mạnh dạng chấp nhận thất bại và cố gắng thử lại một lần nữa, bạn sẽ không thể bước tiếp.

3. Bạn có chắc chắn là những game, ứng dụng bạn sẽ phát triển chỉ cần 1 mình bạn (hoặc thêm một người nào đó) là có thể hoàn thiện? 

Là một nhà phát triển độc lập hoặc nhóm indie nhỏ đòi hỏi bạn phải có khả năng để làm một loạt các nhiệm vụ không "chuyên ngành" khác. Nó giống như bạn là một thợ xây chính, nhiệm vụ của bạn là xếp những cục gạch để xây bức tường, nhưng vì bạn chỉ có một mình, bạn cần phải tự mình xách nước, xúc cát, trộn hồ.... Nếu bạn đang nghĩ đến việc làm một cái gì đó rất chuyên nghiệp và to lớn về quy mô, bạn cần phải suy nghĩ về những rủi ro so với những phần thưởng mà dự án có thể mang lại. Bạn có đủ khả năng tài chính để làm việc trên một dự án 1-2 năm? Nếu không, có lẽ bạn nên bắt đầu từ những cái nhỏ nhất và làm việc theo cách nào đó để bạn có thể phát triển ra nhiều tham vọng lớn hơn.

4. Bạn có thực sự thích thú tất cả các khía cạnh của làm game, ứng dụng? 

Để tạo ra được một sản phẩm, từng công đoạn/thành phần của sự phát triển là sẽ lấy đi của bạn một số lượng thời gian rất đáng kể. Có lẽ sẽ có một số giai đoạn mà bạn không thích hoặc nhàm chán như cắt ghép ảnh, tìm kiếm audio cho từng hành động... Bạn có chắc là bạn có đủ kiên nhẫn để vượt qua những công đoạn này? Nếu bạn không, bạn sẽ có thể bỏ qua hoặc thấy mình tăng tốc để lướt qua các công đoạn này và cuối cùng bạn đã tạo ra một cái gì đó không hoàn thiện.

Đây chỉ là một số câu hỏi mà bạn nên biết trước khi bạn quyết định đi theo con đường phát triển độc lập, nhưng tôi nghĩ nó đã bao hàm hết tất cả những vấn đề của con đường này. Hãy dành một chút thời gian và nghiêm túc trả lời chúng. Tất nhiên, thất bại là một điều tốt nếu bạn có kế hoạch cho nó. Thất bại có thể dạy cho bạn những bài học mà thành công sẽ không bao giờ dạy cho bạn. Nhưng nếu bạn có thể "xử lý" được những câu hỏi này, tôi tin rằng... cho dù bạn có thất bại, nó cũng không thể đánh gục được bạn.

Nguồn gamestudio

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Đồ họa máy tính] Sử dụng thuật toán DDA_Line và tô màu miền kín để vẽ ngôi nhà [C\C++]

Sử dụng thuật toán DDA_Line và thuật toán tô màu miền kín:
Viết chương trình C\C++ vẽ ngôi nhà.




/*  Tô màu miền kín với thuật toán quét dòng */

#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<graphics.h>
#include<dos.h>
// LÀM TRÒN
int Round(float a){
return (int)(floor(a+0.5));
}
// HAM DDA_LINE -x
void ddaline_x(int x1, int y1, int x2, int y2, int c) 
{
   float k,x,y,m;
   k=(float)(y2-y1)/(x2-x1);
   x=x1; y=y1;
   putpixel(x,y,c);
   while (x<=x2){
//delay();
x=x+1;
y=y+k;
putpixel((int)(x),Round(y),c);
   }
}
// HAM DDA_LINE - y
void ddaline_y(int x1, int y1, int x2, int y2, int c)
{
   float k,x,y,m;
   k=(float)(y2-y1)/(x2-x1);
   x=x1; y=y1;
   putpixel(x,y,c);
   while (y<=y2){
delay(10);
y=y+1;
x=x+1.0/k;
putpixel((int)(x),Round(y),c);
   }
}

// duong thang // 0x
void Line_ox(int x1, int x2, int y, int c){
for(int x=x1;x<=x2;x++)
putpixel(x,y,c);
}

// duong thang // 0y
void Line_oy(int x, int y1, int y2, int c){
for(int y=y1;y<=y2;y++)
putpixel(x,y,c);
}

// To mau quet dong mai nha
void ToMaiNha(int y1,int y2,int c){
int x1,x2;
    for(int y=y1;y<=y2;y++)
{
x1=400-2*y;
x2=x1+300;
Line_ox(x1,x2,y,c);
}
}

// to mat truoc
void ToMatTruoc(int x1, int y1, int x2, int y2, int c) 
{
for(int x=x1;x<=x2;x++)
Line_oy(x,y1,y2,c);
}

// to doc nha
void ToDocNha(int y1, int y2, int c) 
{
for(int y=y2;y>=y1;y--){
ddaline_x(400,y,600,y-20,c);
}
// To mau theo thuat toan duong bien
void FloodFill (int x, int y, int in_color, int new_color) 
{
if (getpixel(x, y) == in_color){
putpixel(x, y, new_color);
FloodFill(x-1, y, in_color, new_color);
FloodFill(x+1, y, in_color, new_color);
FloodFill(x, y-1, in_color, new_color);
FloodFill(x, y+1, in_color, new_color);  
}
// HAM CHINH
void main(){
    clrscr();
    int gdriver = DETECT,gmode;
    initgraph(&gdriver,&gmode,"c:\\TC\\BGI");
    cout<<"\** VE NGOI NHA **\n"; 
/* Vẽ các cạnh song song với ox */
// AF
Line_ox(100,400,300,5);
// CD
Line_ox(200,300,200,5);
// GK
Line_ox(100,400,150,5);
// LH
Line_ox(200,500,100,5); 
/* Vẽ các cạnh song song với oy */
// AK
Line_oy(100,150,300,5);
// BC
Line_oy(200,200,300,5);
// DE
Line_oy(300,200,300,5);
// GF
Line_oy(400,150,300,5);
// IJ
Line_oy(600,130,280,5);
/* Vẽ các cạnh xiên */
// KL
ddaline_x(100,150,200,100,5);
// GH
ddaline_x(400,150,500,100,5);
// HI
ddaline_x(500,100,600,130,5);
// FJ
ddaline_x (400,300,600,280,5); 
/* Tô màu ngôi nhà */
   // tô mái nhà
       ToMaiNha(100,150,7);
   // tô tường trước
       ToMatTruoc(100,150,400,300,2);
   // Tô cửa chính
       ToMatTruoc(200,200,300,300,8);
   // Tô đốc nhà
       ToDocNha(150,300,6);
   // Tô phần tam giác đốc nhà
       FloodFill(500,130,0,6);
       getch();
       closegraph();
}
-----------
* Đề nghị các bạn sử dụng các thuật toán khác để vẻ đoạn thẳng và phối hợp các phương pháp tô màu khác nhau để vẻ ngôi nhà.

tailieucntt.org

----------


Cùng bạn tự học CNTT - tailieucntt.org

[Java] Một số ví dụ về cấu trúc điều khiển và mảng trong Java [Chữa bài tập 200416]

 [Code Java] Một số ví dụ về cấu trúc điều khiển và mảng trong Java [Chữa bài tập 200416]


Bài 1. Viết chương trình tính hóa đơn tiền điện
Khung giá:
- 0 đến 100: đơn giá điện 1200đ
- 101 đến 150: đơn giá điện 1500đ
- 151 đến 200: đơn giá điện 1800đ
- lớn hơn 200: đơn giá 2000đ
Yêu cầu: In hóa đơn tiền điện với
+ Họ tên khách hàng:
+ Số đầu:
+ Số cuối:
+ Thành tiền:


package bai1_java_200416;
import java.util.Scanner;

public class Bai1_Java_200416 {
    public static void main(String[] args) {
       String hoTen;
       int soDau,soCuoi;
       float thanhTien;
      
       // Nhap thong tin khach hang
       Scanner inp=new Scanner(System.in);
       System.out.print("\n Ho ten KH: ");
       hoTen=inp.nextLine();
       do{
        System.out.print("\n So dau: ");
        soDau=inp.nextInt();
        if(soDau<0)
            System.out.print("\n Nhap lai so dien ");
       }while(soDau<0);
      
       do{
       System.out.print("\n So cuoi: ");
       soCuoi=inp.nextInt();
       if  (soCuoi<soDau)
            System.out.print("\n Nhap lai so dien ");
       }while (soCuoi<soDau);
      
       int soDien=soCuoi-soDau;
      
       // Tinh tien
       if(soDien<=100)
           thanhTien=soDien*1200;
       else if(soDien<=150)
           thanhTien=100*1200+(soDien-100)*1500;
       else if(soDien<=200)
           thanhTien=100*1200+50*1500+(soDien-150)*1800;
       else
           thanhTien=100*1200+50*1500+50*1800+(soDien-200)*2000;
      
       System.out.print("\n IN THONG TIN HOA DƠN:\n");
       System.out.println("\n + Ho ten khach hang:  "+ hoTen);
       System.out.println("\n + So dien dau: "+soDau);
       System.out.println("\n + So dien cuoi: "+soCuoi);
       System.out.println("\n + Thanh tien: "+thanhTien);
      
      
    }
   
}






Bài 2. Viết chương trình 
- Nhập số thực x, thỏa mãn 1<=x<=3; số nguyên n, thỏa mãn 1<=n<=1000.
- Tính: s=1/x+2!/x^2 +... n!/x^n.

package bai2_java_200416;
import java.util.Scanner;
public class Bai2_Java_200416 {

  
    public static void main(String[] args) {
        float x;
        int n;
       
       Scanner inp=new Scanner(System.in);
       System.out.print("\n Nhap x, n: ");
      
       do{
        System.out.print("\n x= ");
        x=inp.nextFloat();
        if(x<1||x>3)
            System.out.print("\n Nhap lai x ");
       }while(x<1||x>3);
      
      
       do{
        System.out.print("\n n= ");
        n=inp.nextInt();
        if(n<1||n>1000)
            System.out.print("\n Nhap lai n ");
       }while(n<1||n>1000);
      
       //Tinh s
      
       float s=0;
      
       for (int i=1;i<=n;i++)
       {
           // tinh giai thua cua i
           long gt=1;
           for (int j=1;j<=i;j++)
               gt=gt*i;
           s=(float)gt/(float)Math.pow(x,i);
       }
      
       System.out.println("\n S= "+ s);
    }
   
}


Bài 3. Viết chương trình thực hiện
- Nhập vào dãy số nguyễn dương, có không quá 100 phần tử
- In ra vị trí số chẵn
- Sắp xếp dãy tăng dần


package bai3_java_200416;
import java.util.Scanner;
public class Bai3_java_200416 {

   
    public static void main(String[] args) {
        // khai bao mang
        int[] a=new int[100];
        int n;
        // nhap so phan tu mang
        Scanner inp=new Scanner(System.in);
        do{
        System.out.print("\n n= ");
        n=inp.nextInt();
        if(n<1||n>100)
            System.out.print("\n Nhap lai n ");
       }while(n<1||n>100);
       
        // Nhap mang
        for (int i=0;i<n;i++)
            do{
                System.out.print("\n a["+i+"]= ");
                a[i]=inp.nextInt();
                if(a[i]<0)
                    System.out.print("\n Nhap lai a["+i+"]");
            }while(a[i]<0);
        // In ra vi tri so chan
        System.out.print("\n In ra vi tri so chan:\n");      
        for (int i=0;i<n;i++)
            if(a[i]%2==0) System.out.print(i+ ", ");      
       
        // Sap xep day tang dan
        System.out.print("\n Sap xep day tang dan:\n");      
        for (int i=0;i<n;i++)
            for (int j=i+1;j<n;j++)
                if(a[i]>a[j])
                {
                    int t=a[i];
                    a[i]=a[j];
                    a[j]=t;
                }
               
        for (int i=0;i<n;i++)
            System.out.print(a[i]+" , ");
    }
   
}


Bài 4. Đổi cơ số 10 ra 2.
 /*
- Nhập vào từ bàn phím số nguyên a (0<a<255)
- Đổi a ra số nhị phân, in kết quả ra màn hình
*/

package doi10ra2;
import java.util.Scanner;
// Doi co so
 class DoiCoSo{
        int a;
        int m[]=new int[8];
        void DoiCoSo(){
            // Nhap a
            Scanner in=new Scanner(System.in);
            do{
                System.out.printf("\n a= ");
                a=in.nextInt();
                if (a<0||a>255)
                    System.out.printf("\n a= ");
            }while (a<0||a>255);
            // khoi tao mang
            int i;
            for(i=0;i<8;i++)
                m[i]=0;
            // Doi co so
            i=7;           
            while (a!=0)
            {
                m[i--]=a%2;
                a=a/2;               
            }
            // In so co so 2
            System.out.printf("\n In ket qua: ");
            for(i=0;i<8;i++)
                System.out.printf(m[i]+"");           
        }
       
     }

class Doi10ra2 {

    public static void main(String[] args) {
        DoiCoSo t=new DoiCoSo();
        t.DoiCoSo();
    }
}
// -----------------------------------------------


http://lap-trinh-may-tinh.blogspot.com/

Tags

Android ASP Assembly Bài giảng lập trình C và Cpp Bài viết hay Biểu diễn thuật toán Bubble-Sort C C sharp C++ Cây (tree) Cây quyết định CDSL phân tán Công nghệ điện toán đám mây Công nghệ lập trình Cơ sở dữ liệu CSS Danh ngôn lập trình Danh sách liên kết (list) Datamining Đệ quy Đồ họa Độ phức tạp của thuật toán Giải hệ phương trình tuyến tính Góc học tập Góc suy ngẫm Google App Engine Heap-Sort Hệ quản trị CSDL Học lập trình Học lập trình C và CPP qua ví dụ học lập trình Java HTML Insert-sort iOS Java Java Căn bản java core Java GUI JavaScript Kiếm tiền online Kỹ thuật đồ họa máy tính Kỹ thuật lập trình Lập trình căn bản Lập trình Cơ sở dữ liệu Lập trình hướng đối tượng Lập trình hướng đối tượng với Java Lập trình mạng Lập trình mobile lập trình viên Lập trình viên độc lập Luyện thi IC3 Lý thuyết Cơ sở dữ liệu Lý thuyết đồ thị Mạng máy tính Mẹo tìm kiếm trên Google Merge-Sort MS Access Ngôn ngữ lập trình Nhúng code Assembly trong C\C++ Oracle phần cứng máy tính PHP Queue (hàng đợi) Quick-Sort Seclection-sort SQL Stack (ngăn xếp) Thiết kế Web Thủ thuật máy tính Thuật toán Thuật toán di truyền Thuật toán Đệ quy Thuật toán K-Mean Thuật toán khác Thuật toán leo đồi Thuật toán ma trận Thuật toán Sắp Xếp -Sort Thuật toán Tìm kiếm - Search Tiện ích máy tính Tìm kiếm nhị phân Tìm kiếm tuần tự (Line search) Tin học văn phòng Tin tức công nghệ Tính định thức của ma trận Toán rời rạc Trí tuệ nhân tạo Tự học lập trình Android Tự học lập trình C và CPP Tự học lập trình java qua các ví dụ Ứng dụng cơ sở dữ liệu VB XML Xử lý ma trận (mảng 2 chiều) Xử lý mảng 1 chiều Xử lý ngoại lệ