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

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

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 (257.9 KB, 24 trang )

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 hiện :
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..............................................................................................................2


LỜI NÓI ĐẦU...........................................................................................................3
CHƯƠNG 1. ĐẶT VẤN ĐỀ.....................................................................................4
1.1 Ý nghĩa, sự cần thiết và khả năng ứng dụng của đề tài.....................................4
1.2. Nội dung yêu cầu đề tài....................................................................................4
CHƯƠNG 2. PHƯƠNG PHÁP GIẢI QUYẾT..........................................................5
2.1 Giới thiệu về ngơn ngữ lập trình JAVA............................................................5
2.2 Cơng cụ sử dụng Eclipse và mơ hình MVC......................................................6
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ PHẦN MỀM................................................8
3.1. Các module của chương trình..........................................................................8
3.2. Các chức năng của chương trình......................................................................8
3.2.1 Chức năng quản lý tài khoản......................................................................8
3.2.2 Chức năng thêm, sửa, xóa thơng tin liên lạc...............................................8
3.2.3 Chức năng tìm kiếm thơng tin liên lạc......................................................10
3.2.4 Chức năng sao lưu danh bạ thông tin liên lạc lên server...........................11
3.2.5 Chức năng khôi phục danh bạ thông tin liên lạc từ server và 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 và truyền thông hiện nay, mỗi
người đều sở hữu cho mình một điên thoại di động kèm theo đó là danh sách số điện
thoại. Nhận thấy sự cần thiết của 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 các khái niệm về 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ả năng về lập trình, tăng khả
năng làm việc nhóm.
Em xin gửi lời cảm ơn chân thành thầy Phan Doãn Tĩnh đã tận tình giảng dạy
và chỉ bảo giúp nhóm em hoàn thiện đề tài này.



CHƯƠNG 1. ĐẶT VẤN ĐỀ
1.1 Ý nghĩa, sự cần thiết và khả năng ứng dụng của đề tài
Công nghệ thông tin (CNTT) ngày càng có vai trị quan trọng trong cuộc sống
hàng ngày của chúng ta. Việc ứng dụng CNTT vào các lĩnh vực trong đời sống giúp
công việc được tiến hành nhanh chóng và hiệu quả hơn. Có rất nhiều công việc mới
phát triển song song với sự phát triển của CNTT, một trong những số đó là viết phần
mềm nhằm phục vụ cho việc học tập, làm việc và giải trí hằng 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 hơn về ngơn ngữ Java và lập trình
hướng đối tượng, từ đó viết một ứng dụng cụ thể thử nghiệm làm cơ sở củng cố kiến
thức và định hướng kế hoạch xây dựng phần mềm trong tương lai. Nhận thấy đề tài
có ứng dụng rất cao vào thực tế đời sống, bất kỳ một người nào cũng cần lưu giữ và
quản lý danh bạ thông tin liên lạc, nên việc triển khai đề tài là có tính khả thi.

1.2. Nội dung u cầu đề tài
Các chức năng cơ bản cần có của một phần mềm quản lý danh bạ thông tin liên
lạc như :
-

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 ra cịn có các chức năng sau :
-

Cho phép người dung sao lưu danh bạ.

-

Khi cần, người dùng có thể tải bản lưu trên server và phục hồi trên chương
trình client.

-

Server phải có quản lý tài khoản người dùng.


CHƯƠNG 2. PHƯƠNG PHÁP GIẢI QUYẾT
2.1 Giới thiệu về ngôn ngữ lập trình JAVA
Java là một ngơn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp
(class). Khác với phần lớn ngơn ngữ lập trình thơng thường, thay vì biên dịch mã
nguồn thành mã máy hoặc thơng dịch mã nguồn khi chạy, Java được thiết kế để biên
dịch mã nguồn thành bytecode, bytecode sau đó sẽ được mơi trường thực thi
(runtime environment) chạy.
Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã máy như C và
C++, nhưng sau này nhờ công nghệ "biên dịch tại chỗ" - Just in time compilation,
khoảng cách này đã được thu hẹp, và trong một số trường hợp đặc biệt Java có thể

chạy nhanh hơn. Java chạy nhanh hơn những ngôn ngữ thông dịch như Python, Perl,
PHP gấp nhiều lần. Java chạy tương đương so với C#, một ngôn ngữ khá tương
đồng về mặt cú pháp và quá trình dịch/chạy.
Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháp hướng đối
tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn. Do đó việc viết một chương
trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn.
Trong Java, hiện tượng rị rỉ bộ nhớ hầu như khơng xảy ra do bộ nhớ được quản
lí bởi Java Virtual Machine (JVM) bằng 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 và xóa bộ nhớ như C, C++. Tuy nhiên khi sở
dụng những tài nguyên mạng, file IO, database (nằm ngồi kiểm sốt của JVM) mà
người lập trình khơng đóng (close) các streams thì rị rỉ dữ liệu vẫn có thể xảy ra.
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems
năm 1991. Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi; do bên ngồi
cơ quan của ơng Gosling có trồng nhiều loại cây này), họ dự định ngơn ngữ đó thay
cho C++, nhưng các tính năng giống Objective C. Không nên lẫn lộn Java với
JavaScript, hai ngơn ngữ đó chỉ giống tên và loại cú pháp như C. Công ty Sun


Microsystems đang giữ bản quyền và phát triển Java thường xuyên. Tháng 04/2011,
công ty Sun Microsystems tiếp tục cho ra bản JDK 1.6.24.
Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write
Once, Run Anywhere" (WORA)). Chương trình phần mềm viết bằng Java có thể
chạy trên mọi nền tảng (platform) khác nhau thông qua một 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ợ nền tảng đó. Mơi trường thực thi
của Sun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD &
Windows. Ngồi ra, một số cơng ty, tổ chức cũng như cá nhân khác cũng phát triển
môi trường thực thi Java cho những hệ điều hành khác như BEA, IBM, HP.... Trong
đó đáng nói đến nhất là IBM Java Platform hỗ trợ Windows, Linux, AIX & z/OS.
Những chi tiết về ngôn ngữ, máy ảo và API của Java được giữ bởi Cộng đồng
Java (do Sun quản lý). Java được tạo ra vào năm 1991 do một số kỹ sư ở Sun, bao

gồm ông James Gosling, một phần của Dự án Xanh (Green Project). Java được phát
hành vào năm 1994, rồi nó trở nên nổi tiếng khi Netscape tuyên bố tại hội thảo
SunWorld năm 1995 là trình duyệt Navigator của họ sẽ hỗ trợ Java. Về sau Java
được hỗ trợ trên hầu hết các trình duyệt như Internet Explorer (Microsoft), Firefox
(Mozilla), Safari (Apple)...
Java được sử dụng chủ yếu trên môi trường NetBeans và Oracle. Sau khi Oracle
mua lại công ty Sun Microsystems năm 2009-2010, Oracle đã mô tả họ là "người
quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham
gia và minh bạch".

2.2 Cơng cụ sử dụng Eclipse và mơ hình MVC
Eclipse là một mơi trường phát triển tích hợp (IDE) được sử dụng trong lập trình
máy tính . Nó chứa một cơ sở không gian làm việc và mở rộng plug-in hệ thống để
tùy biến các môi trường. Eclipse được viết phần lớn trong Java và sử dụng chính của
nó là để phát triển các ứng dụng Java, nhưng nó cũng có thể được sử dụng để phát
triển các ứng dụng trong các ngơn ngữ lập trình thơng qua việc sử dụng các plugin,


on Rails framework , Rust , Scala , Clojure , Groovy . Nó cũng có thể được sử dụng
để phát triển các gói cho các phần mềm Mathematica . Phát triển môi trường bao
gồm các công cụ phát triển Eclipse Java (JDT) cho Java và Scala, Eclipse CDT cho
C / C ++ và Eclipse PDT cho PHP.
MVC là Design Pattern (mẫu thiết kế) được áp dụng rộng rãi trên hầu hết các
ngơn ngữ lập trình hướng đối tượng hiện nay từ Java, C#, PHP, Visual C++. Model
– View – Controller (MVC) là một mẫu thiết kế nhằm mục tiêu chia tách phần Giao
diện và Code để dễ quản lý, phát triển và bảo trì. MVC chia ứng dụng phần mềm ra
làm 3 phần có tương tác với nhau là Model(Dữ liệu), View(Giao diện),
Controller( Code điều khiển tương tác giữa Model và View cũng như nghiệp vụ
(Business).
Trong đó :

-

Model là 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 chính trong mơ hình hóa đối tượng.

-

View là giao diện của 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 và sử dụng Model và View để xử lý và
trả kết quả cho người dùng.


CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ PHẦN MỀM
3.1. Các module của chương trình
Chương trình có 3 khối chính :
-

Khối view: Là khối tạo giao diện cho phần mềm, trong khối này có các lớp
để tạo các giao diện giao tiếp với người dùng

-

Khối model : Khối này có nhiệm vụ là giao tiếp với cơ sở dữ liệu.

-

Khối controller: Là khối có nhiệm vụ thực hiện các chức năng và yêu cầu

phần mềm.

3.2. Các chức năng của chương trình
3.2.1 Chức năng 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 được sử dụng để quản lý thông tin liên lạc
cho một máy client.

-

Khách hàng đăng ký tài khoản ở giao diện khởi động của hệ thống.

-

Khách hàng có thể đăng nhập vào hệ thống ngay sau khi đăng ký thành công.

3.2.2 Chức năng thêm, sửa, xóa thơng tin liên lạc
-

Chương trình có thể thêm danh bạ thông tin liên lạc:


-

Chương trình có thể sửa danh bạ thơng tin liên lạc:


-

Xóa thơng tin danh bạ :


3.2.3 Chức năng 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 hoặc địa chỉ:


3.2.4 Chức năng sao lưu danh bạ thông tin liên lạc lên server

3.2.5 Chức năng khôi phục danh bạ thông tin liên lạc từ server và 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 đã được làm quen với
các khái niệm về ngơn ngữ lập trình Java, phương pháp lập trình với Java. Chúng
em có nền tảng kiến thức tốt về lập trình, tăng khả năng làm việc nhóm, có cơ hội
tìm hiểu thực tế, xây dựng được chương trình cụ thể.
Nhân đây chúng em cũng xin cảm ơn Phan Doãn Tĩnh đã giúp đỡ và giảng
dạy cho chúng em những kiến thức bổ ích để hồn thành Bài Tập Lớn này. Em xin
chân thành cảm ơn!

Hà Nội, 5 - 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 được !");
} 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
một người rồ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 chỉ 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 chỉ 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
được viết bởi :\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
/>[4] Mơ hình cấu trúc MVC />


×