Tải bản đầy đủ (.pdf) (22 trang)

Môn: Lập trình java 1 MOB1013

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (654.83 KB, 22 trang )

TRƯỜNG CAO ĐẲNG THỰC HÀNH
FPT POLYTECHNIC
 

BÁO CÁO ASSIGNMNENT-GD2
Môn: Lập trình java 1- MOB1013

Ngành: Lập trình Mobile
Họ & tên: Hồ Ngọc Dũng
MSSV: PD02792
Lớp:PT14308

Giáo viên: Nguyễn Văn Định

Đà Nẵng, 2/2019



FPT Polytechnic Đà Nẵng
Môn học: LẬP TRÌNH JAVA 1.

PROJECT: QUẢN LÝ SINH VIÊN
SINH VIÊN: Hồ Ngọc Dũng
LỚP: PT14308 - MOB

Mã môn học: MOB1201

Họ và tên sinh viên: Hồ Ngọc Dũng
Mã số sinh viên: PD02792
GVHD: Nguyễn Văn Định
Ngày hoàn thành:



Tháng 02 Năm 2019

Đánh
giá:…………………………………………………………………………………………
………………………………………………………………………………………………
………………………………………..……………………………………………………
………………………………………………………………………………………………
……………………………………………………………………………..………………
………………………………………………………………………………………………
………………………………………………………………………………………………
…………………..…………………………………………………………………………
………………………………………………………………………………………………
………………………………………………………..……………………………………
………………………………………………………………………………………………
……………………………………………………………………………………………..
………………………………………………………………………………………………
………………………………………………………………………………………………
…………………………………..


I-Assignment full
package ASSIGNMENT;

import java.util.Scanner;
//import gói để sử dụng các phương thức scanner

public class Assigment { //Class chính trong chương trình

Scanner vl = new Scanner(System.in);//Tạo đối tượng Scanner

public Sinhvien[] svien;//Khai báo mảng chưa có phần tử

public class Sinhvien {

String hoten;
double diem;
String email; //Khai báo kiểu dữ liệu cho các dữ liệu đầu vào
String masosv;
String hocluc;
}
public static final String ANSI_PURPLE_BACKGROUND = "\u001B[45m"; //Tạo màu
background

public static void main(String[] args) {

System.out.println("\t\t\t*ĐỂ THỰC THI CÁC CHỨC NĂNG VUI LÒNG NHẬP THÔNG
TIN TRƯỚC! ");


Assigment obj = new Assigment();//tạo đối tượng "obj"trong class Assigment
Sinhvien[] hvien = obj.nhapHV();
obj.svien = hvien;
System.out.println("---------------------------------------------------------------------------------");

obj.menu();
}

public Sinhvien[] nhapHV() {

System.out.println("*Nhập danh sách học viên.");

Sinhvien[] svien = new Sinhvien[5];//Khởi tạo mảng svien với n phần tử

for (int i = 0; i < svien.length; i++) { //Khỏi chạy vòng lặp for cho các phần tử đầu vào
Sinhvien sivn = new Sinhvien(); //Tạo đối tượng "sivn"
Scanner lc = new Scanner(System.in); //Tạo đối tượng Scanner để lấy dữ liêu từ bàn
phím
System.out.println("~Sinh viên: " + (i + 1));//Xuất ra dòng Thông báo sinh viên thứ n
System.out.println("Nhập mã số sinh viên: "); //Yêu cầu nhập MSSV từ bàn phím
String masosv = lc.nextLine();
while (!masosv.matches("[0-9]{4}")) {
//Sử dụng phương thức matches để xác định chuỗi nhập vào có phù hợp với biểu thức(regex) của
MSSV hay không
System.err.println("MSSV vừa nhập không hợp lệ! Vui lòng nhập lại !");
//sử dụng điều kiện phủ định dùng toán tử "!" để xuất ra thông báo sai, nếu đúng thì tiếp tục
masosv = lc.nextLine();//Vòng lặp while sẽ tiêp tục cho đến khi dữ liệu nhập đúng


continue;
}
sivn.masosv = masosv;
System.out.println("Họ và tên: ");
String username = lc.nextLine();
while (!username.matches("[a-zA-Z ]+")) {
////Sử dụng phương thức matches để xác định chuỗi nhập vào có phù hợp với biểu thức(regex)
của Họ tên hay không
System.err.println("Họ tên vừa nhập không hợp lệ! Vui lòng nhập lại");
username = lc.nextLine();
continue;
}
sivn.hoten = username;


System.out.println("Nhập Email: ");
String mail = lc.nextLine();
while (!mail.matches("\\w+@\\w+\\.\\w+")) {
////Sử dụng phương thức matches để xác định chuỗi nhập vào có phù hợp với biểu thức(regex)
của Email hay không
System.err.println("Email vừa nhập không hợp lệ! Vui lòng nhập lại");
mail = lc.nextLine();
continue;
}
sivn.email = mail;

System.out.println("Nhập điểm: ");


double diem = lc.nextDouble();
while (diem < 0 && diem > 10) {//Điều kiện của điểm là 0>=diem>=10
System.err.println("Điểm vừa nhập không hợp lệ! Vui lòng nhập lại");
diem = Double.parseDouble(lc.nextLine());

continue;
}
sivn.diem = diem;

svien[i] = sivn;
}

for (int i = 0; i < svien.length; i++) {
//Vòng lặp for sử dụng câu điều kiện if để phân loại học lực
Sinhvien sivn = svien[i];

if (sivn.diem < 5) {
sivn.hocluc = "Yếu";
} else if (sivn.diem < 6.5) {
sivn.hocluc = "Trung bình";
} else if (sivn.diem < 7.5) {
sivn.hocluc = "Khá";
} else if (sivn.diem < 9) {
sivn.hocluc = "Giỏi";
} else {
sivn.hocluc = "Xuất sắc";


}
}

return svien;
}

public void menu() { //Danh sách tổng hợp các chức năng trong chương trình

while (true) {//Vòng lặp sẽ chạy liên tục mỗi khi thực hiện xong 1 chức năng
System.out.println(ANSI_PURPLE_BACKGROUND +
"|====================================================================
===========================||");
System.out.println(ANSI_PURPLE_BACKGROUND + "|| \t\t\t\t*CÁC CHỨC NĂNG
CHÍNH CỦA CHƯƠNG TRÌNH* \t\t\t\t||");
System.out.println(ANSI_PURPLE_BACKGROUND + "||1&2.Nhập và Xuất danh sách
học viên. Thông tin xuất gồm: họ và tên, điểm, email và học lực ||");
System.out.println(ANSI_PURPLE_BACKGROUND + "||3. Tìm kiếm học viên theo
khoảng điểm nhập từ bàn phím

||");
System.out.println(ANSI_PURPLE_BACKGROUND + "4.Tìm kiếm học viên theo học
lực nhập từ bàn phím
||");
System.out.println(ANSI_PURPLE_BACKGROUND + "||5.Tìm học viên theo mã số và
cập nhật thông tin học viên
||");
System.out.println(ANSI_PURPLE_BACKGROUND + "||6.Sắp xếp học viên theo điểm
||");
System.out.println(ANSI_PURPLE_BACKGROUND + "||7. Xuất 5 học viên có điểm
cao nhất
||");

lớp

System.out.println(ANSI_PURPLE_BACKGROUND + "||8. Tính điểm trung bình của
|| ");


System.out.println(ANSI_PURPLE_BACKGROUND + "||9. Xuất danh sách học viên có
điểm trên điểm trung bình của lớp
||");
System.out.println(ANSI_PURPLE_BACKGROUND + "||10.Tổng hợp số học viên theo
học lực
||");
System.out.println(ANSI_PURPLE_BACKGROUND +
"||===================================================================
===========================||");

Scanner lc = new Scanner(System.in);

System.out.println(">>>Lựa chọn chức năng: ");
int choice = lc.nextInt();
switch (choice) {//Sử dụng câu lệnh rẽ nhánh để tạo danh sách các chức năng riêng biệt
case 1:
xuatDS();//Phương thức sẽ gọi 1 trong 10 chức năng (case) này
break;
case 2:
xuatDS();
break;
case 3:
timKiemHocVienTheoKhoangDiem();
break;
case 4:
timKiemTimHocVienTheoHocLuc();
break;
case 5:
timKiemTimHocVienTheoMaSoVaCNTT();
break;


case 6:
sapXepHocVienTheoDiem();
break;
case 7:
Xuat5hociviendiemcao();
break;
case 8:
diemTBcualop();
break;
case 9:

DShocviendiemtrenTB();
break;
case 10:
tongHophocvientheohocluc();
break;
default://case này sẽ thực hiện khi không một case nào trên có giá trị true
System.err.println("Chức năng vừa nhập không tồn tại \n Vui lòng nhập lại !");

System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~");

}
}
}

public void xuatDS() {


//Phương thức được gọi từ các case qua câu lệnh switch(chức năng xuất danh sách học viên)
System.out.print("\tHọ tên \t| Điểm | Email \t\t |\t Học lực\n");
for (int i = 0; i < svien.length; i++) {
Sinhvien sivn = svien[i];
System.out.format("%20s %10.1f %20s %15s\n", sivn.hoten, sivn.diem, sivn.email,
sivn.hocluc);
}
}

public void timKiemTimHocVienTheoHocLuc() {
////Phương thức được gọi từ các case qua câu lệnh switch(chức năng tìm kiếm học viên theo học
lực)

System.out.println("3.Tìm kiếm học viên theo học lực nhập từ bàn phím");
System.out.print("nhập học lực(không dấu): ");
String hl = vl.nextLine();
for (int i = 0; i < svien.length; i++) {
Sinhvien sivn = svien[i];
if (hl.equalsIgnoreCase("yeu")) {
System.out.println("Họ và tên: " + sivn.hoten + " Học lực: " + sivn.hocluc);
} else if (hl.equalsIgnoreCase("Trung binh")) {
System.out.println("Họ và tên: " + sivn.hoten + " Học lực: " + sivn.hocluc);
} else if (hl.equalsIgnoreCase("Kha")) {
System.out.println("Họ và tên: " + sivn.hoten + " Học lực: " + sivn.hocluc);
} else if (hl.equalsIgnoreCase("Gioi")) {
System.out.println("Họ và tên: " + sivn.hoten + " Học lực: " + sivn.hocluc);
} else if (hl.equalsIgnoreCase("Xuat sac")) {


System.out.println("Họ và tên: " + sivn.hoten + " Học lực: " + sivn.hocluc);

}
}
}

public void timKiemHocVienTheoKhoangDiem() {
//Phương thức được gọi từ các case qua câu lệnh switch(chức năng tìm kiếm học viên theo
khoảng điểm)
System.out.println("4.Tìm kiếm học viên theo khoảng điểm nhập từ bàn phím: ");
System.out.println("*Nhập điểm tối thiểu: ");
Double diemtt = Double.parseDouble(vl.nextLine());
System.out.println("*Nhập điểm tối đa: ");
Double diemtd = Double.parseDouble(vl.nextLine());


for (int i = 0; i < svien.length; i++) {
Sinhvien sivn = svien[i];

if (diemtt <= sivn.diem && sivn.diem <= diemtd) {
System.out.println("Họ tên: " + sivn.hoten + "\t" + "Điểm: " + sivn.masosv);
}
}
}

public void timKiemTimHocVienTheoMaSoVaCNTT() {


//Phương thức được gọi từ các case qua câu lệnh switch(chức năng tìm kiếm học viên theo
MSSV)
System.out.println("5.Tìm học viên theo mã số và cập nhật thông tin học viên");
System.out.println("Nhập MSSV: ");
String mso = vl.nextLine();
for (int i = 0; i < svien.length; i++) {
if (svien[i].masosv.equals(mso)) {
Sinhvien ma = svien[i];
System.out.format("Họ tên: %10s\n", ma.hoten);
Sinhvien sivn = svien[i];

}
}

}

public void sapXepHocVienTheoDiem() {

//Phương thức được gọi từ các case qua câu lệnh switch(chức năng sắp sếp học viên theo điểm)
System.out.println("6.Sắp xếp học viên theo điểm");
for (int i = 0; i < svien.length; i++) {
for (int j = i + 1; j < svien.length; j++) {
Sinhvien sv1 = svien[i];
Sinhvien sv2 = svien[j];
if (sv1.diem > sv2.diem) {
Sinhvien sx = new Sinhvien();


sx = svien[i];
svien[i] = svien[j];
svien[j] = sx;
}
}
}
for (int i = 0; i < svien.length; i++) {
Sinhvien hten = svien[i];
Sinhvien point = svien[i];
System.out.format("Họ tên: %10s Điểm: %10.1f", hten.hoten, point.diem);

}

}

public void Xuat5hociviendiemcao() {
//Phương thức được gọi từ các case qua câu lệnh switch(chức năng Xuất 5 học viên có điểm cao
nhất)
System.out.println("5 học viên có điểm cao nhất");
for (int i = 0; i < svien.length; i++) {

for (int j = i + 1; j < 5; j++) {
Sinhvien sv1 = svien[i];
Sinhvien sv2 = svien[j];
if (sv1.diem < sv2.diem) {
Sinhvien sx = new Sinhvien();


sx = svien[i];
svien[i] = svien[j];
svien[j] = sx;
}
}
}
for (int i = 0; i < 5; i++) {
Sinhvien ht1 = svien[i];
Sinhvien d = svien[i];
System.out.println("Họ tên: " + ht1.hoten + "- Điểm: " + d.diem);

}
}

public void diemTBcualop() {
//Phương thức được gọi từ các case qua câu lệnh switch(chức năng tính điểm trung bình của lớp)
System.out.println("8.Điểm trung bình của cả lớp");
int dem = 0;
double tong = 0;
for (int i = 0; i < svien.length; i++) {
Sinhvien tb = svien[i];
dem = dem + 1;
tong = tong + tb.diem;


}


System.out.printf("Điểm trung bình của lớp = %.0f ", tong / dem);
}

public void DShocviendiemtrenTB() {
//Phương thức được gọi từ các case qua câu lệnh switch(chức năng xuất danh sách học viên trên
điểm trung bình
System.out.println("9.Học viên có điểm trên điểm trung bình của lớp");
int dem = 0;
double tong = 0, dtb = 0;
for (int i = 0; i < svien.length; i++) {
Sinhvien tb = svien[i];
dem = dem + 1;
tong = tong + tb.diem;
}
dtb = tong / dem;
for (int i = 0; i < svien.length; i++) {
Sinhvien tb = svien[i];
if (tb.diem > dtb) {
System.out.println("Họ và tên " + tb.hoten + "\t Điểm: " + tb.diem);
}
}

}

public void tongHophocvientheohocluc() {



//Phương thức được gọi từ các case qua câu lệnh switch(chức năng Tổng hợp số học viên theo
học lực
System.out.println("10.Tổng hợp số học viên theo học lực");
int biendem = 0, yeu = 0, kha = 0, tbinh = 0, gioi = 0, xsac = 0;
for (int i = 0; i < svien.length; i++) {
Sinhvien th = svien[i];
String a = th.hocluc;
if (a.equalsIgnoreCase("yếu")) {
yeu = yeu + 1;
} else if (a.equalsIgnoreCase("khá")) {
kha = kha + 1;
} else if (a.equalsIgnoreCase("trung bình")) {
tbinh = tbinh + 1;
} else if (a.equalsIgnoreCase("giỏi")) {
gioi = gioi + 1;
} else if (a.equalsIgnoreCase("xuất sắc")) {
xsac = xsac + 1;
}
}
System.out.println("Số sinh viên có học lực yếu: " + yeu);
System.out.println("Số sinh viên có học lực khá: " + kha);
System.out.println("Số sinh viên có học lực trung bình: " + tbinh);
System.out.println("Số sinh viên có học lực giỏi: " + gioi);
System.out.println("Số sinh viên có học lực suất sắc: " + xsac);


}

}



II-Kết quả in ra


1.Chức năng 1&2


2.Chức năng 3

3.Chức năng 4

4.Chức năng 5

6.Chức năng 7

8.Chức năng 9


9.Chức năng 10



×