(TIỂU LUẬN) bài tập lớn lập TRÌNH NÂNG CAO đề tài xây dựng chương trình cho phép người dùng quản lý danh bạ thông tin liên lạc

24 8 0
(TIỂU LUẬN) bài tập lớn lập TRÌNH NÂNG CAO đề tài xây dựng chương trình cho phép người dùng quản lý danh bạ thông tin liên lạc

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THƠNG Bài tập lớn: LẬP TRÌNH NÂNG CAO Đề tài: Xây dựng chương trình cho phép người dùng quản lý danh bạ thông tin liên lạc Giáo viên hướng dẫn : TS.Phan Doãn Tĩnh Sinh viên thực : Lê Hùng Cường MSSV : 20121360 ĐTTT 09 Nguyễn Như Vinh MSSS : 20122808 ĐTTT 05 Hà Nội – 05/2017 MỤC LỤC MỤC LỤC LỜI NÓI ĐẦU CHƯƠNG ĐẶT VẤN ĐỀ 1.1 Ý nghĩa, cần thiết khả ứng dụng đề tài 1.2 Nội dung yêu cầu đề tài CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT 2.1 Giới thiệu ngôn ngữ lập trình JAVA 2.2 Cơng cụ sử dụng Eclipse mơ hình MVC CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ PHẦN MỀM 3.1 Các module chương trình 3.2 Các chức chương trình 3.2.1 Chức quản lý tài khoản 3.2.2 Chức thêm, sửa, xóa thơng tin liên lạc .8 3.2.3 Chức tìm kiếm thông tin liên lạc 10 3.2.4 Chức lưu danh bạ thông tin liên lạc lên server 11 3.2.5 Chức khôi phục danh bạ thông tin liên lạc từ server hiển thị lên chương trình client 11 KẾT LUẬN 12 PHỤ LỤC 13 TÀI LIỆU THAM KHẢO 27 LỜI NĨI ĐẦU Trong thời đại bùng nổ cơng nghệ thơng tin truyền thông nay, người sở hữu cho điên thoại di động kèm theo danh sách số điện thoại Nhận thấy cần thiết việc quản lý danh bạ,chúng em xây dựng hệ thống danh bạ đơn giản để làm quen với khái niệm ngơn ngữ lập trình Java, phương pháp lập trình với Java Qua , giúp sinh viên có khả lập trình, tăng khả làm việc nhóm Em xin gửi lời cảm ơn chân thành thầy Phan Dỗn Tĩnh tận tình giảng dạy bảo giúp nhóm em hồn thiện đề tài CHƯƠNG ĐẶT VẤN ĐỀ 1.1 Ý nghĩa, cần thiết khả ứng dụng đề tài Cơng nghệ thơng tin (CNTT) ngày có vai trò quan trọng sống hàng ngày Việc ứng dụng CNTT vào lĩnh vực đời sống giúp cơng việc tiến hành nhanh chóng hiệu Có nhiều cơng việc phát triển song song với phát triển CNTT, số viết phần mềm nhằm phục vụ cho việc học tập, làm việc giải trí ngày Chúng em chọn đề tài “Xây dựng chương trình cho phép người dùng quản lý danh bạ thơng tin liên lạc” nhằm tìm hiểu sâu ngơn ngữ Java lập trình hướng đối tượng, từ viết ứng dụng cụ thể thử nghiệm làm sở củng cố kiến thức định hướng kế hoạch xây dựng phần mềm tương lai Nhận thấy đề tài có ứng dụng cao vào thực tế đời sống, người cần lưu giữ quản lý danh bạ thông tin liên lạc, nên việc triển khai đề tài có tính khả thi 1.2 Nội dung yêu cầu đề tài Các chức cần có phần mềm quản lý danh bạ thông tin liên lạc : - Thêm thông tin liên lạc - Sửa thông tin liên lạc - Xóa thơng tin liên lạc - Tìm kiếm thơng tin liên lạc Ngồi cịn có chức sau : - Cho phép người dung lưu danh bạ - Khi cần, người dùng tải lưu server phục hồi chương trình client - Server phải có quản lý tài khoản người dùng CHƯƠNG PHƯƠNG PHÁP GIẢI QUYẾT 2.1 Giới thiệu ngơn ngữ lập trình JAVA Java ngơn ngữ lập trình hướng đối tượng (OOP) dựa lớp (class) Khác với phần lớn ngôn ngữ lập trình thơng thường, thay biên dịch mã nguồn thành mã máy thông dịch mã nguồn chạy, Java thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau mơi trường thực thi (runtime environment) chạy Trước đây, Java chạy chậm ngôn ngữ dịch thẳng mã máy C C++, sau nhờ công nghệ "biên dịch chỗ" - Just in time compilation, khoảng cách thu hẹp, số trường hợp đặc biệt Java chạy nhanh Java chạy nhanh ngôn ngữ thông dịch Python, Perl, PHP gấp nhiều lần Java chạy tương đương so với C#, ngôn ngữ tương đồng mặt cú pháp trình dịch/chạy Cú pháp Java vay mượn nhiều từ C & C++ có cú pháp hướng đối tượng đơn giản tính xử lý cấp thấp Do việc viết chương trình Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi Trong Java, tượng rò rỉ nhớ không xảy nhớ quản lí Java Virtual Machine (JVM) cách tự động "dọn dẹp rác" Người lập trình khơng phải quan tâm đến việc cấp phát xóa nhớ C, C++ Tuy nhiên sở dụng tài nguyên mạng, file IO, database (nằm ngồi kiểm sốt JVM) mà người lập trình khơng đóng (close) streams rị rỉ liệu xảy Java khởi đầu James Gosling bạn đồng nghiệp Sun Microsystems năm 1991 Ban đầu ngôn ngữ gọi Oak (có nghĩa sồi; bên ngồi quan ơng Gosling có trồng nhiều loại này), họ dự định ngơn ngữ thay cho C++, tính giống Objective C Khơng nên lẫn lộn Java với JavaScript, hai ngơn ngữ giống tên loại cú pháp C Công ty Sun Microsystems giữ quyền phát triển Java thường xuyên Tháng 04/2011, công ty Sun Microsystems tiếp tục cho JDK 1.6.24 Java tạo với tiêu chí "Viết (code) lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)) Chương trình phần mềm viết Java chạy tảng (platform) khác thông qua môi trường thực thi với điều kiện có mơi trường thực thi thích hợp hỗ trợ tảng Mơi trường thực thi Sun Microsystems hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD & Windows Ngồi ra, số cơng ty, tổ chức cá nhân khác phát triển môi trường thực thi Java cho hệ điều hành khác BEA, IBM, HP Trong đáng nói đến IBM Java Platform hỗ trợ Windows, Linux, AIX & z/OS Những chi tiết ngôn ngữ, máy ảo API Java giữ Cộng đồng Java (do Sun quản lý) Java tạo vào năm 1991 số kỹ sư Sun, bao gồm ông James Gosling, phần Dự án Xanh (Green Project) Java phát hành vào năm 1994, trở nên tiếng Netscape tuyên bố hội thảo SunWorld năm 1995 trình duyệt Navigator họ hỗ trợ Java Về sau Java hỗ trợ hầu hết trình duyệt Internet Explorer (Microsoft), Firefox (Mozilla), Safari (Apple) Java sử dụng chủ yếu môi trường NetBeans Oracle Sau Oracle mua lại công ty Sun Microsystems năm 2009-2010, Oracle mô tả họ "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng cộng đồng tham gia minh bạch" 2.2 Công cụ sử dụng Eclipse mơ hình MVC Eclipse mơi trường phát triển tích hợp (IDE) sử dụng lập trình máy tính Nó chứa sở khơng gian làm việc mở rộng plug-in hệ thống để tùy biến môi trường Eclipse viết phần lớn Java sử dụng để phát triển ứng dụng Java, sử dụng để phát triển ứng dụng ngơn ngữ lập trình thơng qua việc sử dụng plugin, on Rails framework , Rust , Scala , Clojure , Groovy Nó sử dụng để phát triển gói cho phần mềm Mathematica Phát triển môi trường bao gồm công cụ phát triển Eclipse Java (JDT) cho Java Scala, Eclipse CDT cho C / C ++ Eclipse PDT cho PHP MVC Design Pattern (mẫu thiết kế) áp dụng rộng rãi hầu hết ngôn ngữ lập trình hướng đối tượng từ Java, C#, PHP, Visual C++ Model – View – Controller (MVC) mẫu thiết kế nhằm mục tiêu chia tách phần Giao diện Code để dễ quản lý, phát triển bảo trì MVC chia ứng dụng phần mềm làm phần có tương tác với Model(Dữ liệu), View(Giao diện), Controller( Code điều khiển tương tác Model View nghiệp vụ (Business) Trong : - Model lớp chứa thơng tin đối tượng (Dữ liệu), tương tác với Database Chịu trách nhiệm mơ hình hóa đối tượng - View giao diện hệ thống tương tác trực tiếp với người dung - Controller nhận yêu cầu từ người dùng sử dụng Model View để xử lý trả kết cho người dùng CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ PHẦN MỀM 3.1 Các module chương trình Chương trình có khối : - Khối view: Là khối tạo giao diện cho phần mềm, khối có lớp để tạo giao diện giao tiếp với người dùng - Khối model : Khối có nhiệm vụ giao tiếp với sở liệu - Khối controller: Là khối có nhiệm vụ thực chức yêu cầu phần mềm 3.2 Các chức chương trình 3.2.1 Chức quản lý tài khoản - Để sử dụng Chương trình Quản lý danh bạ thông tin liên lạc, người dùng cần đăng ký tài khoản Mỗi tài khoản sử dụng để quản lý thông tin liên lạc cho máy client - Khách hàng đăng ký tài khoản giao diện khởi động hệ thống - Khách hàng đăng nhập vào hệ thống sau đăng ký thành cơng 3.2.2 Chức thêm, sửa, xóa thơng tin liên lạc - Chương trình thêm danh bạ thơng tin liên lạc: - Chương trình sửa danh bạ thơng tin liên lạc: - Xóa thơng tin danh bạ : 3.2.3 Chức tìm kiếm thơng tin liên lạc - Có thể tìm kiếm theo tên, theo số điện thoai, nhóm địa chỉ: 3.2.4 Chức lưu danh bạ thông tin liên lạc lên server 3.2.5 Chức khôi phục danh bạ thông tin liên lạc từ server hiển thị lên chương trình client KẾT LUẬN Qua Bài Tập Lớn Mơn Lập trình nâng cao, chúng em làm quen với khái niệm ngơn ngữ lập trình Java, phương pháp lập trình với Java Chúng em có tảng kiến thức tốt lập trình, tăng khả làm việc nhóm, có hội tìm hiểu thực tế, xây dựng chương trình cụ thể Nhân chúng em xin cảm ơn Phan Doãn Tĩnh giúp đỡ giảng dạy cho chúng em kiến thức bổ ích để hoàn thành Bài Tập Lớn Em xin chân thành cảm ơn! Hà Nội, - 2017 PHỤ LỤC Mã nguồn: package contacts.controller; import javax.swing.SwingUtilities; import contacts.view.Login; public class Contacts { public static void main(String[] args) { / TODO Auto-generated method stub SwingUtilities.invokeLater(new Runnable() { @Override public void run() { / TODO Auto-generated method stub new LoginContronler(); } }); } } package contacts.controller; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JOptionPane; import contacts.model.Account; import contacts.model.Client; import contacts.view.CreatAccount; public class CreatAccountController { public CreatAccountController() { CreatAccount creatAcc = new CreatAccount(); creatAcc.setAddButtonActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub try { Client obj = new Client("2"); } catch (IOException e1) { / TODO Auto-generated catch block e1.printStackTrace(); } } }); creatAcc.setCancelButtonActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub creatAcc.dispose(); } }); } } package contacts.controller; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.JOptionPane; import contacts.model.Client; import contacts.view.Login; import contacts.view.MainView; public class LoginContronler { private final Login login; public static Client obj; public LoginContronler() { login = new Login(); login.SetSinginButtonActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub try { obj = new Client("1"); if(obj.getCheck() == true) { login.dispose(); new MainViewController(Login.getTfUserName()); } if(obj.getCheck() == false) JOptionPane.showMessageDialog(null, "Không đăng nhập !"); } catch (IOException e1) { / TODO Auto-generated catch block e1.printStackTrace(); } } }); login.SetCreatAccountButtonActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub new CreatAccountController(); } }); } } package contacts.controller; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.IOException; import javax.swing.JOptionPane; import contacts.model.Client; import contacts.model.Data; import contacts.view.AddPerson; import contacts.view.IMainView; import contacts.view.MainView; public class MainViewController { private final MainView main; public MainViewController(String sms) { main = new MainView(); main.setThemActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { / TODO Auto-generated method stub new AddPersonController(false); } }); main.setXoaActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub Data data = new Data(); data.deleteData(); MainView.updateTable(data.getListPerson()); } }); main.setSuaActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub int index = Data.findIndexOfData(); if(index >=0) { new AddPersonController(true); } else { JOptionPane.showMessageDialog(null, "Chọn người sửa"); } } }); main.setTimKiemActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub Data data = new Data(); data.dataSearch(); MainView.updateTable(data.getListPersonSearch()); MainView.searchStatus(data.getListPersonSearch().size(), " địa phù hợp ! ", MainView.getTfSearch()); } }); main.setEnterActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub Data data = new Data(); data.dataSearch(); MainView.updateTable(data.getListPersonSearch()); MainView.searchStatus(data.getListPersonSearch().size(), " địa phù hợp ! ", MainView.getTfSearch()); } }); main.setGioiThieuActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub JOptionPane.showMessageDialog(null, "Chương trình viết :\r\nNguyễn Như Vinh - 20122808\r\nLê Hùng Cường - 20121360\r\ nViện Điện Tử Truyền Thông - BKHN ", "Giới thiệu", 1); } }); main.setDangNhapLaiActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub main.dispose(); new LoginContronler(); } }); main.setThoatActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub main.dispose(); } }); main.setSaoLuuActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub LoginContronler.obj.saoLuuDanhBa(); LoginContronler.obj.checkSaoLuuDanhBa(); LoginContronler.obj.checkKhoiPhucDanhBa(); JOptionPane.showMessageDialog(null, "Thành công !"); } }); main.setKhoiPhucActionlistener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { / TODO Auto-generated method stub LoginContronler.obj.khoiPhucLuuDanhBa(); try { LoginContronler.obj.addDuLieuTuServer(); LoginContronler.obj.checkKhoiPhucDanhBa(); } catch (IOException e1) { / TODO Auto-generated catch block e1.printStackTrace(); } JOptionPane.showMessageDialog(null, "Thành công !"); Data data = new Data(); MainView.updateTable(data.getListPerson()); } }); } } TÀI LIỆU THAM KHẢO [1] Giáo trình lập trình hướng đối tượng OOP [2] Trang web hướng dẫn lập trình java vietjack.com [3] Kênh youtube hướng dẫn học java StudyAndShare https://www.youtube.com/watch?v=EWLF_1M5LYM&list=PLcMwyXC3R-OjUkuPdxkQoq4nq76jtUoG [4] Mơ hình cấu trúc MVC https://vi.wikipedia.org/wiki/MVC ... dung yêu cầu đề tài Các chức cần có phần mềm quản lý danh bạ thông tin liên lạc : - Thêm thông tin liên lạc - Sửa thông tin liên lạc - Xóa thơng tin liên lạc - Tìm kiếm thơng tin liên lạc Ngồi cịn... sửa, xóa thơng tin liên lạc - Chương trình thêm danh bạ thơng tin liên lạc: - Chương trình sửa danh bạ thơng tin liên lạc: - Xóa thơng tin danh bạ : 3.2.3 Chức tìm kiếm thơng tin liên lạc - Có thể... Để sử dụng Chương trình Quản lý danh bạ thông tin liên lạc, người dùng cần đăng ký tài khoản Mỗi tài khoản sử dụng để quản lý thông tin liên lạc cho máy client - Khách hàng đăng ký tài khoản giao

Ngày đăng: 30/11/2022, 14:12

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

Tài liệu liên quan