[Java]Mảng 1 chiều đơn giản

  • Thread starter Thread starter hihig9
  • Ngày gửi Ngày gửi

hihig9

New member
Xu
0
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Bai2_1;

import com.sun.swing.internal.plaf.metal.resources.metal;
import java.util.Scanner;

/**
*
* @author Bum
*/
class MangMotChieu {

//<editor-fold defaultstate="collapsed" desc="Properties">
private int[] a;
private int len;

//<editor-fold defaultstate="collapsed" desc="get set">
public int[] getA() {
return a;
}

public void setA(int[] a) {
this.a = a;
}

public int getLen() {
return len;
}

public void setLen(int len) {
this.len = len;
}
//</editor-fold>
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="constructors">
public MangMotChieu(int len) {
this.len = len;
}

public MangMotChieu() {
a = new int[100];
len = 0;
}
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="I/O">
public void NhapDSDong() {
System.out.println("Nhap chieu dai DS: ");

Scanner sc = new Scanner(System.in);
len = sc.nextInt();

a = new int[len];

System.out.println("Nhap cac phan tu cua DS: ");

for (int i = 0; i < len; i++) {
System.out.println("a[" + i + "]=");
a = sc.nextInt();
}
}

public void NhapDSCoDinh() {
len = 15;
a[0] = 5;
a[1] = -3;
a[2] = 7;
a[3] = 2;
a[4] = -4;
a[5] = 74;
a[6] = 1;
a[7] = -7;
a[8] = -24;
a[9] = 64;
a[10] = 1;
a[11] = -4;
a[12] = 74;
a[13] = 24;
a[14] = 74;
}

public void XuatDS() {
for (int i = 0; i < len; i++) {
System.out.print(a + "\t");
}
System.out.println("");
}
//</editor-fold>

//<editor-fold defaultstate="collapsed" desc="Methods">
public void ChenCuoi(int x) {
len++;
a[len - 1] = x;

}

public boolean XoaPhanTuX(int x) {
for (int i = 0; i < len; i++) {
if (a == x) {
XoaPhanTuTheoViTri(i);
return true;
}
}
return false;
}

public void XoaPhanTuTheoViTri(int vt) {
for (int i = vt; i < len - 1; i++) {
a = a[i + 1];
}
len--;
}

public void XoaTatCaPhanTuXTrongDS(int x) {
boolean con;
do {
con = XoaPhanTuX(x);
} while (con);
}

public void XoaTatCaSoAmTrongDS() {
for (int i = 0; i < len; i++) {
if (a < 0) {
XoaPhanTuTheoViTri(i);
i--;
}
}
}

public int TimViTriDauTienCuaX(int x) {
for (int i = 1; i < len; i++) {
if (a == x) {
return i;
}
}
return -1;
}

public int TimPhanTuLonNhat() {
int max = a[0];
for (int i = 1; i < len; i++) {
if (a > max) {
max = a;
}
}
return max;
}

public int TimViTriDauTienCuaPhanTuLonNhat() {
int max = TimPhanTuLonNhat();
for (int i = 0; i < len; i++) {
if (a == max) {
return i;
}
}
return -1;
}

public void XoaTatCaPhanTuLonNhat() {
int max = TimPhanTuLonNhat();
XoaTatCaPhanTuXTrongDS(max);
}

public MangMotChieu TimTatCaViTriCuaPhanTuLonNhat() {
int max = TimPhanTuLonNhat();
MangMotChieu vtmax = TimTatCaViTriCuaPhanTuX(max);
return vtmax;
}

public MangMotChieu TimTatCaViTriCuaPhanTuX(int x) {
MangMotChieu vtmax = new MangMotChieu();
for (int i = 0; i < len; i++) {
if (a == x) {
vtmax.ChenCuoi(i);
}
}

return vtmax;
}

public void ThayPhanTuXBangPhanTuY(int x, int y) {
for (int i = 0; i < len; i++) {
if (a == x) {
a = y;
}
}
}

public void ChenPhanTuXTaiViTri(int x, int vt) {
len++;
for (int i = len - 1; i > vt; i--) {
a = a[i - 1];
}
a[vt] = x;
}

public void ChenPhanTuXVaoTruocPhanTuY(int x, int y) {
MangMotChieu vtX = TimTatCaViTriCuaPhanTuX(y);
int tang = 0;
for (int i = 0; i < vtX.len; i++) {
ChenPhanTuXTaiViTri(x, vtX.a + tang);
tang++;
}
}

public void ChenPhanTuXVaoSauPhanTuY(int x, int y) {
MangMotChieu vtX = TimTatCaViTriCuaPhanTuX(y);
int tang = 0;
for (int i = 0; i < vtX.len; i++) {
ChenPhanTuXTaiViTri(x, vtX.a + 1 + tang);
tang++;
}
}

public void DaoNguocDS() {
for (int i = 0; i <= len / 2; i++) {
int temp = a;
a = a[len - 1 - i];
a[len - 1 - i] = temp;
}
}

public int DemSoPhanTuXTrungNhau(int x) {
int count = 0;
for (int i = 0; i < len; i++) {
if (a == x) {
count++;
}
}
return count;
}

public int DemSoPhanTuXKhongTrungNhau() {
int SoPTBiTrung = 0;
for (int i = 0; i < len; i++) {
if (DemSoPhanTuXTrungNhau(a) > 1) {
XoaTatCaPhanTuXTrongDS(a);
SoPTBiTrung++;
i--;
}
}
return SoPTBiTrung + len;
}

public void XoaTatCaPhanTuTrungNhauTrongDS() {
for (int i = 0; i < len; i++) {
if (DemSoPhanTuXTrungNhau(a) > 1) {
XoaTatCaPhanTuXTrongDS(a);
i--;
}
}
}

public void XoaTatCaPhanTuTrungLapTrongDS() {
MangMotChieu arrVTriX;
for (int i = 0; i < len; i++) {
if (DemSoPhanTuXTrungNhau(a) > 1) {
arrVTriX = TimTatCaViTriCuaPhanTuX(a);
int giam = 0;
for (int j = 1; j < arrVTriX.len; j++) {
XoaPhanTuTheoViTri(arrVTriX.a[j] - giam);
giam++;
}
}
}
}

public void SelectionSort() {
int min;
for (int i = 0; i < len - 1; i++) {
min = i;
for (int j = i + 1; j < len; j++) {
if (a[j] < a[min]) {
min = j;
}
}
int temp = a;
a = a[min];
a[min] = temp;
}
}


//</editor-fold>
}
 
Nếu muốn làm menu chương trình thì sao bạn?

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Bai2_1;

import java.io.IOException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
* @author Bum
*/
public class Program {
public static void main(String[] args) {
MangMotChieu mang = new MangMotChieu();
mang.NhapDSCoDinh();
ChuongTrinh(mang);
}

//<editor-fold defaultstate="collapsed" desc="Menu">
public enum Menu {

XoaPhanTuX(1),
XoaPhanTuTheoViTri(2),
XoaTatCaPhanTuXTrongDS(3),
XoaTatCaSoAmTrongDS(4),
TimPhanTuLonNhat(5),
TimViTriDauTienCuaPhanTuLonNhat(6),
XoaTatCaPhanTuLonNhat(7),
TimTatCaViTriCuaPhanTuLonNhat(8),
ThayPhanTuXBangPhanTuY(9),
ChenPhanTuXTaiViTri(10),
ChenPhanTuXVaoTruocPhanTuY(11),
ChenPhanTuXVaoSauPhanTuY(12),
DaoNguocDS(13),
DemSoPhanTuKhongTrungNhau(14),
XoaTatCaPhanTuTrungNhauTrongDS(15),
XoaTatCaPhanTuTrungLapTrongDS(16),
SapXepDSTang(17),
Thoat(18);
private int value;

Menu(int value) {
this.value = value;
}

}


public static void XuatMenu() {
System.out.println("----CHƯƠNG TRÌNH VỀ MẢNG MỘT CHIỀU----");

System.out.println("Nhap " + Menu.XoaPhanTuX.value + " de Xoa Phan Tu X.");
System.out.println("Nhap " + Menu.XoaPhanTuTheoViTri.value + " de Xoa Phan Tu Theo Vi Tri.");
System.out.println("Nhap " + Menu.XoaTatCaPhanTuXTrongDS.value + " de Xoa Tat Ca Phan Tu X Trong DS.");
System.out.println("Nhap " + Menu.XoaTatCaSoAmTrongDS.value + " de Xoa Tat Ca So Am Trong DS.");
System.out.println("Nhap " + Menu.TimPhanTuLonNhat.value + " de Tim Phan Tu Lon Nhat.");
System.out.println("Nhap " + Menu.TimViTriDauTienCuaPhanTuLonNhat.value + " de Tim Vi Tri Dau Tien Cua Phan Tu Lon Nhat.");
System.out.println("Nhap " + Menu.XoaTatCaPhanTuLonNhat.value + " de Xoa Tat Ca Phan Tu Lon Nhat.");
System.out.println("Nhap " + Menu.TimTatCaViTriCuaPhanTuLonNhat.value + " de Tim Tat Ca Vi Tri Cua Phan Tu Lon Nhat.");
System.out.println("Nhap " + Menu.ThayPhanTuXBangPhanTuY.value + " de Thay Phan Tu X Bang Phan Tu Y.");
System.out.println("Nhap " + Menu.ChenPhanTuXTaiViTri.value + " de Chen Phan Tu Tai Vi Tri.");
System.out.println("Nhap " + Menu.ChenPhanTuXVaoTruocPhanTuY.value + " de Chen Phan Tu X Vao Truoc Phan Tu Y.");
System.out.println("Nhap " + Menu.ChenPhanTuXVaoSauPhanTuY.value + " de Chen Phan Tu X Vao Sau Phan Tu Y.");
System.out.println("Nhap " + Menu.DaoNguocDS.value + " de Dao Nguoc DS.");
System.out.println("Nhap " + Menu.DemSoPhanTuKhongTrungNhau.value + " de Dem So Phan Tu Khong Trung Nhau.");
System.out.println("Nhap " + Menu.XoaTatCaPhanTuTrungNhauTrongDS.value + " de Xoa Tat Ca Phan Tu Trung Nhau Trong DS.");
System.out.println("Nhap " + Menu.XoaTatCaPhanTuTrungLapTrongDS.value + " de Xoa Tat Ca Phan Tu Trung Lap Trong DS.");
System.out.println("Nhap " + Menu.SapXepDSTang.value + " de Sap Xep DS Tang.");
System.out.println("Nhap " + Menu.Thoat.value + " de Thoat.");

System.out.println("----------------------------------------------");
}

public static int NhapChon() {
XuatMenu();

do {
System.out.println("Nhập chon " + Menu.XoaPhanTuX.value + " <= chon <= " + Menu.Thoat.value);

Scanner sc = new Scanner(System.in);
int chon = sc.nextInt();

if (Menu.XoaPhanTuX.value <= chon && chon <= Menu.Thoat.value) {
return chon;
}
} while (true);
}

public static void XuLyMenu(MangMotChieu mang ,int chon){
try {
Menu m = Menu.values()[chon - 1];
Scanner sc = new Scanner(System.in);
int x, y, vt;
MangMotChieu arr;

switch (m) {
case XoaPhanTuX:
mang.XuatDS();
System.out.println("Nhap X:");
x = sc.nextInt();
mang.XoaPhanTuX(x);
mang.XuatDS();
System.in.read(); // Dung man hinh de doc
break;
case XoaPhanTuTheoViTri:
mang.XuatDS();
System.out.println("Nhap vi tri:");
vt = sc.nextInt();
mang.XoaPhanTuTheoViTri(vt);
mang.XuatDS();
System.in.read();
break;
case XoaTatCaPhanTuXTrongDS:
mang.XuatDS();
System.out.println("Nhap X:");
x = sc.nextInt();
mang.XoaTatCaPhanTuXTrongDS(x);
mang.XuatDS();
System.in.read();
break;
case XoaTatCaSoAmTrongDS:
mang.XuatDS();
mang.XoaTatCaSoAmTrongDS();
mang.XuatDS();
System.in.read();
break;
case TimPhanTuLonNhat:
System.out.print("Phan tu lon nhat la:" + mang.TimPhanTuLonNhat());
System.in.read();
break;
case TimViTriDauTienCuaPhanTuLonNhat:
mang.XuatDS();
System.out.print("Vi Tri Dau Tien Cua Phan Tu Lon Nhat la:" + mang.TimViTriDauTienCuaPhanTuLonNhat());
System.in.read();
break;
case XoaTatCaPhanTuLonNhat:
mang.XuatDS();
mang.XoaTatCaPhanTuLonNhat();
mang.XuatDS();
System.in.read();
break;
case TimTatCaViTriCuaPhanTuLonNhat:
mang.XuatDS();
arr = mang.TimTatCaViTriCuaPhanTuLonNhat();
arr.XuatDS();
System.in.read();
break;
case ThayPhanTuXBangPhanTuY:
mang.XuatDS();
System.out.println("Nhap X:");
x = sc.nextInt();
System.out.println("Nhap Y:");
y = sc.nextInt();
mang.ThayPhanTuXBangPhanTuY(x, y);
mang.XuatDS();
System.in.read();
break;
case ChenPhanTuXTaiViTri:
mang.XuatDS();
System.out.println("Nhap X:");
x = sc.nextInt();
System.out.println("Nhap vi tri:");
vt = sc.nextInt();
mang.ChenPhanTuXTaiViTri(x, vt);
mang.XuatDS();
System.in.read();
break;
case ChenPhanTuXVaoTruocPhanTuY:
mang.XuatDS();
System.out.println("Nhap X:");
x = sc.nextInt();
System.out.println("Nhap Y:");
y = sc.nextInt();
mang.ChenPhanTuXVaoTruocPhanTuY(x, y);
mang.XuatDS();
System.in.read();
break;
case ChenPhanTuXVaoSauPhanTuY:
mang.XuatDS();
System.out.println("Nhap X:");
x = sc.nextInt();
System.out.println("Nhap Y:");
y = sc.nextInt();
mang.ChenPhanTuXVaoSauPhanTuY(x, y);
mang.XuatDS();
System.in.read();
break;
case DaoNguocDS:
mang.XuatDS();
mang.DaoNguocDS();
mang.XuatDS();
System.in.read();
break;
case DemSoPhanTuKhongTrungNhau:
mang.XuatDS();
System.out.println("So Phan Tu Khong Trung Nhau: " + mang.DemSoPhanTuXKhongTrungNhau());
System.in.read();
break;
case XoaTatCaPhanTuTrungNhauTrongDS:
mang.XuatDS();
mang.XoaTatCaPhanTuTrungNhauTrongDS();
mang.XuatDS();
System.in.read();
break;
case XoaTatCaPhanTuTrungLapTrongDS:
mang.XuatDS();
mang.XoaTatCaPhanTuTrungLapTrongDS();
mang.XuatDS();
System.in.read();
break;
case SapXepDSTang:
mang.XuatDS();

mang.XuatDS();
System.in.read();
break;

default:
break;
}
} catch (IOException ex) {
Logger.getLogger(MangMotChieu.class.getName()).log(Level.SEVERE, null, ex);
}
}

public static void ChuongTrinh(MangMotChieu mang) {
int chon;
do {
chon = NhapChon();
XuLyMenu(mang, chon);
} while (true);
}
//</editor-fold>
}
 

Trending content

VnKienthuc lúc này

Không có thành viên trực tuyến.

Định hướng

Diễn đàn VnKienthuc.com là nơi thảo luận và chia sẻ về mọi kiến thức hữu ích trong học tập và cuộc sống, khởi nghiệp, kinh doanh,...
Top