Get me outta here!

September 24, 2015

Bài Tập JAVA số 2

1. Quản lý bán hàng dùng kế thừa trong java
package baitap_coban;
import java.util.Scanner;
class Laptop{
public String tenhang,mahang;
public int giahang,soluong, giamgia;
public static float Tinhtien(int giahang, int soluong) {
return (float) giahang*soluong;
}
public static float Tinhtien(int giahang, int soluong, int giamgia){
int giagiam = (giahang*soluong*giamgia)/100;
return (float) (giahang*soluong)-giagiam;
}
private Scanner in;
//-----------------------------------------------------------//
public void Nhap(){
in = new Scanner(System.in);
System.out.print("Ma Hang: ");
mahang = in.nextLine();
System.out.print("Ten Hang: ");
tenhang = in.nextLine();
System.out.print("So Luong: ");
soluong = in.nextInt();
System.out.print("Gia Hang: ");
giahang = in.nextInt();
System.out.print("Giam Gia: ");
giamgia = in.nextInt();
System.out.println();
}
public void Show(){
System.out.println("Ma Hang: "+mahang);
System.out.println("Ten Hang: "+tenhang);
System.out.println("Gia Hang: "+giahang);
System.out.println("So Luong: "+soluong);
System.out.println("Tong tien: "+this.Tinhtien(giahang, soluong));
System.out.println();
}
}
//------------------------------------------------------------//
class Dell extends Laptop{
public static float Tinhtien(int giahang, int soluong, int giamgia) {
int giagiam = (giahang*soluong*(giamgia+10))/100;
return (float) (giahang*soluong)-giagiam;
}
}
public class QuanLyBanHang {
public static void main(String[] args) {
Laptop a = new Laptop();
a.Nhap();
a.Show();
Dell b = new Dell();
b.Nhap();
b.Show();
}
}
2. Tính điểm môn học dùng kế thừa trong java
package baitap_coban;
import java.util.Scanner; 
import java.io.*; 
class SVien { 
    String TenSV; 
    int MaSV; 
    void setSV(String Ten, int Ma){ 
    TenSV=Ten; 
    MaSV=Ma; 
    } 
    public void viewSV(){ 
        System.out.println ("Ten Sinh Vien: " +TenSV); 
        System.out.println ("Ma Sinh Vien: " +MaSV); 
    }  
class SinhvienCNTT extends SVien { 
    float dtoan,dtin; 
    public void setSVCNTT(String TenSV,int MaSV, float dtoan, float dtin){ 
    super.setSV(TenSV,MaSV); 
    this.dtoan=dtoan; 
    this.dtin=dtin; 
    } 
    public void viewSVCNTT(){ 
        super.viewSV(); 
        System.out.println ("Diem Toan: " +this.dtoan); 
        System.out.println ("Diem Tin: " +this.dtin); 
        System.out.println ("Tong Diem: "+this.tongdiem()); 
    }  
    public float tongdiem(){ 
        return dtoan+dtin;     
    }
public static void main (String[] args) { 
    String TenSV; 
    int MaSV; 
    float dtoan,dtin; 
    Scanner input = new Scanner(System.in); 
    SinhvienCNTT a[] = new SinhvienCNTT[50]; 
    System.out.print ("Nhap so sinh vien n= "); 
    int n = input.nextInt(); 
        for(int i=0;i<n;i++){ 
        a[i]=new SinhvienCNTT(); 
        System.out.println ("Nhap a["+i+"]: "); 
        System.out.println ("Ten SV: "); 
        input = new Scanner(System.in); 
        TenSV = input.nextLine(); 
        System.out.println ("Ma SV: "); 
        MaSV = input.nextInt(); 
        System.out.println ("Diem toan: "); 
        dtoan = input.nextFloat(); 
        System.out.println ("Diem tin; "); 
        dtin = input.nextFloat(); 
        a[i].setSVCNTT(TenSV,MaSV,dtoan,dtin); 
        }
    System.out.println ("Sinh Vien Co Tong Diem > 10 la: "); 
    for (int i=0; i< n; i++){ 
        if(a[i].tongdiem()>10){
        a[i].viewSVCNTT(); 
        } 
    } 
    System.out.println ("Sinh Vien Co Tong Diem < 5 la: "); 
     
    for (int i = 0; i< n; i++){ 
    if(a[i].tongdiem()<5){ 
            a[i].viewSVCNTT(); 
        } 
    } 
}     
}
3. Số hoàn hảo trong java
 
package baitap_coban;
import java.util.Scanner;
public class So_hoan_hao {
public static void main(String[]args) {
int i, j, n;
Scanner nhap = new Scanner(System.in);
System.out.print("nhap vao n: ");
n = nhap.nextInt();
System.out.println("Day so hoan hao la:");
for (i = 1; i <= n; i++) {
int tong = 1;
for (j = 2; j <= i / 2; j++) {
if (i % j == 0)
tong = tong + j;
}
if (tong == i)
System.out.print(" " + i );
}
}
}

 
 

Bài Tập Lập Trình JAVA số 1



  1.  Đếm ký tự hoa

package baitap_coban;

import java.util.Scanner;

public class Demki_tuhoa {

public static void main(String[] args) {
System.out.println("nhap vao mot chuoi: ");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
int dem =0;
for(int i = 0;i<str.length();i++) {
if( str.charAt(i)>='A' && str.charAt(i)<='Z')
dem++;
//return dem ;
System.out.println(" "+dem);
}

}

2.  Tính điểm trong java

package baitap_coban;

import java.util.Scanner;

public class Diem {

public static void main(String[] args) {

System.out.println("nhap diem cua sinh vien: ");
Scanner nhap = new Scanner(System.in);
float a = nhap.nextFloat();
int b = nhap.nextInt();
if (a >= 3.6 && a <= 4.0)
System.out.println("hoc sinh xuat sac");
else if (a >= 3.2 && a < 3.6)
System.out.println("hoc sinh gioi");
else if (a >= 2.5 && a < 3.2)
System.out.println("hoc sinh kha");
else if (a >= 2.0 && a < 2.5)
System.out.println("hoc sinh trung binh");
else if (a >= 0.0 && a < 2.0)
System.out.println("hoc sinh yeu");
else
System.out.println("diem trung binh khong dung");

switch (b) {
case 1:
System.out.println("one");
break;
case 2:
System.out.println("three");
break;
default:
System.out.print("ket thuc");
}
}
}
3. Tính tiền karaoke
package baitap_coban;

import java.util.Scanner;

public class Karaoke {
public static void main(String[] args) {
int start, end;
Scanner nhap = new Scanner(System.in);
System.out.print("gio bat dau: ");
start = nhap.nextInt();
System.out.print("gio ket thuc: ");
end = nhap.nextInt();
if (end < 18) {
System.out.print("tien gio la: " + (end - start) * 45000 + "VND");
} else {
if (start < 18) {
System.out.print("tien gio la: "
+ (((18 - start) * 45000) + ((end - 18) * 60000))
+ "VND");
} else {
System.out.print("tien gio la: " + (end - start) * 60000
+ "VND");
}
}
}

}
4. Thực đơn
package baitap_coban;

import java.util.Arrays;
import java.util.Random;

public class Menu {
public String[] FoodName = { "Tao", "Cherry", "Cam", "Quyt", "Duahau",
"Chanh", "Kiwi", "Nho", "Melon", "DaoTien", "Chuoi", "DauTay",
"Thom", "Le", "Sua", "CaChua", "CaRot", "CaTim", "HanhTay", "Toi",
"KhoaiTay", "Nam", "BanhMy", "Bow", "Bia", "Ngheu", "Cua", "Ca",
"Tom", "Ga", "Bof", "Trung" };
public int[][] Food = { { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 1, 0, 0, 0, 1, 1, 0, 0 }, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 1 },
{ 0, 0, 1, 1, 1, 0, 0, 0, 0, 1 }, { 0, 0, 1, 0, 0, 0, 0, 1, 0, 0 },
{ 0, 0, 0, 1, 0, 0, 1, 0, 0, 1 }, { 0, 0, 1, 1, 1, 0, 0, 1, 0, 1 },
{ 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 1, 0, 1, 0 },
{ 0, 0, 1, 1, 0, 1, 0, 0, 0, 0 }, { 0, 0, 1, 0, 0, 1, 0, 0, 0, 1 },
{ 0, 0, 1, 1, 0, 0, 1, 0, 0, 1 }, { 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 },
{ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 1, 1, 0, 1, 0, 0 },
{ 0, 0, 1, 0, 0, 1, 0, 1, 0, 1 }, { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }, { 0, 0, 1, 0, 1, 1, 0, 0, 0, 0 },
{ 1, 0, 0, 1, 0, 0, 1, 0, 1, 1 }, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 1, 0, 0, 1, 1, 0, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
{ 1, 0, 0, 0, 1, 1, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 1, 0, 0, 0, 0 },
{ 1, 1, 0, 0, 0, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0, 1, 0, 0, 0 },
{ 1, 0, 0, 0, 0, 1, 0, 1, 0, 0 }, { 1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
{ 1, 1, 0, 0, 1, 1, 0, 1, 0, 0 } };

public int[] FoodValue = { 31, 66, 55, 70, 34, 50, 106, 38, 62, 49, 55, 82,
33, 13, 118, 54, 83, 15, 56, 123, 32, 40, 52, 63, 18, 74, 49, 62,
64, 55, 70, 100 };

public void run() {
khoitao();
for (int i = 0; i < 100; i++) {
danhgia();
print();
luachon();
laighep();
dotbien();
}
}

int N = 100;
int[][] cathes = new int[N][];
Random rand = new Random();

private void khoitao() {
for (int i = 0; i < N; i++) {
cathes[i] = new int[this.Food.length];
for (int j = 0; j < cathes[i].length; j++)
cathes[i][j] = rand.nextInt(2);
}
}

int[] f = new int[N];

private void danhgia() {
// giaca
for (int i = 0; i < N; i++) {
f[i] = 0;
for (int j = 0; j < cathes[i].length; j++)
if (cathes[i][j] == 1)
f[i] += this.FoodValue[j];

// đinh duong
for (int d = 0; d < 10; d++) {
boolean ok = false;

for (int j = 0; j < cathes[i].length; j++)
if (cathes[i][j] == 1)
if (this.Food[j][d] == 1)
ok = true;
if (!ok)
f[i] = f[i] + 30;
}
}
}

private void luachon() {
int[] temp = f.clone();
Arrays.sort(temp);
int nguong = temp[N * 80 / 200];
for (int i = 0; i < N; i++) {
if (f[i] > nguong) {
cathes[i] = cathes[rand.nextInt(N)].clone();
}
}
}

private void laighep() {
for (int i = 0; i < N / 5; i++) {
int vo = rand.nextInt(N);
int chong = rand.nextInt(N);
for (int j = 0; j < this.Food.length; j++)
if (rand.nextInt(2) == 1) {
int temp = cathes[vo][j];
cathes[vo][j] = cathes[chong][j];
cathes[chong][j] = temp;

}
}
}

private void dotbien() {
int ct = rand.nextInt(N);
int index = rand.nextInt(this.Food.length);
cathes[ct][index] = 1 - cathes[ct][index];
}

public static void main(String[] args) {
(new Menu()).run();
}

private void print() {
int[] temp = f.clone();
Arrays.sort(temp);
for (int i = 0; i < N; i++)
if (f[i] == temp[0]) {
for (int j = 0; j < cathes[i].length; j++)
if (cathes[i][j] == 1)
System.out.print(this.FoodName[j] + ",");
break;
}
System.out.println("" + temp[0]);
}

Xây dựng Website bán laptop và linh kiện điện tử (Phần 3)



Chương 3: CÀI ĐẶT CHƯƠNG TRÌNH 

3.1. Giao diện chính của hệ thống


Hình 9. Giao diện chính website

3.2. Trang đăng ký, đăng nhập

Hình 10. Trang đăng nhập

 

Hình 11. Trang đăng ký thành viên

            3.3. Trang quản trị



Hình 12. Trang quản trị của quản trị viên


KẾT LUẬN

            Đề tài “Xây dựng Website bán laptop và linh kiện điện tử cũng xuất phát từ thực tế ngày nay nhằm tạo một nền tảng cơ sở ban đầu để có thể hỗ trợ thêm cho các bạn muốn thiết kế một Website cho công ty hay một Website cá nhân.
Mặc dù đã có nhiều cố gắng, tìm hiểu các kiến thức đã học, kết hợp tra cứu các tài liệu chuyên nghành nhưng do còn hạn chế về thời gian, khả năng và kinh nghiệm nên không tránh khỏi những thiếu sót nhất định nên đề tài đã hoàn thành ở mức độ sau:
- Tìm hiểu ngôn ngữ lập trình Web PHP & MySQL
- Áp dụng xây dựng ứng dụng thực nghiệm trang đề tài “Xây dựng website bán laptop và linh kiện điện tử”
            Hướng nghiên cứu phát triển:
1.   Tìm hiểu sâu hơn về ngôn ngữ PHP & MySQL để có thể đáp ứng nhiều hơn nữa nhu cầu của người sử dụng, phát triển và tối ưu hóa hệ thống,
2.  Kết hợp ngôn ngữ PHP với các hệ quản trị cơ sở dữ liệu lớn hơn: SQL Server, Oracle…
3.  Tìm hiểu thêm một số ngôn ngữ, các phần mềm ứng dụng để nâng cao giao diện đồ họa đẹp mắt, thân thiện hơn…
4.   Tiếp tục xây dựng website với quy mô lớn hơn với nhiều ứng dụng, chức năng...
Để hoàn thành đề tài này, một lần nữa em xin chân thành cảm ơn thầy Nguyễn Hữu Thanh là người đã quan tâm, giúp đỡ em trong suốt thời gian qua. Em xin chân thành cảm ơn !

Xây dựng Website bán laptop và linh kiện điện tử (Phần 2)



Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG WEBSITE

 2.1 Phân tích hệ thống website 

2.1.1. Các tác nhân chính của hệ thống

·                    Khách vãng lai: những người ghé thăm website xem sản phẩm trong hệ thống.
·                    Thành viên (User): những người đã đăng kí làm thành viên của hệ thống
·                    Quản trị (Admin): người quản lý hệ thống website.

 2.1.2. Các nhóm chức năng chính của hệ thống

·                    Hệ thống truy cập website: dành cho khách vãng lai, thành viên, người quản trị
·                    Quản lý giỏ hàng: dành cho khách vãng lai, thành viên
·                    Quản lý đơn hàng: dành cho người quản trị
·                    Quản trị hệ thống: dành cho người quản trị

 2.1.3. Phân rã các chức năng



Hình 2. Sơ đồ phân rã chức năng

 2.1.4. Mô tả yêu cầu các chức năng của hệ thống

STT
Mô tả yêu cầu
Phân loại
Mức độ
1
Đăng ký thành viên



Thực hiện đăng ký thành viên
dữ liệu đầu vào
trung bình

Gởi email thông báo kết quả đăng ký
dữ liệu đầu ra
trung bình
2
Giỏ hàng



Xem giỏ hàng
dữ liệu đầu ra
trung bình

Thêm hàng vào giỏ hàng
dưa liệu đầu vào
trung bình

Xóa hàng khỏi giỏ hàng
dưa liệu đầu vào
trung bình
3
Đơn hàng



Tạo đơn hàng
dữ liệu đầu vào
trung bình

In đơn đặt hàng
dữ liệu đầu ra
trung bình

In hóa đơn thanh toán
dữ liệu đầu ra
trung bình

Thống kê các đơn hàng
dữ liệu đầu ra
trung bình
4
Quản lý thành viên



Liệt kê danh sách các thành viên
dữ liệu đầu ra
trung bình

Thêm thành viên
dữ liệu đầu vào
trung bình

Đóng tài khoản các thành viên vi phạm
dữ liệu đầu vào
trung bình

Xóa thành viên
dữ liệu đầu vào
trung bình

Cấp quyền cho thành viên
dữ liệu đầu vào
trung bình
5
Quản lý sản phẩm



Liệt kê danh sách các sản phẩm theo tên sản phẩm, nhà sản xuất
dữ liệu đầu ra
trung bình

Thống kê sản phẩm: bán chạy, bán ít, tồn kho
dữ liệu đầu ra
trung bình

Thêm danh mục sản phẩm
dữ liệu đầu vào
trung bình

Thêm sản phẩm
dữ liệu đầu vào
trung bình

Cập nhật thông tin sản phẩm
dữ liệu đầu vào
trung bình

Xóa sản phẩm
dữ liệu đầu vào
trung bình
           
Bảng 2. Mô tả yêu cầu các chức năng của hệ thống

2.2. Thiết kế hệ thống website

 2.2.1 Mô tả các Use Case

      2.2.1.1. Biểu đồ Use Case chức năng giỏ hàng

Hình 3. Use case chức năng giỏ hàng
  Use case: UC_01 Chức năng giỏ hàng
UC_01: Xem giỏ hàng
Mức độ BMT: B
Tác nhân chính: Người dùng
Tác nhân phụ:
Mô tả Use-case: Xem và quản lý thông tin giỏ hàng
Điều kiện để bắt đầu Use-case: Người dùng chọn chức năng xem giỏ hàng
Điều kiện để kết thúc Use-case:
- Người dùng: Hiển thị thông tin, sản phẩm đã được chọn vào giỏ hàng
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Hiển thị thông tin, sản phẩm đã được chọn vào giỏ hàng
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị danh sách các sản phẩm đã được người dùng chọn cho vào giỏ hàng
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

UC_01: Thêm hàng
Mức độ BMT: B
Tác nhân chính: Người dùng
Tác nhân phụ:
Mô tả Use-case: Thêm sản phẩm được chọn vào giỏ hàng
Điều kiện để bắt đầu Use-case: Người dùng chọn chức năng xem hàng
Điều kiện để kết thúc Use-case:
- Người dùng: Sản phẩm được chọn hiển thị trong khung giỏ hàng của người dùng
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng chọn hàng cần chọn
- Người dùng chọn chức năng thêm hàng vào giỏ hàng
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị danh sách các sản phẩm đã được người dùng chọn cho vào giỏ hàng
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_01: Cập nhật hàng
Mức độ BMT: B
Tác nhân chính: Người dùng
Tác nhân phụ:
Mô tả Use-case: Cập nhật thông tin sản phẩm trong giỏ hàng
Điều kiện để bắt đầu Use-case: Người dùng chọn chức năng xem giỏ hàng
Điều kiện để kết thúc Use-case:
- Người dùng: Sản phẩm được cập nhật thay đổi thông tin trong giỏ hàng
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng xem hàng trong giỏ hàng
- Người dùng thay đổi thông tin về số lượng của sản phẩm
- Chọn chức năng cập nhật
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị thông tin đã được cập nhật
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống hoặc thông báo hết hàng
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

UC_01: Xóa hàng
Mức độ BMT: B
Tác nhân chính: Người dùng
Tác nhân phụ:
Mô tả Use-case: Xóa sản phẩm được chọn ra khỏi giỏ hàng
Điều kiện để bắt đầu Use-case: Người dùng chọn chức năng xem giỏ hàng
Điều kiện để kết thúc Use-case:
- Người dùng: Sản phẩm được được xóa ra khỏi giỏ hàng
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng chọn hàng cần xóa
- Người dùng chọn chức năng xóa hàng
Hoàn cảnh sử dụng thành công cơ bản: Sản phẩm được xóa ra khỏi giỏ hàng
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

UC_01: Thanh toán
Mức độ BMT: B
Tác nhân chính: Người dùng
Tác nhân phụ:
Mô tả Use-case: Thực hiện thanh toán các sản phẩm trong giỏ hàng
Điều kiện để bắt đầu Use-case: Người dùng chọn chức năng xem giỏ hàng
Điều kiện để kết thúc Use-case:
- Người dùng: Người dùng chọn chức năng thanh toán
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng chọn chức năng xem giỏ hàng
- Người dùng chọn chức thanh toán
Hoàn cảnh sử dụng thành công cơ bản: Thông báo thanh toán thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

   2.2.1.2. Biểu đồ Use Case truy cập hệ thống

Hình 4. Use case truy cập hệ thống

Use case: UC_02 Truy cập hệ thống

UC_02: Đăng ký
Mức độ BMT: B
Tác nhân chính: khách vãng lai
Tác nhân phụ:
Mô tả Use-case: Thực hiện đăng ký thành viên
Điều kiện để bắt đầu Use-case: Người dùng chọn chức năng đăng ký
Điều kiện để kết thúc Use-case:
- Người dùng: Người dùng đăng ký thành công
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng chọn chức năng đăng ký
- Thông báo xác nhận email, chờ duyệt của quản trị viên
Hoàn cảnh sử dụng thành công cơ bản: Thông báo đăng ký thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_02: Đăng nhập
Mức độ BMT: B
Tác nhân chính: users, admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện đăng nhập hệ thống
Điều kiện để bắt đầu Use-case: Người dùng chọn chức năng đăng nhập
Điều kiện để kết thúc Use-case:
- Người dùng: Người dùng đăng ký thành công
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng chọn chức năng đăng nhập
- Nếu là Users sẽ thông báo đăng nhập thành công và chuyển vào trang chủ
- Nếu là Admin sẽ chuyển vào trang quản trị hệ thống
Hoàn cảnh sử dụng thành công cơ bản: Thông báo đăng nhập thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

UC_02: Đăng xuất
Mức độ BMT: B
Tác nhân chính: users, admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện đăng xuất khỏi hệ thống
Điều kiện để bắt đầu Use-case: Người dùng đã đăng nhập vào hệ thống và chọn chức năng đăng xuất
Điều kiện để kết thúc Use-case:
- Người dùng: Người dùng đăng xuất thành công
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng chọn chức năng đăng xuất
- Hệ thống thông báo đăng xuất thành công
Hoàn cảnh sử dụng thành công cơ bản: Thông báo đăng xuất thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

     2.2.1.3. Biểu đồ Use Case quản lý đơn hàng

Hình 5. Use case quản lý đơn hàng

Use case: UC_03 Quản lý đơn hàng

UC_03: Xem chi tiết đơn hàng
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện xem chi tiết đơn hàng
Điều kiện để bắt đầu Use-case: Admin chọn chức năng xem chi tiết đơn hàng
Điều kiện để kết thúc Use-case:
- Hiển thị các thông tin chi tiết của đơn hàng
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Người dùng chọn chức năng xem chi tiết đơn hàng
- Hệ thống hiển thị thông tin chi tiết của đơn hàng cần xem
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị thông tin chi tiết của đơn hàng
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có



UC_03: Danh sách chờ in
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện danh sách đơn hàng chờ được in
Điều kiện để bắt đầu Use-case: Admin chọn chức năng danh sách chờ in
Điều kiện để kết thúc Use-case:
- Hiển thị thông báo in đơn hàng
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng danh sách chờ in
- Admin chọn chức năng in đơn hàng
- Hệ thống thông báo đã in đơn hàng thành công
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị thông báo đã in đơn hàng
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_03: Danh sách chờ thanh toán
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện danh sách đơn hàng chờ được thanh toán
Điều kiện để bắt đầu Use-case: Admin chọn chức năng danh sách chờ thanh toán
Điều kiện để kết thúc Use-case:
- Hiển thị thông báo  đơn hàng đã thanh toán
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng danh sách chờ thanh toán
- Admin chọn chức năng thanh toán đơn hàng
- Hệ thống thông báo đã thanh toán đơn hàng thành công
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị thông báo đã thanh toán
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có



UC_03: Thống kê đơn hàng
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện số lượng các đơn hàng
Điều kiện để bắt đầu Use-case: Admin chọn chức năng thống kê đơn hàng
Điều kiện để kết thúc Use-case:
- Hiển thị thông tin thống kê đơn hàng
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng thống kê đơn hàng
- Hệ thống hiển thị các thống kê của tất cả các đơn hàng
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị thông tin thống kê các đơn hàng
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

      2.2.1.4. Biểu đồ Use Case quản lý sản phẩm


Hình 6. Use Case quản lý sản phẩm
Use case: UC_04 Quản lý sản phẩm

UC_04: Liệt kê danh sách sản phẩm
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện liệt kê sản phẩm
Điều kiện để bắt đầu Use-case: Admin chọn chức năng liệt kê sản phẩm
Điều kiện để kết thúc Use-case:
- Hiển thị danh sách các sản phẩm
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng liệt kê sản phẩm
- Admin chọn các loại sản phẩm cần liệt kê
- Hệ thống hiển thị danh sách các sản phẩm
Hoàn cảnh sử dụng thành công cơ bản: Hiển thị danh sách sản phẩm
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_04: Thêm danh mục sản phẩm
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện thêm danh mục sản phẩm
Điều kiện để bắt đầu Use-case: Admin chọn chức năng thêm danh mục
Điều kiện để kết thúc Use-case:
- Thông báo thêm danh mục thành công
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng thêm danh mục sản phẩm
- Admin điền thông tin danh mục cần thêm
- Hệ thống thông báo thêm danh mục thành công
Hoàn cảnh sử dụng thành công cơ bản: Thông báo thêm danh mục thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có




UC_04: Thêm sản phẩm
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện thêm sản phẩm
Điều kiện để bắt đầu Use-case: Admin chọn chức năng thêm sản phẩm
Điều kiện để kết thúc Use-case:
- Thông báo thêm sản phẩm thành công
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng thêm sản phẩm
- Admin điền thông tin sản phẩm cần thêm
- Hệ thống thông báo thêm sản phẩm thành công
Hoàn cảnh sử dụng thành công cơ bản: Thông báo thêm sản phẩm thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_04: Cập nhật thông tin sản phẩm
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện thay đổi thông tin của sản phẩm
Điều kiện để bắt đầu Use-case: Admin chọn chức năng cập nhật sản phẩm
Điều kiện để kết thúc Use-case:
- Hệ thống hiển thị những thay đổi đã cập nhật
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng cập nhật sản phẩm
- Admin thực hiện cập nhật thông tin sản phẩm
- Hệ thống hiển thị những thay đổi đã cập nhật
Hoàn cảnh sử dụng thành công cơ bản: Hệ thống hiển thị những thay đổi đã cập nhật
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có



UC_04: Xóa sản phẩm
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện xóa sản phẩm
Điều kiện để bắt đầu Use-case: Admin chọn chức năng xóa sản phẩm
Điều kiện để kết thúc Use-case:
- Sản phẩm được xóa khỏi hệ thống
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn sản phẩm cần xóa
- Admin chọn chức năng sản phẩm
- Hệ thống thông báo xóa thành công
Hoàn cảnh sử dụng thành công cơ bản: Hệ thống thông báo xóa thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_04: Thống kê sản phẩm
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện thống kê sản phẩm
Điều kiện để bắt đầu Use-case: Admin chọn chức năng thống kê sản phẩm
Điều kiện để kết thúc Use-case:
- Hệ thống hiển thị thông tin thống kê sản phẩm
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng thống kê sản phẩm
- Hệ thống hiển thị các thống kê của sản phẩm
Hoàn cảnh sử dụng thành công cơ bản: Hệ thống hiển thị thông tin thống kê sản phẩm
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có

    2.2.1.5. Biểu đồ Use Case quản lý thành viên

Hình 7. Use Case quản lý thành viên

Use case: UC_05 Quản lý thành viên

UC_05: Liệt kê danh sách thành viên
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện liệt kê danh sách thành viên
Điều kiện để bắt đầu Use-case: Admin chọn chức năng liệt kê thành viên
Điều kiện để kết thúc Use-case:
- Hệ thống hiển thị danh sách các thành viên của hệ thống
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng liệt kê thành viên
- Hệ thống hiển thị danh sách các thành viên của hệ thống
Hoàn cảnh sử dụng thành công cơ bản: Hệ thống hiển thị danh sách các thành viên của hệ thống
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có



UC_05: Thêm thành viên
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện thêm thành viên
Điều kiện để bắt đầu Use-case: Admin chọn chức năng thêm thành viên
Điều kiện để kết thúc Use-case:
- Hệ thống thông báo thêm thành công
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng thêm thành viên
- Hệ thống thông báo thêm thành công
Hoàn cảnh sử dụng thành công cơ bản: Hệ thống thông báo thêm thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_05: Cấp quyền thành viên
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện cấp quyền thành viên
Điều kiện để bắt đầu Use-case: Admin chọn chức năng cấp quyền thành viên
Điều kiện để kết thúc Use-case:
- Hệ thống hiển thị thành viên và quyền được cấp
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng cấp quyền thành viên
- Hệ thống hiển thị thành viên và quyền được cấp
Hoàn cảnh sử dụng thành công cơ bản Hệ thống hiển thị thành viên và quyền được cấp
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có



UC_05: Xóa thành viên
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện xóa thành viên
Điều kiện để bắt đầu Use-case: Admin chọn chức năng xóa thành viên
Điều kiện để kết thúc Use-case:
- Hệ thống thông báo xóa thành công
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng xóa thành viên
- Hệ thống thông báo xóa thành công
Hoàn cảnh sử dụng thành công cơ bản : Hệ thống thông báo xóa thành công
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có


UC_05: Đóng tài khoản vi phạm
Mức độ BMT: B
Tác nhân chính: admin
Tác nhân phụ:
Mô tả Use-case: Thực hiện đóng tài khoản
Điều kiện để bắt đầu Use-case: Admin chọn chức năng đóng tài khoản
Điều kiện để kết thúc Use-case:
- Tài khoản đã chọn bị đóng trong thời quan được qui định
Trình tự các sự kiện trong quá trình hoạt động của Use-case:
- Admin chọn chức năng đóng tài khoản
- Hệ thống thông báo tài khoản đã đóng
Hoàn cảnh sử dụng thành công cơ bản : Hệ thống thông báo tài khoản đã đóng
Hoàn cảnh sử dụng phụ (thay thế) trong trường hợp không thành công: Hiển thị thông báo lỗi của hệ thống
Hành động liên quan sẽ xảy ra sau khi Use-case kết thúc: Hiển thị thông tin đã thay đổi.
Các yêu cầu phi chức năng: không có
2.2.2. Mô tả cơ sở dữ liệu

   2.2.2.1. Bảng giohang

            Để lưu thông tin về giỏ hàng của khách hàng.
Name
Type
Null
Chú thích
Id_giohang
Int(10)
No
Mã giỏ hàng
Id
Int(10)
No
Mã sản phẩm
User
Varchar(255)
No
Tên user
soluong
Int(10)
No
Số lượng
tinhtrang
Text
No
Tình trạng
ngaydat
Datetime
No
Ngày đặt hàng
Bảng 3. Bảng giohang
     2.2.2.2. Bảng donhang
            Dùng để lưu thông tin về đơn hàng.
Name
Type
Null
Chú thích
Id-hoadon
Int(10)
No
Mã hóa đơn
Hoten
Varchar(255)
No
Tên khách hàng
diachi
Text
No
Địa chỉ
email
Varchar(255)
No
Email
dienthoai
Int(20)
No
Điện thoại
Fax
Int(20)
No
Fax
Cty
Varchar(255)
No
Công ty
Id
Int(10)
No
Mã sản phẩm
soluong
Int(10)
No
Số lượng
Bảng 4. Bảng donhang

       2.2.2.3. Bảng lienhe

            Dùng để quản lý các thắc mắc liên hệ của khách hàng
Name
Type
Null
Chú thích
Id-lienhe
Int(10)
No
Mã liên hệ
Hoten
Text
No
Họ tên
Cty
Text
No
Công ty
Email
Text
No
Email
Dienthoai
Int(20)
No
Điện thoại
Fax
Int(20)
No
Fax
Diachi
Text
No
Địa chỉ
Noidung
Text
No
Nội dung
Ngaylienhe
Datetime
No
Ngày liên hệ
Bảng 5. Bảng lienhe

   2.2.2.4. Bảng loaisanpham

            Dùng để quản lý danh mục loại sản phẩm
Name
Type
Null
Chú thích
Id-loai
Int(10)
No
Mã loại sp
Id_nhom
Int(11)
No
Mã nhóm sản phẩm
tenloaisp
Text
No
Tên loại sản phẩm
ghichu
Varchar(255)
No
Ghi chú
Bảng 6. Bảng loaisanpham

     2.2.2.5. Bảng nhomsanpham

            Dùng để quản lý nhóm sản phẩm.
Name
Type
Null
Chú thich
Id_nhom
Int(10)
No
Mã nhóm sản phẩm
tennhom
Varchar(255)
No
Tên nhóm sản phẩm
Chuthich
Text
No
Chú thích
Bảng 7. Bảng nhomsanpham

       2.2.2.6. Bảng sanpham

            Dùng để quản lý sản phẩm.
Name
Type
Null
Chú thích
Id
Int(20)
No
Mã sản phẩm
Id_loai
Int(10)
No
Mã loại sản phẩm
tensp
Text
No
Tên sản phẩm
mota
Text
No
Mô tả
hinh
Text
No
Hình ảnh
Gia
Int(15)
No
Đơn giá
ghichu
Text
No
Ghi chú
soluongban
Int(10)
No
Số lượng
Id_menu
Int(10)
No
Mã menu
Bảng 8. Bảng sanpham

     2.2.2.7. Bảng thanhvien

            Dùng để quản lý thành viên
Name
Type
Null
Chú thích
hoten
Varchar(255)
No
Họ tên
diachi
Varchar(255)
No
Địa chỉ
email
Varchar(255)
No
Email
dienthoai
Int(20)
No
Điện thoại
user
Varchar(255)
No
Tên đăng nhập
pass
Varchar(32)
No
password
hieuluc
Int(10)
No
Hiệu lực
capquyen
Int(10)
No
Quyền
Bảng 9. Bảng thanhvien

      2.2.2.8. Lược đồ quan hệ cơ sở dữ liệu

Hình 8. Lược đồ quan hệ cơ sở dữ liệu