CHƯƠNG TRÌNH QUẢN LÝ HỌC SINH

13 590 2
CHƯƠNG TRÌNH QUẢN LÝ HỌC SINH

Đ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

Chuyên nghành: Công nghệ thông tin Giảng viên hướng dẫn:Mai Thúy Hà Nhóm 12: Lớp: MÔN HỌC: LÂP TRÌNH HƯỚNG ĐỐI TƯỢNG Hà Nội, ngày 20/4/2014 2 Đề tài Nhập danh sách n học sinh viết dưới dạng các thuộc tính: họ tên, năm sinh và tổng điểm. Sắp xếp theo thứ tự giảm dần của tổng điểm. Khi tổng điểm như nhau thì học sinh có năm sinh nhỏ hơn được đứng trước. In ra danh sách học sinh đã sắp xếp sao cho tất cả các chữ cái đầu của họ tên chuyển thành chữ hoa. 3 I- Yêu cầu bài toán - Nhập danh sách gồm n học sinh với các thuộc tính: họ tên, năm sinh và tổng điểm. - Sắp xếp danh sách giảm dần theo tổng điểm, nếu tổng điểm bằng nhau thì học sinh nào có năm sinh nhỏ hơn sẽ đứng trước. - In ra danh sách học sinh đã được sắp xếp với các chữ cái đầu của học tên được viết hoa. II- Các chức năng của chương trình - Nhập thông tin học sinh - Hiển thị danh sách học sinh - Sắp xếp danh sách học sinh theo điểm trung bình - Tìm kiếm thông tin học sinh theo mã học sinh 4 III- Lưu đồ và giải thuật 5 IV- Cài đặt và sử dụng chương trình 1. Cài đặt chương trình a. Các thư viện • Class java: hocsinh java.io.BufferedReader; java.io.FileOutputStream; java.io.FileReader; java.io.IOException; java.io.PrintWriter; java.util.ArrayList; javax.swing.JOptionPane; • jFrame java: QLHS java.io.IOException; java.util.ArrayList; java.util.logging.Level; java.util.logging.Logger; javax.swing.JOptionPane; javax.swing.table.DefaultTableModel; b. Các biến khai báo Tên biến Kiểu dữ liệu Ý nghĩa mahs String Mã học sinh firstname String Họ và đệm lastname String Tên date String Ngày sinh dtb Float Điểm trung bình c. Các chương trình chính • Tím kiếm theo mã học sinh Hocsinh timkiemID(ArrayList<Hocsinh> list,String mahs){ for(Hocsinh i:list){ if(mahs.equalsIgnoreCase(i.getMahs())) { return i; }} return null; } • Chuẩn hóa tên 6 public String chuanhoa(String input){ String result = ""; input = input.toLowerCase(); //chuyen chuoi nhap vao ve chu thuong String[] arr = input.split(" "); //cat chuoi nhap vao boi cac dau cach for(String s : arr) { //duyet mang if(!s.equals("") && !s.equals(null)){ result += String.valueOf(s.charAt(0)).toUpperCase() +s.substring(1) + " ";} } if (!result.equals("") && result.equals(null)) { result = result.substring(0,result.length()-1); // xoa ky tu trang sau cung } return result; } • Nhập mới private void nhapmoiActionPerformed(java.awt.event.ActionEvent evt) { mhs.setText(null); firstname1.setText(""); lastname1.setText(""); ngay.setName(String.valueOf(1)); thang.setName(String.valueOf(1)); nam.setName(String.valueOf(1986)); dtb1.setText(""); } • Hiển thị private void hienthidsActionPerformed(java.awt.event.ActionEvent evt) { DefaultTableModel m = (DefaultTableModel) bangds.getModel(); m.getDataVector().removeAllElements(); m.fireTableDataChanged(); for(Hocsinh i:listhocsinh){ m.addRow(new} Object[]{i.getMahs(),i.getFirstname(),i.getLastname(),i.getDate(),i.getDtb()});} } • Nhập học sinh 7 private void okActionPerformed(java.awt.event.ActionEvent evt) { if(temp.timkiemID(listhocsinh, mhs.getText())== null){ Hocsinh a; boolean flag = true; Hocsinh[] c = new Hocsinh[200]; try{ if(mhs.getText().equals("")||firstname1.getText().equals("")|| lastname1.getText().equals("")|| dtb1.getText().equals("")){ JOptionPane.showMessageDialog(null, "Hãy nhập đủ thông tin"); flag=true; }else{ a = new Hocsinh(); a.setMahs(mhs.getText()); a.setFirstname(firstname1.getText()); a.setLastname(lastname1.getText()); a.setDate(ngay.getSelectedItem()+"/"+thang.getSelectedItem() +"/"+nam.getSelectedItem()); a.setDtb(Float.parseFloat(dtb1.getText())); a.ghiFile(); listhocsinh.add(a); hienthi(); JOptionPane.showMessageDialog(null, "Nhập thành công");} }catch(IOException e){ JOptionPane.showMessageDialog(null, ""+e.getMessage());} }else{ JOptionPane.showMessageDialog(null, "Ma sinh viên nay da ton tai.Moi nhap lai ");} } 8 • Sắp xếp theo đtb private void sapxepdtbActionPerformed(java.awt.event.ActionEvent evt) { DefaultTableModel m= (DefaultTableModel) bangds.getModel(); m.getDataVector().removeAllElements(); m.fireTableDataChanged(); int length = listhocsinh.size(); Hocsinh[] b = new Hocsinh[length]; for(int j=0;j<length;j++){ b[j]= listhocsinh.get(j); } for(int i=0;i<length-1;i++){ for(int j=i+1;j<length;j++){ if(b[j].getDtb()>b[i].getDtb()){ Hocsinh tmp = new Hocsinh(); tmp= b[i]; b[i] = b[j]; b[j]= tmp; } else if( b[j].getDtb().equals(b[i].getDtb()) ){ int xs= Integer.parseInt(b[i].getDate().split("/")[2]); int ys= Integer.parseInt(b[j].getDate().split("/")[2]); int xs1= Integer.parseInt(b[i].getDate().split("/")[1]); int ys1= Integer.parseInt(b[j].getDate().split("/")[1]); int xs2= Integer.parseInt(b[i].getDate().split("/")[0]); int ys2= Integer.parseInt(b[j].getDate().split("/")[0]); if(xs>ys){ Hocsinh tmp = new Hocsinh(); tmp= b[i]; b[i] = b[j]; b[j]= tmp; } else if(xs==ys) { if(xs1>ys1) { Hocsinh tmp = new Hocsinh(); tmp= b[i]; b[i] = b[j]; b[j]= tmp; } else if(xs1==ys1) { if(xs2>ys2) { Hocsinh tmp = new Hocsinh(); tmp= b[i]; b[i] = b[j]; b[j]= tmp; }}}}}} for(int k=0;k<b.length;k++){ 9 m.addRow(new Object[] {b[k].getMahs(),b[k].getFirstname(),b[k].getLastname(),b[k].getDate(),b[k].getDtb() }); } } a. Các chương trình phụ • Ghi file void ghiFile() throws IOException { FileOutputStream file = new FileOutputStream("HocSinh.txt",true); try (PrintWriter pw = new PrintWriter(file)) { pw.println("***"); pw.println(String.valueOf(getMahs())); pw.println(String.valueOf(getFirstname())); pw.println(String.valueOf(getLastname())); pw.println(String.valueOf(getDate())); pw.println(String.valueOf(getDtb())); pw.close();} } • Đọc file void docfile(ArrayList<Hocsinh> list){ try { FileReader fr = new FileReader("HocSinh.txt"); input = new BufferedReader(fr); while(input.readLine()!= null){ Hocsinh a = new Hocsinh(); a.setMahs(input.readLine()); a.setFirstname(input.readLine()); a.setLastname(input.readLine()); a.setDate(input.readLine()); a.setDtb(Float.parseFloat(input.readLine())); list.add(a); } } catch(IOException | NumberFormatException e){} } 10 [...]...2 Sử dụng chương trình a Giao diện chương trình: Gồm 2 khu vực cho phép nhập các thông tin của học sinhbên trái và khu vực chức năng cho phép quản lý học sinh bên phải b Nhập thông tin của một học sinh: Bước 1: Điền đầy đủ các thông tin của học sinh Bước 2: Nhân nút OK để kết thúc quá trình nhập 11 Nếu thực đúng các bước nhập trên sẽ có một thông... quá trình nhập 11 Nếu thực đúng các bước nhập trên sẽ có một thông báo hiện lên bạn đã nhập thành công Nhấn vào nút Nhập mới để nhập thêm học sinh mới c Hiển thị và Sắp xếp danh sách học sinh: Bạn nhấn vào nút Hiển thị danh sách của trương trình toàn bộ thông tin Học sinh sẽ được hiện thị lên màn hình Nhấn vào nút Sắp xếp theo ĐTB để thực hiện sắp xếp 12 Mục Lục 13 . QLHS java.io.IOException; java.util.ArrayList; java.util.logging.Level; java.util.logging.Logger; javax.swing.JOptionPane; javax.swing.table.DefaultTableModel; b. Các biến khai báo Tên biến Kiểu dữ liệu Ý nghĩa mahs String Mã học sinh firstname String Họ và đệm lastname String. Bước 2: Nhân nút OK để kết thúc quá trình nhập 11 Nếu thực đúng các bước nhập trên sẽ có một thông báo hiện lên bạn đã nhập thành công Nhấn vào nút Nhập mới để nhập thêm học sinh mới c. Hiển thị

Ngày đăng: 12/08/2014, 08:54

Từ khóa liên quan

Mục lục

  • I- Yêu cầu bài toán

  • II- Các chức năng của chương trình

  • III- Lưu đồ và giải thuật

  • IV- Cài đặt và sử dụng chương trình

    • 1. Cài đặt chương trình

      • a. Các thư viện

      • b. Các biến khai báo

      • c. Các chương trình chính

      • 2. Sử dụng chương trình

Tài liệu cùng người dùng

Tài liệu liên quan