1. Trang chủ
  2. » Tất cả

Báo cáo đồ án thực hành lập trình hướng đối tượng microsoft visual studio lập trình theo hướng đối tượng

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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo đồ án thực hành lập trình hướng đối tượng Microsoft Visual Studio lập trình theo hướng đối tượng
Tác giả Lê Mỹ Khánh Quỳnh
Trường học Đại Học Khoa Học Tự Nhiên, Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Lập trình hướng đối tượng
Thể loại Báo cáo đồ án
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 11
Dung lượng 5,07 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thêm khóa học vào hệ thống, thêm người dùng vào hệ thống,thêm sinh viên/ giảng viên vào khóa học o Khi khởi động người dùng sẽ nhập vào type user cần đăng nhập vào:  Ở đây, class Nguoi

Trang 1

BÁO CÁO ĐỒ ÁN THỰC HÀNH LẬP TRÌNH HƯỚNG

ĐỐI TƯỢNG

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ

MINH

Lê Mỹ Khánh Quỳnh - 21127681

Trang 2

MỤC LỤC

I GIỚI THIỆU ĐỒ ÁN: 2

1 NỘI DUNG ĐỒ ÁN: 2

2 CÔNG CỤ: 2

3 NGÔN NGỮ LẬP TRÌNH: 2

4 KỸ THUẬT: 2

II MÔ TẢ HỆ THỐNG MÃ NGUỒN: 3

III UML CLASS: 8

IV LỜI KẾT: 12

Trang 3

I GIỚI THIỆU ĐỒ ÁN:

1 NỘI DUNG ĐỒ ÁN:

- Trong phần đồ án này ta sẽ phối hợp các kĩ thuật, cấu trúc

dữ liệu cơ bản và kiến thức lập trình hướng đối tượng để xây dựng một hệ thống moodle Để thực hiện được đồ án này ta cần các kiến thức cơ bản như: xử lý tập tin, tiểu trình, handle, các cấu trúc

dữ liệu cơ bản và kiến thức lập trình hướng đối tượng…

2 CÔNG CỤ:

- Microsoft Visual Studio.

3 NGÔN NGỮ LẬP TRÌNH:

- Ngôn ngữ: C++.

4 KỸ THUẬT:

- Lập trình theo hướng đối tượng.

Trang 4

II YÊU CẦU ĐẠT ĐƯỢC:

1 Thêm khóa học vào hệ thống, thêm người dùng vào hệ thống,thêm sinh viên/ giảng viên vào khóa học

o Khi khởi động người dùng sẽ nhập vào type user cần đăng nhập vào:

 Ở đây, class NguoiDung (base class của class GiaoVu, SinhVien

và GiangVien) được xây dựng theo cấu trúc prototype design

pattern Giúp người dùng linh hoạt trong thao tác và mở rộng

mã nguồn

o Sau khi người dùng nhập vào type user tương ứng, hệ thống sẽ tiến

đến bước đăng nhập Tùy thuộc vào user type mà người dùng nhập vào, chương trình sẽ hỗ trợ các thao tác chức năng tương ứng

o Để thực hiện thao tác thêm khóa học / người dùng, ta phải đăng nhập

dưới type là GiaoVu Khi đó hệ thống sẽ diễn hoạt chương trình các

chức năng của GiaoVu

o Chức năng thêm người dùng/ khóa học: được thiết kế mã nguồn khá tương đồng

Người dùng sẽ phải nhập vào dữ liệu người dùng và khóa học cần add Hệ thống sẽ

kiểm tra xem trong danh sách Người dùng và Khóa học của hệ thống đã tồn tại đối tượng cần thêm chưa Nếu đã tồn tại, chương trình sẽ trả về dòng warning : “người

dùng / khóa học đã tồn tại” và kết quả hàm ADD sẽ trả về false Ngược lại, nếu trong hệ thống chưa tồn tại sẽ thực hiện thêm người dùng / khóa học vào danh sách tương ứng trong hệ thống và trả giá trị true.

Trang 5

o Thêm sinh viên / giảng viên vào khóa học: Ở chức năng này người dùng vẫn phải nhập

dữ liệu cho user và khóa học Chương trình sẽ tìm xem khóa học đã tồn tại trong hệ thống hay chưa ? Nếu chưa sẽ thực hiện thêm khóa học vào hệ thống rồi thêm người dùng vào khóa học

o

2 Giảng viên tạo hoạt động và sinh viên tham gia hoạt động đó

o Để thực hiện tạ

3 Sinh viên nộp bài tập

Trang 6

4 Giáo viên chấm điểm bài tập

5 Nhập thông tin tài nguyên và hoạt động (thông qua file txt với cấu trúc tự xây dựng)

6 Mô phỏng sinh viên nộp bài

7 Mô phỏng giáo viên chấm bài

o Khi chạy chương trình, màn hình consol sẽ xuất hiện MENU

CHÍNH của hệ thống.

 Thêm khóa học vào hệ thống : Input dữ liệu cho một khóa học và

push nó vào danh sách các khóa học của hệ thống Trong

trường hợp khóa học đã tồn tại (xét dựa vào tên của khóa học) thì hệ thống sẽ hiện warning: “khoa hoc da ton tai.” Và không thực hiện việc thêm khóa học vào hệ thống Tương tự như vậy với chức năng thêm người dùng

 Thêm user vào khóa học : Hệ thống sẽ yêu cầu người dùng nhập

dữ liệu khóa học và người dùng cần thêm vào khóa học đó Nếu khóa học chưa tồn tại trong hệ thống, chương trình sẽ thực hiện thêm khóa học vào hệ thống rồi thực hiện thêm

người dùng vào khóa học

o

III PSEUDOCODE:

Function NewGame()

if not loaded

create defaullt Map ; draw Map;

InitNewState();

draw Player;

while game is over

if not pause

RandomNextState();

else

draw Menu Pausing;

switch pos :

case 1 : SaveGameMenu();

case 2 : LoadGameMenu();

case 3 : out;

switch key :

case p : clean Menu Pausing;

case w : go up;

case d : go down;

case a : go left;

case s : go right;

Trang 7

if not end and win

if print level up -> choose true

next level;

draw map;

InitNewState();

draw player;

Function InitNewState()

create Player;

create Rows;

randomi Rows -> init random Enemy with different features; speed up Rows[random];

sleep;

MoveToNextState()

Function MoveToNextState()

random int -> draw Traffic Light;

random Rows -> push Enemy;

Function RandomNextState()

random Rows -> add new Enemy;

MoveToNextState();

draw Map;

Function ContinueGame()

Print Map;

Print “Game Over”; //cout bằng UTF8

switch(key)

case a:

{

pos ;

if(!isMute1 && !isMuteAll) PlaySound(); }

case s:

{

pos++;

if(!isMute1 && !isMuteAll) PlaySound(); }

case 13:

return !pos;

Function GameSetting()

Trang 8

Print Menu;

switch(key)

case w: pos ;

case s: pos++;

case 13:

switch(pos)

case 0: Mode Setting;

case 1: Sound1 Setting;

case 2: Sound2 Setting;

case 3: Out;

Function GameMenu()

Print Menu;

switch(key)

case d: pos++;

case a: pos ;

case 13:

switch(pos)

case 1: New Game;

case 2: Load Game;

case 3: Setting;

case 4: Exit;

Function SaveGame()

Open file

Writefile -> level x,y

vector <OneRow*> rows(rowsData.ListRow())

i = 0

while(i < 6)

writefile rows[i]->CurrentRow, Direction, Speed, Redlight vector <Enemy*> enemy(rows[i]-> Enemy)

writefile enemy size

j = 0

while(j < enemy size)

writefile enemy[j]->X,Y,type Close file

Function LoadGame(string s)

open file

if file is not open

return false

readfile lv,playerX,playerY

~Level()

Trang 9

new(&level) nLevel(lv, 0)

~player()

new(&player) pPlayer(pPosition(playerX, playerY))

nEnemy = 0

~qRows()

new(&rowsData) qRows()

i = 0

While ( i < 6 )

readfile CurrentRow,Direction,Speed,Redlight Push row on road data

readfile enemysize

Enemy += enemysize

j = 0

while( j < enemysize )

readfile eX,eY,eType Push enemy on road data Close file

return true

Trang 11

IV LỜI KẾT:

- Mặc dù đã cố gắng hết sức, các thành viên đã rất cố gắng để hoàn thành tốt nhiệm vụ của mình được giao nhưng chắc chắn không thể tránh khỏi những thiếu sót như code chưa tối ưu, trình bày chưa đẹp, … Nhưng chúng em đã cố gắng hết sức để hoàn thành tốt nhất có thể đồ án này

- Chúng em xin cảm ơn thầy Trương Toàn Thịnh đã đưa ra những hướng dẫn, hướng đi cụ thể để chúng em có thể hoàn

thành tốt đồ án này Chúng em xin cảm ơn thầy !

Ngày đăng: 28/02/2023, 21:59

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w