bài tập lớn xây dựng ứng dụng quản lý đặt vé xem phim ngành công nghệ thông tin chuyên ngành mạng máy tính truyền thông

75 3 0
bài tập lớn xây dựng ứng dụng quản lý đặt vé xem phim ngành công nghệ thông tin chuyên ngành mạng máy tính truyền thông

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN BÀI TẬP LỚN XÂY DỰNG ỨNG DỤNG QUẢN LÝ ĐẶT VÉ XEM PHIM NGÀNH: CÔNG NGHỆ THƠNG TIN CHUN NGÀNH: MẠNG MÁY TÍNH & TRUYỀN THƠNG SINH VIÊN THỰC HIỆN: MAI TIẾN THÀNH LÊ TRÍ TRUNG CHU VĂN TIẾN MÃ LỚP: 101192 GIẢNG VIÊN: VŨ XUÂN THẮNG HƯNG YÊN – 2021 NHẬN XÉT Nhận xét giảng viên hướng dẫn: GIẢNG VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) Xây dựng ứng dụng quản lí đặt vé xem phim MỤC LỤC NHẬN XÉT MỤC LỤC DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ CHƯƠNG 1: 1.1 TỔNG QUAN VỀ ĐỀ TÀI Lý chọn đề tài 1.2 Mục tiêu đề tài 1.2.1 Mục tiêu tổng quát 1.2.2 Mục tiêu cụ thể 1.3 Giới hạn phạm vi đề tài 1.3.1 Đối tượng nghiên cứu 1.3.2 Phạm vi nghiên cứu .8 1.4 Nội dung thực 1.5 Phương pháp tiếp cận CHƯƠNG 2: 2.1 CƠ SỞ LÝ THUYẾT Quy trình phát triển phần mềm 2.1.1 Giới thiệu Quy trình phát triển phần mềm 2.1.2 Một số mơ hình quy trình phát triển phần mềm 10 2.2 Phương pháp phân tích thiết kế hướng đối tượng .22 2.3 Giới thiệu tổng quan hệ quản trị Cơ sở liệu SQLite 23 2.3.1 Giới thiệu SQLite .23 2.3.2 Một số đặc điểm SQLite 23 2.3.3 Truy vấn SQLite 23 2.4 Giới thiệu drawable animation 24 Xây dựng ứng dụng quản lí đặt vé xem phim 2.4.1 Drawables gì? 24 2.4.2 Animation gì? 25 CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 28 3.1 Khảo sát yêu cầu ứng dụng 28 3.2 Phân tích đặc tả yêu cầu ứng dụng 28 3.2.1 Yêu cầu chức ứng dụng 28 3.2.2 Các chức cần đạt 28 CHƯƠNG 4: TRIỂN KHAI ỨNG DỤNG .40 4.1 Triển khai chức hệ thống 40 4.1.1 Chức quản lí lớp học 40 4.1.2 Chức quản lí sinh viên 51 4.2 Kiểm thử triển khai ứng dụng 70 4.2.1 Kiểm thử 70 4.2.2 Đóng gói ứng dụng 70 4.2.3 Triển khai ứng dụng 71 KẾT LUẬN 72 TÀI LIỆU THAM KHẢO .73 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim DANH MỤC CÁC BẢNG Bảng Tên chức Form ứng dụng 29 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình Giao diện Form đăng ký 30 Hình Giao diện Form đăng nhập 31 Hình 3 Giao diện Form quản trị .32 Hình Form quản lý khách hàng .33 Hình Form thông tin khách hàng 34 Hình Form quản lý lịch chiếu 35 Hình Form quản lý phim 36 Hình Form thêm phịng chiếu 37 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim CHƯƠNG 1: 1.1 TỔNG QUAN VỀ ĐỀ TÀI Lý chọn đề tài Giả sử bạn muốn xem phim việc chờ đợi mua vé rạp lại khiến bạn nhiều thời gian đơi lại khơng mong muốn khơng chọn xuất chiếu ý Việc khiến bạn chán nản gây lười biếng nghĩ đến việc xem phim rạp Để khắc phục tình trạng này, chúng tơi mang đến cho bạn giải pháp nhanh chóng tiện lợi, từ bây giờ, bạn ngồi nhà, cơng ty, hay nơi với cú click chuột, bạn hồn tồn an tâm có chỗ ngồi rạp phim xem phim theo ngày chiếu mong muốn Ở Việt Nam, hình thức đặt vé online cịn mẻ thị trường đầy tiềm Hơn nữa, ngày Việt Nam, công nghệ thông tin áp dụng rộng rãi hiệu tới nhiều lĩnh vực hoạt động xã hội Với thực tế phát triển công nghệ thực tiễn ứng dụng Việt Nam, với tâm Đảng Chính phủ định hướng thúc đẩy phát triển ứng dụng Công nghệ thông tin (CNTT) vào đời sống kinh tế làm tăng cao tốc độ ứng dụng số lượng người làm việc trực tiếp Internet Cùng với hạ tầng CNTT đầu tư nhiều để sẵn sàng cho ứng dụng tin học hóa Số lượng người thường xuyên truy cập Internet để làm việc cập nhật tìm kiếm thơng tin ngày nhiều với tốc độ tăng trưởng 40%/năm 1.2 Mục tiêu đề tài 1.2.1 Mục tiêu tổng quát Mục tiêu làm ứng dụng để khắc phục tất đặc điểm có, nhằm tạo tiện lợi, minh bạch cho người dung lẫn người quản lý Thứ nhất, ứng dụng khắc phục tình trạng bán vé cho khách hàng, để thuận tiện việc mua, đổi vé tốn Ngồi cịn lưu giữ thơng tin lần đầu tạo thuận lợi ưu đãi cho khách hang lần tiếp Hệ thống online giúp khách hang theo dõi xác thơng tin phim ưu đãi hệ bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim thống Thứ hai, ứng dụng đưa quản lý dễ dàng, dễ tiếp cận cho người quản lý nhân viên Giả bớt nguồn nhân lực rạp Đánh giá, thống kê mức tiêu thụ phim theo thể loại để người quản lý biết phương án để tiếp tục phát triển theo xu hướng 1.3 Giới hạn phạm vi đề tài 1.3.1 Đối tượng nghiên cứu - Đối tượng nghiên cứu: Ứng dụng quản lí - Khách thể nghiên cứu: Thơng tin lịch phim 1.3.2 Phạm vi nghiên cứu - Phạm vi không gian: Nghiên cứu thực mạng xã hội, thực tế - Phạm vi thời gian: Số tài liệu thu thập internet trình học - Ứng dụng thân thiện 1.4 Nội dung thực  Khảo sát lấy yêu cầu người chức mong muốn với hệ thống  Lập biểu đồ use-case chức cho hệ thống  Lập mô hình tổng thể thành phần hệ thống( gồm giao diện hệ thống thao tác với hệ thống thao tác với người dùng)  Lập trình kiện cho hệ thống  Thiết kế sở liệu 1.5 Phương pháp tiếp cận  Cách tiếp cận:  Nghiên cứu ngơn ngữ lập trình Java  Nghiên cứu hệ quản trị SQLite  Các phương pháp nghiên cứu  Đọc tài liệu online Internet, tài liệu offline thư viện  Khảo sát hệ thống có sẵn bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim CHƯƠNG 2: 2.1 CƠ SỞ LÝ THUYẾT Quy trình phát triển phần mềm 2.1.1 Giới thiệu Quy trình phát triển phần mềm Quy trình phát triển phần mềm cấu trúc bao gồm tập hợp thao tác kết tương quan sử dụng việc phát triển để sản xuất sản phẩm phần mềm Nhìn chung, quy trình phát triển phần mềm bao gồm giai đoạn sau: - Giải pháp, yêu cầu Nhiệm vụ: Thực khảo sát chi tiết yêu cầu phụ huynh để từ tổng hợp vào tài liệu giải pháp Tài liệu phải mô tả đầy đủ yêu cầu chức năng, phi chức giao diện Kết quả: Đầu giai đoạn tài liệu đặc tả yêu cầu - Thiết kế: Nhiệm vụ: Thực thiết kế tổng hợp vào tài liệu thiết kế Kết quả: Tài liệu thiết kế tổng thể, thiết kế module, thiết kế CSDL - Lập trình Nhiệm vụ: Lập trình viên thực lập trình dựa tài liệu Giải pháp Thiết kế phê duyệt Kết quả: Source code - Kiểm thử Nhiệm vụ: Tester tạo kịch kiểm thử (test case) theo tài liệu đặc tả yêu cầu, thực kiểm thử cập nhật kết vào kịch kiểm thử, log lỗi tool quản lý lỗi Kết quả: Test case , lỗi hệ thống quản lý lỗi - Triển khai Nhiệm vụ: Triển khai sản phẩm cho khách hàng Kết quả: Biên triển khai với khách hàng 10 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim animation = AnimationUtils.loadAnimation(this, R.anim.uptodowndiagonal); linearLayout.setAnimation(animation); btnNhapLai.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { edtMasv.setText(""); edtTensv.setText(""); edtemail.setText(""); } }); btnDanhSach.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(ThemSinhVienActivity.this, MainActivity.class)); overridePendingTransition(R.anim.ani_intent, R.anim.ani_intenexit); } }); lsList = lsDao.getAll(); ArrayAdapter adapter = new ArrayAdapter(ThemSinhVienActivity.this, android.R.layout.simple_spinner_item, lsList); spMaLop.setAdapter(adapter); btnReview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(edtHinh.getText().toString().equalsIgnoreCase("")){ imgAvata.setImageResource(R.drawable.avatasinhvien); }else if(edtHinh.getText().toString()!=""){ int id_hinh = ((Activity)ThemSinhVienActivity.this).getResources().getIdentifier(e dtHinh.getText().toString(), "drawable", ((Activity) ThemSinhVienActivity.this).getPackageName()); imgAvata.setImageResource(id_hinh); } } }); btnThem.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { 61 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim try { String pattern = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-] +)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; String ma = edtMasv.getText().toString(); String ten = edtTensv.getText().toString(); String email = edtemail.getText().toString(); String hinh = edtHinh.getText().toString(); Lop ls = (Lop) spMaLop.getSelectedItem(); String maLop = ls.getMaLop(); if (ma.equals("")) { Toast.makeText(ThemSinhVienActivity.this, "Mã sinh viên không để trống", Toast.LENGTH_LONG).show(); } else if (ten.equals("")) { Toast.makeText(ThemSinhVienActivity.this, "Tên sinh viên không để trống", Toast.LENGTH_LONG).show(); } else if (ten.matches((".*[0-9].*"))) { Toast.makeText(ThemSinhVienActivity.this, "Tên nhập chuỗi", Toast.LENGTH_LONG).show(); } else if (email.equals("")) { Toast.makeText(ThemSinhVienActivity.this, "Email sinh viên không để trống", Toast.LENGTH_LONG).show(); } else if (email.matches(pattern) == false) { Toast.makeText(ThemSinhVienActivity.this, "Bạn nhập sai định dạng email", Toast.LENGTH_SHORT).show(); } else if (hinh.equals("")) { edtHinh.setText("avatamacdinh"); } else { SinhVien s = new SinhVien(ma, ten, email, hinh, maLop); if (daoSach.insert(s)) { Toast.makeText(ThemSinhVienActivity.this, "Thêm thành công", Toast.LENGTH_LONG).show(); } else { Toast.makeText(ThemSinhVienActivity.this, " Không trùng mã sinh viên ", Toast.LENGTH_LONG).show(); } } } catch (Exception e) { e.printStackTrace(); Toast.makeText(ThemSinhVienActivity.this, "Lỗi : " + e, Toast.LENGTH_LONG).show(); } 62 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim } }); } }  Sửa, xóa thơng tin sinh viên  package com.example.quanylysinhvien.adapter; import android.Manifest; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Filter; import android.widget.Filterable; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import com.example.quanylysinhvien.R; 63 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim import com.example.quanylysinhvien.ThemSinhVienActivity; import com.example.quanylysinhvien.dao.LopDao; import com.example.quanylysinhvien.dao.SinhVienDao; import com.example.quanylysinhvien.model.Lop; import com.example.quanylysinhvien.model.SinhVien; import java.io.ByteArrayOutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.Optional; import de.hdodenhof.circleimageview.CircleImageView; public class SinhVienAdapter extends BaseAdapter implements Filterable { Context context; ArrayList ds; ArrayList dsSortSinhVien; private Filter svFilter; LopDao lopDao; SinhVienDao sinhVienDao; ArrayList dsmaLop = new ArrayList(); Animation animation; public static final int REQUEST_CODE_GALLERY = 777; { public SinhVienAdapter(Context context, ArrayList ds) } this.context = context; this.ds = ds; sinhVienDao = new SinhVienDao(context); this.dsSortSinhVien = ds; @Override public int getCount() { return ds.size(); } @Override 64 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim public Object getItem(int position) { return ds.get(position); } @Override public long getItemId(int position) { return 0; } @Override public void notifyDataSetChanged() { super.notifyDataSetChanged(); } public void changeDataSet(ArrayList dsl) { this.ds = dsl; notifyDataSetChanged(); } public void resetData() { this.ds = dsSortSinhVien; } @Override public Filter getFilter() { if (svFilter == null) { svFilter = new CustomFilter(); } return svFilter; } public class CustomFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); if (constraint == null || constraint.length() == 0) { results.values = dsSortSinhVien; results.count = dsSortSinhVien.size(); } else { ArrayList dssv = new ArrayList(); for (SinhVien sv : ds) { if 65 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim (sv.getTenSv().toUpperCase().startsWith(constraint.toString().toUppe rCase())) { dssv.add(sv); } } results.values = dssv; results.count = ds.size(); } return results; } @Override protected void publishResults(CharSequence constraint, FilterResults results) { if (results.count == 0) { notifyDataSetInvalidated(); } else { ds = (ArrayList) results.values; notifyDataSetChanged(); } } } private class ViewHolder extends AppCompatActivity { TextView txtTensv, txtMasv, txtemail, txtMalop; CircleImageView imageView_Avatalist; ImageView ivDelete, ivEdit; LinearLayout linearLayout; } @Override public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder holder; if (convertView == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); convertView = inflater.inflate(R.layout.dong_sinhvien, null); holder = new ViewHolder(); holder.txtMasv = convertView.findViewById(R.id.tvmasv); holder.txtTensv = convertView.findViewById(R.id.tvtensv); holder.txtemail = convertView.findViewById(R.id.tvemail); 66 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim holder.txtMalop = convertView.findViewById(R.id.tvmalop); holder.linearLayout = convertView.findViewById(R.id.linearLayoutSuaLop); holder.ivDelete = convertView.findViewById(R.id.imageViewDelete); holder.imageView_Avatalist = convertView.findViewById(R.id.imageViewHinh); holder.ivEdit = convertView.findViewById(R.id.imageViewedit); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } final SinhVien s = ds.get(position); holder.ivEdit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { lopDao = new LopDao(context); final AlertDialog.Builder builder = new AlertDialog.Builder(context); LayoutInflater inflater = ((Activity) context).getLayoutInflater(); View view = inflater.inflate(R.layout.sua_sinhvien, null); final EditText etMasv = view.findViewById(R.id.edMaSvedit); final EditText etTensv = view.findViewById(R.id.edTenSvedit); final EditText etemail = view.findViewById(R.id.edemail); final EditText ethinh = view.findViewById(R.id.edhinh); final CircleImageView imgAvata = view.findViewById(R.id.imageView_avata_edit); final Spinner spMalop = view.findViewById(R.id.spEdmalop); Button btnReview = view.findViewById(R.id.btnReviewSuaSV); final Button btnSua = view.findViewById(R.id.btnEdSua); final Button btnLai = view.findViewById(R.id.btnEdNhapLai); final Button btnHuy = view.findViewById(R.id.btnHuyeditSV); dsmaLop = lopDao.getAll(); final ArrayAdapter adapter = new ArrayAdapter(context, 67 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim android.R.layout.simple_spinner_item, dsmaLop); spMalop.setAdapter(adapter); //Đổ liệu etMasv.setText(s.getMaSv()); etTensv.setText(s.getTenSv()); etemail.setText(s.getEmail()); ethinh.setText(s.getHinh()); int id_hinh = ((Activity) context).getResources().getIdentifier(s.getHinh(), "drawable", ((Activity) context).getPackageName()); imgAvata.setImageResource(id_hinh); int giatri = -1; for (int i = 0; i < dsmaLop.size(); i++) { if (dsmaLop.get(i).toString().equalsIgnoreCase(s.getMaLop())) { giatri = i; break; } } spMalop.setSelection(giatri); builder.setView(view); final AlertDialog alertDialog = builder.create(); //Sửa liệu btnReview.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(ethinh.getText().toString().equalsIgnoreCase("")){ imgAvata.setImageResource(R.drawable.avatamacdinh); }else if(ethinh.getText().toString()!=""){ int id_hinh = ((Activity)context).getResources().getIdentifier(ethinh.getText().toStri ng(), "drawable", ((Activity) context).getPackageName()); imgAvata.setImageResource(id_hinh); } } }); btnSua.setOnClickListener(new View.OnClickListener() { @Override 68 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim public void onClick(View v) { try { String maSv = etMasv.getText().toString(); String tenSv = etTensv.getText().toString(); String email = etemail.getText().toString(); Lop lop = (Lop) spMalop.getSelectedItem(); String maLop = lop.getMaLop(); String hinh = ethinh.getText().toString(); if (maSv.equals("")) { Toast.makeText(context, "Bạn cần thêm mã sinh viên", Toast.LENGTH_LONG).show(); } else if (tenSv.equals("")) { Toast.makeText(context, "Bạn cần thêm tên sinh viên", Toast.LENGTH_LONG).show(); } else if (email.equals("")) { Toast.makeText(context, "Bạn cần thêm email sinh viên", Toast.LENGTH_LONG).show(); } else if (hinh.equals("")) { ethinh.setText("avatamacdinh"); } else { SinhVien sinhVien = new SinhVien(maSv, tenSv, email, hinh, maLop); //Update vào sql if (sinhVienDao.update(sinhVien)) { Toast.makeText(context, "Sửa thành công!", Toast.LENGTH_LONG).show(); ds.clear(); ds.addAll(sinhVienDao.getALL()); notifyDataSetChanged(); alertDialog.dismiss(); } else { Toast.makeText(context, "Sửa thất bại!", Toast.LENGTH_LONG).show(); } } } catch (Exception ex) { ex.printStackTrace(); } } }); btnLai.setOnClickListener(new View.OnClickListener() { @Override 69 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim public void onClick(View v) { etMasv.setText(s.getMaSv()); etTensv.setText(s.getTenSv()); etemail.setText(s.getEmail()); int giatri = -1; for (int i = 0; i < dsmaLop.size(); i++) { if (dsmaLop.get(i).toString().equalsIgnoreCase(s.getMaSv())) { giatri = i; break; } } spMalop.setSelection(giatri); } }); } }); { alertDialog.show(); btnHuy.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { alertDialog.dismiss(); } }); holder.ivDelete.setOnClickListener(new View.OnClickListener() @Override public void onClick(View v) { final AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle("Thơng báo"); builder.setMessage("Bạn có chắn xóa sinh viên " + s.getTenSv() + " không ?"); final SinhVien s = ds.get(position); builder.setNegativeButton("Yes", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (sinhVienDao.delete(s)) { Toast.makeText(context, "Xoa thành công!", 70 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim Toast.LENGTH_SHORT).show(); ds.clear(); ds.addAll(sinhVienDao.getALL()); notifyDataSetChanged(); dialog.dismiss(); } else { Toast.makeText(context, "Xóa thất bại!", Toast.LENGTH_SHORT).show(); } } }); builder.setPositiveButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); } }); final AlertDialog myAlert = builder.create(); myAlert.show(); holder.txtMasv.setText(s.getMaSv()); holder.txtTensv.setText(s.getTenSv()); holder.txtemail.setText(s.getEmail()); holder.txtMalop.setText(s.getMaLop()); int id_hinh = ((Activity) context).getResources().getIdentifier(ds.get(position).getHinh(), "drawable", ((Activity) context).getPackageName()); if (ds.get(position).getHinh().length() + "" == null) { holder.imageView_Avatalist.setImageResource(R.drawable.avatamac dinh); } else { holder.imageView_Avatalist.setImageResource(id_hinh); } return convertView; } 71 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim } 4.2 Kiểm thử triển khai ứng dụng 4.2.1 Kiểm thử - Đã thực thi kiểm tra sửa lỗi chức hồn tất - Mơ tả liệu hành động:  Input: Nhập liệu thông tin sinh viên, lớp học  Output: Thống kê liệu nhập vào, tìm kiếm, thêm, sửa, xóa… liệu 4.2.2 Đóng gói ứng dụng Đóng gói ứng dụng thành file thực thi apk: Bước 1: Tại Giao diện Android Studio, chọn chức build công cụ Bước 2: Chọn Build Bundle(s)/APK(s), chọn Build APK(s) hình Hình 4.1 Đóng gói ứng dụng Bước 3: Đã xuất file APK 72 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim Hình 4.2 Xuất file APK 4.2.3 Triển khai ứng dụng - Môi trường chạy: Android - Yêu cầu     Android 6.0 Mashmallow trở lên CPU nhân trở lên Ram 2GB trở lên Bộ nhớ trống: 200mb 73 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong Xây dựng ứng dụng quản lí đặt vé xem phim KẾT LUẬN - Trình bày kết đạt được: Kiến thức, sản phẩm - Những hạn chế đề tài: Sản phẩm (ví dụ: chức cịn thiếu, chưa hồn thiện….); Kỹ (phân tích thiết kế hệ thống, lập trình…) - Hướng phát triển đề tài: (Giải hạn chế đề tài) 74 bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong bai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thongbai.tap.lon.xay.dung.ung.dung.quan.ly.dat.ve.xem.phim.nganh.cong.nghe.thong.tin.chuyen.nganh.mang.may.tinh.truyen.thong

Ngày đăng: 03/01/2024, 00:30

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan