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

Đồ án cơ sở lập trình

24 45 0

Đ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 đề Đồ án môn học cơ sở lập trình
Tác giả Lý Gia Thuận
Người hướng dẫn TS. Đặng Ngọc Hoàng Thành
Trường học Trường Đại Học Kinh Tế TP Hồ Chí Minh (UEH)
Chuyên ngành Cơ sở Lập trình
Thể loại Đồ án
Năm xuất bản 2022
Thành phố TP Hồ Chí Minh
Định dạng
Số trang 24
Dung lượng 380,71 KB

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

Nội dung

Untitled BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH (UEH) TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ  ĐỒ ÁN MÔN HỌC CƠ SỞ LẬP TRÌNH Sinh Viên LÝ GIA THUẬN MSSV 31211026754 Chuyên Ngành CƠ SỞ LẬP TRÌNH[.]

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH (UEH)

TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ

Giảng Viên: TS Đặng Ngọc Hoàng Thành

Tp Hồ Chí Minh, Ngày 27 tháng 10 năm 2022

Trang 2

MC LC

MỤC LỤC 2

ĐỀ BÀI 3

LỜI GIẢI 4

BÀI 1 4

1 Phân Tích 4

2 Thuật Toán 4

BÀI 2 4

1 Phân Tích 4

2 Thuật Toán 4

BÀI 3 4

1 Phân Tích 4

2 Thuật Toán 4

BÀI 4 5

1 Phân Tích 5

2 Thuật Toán 5

BÀI 5 5

1 Phân Tích 5

2 Thuật Toán 5

BÀI 6 5

1 Phân Tích 5

2 Thuật Toán 5

ỨNG DỤNG 6

PHỤ LỤC 7

TÀI LIỆU THAM KHẢO 8

Trang 3

ĐỀ BÀI

Bài 1 Nhập vào 1 số N nguyên dương Cho biết N có phải là bội số của 3 và 5?

Bài 2

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

số thứ tự là 1, 11, 21, v.v., thì n=1, như yêu cầu đầu tiên

Bài 3 Sắp xếp các phần tử trong một mảng gồm n số nguyên theo thứ tự từ nhỏ đến lớn

Bài 4 Nhập các phần tử của một ma trận vuông cấp n, in ra ma trận chuyển vị của nó

Bài 5 Nhập chuỗi chứa đầy đủ họ, tên lót và tên Tách tên ra khỏi họ và tên lót sau đó in lại đầy đủ họ, tên lót và tên trong một khoảng rộng 40 vị trí trong đó họ và tên lót canh trái, tên canh phải

Bài 6 Cho mảng nhiều chiều gồm có các thông tin liên quan đến khách lưu trú ở khách sạn Khách gồm các thông tin: họ tên, số ngày ở, số bữa ăn, tiền ở (1 ngày), tiền ăn (1 bữa), phí phục vụ Phân tích và viết chương trình tính tiền trọ khách sạn In hóa đơn tính tiền lên màn hình có mẫu sau:

***********************************************************************************

Khách sạn Five Stars

Hóa đơn khách sạn

Quí Ông(Bà) : ?????????????????????

Sốngày ở: ??? Sốbữa ăn : ???

Tiền ở: ???????? Tiền ăn : ????????? Phí phục vụ: ???????

Tổng Cộng : ???????????????

Hân hạnh phục vụ quí khách

***********************************************************************************

Trang 4

LỜI GIẢI

BÀI 1

1 Phân Tích

Xác định bài toán;

- Input: Sô nguyên dương N

- Output: Là bội hoặc không là bội của 5 và 3

Bước 2: Nếu N > 0 và N 5 * 3 thì in ra màn hình N là bội chung của 5 và 3⁝

Bước 4: Nếu N > 0 và N ! 5 * 3 thì in ra màn hình N không là bội chung của 5 và 3⁝Bước 3: Nếu N < 0 thì in ra màn hình N phải là số nguyên dương và quay lại Bước 3

Sơ đồ khối:

Trang 5

Mã nguồn:

Console.WriteLine(" > BÀI T P 1: "Ậ );

nguyenduong:

Console.WriteLine("Nh p m t s N đ xác đ nh N có ph i là b i c a 3 và 5: "ậ ộ ố ể ị ả ộ ủ ); int = int.Parse(Console.ReadLine());

Trang 6

Mô tả thuật toán:

Bước 1: Tạo hàm tính Căn Bậc N Math.Pow(A, 1/N): =

Bước 2: Cho N là 3 ( N là số cuối trong số thứ tự )

Bước 3: Cho S =

Bước 4: Tạo vòng lặp for i = n => i >= 1 (i giảm từ n về 1)

Bước 5: Cho S = vào vòng lặp trong Bước 4

- Nếu i=n trả về giá trị =

- Nếu 1<= i < n trả về giá trị = =

- Nếu i=0 trả về giá trị S = 1;

- Nếu i<0 không tồn tại giá trị S

Console.WriteLine(" > BÀI T P 2: "Ậ );

Console.WriteLine("N là s cu i trong s th t c a danh sách l p: N = 3 "ố ố ố ứ ự ủ ớ ); int = 3

Trang 7

- Input: Chuỗi họ tên

- Output: Chuỗi họ và tên lót cách tên 40 khoảng cách

Ý tưởng:

- Đảo ngược chuỗi để xác định độ dài của tên, dấu cách đầu tiên của chuỗi ngược là dấu cách cuốicùng của chuỗi nhập vào

2 Thuật toán

Mô tả thuật toán:

Bước 1: Nhập N là độ dài của mảng A

Bước 2: Khởi tạo ma trận A với độ dài N

Bước 3: Tạo một vòng for với giá trị i = 0 chạy tới độ dài N

Bước 4: Nhập các giá trị phần tử vào bước 3

Bước 5: Tạo một vòng for với giá trị i = 0 chạy tới A.Length – 1 ( lấy các giá trị phần tử từ trị số ban đầu đền trị số áp chót của mảng A )

Bước 6: Tạo một vòng for với giá trị j+1 = 0 chạy tới A.Length trong bước 5 ( lấy các giá trị phần tử từ trị

số thứ i+1 đến trị số của cùng của mảng A )

Bước 7: Nếu giá trị A[i]>A[j] thì thay thế A[i] = A[j]

Bước 8: Tạo một vòng lặp như bước 3 và in ra mảng A[i]

Mã nguồn:

Console.WriteLine(" > BÀI T P 3: "Ậ );

Console.Write("Nh p đ dài c a m ng: "ậ ộ ủ ả );

int = int.Parse(Console.ReadLine());

int[] a = new int[ ];

Trang 9

Ý tưởng:

- Tạo một ma trận mới có cấp và giá trị tương đương với ma trận ban đầu Sau đó hoán đổi các giá trị trong hàng của ma trận mới với giá trị trong cột của ma trận ban đầu và các giá trị trong cột của matrận mới với giá trị trong hàng của ma trận ban đầu

2 Thuật toán

Mô tả thuật toán:

Bước 1: Nhập N là cấp của ma trận A

Bước 2: Khởi tạo ma trận A với cấp N

Bước 3: Tạo một vòng for với giá trị i = 0 chạy tới A.GetLength(0) (Các trị số trong các hàng)

Bước 4: Tạo một vòng lặp for trong bước 3 với giá trị j = 0 chạy tới A.GetLength(1) (Các trị số trong các cột)

Bước 5: Nhập các phần tử vào ma trận A[i,j] trong bước 4

Bước 6: Khởi tạo ma trận B với cấp N tương đương

Bước 7: Tạo hai vòng lặp như bước 3 và 4

Bước 8: Cho các giá trị phần tử trong các hàng của ma trận B bằng với các giá trị phần tử trong cột của

ma trận A và ngược lại : B[i,j] = A[j,i]

Bước 9: Tạo hai vòng lặp như bước 3 và 4 và in ra ma trận A[i,j] ( ma trận ban đầu ) đối chiếu với ma trậnB[i,j] ( ma trận chuyển vị )

Mã nguồn:

Console.WriteLine(" > BÀI T P 4: "Ậ );

Console.WriteLine("Nh p c p c a ma tr n: "ậ ấ ủ ậ );

int = int.Parse(Console.ReadLine());

int[,] A = new int[ , n];

for(int = ; i A GetLength( ); i++ )

{

for(int = ; j A GetLength( ); j++)

{

Console.Write("Nh p A[{0}][{1}] : "ậ , i j);

A i, j] = int.Parse(Console.ReadLine());

}

}

int[,] B = new int[ , n];

for(int = ; i B GetLength( ); i++ )

{

for(int = ; j B GetLength( ); j++)

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Trang 10

{

B i, j] = A j, i];

}

}

Console.WriteLine("Ma tr n ban đ u: "ậ ầ );

for(int = ; i A GetLength( ); i++ )

Console.WriteLine("Ma tr n chuy n v : "ậ ể ị );

for(int = ; i A GetLength( ); i++ )

- Input: Chuỗi họ tên

- Output: Chuỗi họ và tên lót cách tên 40 khoảng cách

Ý tưởng:

- Đảo ngược chuỗi để xác định độ dài của tên, dấu cách đầu tiên của chuỗi ngược là dấu cách cuốicùng của chuỗi nhập vào

2 Thuật toán

Mô tả thuật toán:

Bước 1: Nhập chuỗi họ và tên với biến name

Bước 2: Tạo chuỗi rỗng reverbname

Bước 3: Tạo một vòng lặp for với giá trị i chạy từ name.Length – 1 về 0

Bước 4: In ra chuỗi ngược reverbname += name[i] trong bước 3

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Trang 11

Bước 5: Tạo n là trị số của dấu cách cuối cùng trong chuỗi name (dấu cách phân tên và tên lót) =

name.Length - reverbname.IndexOf(“ “) ( độ dài của chuỗi name trừ cho trị số dấu cách đầu tiên của chuỗi ngược reverbname)

Bước 6: Tạo khoảng trống s = 40 dấu cách

Bước 7: In kết qua là name.Substring(0,n) + s + name.Substring(n) (chuỗi phụ của chuỗi name từ trị số 0 đến n + khoảng trống + chuỗi phụ của chuỗi name chạy từ n đến hết)

Mã nguồn:

Console.WriteLine(" > BÀI T P 5: "Ậ );

Console.WriteLine("Nh p H Và Tên: "ậ ọ );

string namee = Console.ReadLine();

string = new string(' ', khoangtrong);

Console.WriteLine("K t qu là: ế ả \n" + namee.Substring( , ) + s +

- Input: Thông tin khách hàng, ngày ở, tiền ăn, tiền ở

- Output: Tổng tiền của khách hàng

Ý tưởng:

- Tạo hàm 1 chiều để nhập thông tin

- Tạo hàm 2 chiều để in ra số lượng thông tin của khách hàng

2 Mô Tả

Mô tả thuật toán:

Bước 1: Tạo một hàm để nhập thông tin của khách hàng với biến đầu vào là một mảng 1 chiều Object[] TT: NhapTT(Object[] TT)

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Trang 12

- Nhập thông tin (Họ và tên, Số ngày ở, Số bữa ăn, tiền ở, tiền ăn và phí dịch vụ) vào năm phần

- Tạo một vòng lặp for với i=0 => i.Length để lấy thông tin của i của khách hàng được gán vào

mảng 1 chiều chiều TT[] và chạy hàm NhapTT( TT[i] ) để gán các giá trị được nhập từ bước 1 vào mảng hai chiều TT[][]

Bước 4: Tạo một hàm InTTKH() với biến đầu vào là mảng hai chiều Object[][] TT: InTTKH( Object[][]

TT )

- Tạo một vòng lặp for như bước 3 vào chạy hàm InTT( [TT[i] ) để in thông tin từ bước 2

Bước 5: Tạo một hàm tính tổng Total( Object[][] TT )

- Tạo một vòng lặp for với i=0 => i.Length để truy cập vào thông tin khách hàng i được gán vào mảng 1 chiều và tính tổng số tiền dịch vụ với các giá trị ở bước 1 = (int)TT[i][1] * (float)TT[i][3] + (int)TT[i][2] * (float)TT[i][4] + (float)TT[i][5]

Bước 6: Tạo hàm Main():

-Nhập số lượng khách hàng từ màn hình với biến so_luong_khach_hang

- Khởi tạo mảng hai chiều object[][] TT = new object[so_luong_khach_hang][]

-Tạo một vòng lặp for i=0 đến i.Length để khởi tạo 7 đơn vị trong chiều thứ 1 tương đương với

Số lượng thông tin ở Bước 2

- Gọi các hàm NhapTTKH(), Total(), InTTKH()

Mã nguồn:

Console.WriteLine(" > BÀI T P 6"Ậ );

static void NhapTT(object[] tt)

{

Console.Write("Nh p H và tên: "ậ ọ );

tt[ ] = Console.ReadLine();

Console.Write("Nh p ngày : "ậ ở );

tt[ ] = int.Parse(Console.ReadLine());

Console.Write("Nh p s b a ăn: "ậ ố ữ );

tt[ ] = int.Parse(Console.ReadLine());

Console.Write("Nh p ti n (1 ngày)(VND): "ậ ề ở );

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Trang 13

tt[ ] = float.Parse(Console.ReadLine());

Console.Write("Nh p ti n ăn (1 b a)(VND): "ậ ề ữ );

tt[ ] = float.Parse(Console.ReadLine());

Trang 14

}

Console.Write("Nh p s lậ ố ượng khách hàng: ");

int so_luong_kh = int.Parse(Console.ReadLine());

object[][] tt = new object[so_luong_kh][];

for(int = ; i tt.Length; ++)

Trang 15

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Trang 16

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Trang 17

PHỤ LỤC

Console.InputEncoding = System.Text.Encoding.UTF8;

Console.OutputEncoding = System.Text.Encoding.UTF8;

Console.WriteLine(" > BÀI T P 2: "Ậ );

Console.WriteLine("N là s cu i trong s th t c a danh sách l p: N = 3 "ố ố ố ứ ự ủ ớ ); int = 3

Trang 18

Console.WriteLine(" > BÀI T P 3: "Ậ );

Console.Write("Nh p đ dài c a m ng: "ậ ộ ủ ả );

int = int.Parse(Console.ReadLine());

int[] a = new int[ ];

Trang 19

int = int.Parse(Console.ReadLine());

int[,] A = new int[ , n];

for(int = ; i A GetLength( ); i++ )

{

for(int = ; j A GetLength( ); j++)

{

Console.Write("Nh p A[{0}][{1}] : "ậ , i j);

A i, j] = int.Parse(Console.ReadLine());

}

}

int[,] B = new int[ , n];

for(int = ; i B GetLength( ); i++ )

Console.WriteLine("Ma tr n ban đ u: "ậ ầ );

for(int = ; i A GetLength( ); i++ )

Console.WriteLine("Ma tr n chuy n v : "ậ ể ị );

for(int = ; i A GetLength( ); i++ )

Trang 20

// Bai 5

static void Cau5()

{

Console.WriteLine(" > BÀI T P 5: "Ậ );

Console.WriteLine("Nh p H Và Tên: "ậ ọ );

string namee = Console.ReadLine();

string = new string(' ', khoangtrong);

Console.WriteLine("K t qu là: ế ả \n" + namee.Substring( , ) + s +

Console.WriteLine(" > BÀI T P 6"Ậ );

void NhapTT(object[] tt)

{

Console.Write("Nh p H và tên: "ậ ọ );

tt[ ] = Console.ReadLine();

Console.Write("Nh p ngày : "ậ ở );

tt[ ] = int.Parse(Console.ReadLine());

Console.Write("Nh p s b a ăn: "ậ ố ữ );

tt[ ] = int.Parse(Console.ReadLine());

Console.Write("Nh p ti n (1 ngày)(VND): "ậ ề ở );

tt[ ] = float.Parse(Console.ReadLine());

Console.Write("Nh p ti n ăn (1 b a)(VND): "ậ ề ữ );

tt[ ] = float.Parse(Console.ReadLine());

Trang 21

Console.Write("Nh p s lậ ố ượng khách hàng: ");

int so_luong_kh = int.Parse(Console.ReadLine());

object[][] tt = new object[so_luong_kh][];

for(int = ; i tt.Length; ++)

Trang 22

Console.Write("> Vui lòng ch n yêu c u c a b n: "ọ ầầ ủ ạ );

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Trang 23

string baitap = Console.ReadLine();

Trang 24

TÀI LIỆU THAM KHẢO

Downloaded by Free Games Android (vuchinhhp1@gmail.com)

Ngày đăng: 23/02/2023, 21:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w