32
December 17, 2013 [BÀI TẬP LỚN LẬP TRÌNH ANDROID] Mục lục Danh sách phụ lục hình ảnh................................ 3 LỜI GIỚI THIỆU............................................ 4 Tóm tắt yêu cầu của project...............................5 Phân công công việc các thành viên trong nhóm.............5 Chương 1. Phân tích yêu cầu và kết quả dự kiến............6 1.1Phân tích yêu cầu project.............................6 1.2 Kết quả dự kiến cần đạt được.........................7 Chương 2. Thuật toán chuyển giao giữa các màn hình........8 2.1 Quản lý lớp học......................................8 2.2 Quản lý danh sách sinh viên..........................8 2.2 Quản lý bài tập lớn..................................8 2.2 Quản lý điểm danh....................................8 Chương 3. Phân tích các module của chương trình...........8 3.1 Quản lý lớp học......................................8 3.2 Quản lý sinh viên...................................10 3.3 Import danh sách sinh viên..........................11 3.4 Quản lý điểm danh...................................12 3.5 Quản lý bài tập lớn.................................12 Chương 4. Kết quả........................................ 13 4.1 Giới thiệu cấu trúc và các thành phần project.......13 4.1.1 Các thư viện sử dụng trong project..............14 4.1.2 Cấu trúc project................................15 4.2 Một số hình ảnh demo của project....................17 4.1.1 Quản lý lớp học.................................17 Trang 1

báo cáo bài tập lớn

Embed Size (px)

Citation preview

Page 1: báo cáo bài tập lớn

December 17, 2013 [ ]

M c l cụ ụDanh sách phụ lục hình ảnh...............................................................................................3

LỜI GIỚI THIỆU...................................................................................................................4

Tóm tắt yêu cầu của project...............................................................................................5

Phân công công việc các thành viên trong nhóm...............................................................5

Chương 1. Phân tích yêu cầu và kết quả dự kiến...............................................................6

1.1Phân tích yêu cầu project..........................................................................................6

1.2 Kết quả dự kiến cần đạt được..................................................................................7

Chương 2. Thuật toán chuyển giao giữa các màn hình......................................................8

2.1 Quản lý lớp học........................................................................................................8

2.2 Quản lý danh sách sinh viên.....................................................................................8

2.2 Quản lý bài tập lớn...................................................................................................8

2.2 Quản lý điểm danh...................................................................................................8

Chương 3. Phân tích các module của chương trình...........................................................8

3.1 Quản lý lớp học........................................................................................................8

3.2 Quản lý sinh viên....................................................................................................10

3.3 Import danh sách sinh viên....................................................................................11

3.4 Quản lý điểm danh.................................................................................................12

3.5 Quản lý bài tập lớn.................................................................................................12

Chương 4. Kết quả...........................................................................................................13

4.1 Giới thiệu cấu trúc và các thành phần project.......................................................13

4.1.1 Các th vi n s d ng trong projectư ệ ử ụ .............................................................14

4.1.2 C u trúc projectấ .............................................................................................15

4.2 Một số hình ảnh demo của project........................................................................17

4.1.1 Qu n lý l p h cả ớ ọ .............................................................................................17

4.1.2 Qu n lý sinh viênả ...........................................................................................19

4.1.3 Import file danh sách sinh viên....................................................................19

4.1.4 Qu n lý đi m danhả ể ........................................................................................20

4.1.5 Qu n lý bài t p l nả ậ ớ ........................................................................................21

Trang 1

Page 2: báo cáo bài tập lớn

December 17, 2013 [ ]

Chương 5. Test và kiểm thử chương trình.......................................................................21

Chương 6. KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN.................................................21

Tài liệu tham khảo............................................................................................................22

Trang 2

Page 3: báo cáo bài tập lớn

December 17, 2013 [ ]

Danh sách ph l c hình nhụ ụ ảHình 1 Mô tả bảng dữ liệu quản lý lớp học.......................................................................8Hình 2 Mô tả bảng dữ liệu sinh viên................................................................................10Hình 3 Cấu trúc thư mục project.....................................................................................14Hình 4 Màn hình danh sách lớp và menu tùy chọn.........................................................16Hình 5 Màn hình thêm m i và ch nh s a l p h cớ ỉ ử ớ ọ .......................................................17Hình 6 Màn hình chi ti t l p h c và danh sách sinh viên trong l pế ớ ọ ớ ...........................17Hình 7 Màn hình thêm mới chỉnh sửa thông tin sinh viên..............................................18

Trang 3

Page 4: báo cáo bài tập lớn

December 17, 2013 [ ]

L I GI I THI UỜ Ớ Ệ

Có r t nhi u h đi u hành khách nhau trên th tr ng đi n tho i: iOS,ấ ề ệ ề ị ườ ệ ạ BlackBerry, Symbian, Palm, hay Windows Phone 7…Tuy nhiên hi n đang v tríệ ở ị th ng lĩnh th tr ng chính là n n t ng android,b i nó thân thi n, h p túi ti n, tùyố ị ườ ề ả ở ệ ợ ề bi n cao, nhi u ng d ng. Tuy nhiên, u th n i b t nh t ph i k đ n c a Androidế ề ứ ụ ư ế ổ ậ ấ ả ể ế ủ là h đi u hành mã gu n m . Android đã thu hút r t nhi u nhà phát tri n t kh pệ ề ồ ở ấ ề ể ừ ắ m i n i khi Goole phân ph i mi n phí Android và các đo n mã có b n quy n choọ ơ ố ễ ạ ả ề b t c ai mu n tham gia phát tri n ph n m m cho Google nói chung và các thi t bấ ứ ố ể ầ ề ế ị smartphone ch y n n t ng android nói riêng.ạ ề ả

Xu t hi n t i Vi t Nam ch a lâu, l p trình Android đang d n kh ng đ nh vấ ệ ạ ệ ư ậ ầ ẳ ị ị

th và tr thành xu h ng phát tri n c a các hãng đi n tho i di đ ng b i s m iế ở ướ ể ủ ệ ạ ộ ở ự ớ

m , d t ng tác và l p trình. Nh Android mà hàng lo t các ng d ng game, ph nẻ ễ ươ ậ ờ ạ ứ ụ ầ

m m… gia tăng nhanh chóng. Làm l p trình Android, các kỹ s ph n m m th ngề ậ ư ầ ề ườ

có đ c m c thu nh p v t tr i h n so v i các l p trình viên cùng c p khác.ượ ứ ậ ượ ộ ơ ớ ậ ấ

Trong khuôn kh h p tác c a hãng đi n tho i Samsung và Tr ng Đ i h cổ ợ ủ ệ ạ ườ ạ ọ

Bách Khoa Hà N i đã t o đi u ki n và c h i cho chúng em đ c h c và ti p xúcộ ạ ề ệ ơ ộ ượ ọ ế

v i các công ngh m i nh t v phát tri n ng d ng trên n n t ng android.Qua h cớ ệ ớ ấ ề ể ứ ụ ề ả ọ

môn “L p trình Android” chúng em đã tìm hi u và l a ch n đ tài “Xây d ng ngậ ể ự ọ ề ự ứ

d ng qu n lý sinh viên”.Vi t ng d ng nh m tr giúp các th y, cô giáo qu n lý l pụ ả ế ứ ụ ằ ợ ầ ả ớ

h c trong quá trình gi ng d y m t cách d dàng h n.ọ ả ạ ộ ễ ơ

Dù r t c g ng nh ng do h n ch v m t th i gian và hi u bi t v côngấ ố ắ ư ạ ế ề ặ ờ ể ế ề

ngh nên s n ph m còn nhi u thi u sót, do đó chúng em mong nh n đ c s góp ýệ ả ẩ ề ế ậ ượ ự

ki n b ích t th y và các b n đ s n ph m hoàn thi n h n.ế ổ ừ ầ ạ ể ả ẩ ệ ơ

Qua đây chúng em cũng xin chân thành c m n th y ả ơ ầ Đ Tr ng Tu nỗ ọ ấ đã t nậ

tình ch b o chúng em trong su t quá trình h c trên l p và hoàn thành ch ng trìnhỉ ả ố ọ ớ ươ

này.

Em xin chân thành cám n!ơ

Trang 4

Page 5: báo cáo bài tập lớn

December 17, 2013 [ ]

Tóm t t yêu c u c a projectắ ầ ủ

Xây d ng ng d ng “Qu n lý l p” h tr gi ng viên vi c ự ứ ụ ả ớ ỗ ợ ả ệ

Qu n lý các l p h c ả ớ ọ

Danh sách sinh viên các l p h cớ ọ

Qu n lý đ c vi c đi m danh cũng nh qu n lý quá trình h c t p c a sinh ả ượ ệ ể ư ả ọ ậ ủviên 1 cách hi u quệ ả

Qu n lý đ c các bài t p l n c a m i môn h cả ượ ậ ớ ủ ỗ ọ

Phân công công vi c các thành viên trong nhómệ

Lê Khánh Duy

Lục Quốc Quyền

Lý Đức Vượng

Trang 5

Page 6: báo cáo bài tập lớn

December 17, 2013 [ ]

Ch ng 1. Phân tích yêu c u và k t qu d ki nươ ầ ế ả ự ế

1.1Phân tích yêu c u projectầT yêu c u c a project ta có th phân tích bài toán nh sauừ ầ ủ ể ư

Qu n lý l p h c :ả ớ ọ

Do m t gi ng viên sẽ gi ng d y nhi u l p h c. Cho nên ch ng trìnhộ ả ả ạ ề ớ ọ ươ ph i cho phép thêm m i, s a, xóa các l p h c. M i l p h c đ c phân bi tả ớ ử ớ ọ ỗ ớ ọ ượ ệ b ng mã l p h c, tên l p h c, mã h c ph n, tên h c ph n, phòng h c và th iằ ớ ọ ớ ọ ọ ầ ọ ầ ọ ờ gian h c c a l p đó. Ng i dùng có th xem chi ti t các l p h c sau khi khaiọ ủ ớ ườ ể ế ớ ọ báo, ch nh s a l i thông tin c a l p h c..ỉ ử ạ ủ ớ ọ

M i 1 l p h c sẽ có nhi u sinh viên. M t sinh viên có th h c nhi uỗ ớ ọ ề ộ ể ọ ề l p h c. Cho nên t i m i l p h c ta có th xem danh sách các sinh viên cóớ ọ ạ ỗ ớ ọ ể trong l p h c đó. M i sinh viên đ c phân bi t v i nhau b i mã s sinh viên,ớ ọ ỗ ượ ệ ớ ở ố h tên sinh viên, l p h c theo l p sinh viên (không ph i l p đăng ký h c),ọ ớ ọ ớ ả ớ ọ gi i tính..ớ

Sau khi khai báo l p h c ng i dùng có th nh p tay danh sách sinhớ ọ ườ ể ậ viên, tuy nhiên do s l ng sinh viên đông nên đ tr giúp ng i dùng thìố ượ ể ợ ườ chúng ta sẽ làm thêm ch c năng h tr import danh sách sinh viên t …ứ ỗ ợ ừ(quy n..)ề

Gi ng viên ph i đi m danh theo bu i h c, và theo l p h c. Nênả ả ể ổ ọ ớ ọ ch ng trình ph i h tr vi c đi m danh theo bu i h c và l p h c. Ngoài raươ ả ỗ ợ ệ ể ổ ọ ớ ọ ch ng trình còn ph i cho phép gi ng viên ghi chú v thái đ h c t p cũngươ ả ả ề ộ ọ ậ nh đ tích c c, ghi chú v các sinh viên trong m i bu i h c, bu i đi mư ộ ự ề ỗ ổ ọ ổ ể danh. Gi ng viên cũng có th xem l i l ch s đi m danh c a m i sinh viên,ả ể ạ ị ử ể ủ ỗ đ ng th i s a l i l ch s đó n u nh gi ng viên có quên vi c đi m danh c aồ ờ ử ạ ị ử ế ư ả ệ ể ủ sinh viên vào bu i h c tr c.ổ ọ ướ

M i m t môn h c sẽ có danh sách các bài t p l n. Gi ng viên có thỗ ộ ọ ậ ớ ả ể thêm m i danh sách các bài t p l n đ qu n lý d dàng. Gán cho m i l p sinhớ ậ ớ ể ả ễ ỗ ớ viên và m i sinh viên trong l p ho c m t nhóm sinh viên trong l p bài t pỗ ớ ặ ộ ớ ậ l n c n làm.ớ ầ

Trang 6

Page 7: báo cáo bài tập lớn

December 17, 2013 [ ]

1.2 K t qu d ki n c n đ t đ cế ả ự ế ầ ạ ượ

T vi c phân tích các yêu c u c a project phía bên trên. Nhóm chúng em đ aừ ệ ầ ủ ư ra các yêu c u c n đ t đ c là:ầ ầ ạ ượ

Ch c năng : Xây d ng đ c đ y đ các ch c năng c b n (Qu n lý l pứ ự ượ ầ ủ ứ ơ ả ả ớ h c, qu n lý sinh viên c a m i l p h c, import các file danh sách sinhọ ả ủ ỗ ớ ọ viên, qu n lý danh sách các bài t p l n, qu n lý đ c vi c đi m danhả ậ ớ ả ượ ệ ể và ghi chú đ tích c c c a m i sinh viên sau m i bu i h c)..N u cònộ ự ủ ỗ ỗ ổ ọ ế th i gian nhóm sẽ phát tri n các ch c năng cho phép t o nhóm, gánờ ể ứ ạ danh sách bài t p l n cho m i sinh viên ho c m i nhóm sinh viên,ậ ớ ỗ ặ ỗ qu n lý l ch gi ng d y cho sinh viênả ị ả ạGiao di n : Ch ng trình sẽ xây d ng theo ki u Sliding Menu đ ti nệ ươ ự ể ể ệ l i cho vi c qu n lý. Ch ng trình qu n lý sẽ có nhi u màn hình. M i 1ợ ệ ả ươ ả ề ỗ màn hình sẽ th c hi n 1 công vi c c th .ự ệ ệ ụ ểCông ngh : Nhóm d đ nh s d ng fragment đ xây d ng và qu n lýệ ự ị ử ụ ể ự ả vi c thay đ i gi a các màn hình, s d ng thêm các th vi n đ t oệ ổ ữ ử ụ ư ệ ể ạ giao di n sliding menu và qu n lý các fragment 1 cách d dàng, giaoệ ả ễ di n có th ch y trên nhi u thi t b . ệ ể ạ ề ế ịD li u : S d ng c s d li u sqlite đ l u tr các thông tin. Đ ngữ ệ ử ụ ơ ở ữ ệ ể ư ữ ồ th i cho phép ng i dùng có th import file d li u t th m c,ờ ườ ể ữ ệ ừ ư ụ dropbox..

Trang 7

Page 8: báo cáo bài tập lớn

December 17, 2013 [ ]

Ch ng 2. Thu t toán chuy n giao gi a các màn hìnhươ ậ ể ữ

2.1 Qu n lý l p h cả ớ ọ

2.2 Qu n lý danh sách sinh viênả

2.2 Qu n lý bài t p l nả ậ ớ

2.2 Qu n lý đi m danhả ể

Ch ng 3. Phân tích các module c a ch ng trìnhươ ủ ươ

3.1 Qu n lý l p h cả ớ ọ+C s d li u : d li u c a các l p h c sẽ đ c l u trong b ng l p h c nh ơ ở ữ ệ ữ ệ ủ ớ ọ ượ ư ả ớ ọ ưsau

B ng l p h c g m các tr ng và các thu cả ớ ọ ồ ườ ộ tính nh sau : ư

ID_LOP : tr ng mô t id ki u d li u làườ ả ể ữ ệ ki u interger và t đ ng tăng sau m i hàngể ự ộ ỗ

MA_LOP,TEN_LOP,MA_HOC_PHAN,TEN_HOC_PHAN,PHONG_HOC : các tr ng mô tườ ả v thông tin c a m i l p h c theo nh thông tin nh n đ c t phòng đào t o đ iề ủ ỗ ớ ọ ư ậ ượ ừ ạ ạ h c.Các tr ng này ki u d li u là ki u varcharọ ườ ể ữ ệ ể

Hình 1 Mô tả bảng dữ liệu quản lý lớp học

+Thêm m i 1 l p h c : Đ thêm m i 1 l p h c vào c s d li u ta làm nh sauớ ớ ọ ể ớ ớ ọ ơ ở ữ ệ ư

publicvoid addClass(ManageClass mClass) {SQLiteDatabase db = this.getWritableDatabase();ContentValues values = new ContentValues();values.put(MA_LOP, mClass.getMaLop());values.put(TEN_LOP, mClass.getTenLop());values.put(MA_HOC_PHAN, mClass.getMaHocPhan());values.put(TEN_HOC_PHAN, mClass.getTenHocPhan());values.put(PHONG_HOC, mClass.getPhongHoc());

Trang 8

Page 9: báo cáo bài tập lớn

December 17, 2013 [ ]

db.insert(TABLE_CLASS, ID_LOP, values);db.close();

}

+Ch nh s a 1 l p h c :ỉ ử ớ ọpublicint updateClass(ManageClass mClass) {

SQLiteDatabase db = this.getWritableDatabase();ContentValues values = new ContentValues();values.put(ID_LOP, mClass.getIdLop());values.put(MA_LOP, mClass.getMaLop());values.put(TEN_LOP, mClass.getTenLop());values.put(MA_HOC_PHAN, mClass.getMaHocPhan());values.put(TEN_HOC_PHAN, mClass.getTenHocPhan());values.put(PHONG_HOC, mClass.getPhongHoc());return db.update(TABLE_CLASS, values, ID_LOP + " = ?",

new String[] { String.valueOf(mClass.getIdLop()) });}

+Xóa 1 l p h c:ớ ọpublicvoid deleteClass(int idClass) {

SQLiteDatabase db = this.getWritableDatabase();db.delete(TABLE_CLASS, ID_LOP + " = ?",

new String[] { String.valueOf(idClass) });db.close();

}

+ L y v thông tin 1 l p h c b i mã l p h cấ ề ớ ọ ở ớ ọpublic ManageClass getClassById(int idClass) {

SQLiteDatabase db = this.getReadableDatabase();Cursor cursor = db.query(TABLE_CLASS, new String[] { ID_LOP,

MA_LOP,TEN_LOP, MA_HOC_PHAN, TEN_HOC_PHAN, PHONG_HOC }, ID_LOP + "=?",new String[] { String.valueOf(idClass) }, null, null, null,null);

if (cursor != null)cursor.moveToFirst();

ManageClass mClass = new ManageClass(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2),

cursor.getString(3), cursor.getString(4),cursor.getString(5));

// return contactreturn mClass;

}

+ L y v t t c các danh sách các l p h cấ ề ấ ả ớ ọpublic List<Student> getListStudentByIdClass(int idClass) {

List<Student> list = new ArrayList<Student>();String selectQuery =

"SELECT * FROM " + TABLE_STUDENT + " WHERE "+ ID_LOP_DK + "=?";

SQLiteDatabase db = this.getWritableDatabase();Cursor cursor = db.rawQuery(selectQuery,

new String[] { String.valueOf(idClass) });if (cursor.moveToFirst()) {

do {

Trang 9

Page 10: báo cáo bài tập lớn

December 17, 2013 [ ]

Student student = new Student(Integer.parseInt(cursor.getString(0)), cursor.getString(1),cursor.getString(2), cursor.getString(3),cursor.getString(4),

Integer.parseInt(cursor.getString(5)));

list.add(student);} while (cursor.moveToNext());

}return list;

}

3.2Qu n lý sinh viênảMô tả cơ sở dữ liệu:

Hình 2 Mô tả bảng dữ liệu sinh viên

Bảng dữ liệu sinh viên dùng để lưu trữ dữ liệu về các sinh viên. Mỗi 1 sinh viên có các thuộc tính bao gồm Mã sinh viên lưu trong trường MA_SINH_VIEN. Tên sinh viên lưu trong trường TEN_SINH_VIEN. Lớp sinh viên là lớp mà sinh viên đang theo học, không phải lớp đăng ký học lưu trong trường LOP_SINH_VIEN. Giới tính sẽ lưu trong trường GIOI_TINH.Mỗi 1 sinh viên sẽ đăng ký vào 1 lớp học hoặc nhiều lớp học.Nên bảng Student có thêm 1 trường khóa ngoài liên kết với bảng Class là trường ID_LOP_DK.

Để thêm mới 1 sinh viên vào 1 lớp học ta làm như sau:

+Thêm mới 1 sinh viên vào 1 lớp học :

publicvoid addStudentClass(Student student, int idClass) {SQLiteDatabase db = this.getWritableDatabase();ContentValues values = new ContentValues();values.put(MA_SINH_VIEN, student.getmId());values.put(TEN_SINH_VIEN, student.getmName());values.put(LOP_SINH_VIEN, student.getmClass());values.put(GIOI_TINH, student.getmSex());

Trang 10

Page 11: báo cáo bài tập lớn

December 17, 2013 [ ]

values.put(ID_LOP_DK, idClass);db.insert(TABLE_STUDENT, ID_SINH_VIEN, values);db.close();

}

+ Ch nh s a thông tin c a 1 sinh viênỉ ử ủ

publicint updateStudent(Student student) {SQLiteDatabase db = this.getWritableDatabase();ContentValues values = new ContentValues();values.put(ID_SINH_VIEN, student.getId());values.put(MA_SINH_VIEN, student.getmId());values.put(TEN_SINH_VIEN, student.getmName());values.put(LOP_SINH_VIEN, student.getmClass());values.put(GIOI_TINH, student.getmSex());values.put(ID_LOP_DK, student.getIdRegisterClass());return db.update(TABLE_STUDENT, values, ID_SINH_VIEN + " = ?",

new String[] { String.valueOf(student.getId()) });}

+ Xóa 1 sinh viên trong 1 l p h c khi bi t idSinhvienớ ọ ế

publicvoid deleteStudent(int idStudent, int idClass) {SQLiteDatabase db = this.getWritableDatabase();db.delete(TABLE_STUDENT,ID_SINH_VIEN+" = ?"+ " AND "+ID_LOP_DK+"

= ?",new String[] { String.valueOf(idStudent),

String.valueOf(idClass) });db.close();

}

+ L y v danh sách t t c các sinh viên theo l p h cấ ề ấ ả ớ ọ

public List<Student> getListStudentByIdClass(int idClass) {List<Student> list = new ArrayList<Student>();String selectQuery = "SELECT * FROM "+TABLE_STUDENT+ " WHERE "

+ ID_LOP_DK + "=?";SQLiteDatabase db = this.getWritableDatabase();

Cursor cursor = db.rawQuery(selectQuery,new String[] { String.valueOf(idClass) });

if (cursor.moveToFirst()) {do {

Student student = new Student(Integer.parseInt(cursor.getString(0)), cursor.getString(1),cursor.getString(2), cursor.getString(3),cursor.getString(4),

Integer.parseInt(cursor.getString(5)));

list.add(student);} while (cursor.moveToNext());

}

Trang 11

Page 12: báo cáo bài tập lớn

December 17, 2013 [ ]

return list;}

3.3 Import danh sách sinh viên(quyền…..)

3.4 Qu n lý đi m danhả ể

3.5 Qu n lý bài t p l nả ậ ớ Dữ liệu bài tập lớn được lưu theo bảng sau:

t

Hình 3: Mô tả bảng cơ sở dữ liệu

Trong đó :

ID_DE_TAI chính là ID của đề tài và được đặt làm khóa chính vì mỗi đề tài chỉ có một ID.ID_DE_TÀI được đặt mặc định là tự tăng.

TEN_DE_TAI ,MA_DE_TAI để kiểu VARCHAR và giới hạn tối đa 20 kí tự

Trang 12

Page 13: báo cáo bài tập lớn

December 17, 2013 [ ]

MO_TA_DE_TAI để kiểu VARCHAR giới hạn 50 kí tự

Sau khi tạo được sơ đồ cơ sở dữ liệu ta tạo cơ sở dữ liệu.

Để add thêm một project vào quản lý ta làm như sau:

Hình 4: Thêm mới một bài tập lớn vào cơ sở dữ liệu

Ta sử dụng values.put để thêm mới một bài tập lớn vào cơ sở dữ liệu.

Sau khi lưu thông tin bài tập lớn vào cơ sở dữ liệu , ta cũng có thể sửa thông tin đã lưu bằng hàm sau đây:

Hình 5: Chỉnh sửa (update) dữ liệu

Và xóa dữ liệu:

public void deleteProject(int idProject)

{SQLiteDatabase db = this.getWritableDatabase();

Trang 13

Page 14: báo cáo bài tập lớn

December 17, 2013 [ ]

db.delete(TABLE_PROJECT, ID_PROJECT + "=?",new String[] { String.valueOf(idProject) });

db.close();

}

Hình 6:Xóa một đề tài khi biết id của nó

Ch ng 4. K t quươ ế ả

4.1 Gi i thi u c u trúc và các thành ph n projectớ ệ ấ ầ

4.1.1 Các th vi n s d ng trong projectư ệ ử ụ

+Gi i thi uớ ệ

Đây là b th vi n đ c t i u hóa đ s d ng thi t k m t app theo giaoộ ư ệ ượ ố ư ể ử ụ ế ế ộ di n s d ng Side menu.ệ ử ụDownload: ActionbarSherlock 4.2.0 t i ạ http://actionbarsherlock.com/Download:SlidingMenu t i ạ https://github.com/iPaulPro/SlidingMenu

+Cách thức áp dụng vào dự án.

- B t bu c ph i build project s d ng Android API level 16 tr lênắ ộ ả ử ụ ở- Trong AndroidManifesh.xml / <application/> ph i khai báo thu c tínhả ộ

theme<applicationandroid:theme="@style/Theme.Sherlock.Light.DarkActionBar">

- Import 2 source th vi n vào Eclipse và c u hình project s d ng 2ư ệ ấ ử ụ libs này.

-+Các chú ý khi triển khai

- com.mamage.student.object.ContentParent là fragment l n nh t. Nó sẽ ớ ấdùng đ ch a các fragment làm các sub screen. Th nên, khi ta di chuy n ể ứ ế ểcác màn hình, ta s d ng l i g i: ử ụ ờ ọgetFragmentManager().beginTransaction().replace(R.id.content_parent_layout, new <Fragment will use>()).commit();

- M i màn hình t ng ng là m t SherlockFragment. Vì yêu c u c thỗ ươ ứ ộ ầ ụ ể theo project này luôn có Actionbar trên, nên yêu c u khi ta code 1 mànở ầ hình, b t bu c ph i:ắ ộ ảo Implements SettingActionBar

Trang 14

Page 15: báo cáo bài tập lớn

December 17, 2013 [ ]

o G i hàm settingActionBar() tr c return view trong ọ ướonCreateView()

o Thi t l p các setting c th cho Actionbar t i t ng màn hình.ế ậ ụ ể ạ ừ

publicclass Fresh extends SherlockFragment implements SettingActionBar {private SlidingSherlockFragmentActivity shlFrgAtv;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

settingActionBar();return inflater.inflate(R.layout.content_parent, null);

}

@OverridepublicvoidsettingActionBar() {

shlFrgAtv = ((SlidingSherlockFragmentActivity) getSherlockActivity());

shlFrgAtv.addMenuBtn();

shlFrgAtv.setTextForTitleScreen(getResources().getString(R.string.fresh));

shlFrgAtv.setDisplayRightBtn(false);getSherlockActivity().getSupportActionBar().show();

}}

Trang 15

Page 16: báo cáo bài tập lớn

December 17, 2013 [ ]

4.1.2 C u trúc projectấ

Hình 3 Cấu trúc thư mục project

Project được thiết kế theo kiểu hướng đối tượng chia làm nhiều package mỗi package chứa 1 số class thực hiện những nhiệm vụ cụ thể

+com.android.manage.student.adapter:Package này chứa các class là các custum adapter cho các listview hiển thị các danh sách như danh sách bài tập lớn, danh sách lớp học, danh dách sinh viên…

+com.android.manage.student.base:Chứa các class chính, cơ bản xây dựng nên chương trình như ManageStudentApplication.java,SlidingSherlockFragmentActivity.java là các class cơ bản base của chương trình từ đây ta gọi các màn hình hay các class khác.

+com.android.manage.student.common:Chứacác class chính sử dụng chung cho toàn chương trình, như class khai báo các hằng số, các phương thức tĩnh sử dụng cho toàn chương trình, class khai báo và làm việc với cơ sở dữ liệu sqlite.

+com.android.manage.student.dialog:Chứa classviết đè lại lớp dialog để hiển thị các dialog custom của chương trình.

Trang 16

Page 17: báo cáo bài tập lớn

December 17, 2013 [ ]

+com.android.manage.student.object: Chứa các class khai báo các đối tượng tham chiếu đến cơ sở dữ liệu của chương trình.Trong mỗi class sẽ có các thuộc tính giống như các cột trong bảng cơ sở dữ liệu tương ứng.

+com.android.manage.student.screen:Chứa các class kế thừa các fragment đây chính là các View hay các screen của chương trình.Tất cả các screen của chương trình đều được đóng gói vào package này.

+com.android.manage.student.sliding:Chứa các class chính là thư viện xây dựng nên giao diện sliding menu của chương trình

4.2M t s hình nh demo c a projectộ ố ả ủ

4.1.1 Qu n lý l p h cả ớ ọ

Hình 4 Màn hình danh sách lớp và menu tùy chọn

Trang 17

Page 18: báo cáo bài tập lớn

December 17, 2013 [ ]

Hình 5 Màn hình thêm m i và ch nh s a l p h cớ ỉ ử ớ ọ

Hình 6 Màn hình chi ti t l p h c và danh sách sinh viên trong l pế ớ ọ ớ

Trang 18

Page 19: báo cáo bài tập lớn

December 17, 2013 [ ]

4.1.2 Qu n lý sinh viênả

Hình 7 Màn hình thêm mới chỉnh sửa thông tin sinh viên

4.1.3 Import file danh sách sinh viên

Trang 19

Page 20: báo cáo bài tập lớn

December 17, 2013 [ ]

4.1.4 Qu n lý đi m danhả ể

Hình 8 Màn hình quản lý điểm danh theo lớp và theo ngày

Hình 9 Ghi chú điểm danh và xem lại lịch sử điểm danh

Trang 20

Page 21: báo cáo bài tập lớn

December 17, 2013 [ ]

4.1.5 Qu n lý bài t p l nả ậ ớ

Hình10 :Thêm mới bài tập lớn sau đó chuyển sang màn hình quản lý.

Trang 21

Page 22: báo cáo bài tập lớn

December 17, 2013 [ ]

Hình 11:Menu chi tiết ,chỉnh sửa xóa và màn hình hiển thị chi tiết đề tài

Trang 22

Page 23: báo cáo bài tập lớn

December 17, 2013 [ ]

Hình 12: Màn hình chỉnh sửa bài tập lớn

Ch ng 5.Test và ki m th ch ng trìnhươ ể ử ươ

Ch ng 6. K T LU N VÀ PH NG H NG PHÁT ươ Ế Ậ ƯƠ ƯỚTRI NỂ

u đi m ch ng trình :Ư ể ươ

Ch ng trình s d ng thêm các th vi n h tr t o giao di n và áp d ng 1ươ ử ụ ư ệ ỗ ợ ạ ệ ụ s công ngh m i nh s d ng nh nice path đ tăng hi u su t nên ch ng trìnhố ệ ớ ư ử ụ ả ể ệ ấ ươ t ng đ i nh , m t, t o c m giác thích thú cho ng i dùng.ươ ố ẹ ượ ạ ả ườ

Các ch c năng c b n xây d ng 1 cách phù h p h ng t i ng i dùng tùyứ ơ ả ự ợ ướ ớ ườ thu c vào t ng ng c nh có cách x lý h p lý. VD. Nh vi c đi m danh r t d dàngộ ừ ữ ả ử ợ ư ệ ể ấ ễ không hi n th nhi u dialog gây b t ti n cho ng i dùng.ể ị ề ấ ệ ườ

Trang 23

Page 24: báo cáo bài tập lớn

December 17, 2013 [ ]

H n ch ch ng trình: ạ ế ươ

Ch ng trình v n ch a hoàn thi n c n hoàn thi n n t các ch c năng nh đãươ ẫ ư ệ ầ ệ ố ứ ư xây d ng trên giao di n. 1 s ch c năng ch a h p lý c n nghiên c u cách x lý tìnhự ệ ố ứ ư ợ ầ ứ ử hu ng phù h p v i th c tố ợ ớ ự ế

Ph ng h ng phát tri n:ươ ướ ể

Ti p t c phát tri n ch ng trình đ ch ng trình có th đ c s d ng trênế ụ ể ươ ể ươ ể ượ ử ụ th c t đ tr giúp gi ng viên trong quá trình qu n lý sinh viên cho m i l p h cự ế ể ợ ả ả ỗ ớ ọ c a mìnhủ

Tài li u tham kh oệ ả

1. Slide bài gi ng l p trình android trên l p c a th y giáoả ậ ớ ủ ầ2. Th vi n ActionbarSherlock 4.2.0 t i ư ệ ạ http://actionbarsherlock.com/3. Th vi n ư ệ SlidingMenu t i ạ https://github.com/iPaulPro/SlidingMenu

Trang 24