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

Thông tin cơ bản

Tiêu đề Mô phỏng trò chơi bao búa kéo
Tác giả Nguyễn Thị Huyền Trâm, Nguyễn Cáp Bảo Huyền
Người hướng dẫn TS. Đặng Ngọc Hoàng Thanh
Trường học Đại Học Kinh Tế Tp Hồ Chí Minh (UEH)
Chuyên ngành Cơ sở lập trình
Thể loại Đồ án môn học
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 40
Dung lượng 2,99 MB

Nội dung

Phân Tích Nếu người chơi và máy tính chọn giống nhau thì xuất kết qua "Hoa".. Nếu người chơi ra Kéo thì Thông báo "Người chơi thắng "nếu máy tính ra Bao Ngược lại thông báo người chơi th

Trang 1

BO GIAO DUC VA DAO TAO

DAI HOC KINH TE TP HO CHi MINH (UEH)

TRUONG CONG NGHE VA THIET KE

wl «

ĐỎ ÁN MÔN HỌC

CƠ SỞ LẬP TRÌNH

Sinh Viên NGUYÊN THI HUYEN TRAM

NGUYEN CAP BAO HUYEN Chuyén Nganh :AN TOAN THONG TIN

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

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)

Ví dụ S=”Bong chang chon luot qua ngon che”; s1="ch”; s2="tr”

Kết quả in ra “Bong trang tron luot qua ngon tre”

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

LOI GIAI

BÀI 1

Phân Tích

Nếu người chơi và máy tính chọn giống nhau thì xuất kết qua "Hoa"

Nếu người chơi ra Kéo thì

Thông báo "Người chơi thắng "nếu máy tính ra Bao

Ngược lại thông báo người chơi thua

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

3: Bao

Nếu lựa chọn không hợp lệ thì xuất kết quả “Lựa chọn không hợp lệ Chỉ chấp nhận lựa chọn là

số nguyên từ 1-3 Vụi lòng chọn lạt” Nếu lựa chọn hợp lại thì thực hiện bước tiếp theo

Gọi (ComputerChoice, PlayerChoice) là các cặp số nguyên khả thi Thực thi câu lệnh if:

Nếu ComputerChoice = PlayerChoice thì xuất kết quả Hoà

Xuất kết quả “Người chơi thắng” trong khi có các bộ số sau: (3,1),(1,2) và (2.3)

Ngược lại thì xuất kết quả “Người chơi thua”

Algorithm 1 Thuật toán trỏ chơi kéo búa bao

Require: 1<n<3

Trang 6

if PlayerChoice == ComputerChoice then

Trang 7

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”,

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

Console Write("Nhap vao n: ");

string num = Console.ReadLine();

Trang 9

a) Mlô Tả Thuật Toản

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

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.");

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

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:

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

->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

Trang 13

string num = Console.ReadLine();

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

double[][] matrix = new double[size]|[];

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

matrix[i] = new double[size];

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

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++)

Viết chương trình thay thế xâu 1 thành xâu 2 từ xâu ngẫu nhiên người đùng nhập vào

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

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

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

string output = S Replace(s1, s2);

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

15

Trang 16

Khởi tạo biến amount là số lượng sinh viên người dùng nhập vào (và là số nguyên)

Dùng vòng lặp for với điều kiện dừng i<amount, yêu cầu người dùng nhập thông tin cho sinh viên thứ 1

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

Hàm sắp xếp

Xép hang sinh viên dựa trên điểm trung bình: Vòng lặp for ¡ từ đầu đến cuối mảng, j từ vị trí

kề sau ¡ đến cuối máng Nếu j có điểm tổng kết lớn hơn ¡ thì đổi vị tri cho nhau bằng biến

tam Tra về biến z[7][4] là mảng theo thứ tự đã sắp xếp

Trang 17

loai = "Kha"

else if 5<=score<6.5 then

loai = "Trung binh"

Console Write("Nhap ho tén sinh vién: ");

a[i][j] = Console ReadLineQ);

>_ Thuật toán sắp xếp

17

Trang 18

Console Write("Nhap nam sinh sinh vién: "); input = Console.ReadLine(Q);

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

Trang 19

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

a{i][3] = "Trung Binh";

else a[i][3] = "Yếu";

order(a, amount);

}

static void order(object[][] a, int amount)

t

object[] temp = new object[5];

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

for (int j = amount - 1; j > 1; j )

Trang 20

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

object[][] listsv =new object[amount][];

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

listsv[i] = new object[5];

import(listsv, amount);

exportlist(listsv, amount);

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

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

Trang 23

Hién thi két qua bai 2, voi n=2

Hinh 3 : Hién thi két qua bài 2 Hién thị kết quả bài 3, với đa thức bậc 4 và các hệ số lần lượt là: 4,3,2,1, hệ số tự do là 1 và x = 2

Nhập vào bậc của đa thức

chỉ ch nhận số nguyên dương khác 9 Vui tòng nhập tại

Hiển thị kết quả bài 4, nhập một ma trận m x n = 3

Hình 5 : Hiển thị kết quả bài 4

Hiên thị kết quả bài 5 , với xâu gốc S=“Bong chang chon luot qua ngon che”, xâu cần thay thé S1= “ch”, xâu thay thế =“tr”

23

Trang 24

Nhập vào xá s1: C

Nhập vào xấu con s2

Xâu sau khi được xử tỷ: Bong trang tron 1uot qua ngon tre

Nhấn [1] để quay tại nenu, nhấn phím bất kì để thoát:

Hình 6 : Hiển thị kết quả bai 5

Hiền thị kết quá bài 6 :

Kết quả màn hình hiển thị , nếu nhập số lượng sinh viên dưới 5, cụ thé là 4

Hình 7.1 : Màn hình hiển thị số lượng sinh viên nếu dưới Š

Nhập số lượng 5 sinh viên:

Trang 26

PHU LUC

Ma nguồn toàn bộ chương trình

using System;

using System Text;

using System Threading;

Console WriteLine("KEO - BUA - BAO\n");

int Computer = new Random().Next(1, 3);

string ComputerChoiceName = Computer = | ? "Kéo"

"Bao";

reinputl 1:

Console WriteLine("Nhap lựa chọn của 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.Clear();

Console WriteLine("Lya chon cua ban khong ton tai Chi chap nhận lựa chọn

là số nguyên từ 1-3 Vui long chon lai.");

goto remputl_1;

: Computer == 2 ? "Bua" :

26

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