1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án môn học cơ sở lập trình viết chương trình mô phỏng trò chơi bao búa kéo biế

40 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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

Nội dung

Trang 1

BO GIAO DUC VA DAO TAO

DAI HOC KINH TE TP HO CHi MINH (UEH)

TRUONG CONG NGHE VA THIET KE

Khóa : K49

Giang Vién: TS Dang Ngoc Hoang Thanh

Tp Hồ Chí Minh, Ngày 24 tháng 11 năm 2023

Trang 2

MUC LUC

MỤC LỤC 5 5s 222 HH HH TH HH tt HH Hà H21 Hee re 2

Phần Ì -22-22s22112211217122122 1212211221221 HE ng tra 3 Phần 2 - 2-2222 1221112112171 222122212112 1 H1 n2 rau 3 Phan 3 occ ecccecccecsecssecsvecsvessesssscssesssessvecsressecssesssessussssessisssiearesssesavessresseessesevesssesaressneanessese 3 Phần 4 ooo ccc cecceecsecssecsvecsvessesssscsressscsvecsressecssesssesssessuessusssisaresssesavesaressvesseseseessesanessneannesseee 3 PHAN 5 ooo eeccecceecsecssecsvessvessesssscssessscssvecssessecssesssesssessiessnsssisaresssesavessressesseseseessesssessneanessese 3 Phần 6 - 2+ 2222122111211 1712212210211 1 HE Hee 4

LỜI GIẢI 55 2 22E2212221211221121121102 2212122222211 eerrea 5 BÀI Í 2225222122 2221 2E HH1 T122 HH2 t2 212 11t rrreưe 5

Phân Tích - 55+ cEE112E11271122T107 TỰ 2 1 1n tr HH reo 5 2 Thuật Toán -: 2s 22122 1122111271122 1211022122 E tr ren H2 1 tr re e 5

1 Phân Tích 2221221121112 82tr 1 HH nh HH gu 8 2 Thudt Tan ees ceccccccccesssessssessseessesssvesssesssecsssesssessssecssiesssesessessrcssesssassseisesesssneseseeen 8 BÀI 3 2221222 n2 HH HH H211 HH HH2 te re rreerười 9 1 Phân Tích 2221221121112 82tr 1 HH nh HH gu 9 2 Thuật Toán -: 2s 22122 1122111271122 1211022122 E tr ren H2 1 tr re e 9 1 occ ccccccssesssesssessesssessvessrecssesesssssessnsssisarestsessvesaresssesssssessiesanessrestiesseessesssesssesaseeesess II 1 Phân Tích s22 2212211121212 tt 1 n2 2H tr HH re re II 2 Thuật Toán -¿ 5s 122112211122 122111 TTtn 1x H21 H2 Hee tre ru ườ 12 BÀI 5 Q2 122212 n2 SH HH1 2H12 HH2 rn te trryg 14 1 Phân Tích s22 2212211121212 tt 1 n2 2H tr HH re re 14 2 Thuật Toán -¿ 5s 122112211122 122111 TTtn 1x H21 H2 Hee tre ru ườ 15

1 Phân Tích s22 2212211121212 tt 1 n2 2H tr HH re re l6 2 Thuật Toán -¿ 5s 122112211122 122111 TTtn 1x H21 H2 Hee tre ru ườ l6 ỨNG DỰNG 5s ST E222221122 222012 n2 212211 22 PHỤ LỤC -.- 52222122 12211122111 11122 1E Hn 1n HH HH te ree 26 TAL LIEU THAM KHẢO 2: 22+ S2 EEE1221127122712212211 210.110 eree 40

Trang 3

Có n + 1 dấu căn Trong đó n là số thứ tự của tên bạn trong danh sách, ví dụ, bạn có số thứ tự

là 1,11,21, thì n = 1, như yêu cầu đầu tiên.(n=2)

Trang 4

Phan 6

Cho một mảng nhiều chiều gồm thông tin cá nhân của mỗi sinh viên: họ tên, năm sinh, điểm trung bình, xếp loại Giả sử đữ liệu của mảng gồm có ít nhất 5 phan tử Hãy in ra toàn bộ các phiếu điểm theo mẫu như sau:

BANG DIEM TOT

NGHIEP

Cap cho sinh vién <hotén>, nam sinh <nam sinh>

Trong kì thi tốt nghiệp 2021, sinh viên trên đã đạt điểm trung bình là <điểm trung bình>, và

được xếp loại <xếp loạI>.Sinh viên có thứ hạng <??2> trong lớp

Hiệu Trưởng Trường Đại học ABC

Kí tên, Đóng dấu

Trang 5

Nếu người chơi ra Bao thì

Thông báo "Người chơi thắng "nếu máy tinh ra Bua Ngược lại thông báo người chơi thua

Nếu người chơi ra Búa thì

Thông báo "Người chơi thắng "nếu máy tính ra Kéo Ngược lại thông báo người chơi thua

2 Thuật Tuán a) Mô lả Thuật Toán

Khởi gán lựa chọn của máy tính (ComputerChoice) băng một giá trị số nguyên bắt kì nằm trong

khoảng (1,3), đại diện cho Kéo, Búa, Bao, cụ thé:

1: Kéo 2: Bua

Trang 6

if PlayerChoice == ComputerChoice then

ketqua = "Hoa"

else if PlayerChoice & ComputerChoice in [(1,3),(2,1),,2)] then

ketqua = "Thắng" else

ketqua = "Thua" end if return ketqua

b) Sơ Đô Khối

œ

er ae h fer lựa chọn người chơi vf

aly

Hea ff

ÍNgười Chơi thua /

Trang 7

c) Ma Nguén static void bailQ)

{

Console.ClearQ;

Console WriteLine("KEO - BUA - BAO\n"); int Computer = new Random().Next(1, 3); string ComputerChoiceName = Computer == 1 ? "Kéo" : Computer == 2 ? "Bua" : "Bao"; retnput1_ 1:

Console WriteLine("Nhap lwa chọn cua ban:");

Console WriteLine("[1] Kéo\t[2] Bua\t[3] Bao\t"); ConsoleKeyInfo key; int Player; key =

Console.ReadKey(true); string num = key.KeyChar.ToString(); if (int TryParse(num, out Player) == false)

{

Console.ClearQ;

Console WriteLine("Lya chon của bạn không tồn tại Chi chấp nhận lựa chọn là số

,—> nguyên từ 1-3 Vui lòng chọn lại "); øoto reinputl_ 1;

} string PlayerChoiceName = Player== 1? "Kéo" : Player == 2 ? "Bua" : Player == 3 ? ,—> "Bao": "";

if (Player > 0 & Player < 4) if (Player == Computer)

Console WriteLine("Lya chon cua bạn là {0}, lựa chọn của máy là {1} Kết qua: ,—> Hòa”,

PlayerChoiceName, ComputerChoiceName), else

if (Player == 1 & Computer = 3 || Player = 2 & Computer == 1 || Player == 3,— & Computer ==2)

Console.WriteLine("Lựa chọn của bạn là {0}, lựa chọn của máy là {1} Kết qua:,— Ban thang", PlayerChoiceName, ComputerChoiceName),

else Console WriteLine("1Lya chon cua bạn là {0}, lựa chọn cua may la {1} Kết quả: Máy thắng", PlayerChoiceName, ComputerChoiceName);

Trang 8

“i + "oy ant ntl

với n là số nguyên do người dùng nhập vào 2 Thuật Toán

a) Mô lả Thuật Toán

Yêu cầu người dùng nhập vào số thứ tự có đạng số nguyên n Xuất thông báo "Chỉ chấp nhận số nguyên đương khác 0 Vui lòng nhập lại."nếu đữ liệu đầu vào không hợp lệ Ngược lại thực hiện bước tiếp theo

Lấy số cuối cùng của số thứ tự bằng cách thực hiện phép chia lấy phần dư

Dùng vòng lặp for dé tinh giá trị biểu thức, với i>1 và i giảm dẫn (i-)

Algorithm 2 Thuật toán tính biểu thức P

if sothutu > 0 then n = sothutu % 10+1 else

b) Mã Nguôn

static void bai2()

{

Console Write("Nhap vao n: ");

string num = Console.ReadLine();

Trang 9

Yêu cầu người dùng nhập vào bậc n cao nhất của đa thức cần tính Nếu lựa chọn không hợp lệ thì xuất kết quá "Chỉ chấp nhận số nguyên đương khác 0 Vui lòng nhập lại "Ngược lại ta

thực hiện bước tiếp theo

Sử dụng vòng lặp for, khởi gán ¿ = ø, điều kiện dừng ï > 0 Yêu cầu người dùng nhập vào các

hệ số tương ứng cho từng bậc ø,# — l, và hệ số tự do Nếu lựa chọn không hợp lệ thì xuất

kết quả "Nhập sai Chỉ chấp nhận số Vui lòng nhập lại "Ngược lại ta thực hiện bước tiếp theo.

Trang 10

Yêu cầu người dùng nhập vào giá trị của x Thực hiện phép tính ở bước tiếp theo, néu input không hợp lệ thì xuất thông báo “"Nhập sai Chỉ chấp nhận số Vui lòng nhập lại.”

Sử dụng vòng lặp for, với mỗi giá trị, tính giá trị zesulf = resuit + F[i] + Xĩ

Algorithm 3 Thuật toán tính biểu thire F(x)

Require: degree > 0 Require: X

for i=level down to 0 do

Nhập vào hệ số của hạng bac i end for

for i= level,, 1 down to 0 do result= result +Fi + Xi end for

Console Write("Nhap vào bậc của đa thức: ");

string num = Console.ReadLine();

int level;

if (int TryParse(num, out level) == false)

Console.WriteLine("Chỉ chấp nhận số nguyên dương khác 0 Vưi lòng nhập lại.");

double[] F = new double[level + 1];

for (int 1 = level; i > 0; i )

{

reinput3 2:

Console Write("Nhap vào hệ số của số hạng bậc {0}: ", 1);

Trang 11

num = Console.ReadLineQ);

if (double TryParse(num, out F[i]) == false)

Console WriteLine("Nhap sai Chi chap nhận số Vui lòng nhập lại."); goto reinput3_2;

} }

result = result + F[i] * Math Pow(X, 1);

Console WriteLine("Két qua: {0}", result);

BÀI 4

1 Phâm Tích

Dùng vòng lặp for, kiểm tra phan tt a[/] và với giá trị tương ứng (đối xứng qua trục đọc, trục ngang) Nếu bằng nhau thì ma trận là đối xứng qua trục giữa, ngược lại ma trận không đối xứng

Ví dụ: Kiểm tra tính đối xứng qua trục giữa của ma trận:

3 4 1 4 5

Trang 12

3 duoc tinh bang cach lay số phần tử hàng ?—1—đex của giá tri i dang xét: 4-1-0 =3

Ta thấy cá bốn phần tử đều bằng nhau nên ma trận A đối xứng qua trục đọc 2 Thuật Toán

a) Mô lả Thuật Toán

Khai báo máng hai chiều double a Yêu cầu người dùng nhập vào từng phần tử tương ứng Kiểm tra đối xứng qua trục dọc Với mỗi 7 = 0 vai < tổng số phân tử của hàng, với mỗi /,

thực hiện:

Kiém tra phan tr a[i][j] voi phần tử tương ứng đối xứng qua trục đọc là a[i][Số phần tử của hàng - 1 - j] Nếu có cặp hai giá trị không bằng nhau thì xuất thông báo "Ma trận không đối xứng qua trục dọc", ngược lại xuất thông báo "Ma trận đối xứng qua trục dọc"

Kiểm tra phân tử a[i][j] với phần tử tương ứng đối xứng qua trục ngang là a[Số phần tử của hàng - 1 - j][¡] Nếu có cặp hai giá trị không bằng nhau thì xuất thông báo "Ma trận không đối xứng qua trục ngang", ngược lại xuất thông báo "Ma trận đối xứng qua trục ngang"

Algorithm 4 Thuật toán kiểm tra tính đối xứng của ma trận

Require: Số dòng của ma trận siZeM Require: Số cột cua ma tran sizeN Require: Cac phan tt acta ma tran

->Kiém tra d6i xứng trục đọc

for 1=0 up to number of rows do

for j=0 up to number of columns do Íf arzI#atrlIla-1-; then Ma trận đôi xứng qua trục dọc

else

pass

end if end for end for

->Kiểm tra đối xứng trục ngang

for 1=0 up to number of columns do for j=0 up to number of rows do

if apy|#a[sphntcahng-1-s[4] then Ma trận đôi xứng qua trục ngang else

pass

end if end for end for

12

Trang 13

b) Ma Nguon

static void bai4()

{

Console.Clear(); remput4 1:

Console Write("Nhap vao kich thudéc ma tran vuéng mxn: "); int size;

string num = Console.ReadLine(); if (int TryParse(num, out size) == false)

Trang 14

Console.WriteLine("Nhập sai Chỉ chấp nhận số Vui lòng nhập lại."); goto reinput4 2;

}

for (int i= 0; i < size; i++)

{

for (int j = 0; | < size; j++)

Console Write("{0,5}", matrix[i][j]); Console WriteLine();

}

for (int i= 0; i < size; i++) for (int } = 0; ) < size; j++) {

Trang 15

Yêu câu người dùng nhập vào xâu 82

Thực thi hàm outstring để thay thế xâu S1 thành xâu S2 trong xâu S 2 Thuật Toán

a) Mô lả Thuật Toán Mô tả thuật toán

Khai báo string S là xâu gốc người dùng nhập vào Khai bao string S; la xâu con trong xâu gốc muốn thay thế Khai báo string S› là xâu thay thé

Khi tìm được xâu Š¡ trong xâu S thi S IndexOf(s1) tra vé giá trị lớn hơn hoặc bang 0

Thực hiện xoá n kí tự (độ đài của 6) tại vị trí lấy được từ index

Điền xâu % vào SŠ tai vi tri index

Console.WriteLine("Xâu sau khi được xu ly: " + output);

15

Trang 16

Dùng vòng lặp for với điều kiện dừng j < 3 (do có 3 phần tử gồm họ tên, năm sinh, điểm trung bình cân được thêm vào máng) Sử dụng câu lệnh switch-case đề nhập vào từng loại phân tử, xuất ra các thông báo nhập lại nêu dữ liệu nhập vào không hợp lệ, ngược lại thưc hiện bước tiệp theo

Khởi tạo biến score là điểm của từng sinh viên trong máng Sử dụng câu lệnh if để xếp loại

tốt nghiệp sinh viên Nếu điểm >= 8 thì xếp loại GIỏi, >=6.5 và <8 thì xếp loai Kha, >=5 va <=6.5 thì xếp loại Trung bình, ngược lại xếp loại Yếu

Trang 17

loai = "Kha" else if 5<=score<6.5 then

loai = "Trung binh"

else

loai = "Yếu" end if

for i = 0 up to amount - i do

for j = amount -1 up toi do if a;< a; then

temp = a; ai= aj aj= temp

end if end for end for

Console WriteLine("\nNhap thong tin cho sinh vién thir {0}",1+ 1); for (int j = 0; |< 3; 4++)

{

reinput6_ 2: switch (4)

Trang 18

Console WriteLine("Nam sinh khéng thé <=0 Vui long nhập lại."); goto reinput6_2;

}

a[r][il = num; break;

Trang 19

goto reinput6_2;

}

a[i][j] = score; break;

}

score = Convert ToSingle(a[i] [2]);

if (score >= 8) a[il[3] = "Gioi";

else if (score >= 6.5 & score < 8)

aliJ[3] = "Kha

else if (score >= 5 & score < 6.5)

a{i][3] = "Trung Binh"; else a[i][3] = "Yếu"; order(a, amount);

}

for (int 1 = 0; 1 < amount; i++)

Trang 20

afi][4] =i+ 1; }

static void export(object[] a)

{

Console.WriteLine(" \n");

Console WriteLine("BANG DIEM TOT NGHIEP\n");

Console WriteLine("Cap cho sinh vién {0}, nam sinh {1}.\n", (string)a[0], a[1]);

Console WriteLine("Trong ki thi tot nghiép 2021, sinh viên trén da dat diém trung binh la {0}, và được xép loai {1} Sinh viên có thir hang {2} trong lép.\n", a[2], (string)a[3], a[4]);

Console.WriteLine("Hiệu Trưởng Trường Đại học ABC \n\nKi tén, Dong dau.\n");

Console.Write("Nhap vao số lượng sinh viên: ");

string num = Console.ReadLine(); if (int TryParse(num, out amount) == false)

Trang 21

21

Trang 22

UNG DUNG

Chụp ảnh ứng dụng khi chạy (theo trình tự các bài)

Hiền thị menu :

TRÌNH STNH VIEN : NGUYEN TKT HUYEN TRAM

Novyen CAP BAO HUYE OJ

Ảnh nô phỏng trò chơi Baa - 8ủa Éo Biết thẳng Bủa, Búa thẳng ‘Cm bt Mest Pace st

eat /ứ1+

của đa thức bậc n theo x vào một mảng Nhập giá tr In F(X)=An*K^n + An-1*X^n~1 + `

Nhập các phẩn tử của sa trận Anxn, kiểa t é phải tà ma trận đối Nhập chuỗ: S, chu 1

Liệu của mảng gỗn có ít nhất 5 p VEE tM CM Cec mat eet BẰNG ĐIẾN

Cấp ch TT, é năn sinh Hiệu Trưởng Trưởng Đại học Kí t

DU Fo

„ và được xếp Loại <xếp Loại> Sinh viễn cỏ thử hạng <???> trong 1ớp

Hình 1: Hiển thị màn hình menu

Hiển thị kết quả bài 1, với lựa chọn người dùng là Búa, lựa chọn máy tính là Kéo

KÉO - BÚA BAO Nhập Lựa chọn của bạn:

[1] Héo [2] Búa [3] Bao

Lựa chọn của bạn Là Búa, tựa chọn của máy Là Hẻo Hết quả: Bạn Nhấn [1] để quay tại menu, nhấn phím bất kì để thoát:

Hình 2 - Hiển thị kết quả bài 1

22

Ngày đăng: 12/08/2024, 13:39

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

TÀI LIỆU LIÊN QUAN

w