1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình android - Xây dựng ứng dụng xem lịch (Full source code + báo cáo)

19 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Xem Lịch
Tác giả Nguyễn Thành An, Đào Tuấn Phát, Hoàng Anh Đức
Người hướng dẫn Trần Văn Tâm
Trường học Trường Đại Học Công Nghệ Giao Thông Vận Tải
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Bài Tập Lớn
Năm xuất bản 2002
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 276,89 KB

Nội dung

Dự án Ứng dụng xem lịch là một ứng dụng Android hoàn chỉnh, cung cấp các chức năng cơ bản và nâng cao giúp người dùng quản lý lịch cá nhân một cách dễ dàng. Khi tải về, bạn sẽ nhận được full source code và báo cáo chi tiết về quy trình phát triển, thích hợp cho cả học tập và triển khai thực tế. Các tính năng chính: Hiển thị lịch theo tháng, tuần và ngày: Giao diện thân thiện, trực quan, dễ sử dụng. Xem chi tiết các ngày trong tháng với các sự kiện được đánh dấu. Quản lý sự kiện cá nhân: Thêm, sửa, và xóa sự kiện dễ dàng. Thiết lập nhắc nhở (notification) cho sự kiện. Tích hợp lịch âm và lịch dương: Hiển thị đồng thời ngày âm và ngày dương. Hỗ trợ tra cứu ngày tốt/xấu theo phong thủy (tùy chọn mở rộng). Đồng bộ hóa dữ liệu: Tích hợp Google Calendar để đồng bộ hóa lịch. Sao lưu và khôi phục dữ liệu lịch từ tài khoản Google. Tùy chỉnh giao diện: Chọn màu sắc và chủ đề ứng dụng. Hiển thị widget trên màn hình chính. Tìm kiếm sự kiện: Tìm nhanh sự kiện theo từ khóa. Lọc sự kiện theo ngày, tuần, hoặc tháng.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GIAO THÔNG VẬN TẢI

KHOA CÔNG NGHỆ THÔNG TIN

**********

BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH DI ĐỘNG

ĐỀ TÀI: “Xây dựng ứng dụng xem lịch”

GIÁO VIÊN HƯỚNG DẪN: TRẦN VĂN TÂM

SINH VIÊN THỰC HIỆN:

PHẠM TUẤN HÙNG

VŨ NGỌC SƠN NGUYỄN THÀNH AN ĐÀO TUẤN PHÁT HOÀNG ANH ĐỨC LỚP: 72DCTT21

Hà Nội, 2002

Trang 2

MỤC LỤC

LỜI NÓI ĐẦU 3

NỘI DUNG 4

CHƯƠNG 1: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ ỨNG DỤNG 4

1 Khảo sát và phân tích bài toán 4

2 Xây dựng cơ sở dữ liệu 4

CHƯƠNG 2: CƠ SỞ NGHIÊN CỨU LÝ THUYẾT 9

1 Ngôn ngữ truy vấn SQL 9

2 Ngôn ngữ lập trình Android 9

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG 10

1 Chức Năng Đăng Nhập 10

2 Chức Năng Đăng Ký 13

3 Xem lịch 18 Kết luận và hướng phát triên

Trang 3

LỜI NÓI ĐẦU

Công nghệ thông tin là một ngành rất phát triển trong xã hội ngày nay Nó được ứng dụng trong rất nhiều ngành, lĩnh vực khác nhau và đạt được nhiều hiệu quả cao Đặc biệt là trong công tác bán hàng, tin học làm giảm nhẹ được sức của người bán hàng, tiết kiệm thời gian và gọn nhẹ hơn nhiều so với cách quản lý bằng giấy tờ như trước kia Ứng dụng tin học vào hoạt động buôn bán còn giúp người mua hàng dễ dàng tiếp cận, thuận lợi hơn và cũng như tiết kiệm thời gian một cách hiệu quả Hơn nữa

nó còn giúp tìm kiếm tra cứu thông tin một cách nhanh chóng, chính xác

và đầy đủ.

Từ những nhận thức về tầm quan trọng của ngành công nghệ thông tin với công tác bán hàng, cùng với sự mong muốn học hỏi và góp một phần nhỏ đưa tin học ứng dụng vào đời sống, nhóm chúng em đã làm đề tài

“Xây dựng ứng dụng xem lịch”.

Trang 4

CHƯƠNG 1: KHẢO SÁT VÀ PHÂN TÍCH THIẾT KẾ ỨNG

DỤNG

1 Khảo sát và phân tích bài toán

1.1 Xác định yêu cầu bài toán

Hiện nay điện thoại di động đã trở thành thiết bị phổ biến Xu hướng và nhu cầu sử dụng điện thoại của con người ngày càng cao Và từ đó kéo theo việc thiết kế ứng dụng xem lịch là cần thiết trong cuộc sống hàng ngày.

Với ứng dụng xem lịch thì việc chúng ta xác định được ngày tháng năm dễ dàng hơn bao giờ hết Chúng ta có thể xem lịch và từ đó có thể vạch ra kế hoạch công việc hay đi chơi nhanh chóng và thuận tiện

1.2, Xác định tác nhân:

- Admin: Đảm bảo hệ thống hoạt động thông suốt, đồng thời là người điều hành hệ thống.

- Người dùng: Những người được hệ thống phục vụ trong việc xem lịch trong ứng dụng

2, Xây dựng cơ sở dữ liệu

Sơ đồ cơ sở dữ liệu:

Trang 5

Chi tiết các bảng:

- Bảng ngày lịch:

Column Name Description Data

Type Size Required

Default Value

Calender date Lịch ngày DATE 50 Null

Day of week Ngày trong

- Bảng sự kiện:

Column Name Description Data

Type Size Required

Default Value

Event id Mã số sự

Description Mô tả Nvarchar MAX Null

Location Địa điểm Nvarchar 255 Null

Trang 6

- Bảng người dùng:

Column Name Description Data

Type Size Required

Default Value

Customer id Mã người

Password Mật khẩu Nvarchar MAX Null

Phonenumber Số điện

CHƯƠNG 2: CƠ SỞ NGHIÊN CỨU LÝ THUYẾT

1 Ngôn ngữ truy vấn SQL

1.1 Insert:

Mục đích: Thêm dữ liệu vào bảng

Cú pháp:

INSERT INTO Table_Ten (cot1, cot2, cot3, …, cotN)] VALUES (giatri1, giatri2, giatri3, …, giatriN);

Ví Dụ:

INSERT INTO TheLoai (matheloai, tentheloai) VALUES (p_matheloai, p_tentheloai)

1.2 Update:

Mục đích: Cập nhật dữ liệu vào bảng

Cú Pháp:

Trang 7

UPDATE ten_bang SET cot1 = giatri1, cot2 = giatri2, …, cotN = giatriN WHERE [dieu_kien];

Ví dụ: UPDATE GiaoVien SET Luong = 3500 WHERE MAGV =

001

1.3 Delete:

Mục đích: Xóa dữ liệu trong bảng

Cú pháp:

DELETE FROM ten_bang [WHERE dieu_kien];

Ví dụ: DELETE GiaoVien WHERE MaGV = 002

1.4 Select:

Mục đích: Tên cột trong danh sách chọn

Cú pháp: SELECT giatri1, giatri2, …, giatriN FROM table

name;

Ví dụ: SELECT * FROM KhachHang;

2 Ngôn ngữ lập trình Android

- Form

Các Control (điều khiển cơ bản): TextView, EditText, Listview, Button, RecyclerView, ImageView, Toolbar, …

Trang 8

CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG

1 Chức năng đăng nhập

1.1 Giao diện

Trang 9

1.2 Dangnhap.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp">

<EditText

android:id="@+id/emailEditText"

android:layout_width="match_parent"

android:layout_height="70dp"

android:hint="Email"

android:inputType="textEmailAddress" />

<EditText

android:id="@+id/passwordEditText"

android:layout_width="match_parent"

android:layout_height="74dp"

android:hint="Mật khẩu"

android:inputType="textPassword" />

<Button

android:id="@+id/loginButton"

android:layout_width="172dp"

android:layout_height="66dp"

android:text="Đăng nhập" />

<Button

android:id="@+id/registerButton"

android:layout_width="174dp"

android:layout_height="65dp"

android:text="Đăng ký" />

</LinearLayout>

1.3 DangnhapActivity

package com.example.lch;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

Trang 10

import com.google.android.gms.tasks.OnCompleteListener;

import com.google.android.gms.tasks.Task;

import com.google.firebase.auth.AuthResult;

import com.google.firebase.auth.FirebaseAuth;

public class MainActivity extends AppCompatActivity {

private EditText emailEditText, passwordEditText;

private Button loginButton, registerButton;

private FirebaseAuth mAuth;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main)

emailEditText = findViewById(R.id.emailEditText)

passwordEditText = findViewById(R.id.passwordEditText)

loginButton = findViewById(R.id.loginButton)

registerButton = findViewById(R.id.registerButton)

mAuth = FirebaseAuth.getInstance();

loginButton.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

String email = emailEditText.getText().toString(); String password =

passwordEditText.getText().toString();

mAuth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {

Trang 11

@Override

public void onComplete(@NonNull

Task<AuthResult> task) {

if (task.isSuccessful()) {

Toast.makeText(MainActivity.this,

"Login successful", Toast.LENGTH_SHORT).show();

// Chuyển sang hoạt động thứ ba sau khi đăng nhập thành công

Intent thirdActivityIntent = new Intent(MainActivity.this, LichActivity.class)

startActivity(thirdActivityIntent); } else { Toast.makeText(MainActivity.this, "Login failed", Toast.LENGTH_SHORT).show(); }

}

});

}

});

registerButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // Chuyển sang màn hình đăng ký Intent registerIntent = new Intent(MainActivity.this, DangkyActivity.class) startActivity(registerIntent); }

});

}

}

Trang 12

2 Chức năng đăng ký

2.1 Giao diện đăng ký

2.2 Dangky.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout

xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="16dp">

<EditText

android:id="@+id/emailEditText"

android:layout_width="match_parent"

android:layout_height="79dp"

Trang 13

android:hint="Email"

android:inputType="textEmailAddress" /> <EditText

android:id="@+id/passwordEditText"

android:layout_width="match_parent"

android:layout_height="77dp"

android:hint="Nhập mật khẩu"

android:inputType="textPassword" />

<EditText

android:id="@+id/confirmPasswordEditText" android:layout_width="match_parent"

android:layout_height="77dp"

android:hint="Nhập lại mật khẩu"

android:inputType="textPassword" />

<Button

android:id="@+id/registerButton"

android:layout_width="146dp"

android:layout_height="64dp"

android:text="Đăng ký" />

</LinearLayout>

2.3 DangkyActivity

package com.example.lch;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

Trang 14

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

import com.google.android.gms.tasks.OnCompleteListener;

import com.google.android.gms.tasks.Task;

import com.google.firebase.auth.AuthResult;

import com.google.firebase.auth.FirebaseAuth;

public class DangkyActivity extends AppCompatActivity {

private EditText emailEditText, passwordEditText;

private Button registerButton;

private FirebaseAuth mAuth;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_dangky)

emailEditText = findViewById(R.id.emailEditText)

passwordEditText = findViewById(R.id.passwordEditText)

registerButton = findViewById(R.id.registerButton)

mAuth = FirebaseAuth.getInstance();

registerButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

String email = emailEditText.getText().toString(); String password =

passwordEditText.getText().toString();

mAuth.createUserWithEmailAndPassword(email, password)

Trang 15

addOnCompleteListener(DangkyActivity.this, new OnCompleteListener<AuthResult>() {

@Override

public void onComplete(@NonNull

Task<AuthResult> task) {

if (task.isSuccessful()) {

Toast.makeText(DangkyActivity.this, "Đăng ký thành công", Toast.LENGTH_SHORT).show(); Intent loginIntent = new Intent(DangkyActivity.this, MainActivity.class) startActivity(loginIntent); } else {

Toast.makeText(DangkyActivity.this, "Đăng ký thất bại", Toast.LENGTH_SHORT).show(); }

}

});

}

});

}

}

Trang 16

3 Ứng dụng xem lịch

3.1 Giao diện

3.2 Lich.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".LichActivity">

Trang 17

<TextView

android:id="@+id/date_view"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="150dp"

android:layout_marginTop="20dp"

android:text="Chọn ngày"

android:textColor="@android:color/background_dark" android:textStyle="bold" />

<CalendarView

android:id="@+id/calendar"

android:layout_marginTop="80dp"

android:layout_marginLeft="19dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

</CalendarView>

</RelativeLayout>

3.3 LichActivity

package com.example.lch;

import android.os.Bundle;

import android.widget.CalendarView;

import android.widget.TextView;

import androidx.annotation.NonNull;

import androidx.appcompat.app.AppCompatActivity;

Trang 18

public class LichActivity extends AppCompatActivity {

CalendarView calendar;

TextView date_view;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_lich)

calendar = findViewById(R.id.calendar)

date_view = findViewById(R.id.date_view)

calendar.setOnDateChangeListener(new

CalendarView.OnDateChangeListener() {

@Override

public void onSelectedDayChange(@NonNull CalendarView view, int year, int month, int dayOfMonth) {

String Date = dayOfMonth + "-" + (month + 1) + "-" + year;

date_view.setText(Date);

}

});

}

}

Trang 19

Kết luận và hướng phát triển

1.Kết luận

- Tìm hiểu được cách thức hoạt động của một cửa hàng kinh doanh trực tuyến.

- Áp dụng được các kiến thức đã học như sử dụng cơ sở dữ liệu, phân tích

và thiết kế hệ thống, sử dụng thư viện SDK , Firebase và đặc biệt là ngôn ngữ lập trình Java để xây dựng nên ứng dụng di động chạy trên nền tảng

hệ điều hành Android với nhiều chức năng.

2.Hướng phát triển

- Tìm hiểu kĩ hơn về thành phần, chức năng của một ứng dụng di động thương mại điện tử.

- Cải tiến ứng dụng bằng những thuật toán, ngôn ngữ tốt hơn nhằm tối ưu thời gian thực hiện

trên hệ thống, tăng trải nghiệm người dùng.

Ngày đăng: 03/01/2025, 14:48

HÌNH ẢNH LIÊN QUAN

Sơ đồ cơ sở dữ liệu: - Lập trình android - Xây dựng ứng dụng xem lịch (Full source code + báo cáo)
Sơ đồ c ơ sở dữ liệu: (Trang 4)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w