Bài tập thực hành Lập trình trên môi trường Windows

10 4 0
Bài tập thực hành Lập trình trên môi trường Windows

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

Thông tin tài liệu

Bài tập thực hành Lập trình mơi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM Lab 01: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C# Với ứng dụng CONSOLE A MỤC TIÊU:  Hướng dẫn sinh viên làm quen với ngôn ngữ lập trình C#: qua việc viết ứng dụng Console vs NET 2015/2017/ 2019  Xây dựng lớp, tạo đối tượng, truy xuất phương thức, …  Soạn thảo mã nguồn, biên dịch, debug, thực thi chương trình…  Kế thừa lập trình hướng đối tượng C#  Tìm hiểu sử dụng lambda expression thư viện LINQ NET  Khuyến khích sinh viên sử dụng chuẩn viết code C# ( C# Coding Convetion)  Ngôn ngữ C# - Cấu trúc chương trình C#: Namespace, class ( thuộc tính, phương thức), Comment - Kiểu liệu: bool, decimal, double, float, int, string, DateTime bool?, decimal?, double?, float?, int?, long?, DateTime? Nullable, Nullable, Nullable, Nullable, Nullable… object, var, dynamic - Chuyển đổi kiểu liệu: Ép kiểu (int), as, Parse, Convert - Vòng lặp: for, foreach, while,  while Lệnh điều khiển break, continue, return - Tính đóng gói: sử dụng Access Specifier: private, protected, internal, protected internal, public  - Tính kế thừa: để tái sử dụng code giúp thời gian thực thi nhanh class : - Coding Convention C#: Đưa quy ước coding với ngơn ngữ lập trình C#, với quy tắc giúp tiết kiệm thời gian q trình phát triển bảo trì phần mềm Ví dụ: Đặt tên class dùng danh từ, phương thức dùng động từ … Tên biến, tên phương thức thể ý nghĩa Nên comment đoạn code khó hiểu có chức đặc biệt - Một số phương thức thư viện Console Console.Write(); Console.WriteLine(); // Sử dụng lệnh in hình có xuống dịng Console.Read(); //đọc ký tự trả số nguyên mã ASCII ký tự Console.ReadLine(); / / Đọc liệu chuỗi từ bàn phím gặp ký tự xuống dịng Console.ReadKey(); // Dừng hình để xem kết Trang Bài tập thực hành Lập trình môi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM B BÀI TẬP Bài tập 1A: Tạo lớp Student có liệu phương thức sau - Mã số sinh viên - Họ Tên sinh viên - Điểm trung bình học tập - Khoa + Tạo Property cho thành viên + Tạo constructor khơng có tham số, có tham số Viết chương trình hàm Main () cho phép người dùng nhập vào số N tổng số sinh viên, sau tạo đối tượng sinh viên đưa vào mảng Student theo thơng tin user nhập vào (dùng vịng lặp for) Cuối xuất danh sách chi tiết thông tin sinh viên Yêu cầu:  Sinh viên xây dựng chương trình theo nội dung mơ tả bên  Compile & Build chương trình  Run chương trình hai chế độ debug không debug  Chạy bước chương trình chế độ debug: dùng breakpoint chạy dòng lệnh Kiểm tra giá trị biến chương trình cửa sổ Watch Hướng dẫn: Bước 1: Tạo project VS 2015 - Mở Visual Studio 2015, chọn New Project, Chọn ngôn ngữ Visual C#, Loại project Console Application - Đặt tên project Lab01 lưu Trang Bài tập thực hành Lập trình mơi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM Hình 1: Tạo project console c# VS NET 2015 - Click OK để đồng ý tạo project, kết ứng dụng console sau: Hình 2: Màn hình làm việc Project - Lưu lại dự Án File/Save All Bước 2: Viết yêu cầu tạo class Student, Khai báo thuộc tính, phương thức, SV tự làm hoàn chỉnh theo yêu cầu tập class Student { //1 Tao thuoc tinh private string studentID; //mã số sinh viên Trang Bài tập thực hành Lập trình mơi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM private string fullName; // họ tên sinh viên private float averageScore; //điểm trung bình private string faculty; //khoa //2 Tao cac Property public string StudentID { get { return studentID; } set { studentID = value; } } // Tao constructor không tham số public Student() { } // Tao constuctor có tham số public Student(string id, string name, float score, string faculty) { studentID = id; //… } } Bước 3: Viết code hàm Main() phép người dùng nhập vào tổng số sinh viên static void Main(string[] args) { //Nhap tong so sinh vien, Convert kiểu liệu sang biến N kiểu int Console.Write("Nhap tong so sinh vien N ="); int N = Convert.ToInt32(Console.ReadLine()); Student[] arrStudents = new Student[N]; Console.WriteLine("\n ====NHAP DS SINH VIEN===="); for (int i = 0; i < N; i++) //Lap n lan nhap thong tin sv { arrStudents[i] = new Student(); Console.Write("Nhap MaSV {0}:", i + 1); arrStudents[i].StudentID = Console.ReadLine(); //SV lam tuong tu cho cac thong tin can nhap } Console.WriteLine("\n ====XUAT DS SINH VIEN===="); foreach (Student sv in arrStudents) { Console.WriteLine("MSSV:{0}", sv.StudentID); } //De dung man hinh cho dễ kiểm tra kq Console.ReadKey(); } Bước 4: Biên dịch chạy chương trình  Để biên dịch chương trình chọn menu Build, chọn Build Solution (hoặc dùng phím tắt Trang Bài tập thực hành Lập trình mơi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM F6 click phải vào Solution Explorer chọn Build) VS.NET thông báo biên dịch thành cơng hay gặp lỗi cú pháp Hình 4: VS thơng báo tổng số lỗi, số dịng bị lỗi viết code  Để chạy chương trình click vào biểu tượng Start VS (hoặc chọn Debug / Debug Without Debugging dùng Ctrl +F5) Hình 5: Kết hình console chương trình thực  Để bebug chương trình sử dụng F5(hoặc vào Debug / Start Debugging) kết hợp với việc đặt breakpoint - Tạo breakpoint cách đơn giản click chuột vào đầu dịng code (như hình) Để huỷ breakpoint, cần click chuột vào breakpoint lần Ngồi bạn tạo/huỷ breakpoint phím F9 Trang Bài tập thực hành Lập trình mơi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM Hình 6: Đặt breakpoint hỗ trợ trình Debug - Nhấn F5 để bắt đầu Debug, Tại vị trí BreakPoint chương trình dừng lại Muốn kiểm tra thay đổi giá trị biến - Sử dụng Step Over / Step Into / Step Out trình Debug chương trình Trang Bài tập thực hành Lập trình mơi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM Step Over (F10): Chạy step by step, lướt qua hàm (chỉ nhận giá trị return hàm) Step Into (F11): Chạy step by step, vào nội dung hàm Step Out (continue): “Nhảy” đến breakpoint Nếu khơng cịn breakpoint kết thúc debug Ngồi cịn có chức chạy lướt qua hàm Bài tập 1B:  Không viết lệnh nhập xuất danh sách sinh viên trực tiếp hàm Main() mà viết hai phương thức nhập xuất thông tin sinh viên lớp Student  Sử dụng collection List để chứa danh sách sinh viên thay cho mảng sinh viên tập Chạy lại chương trình theo yêu cầu //Bước 1: Ở lớp Student thêm phương thức Input Show public void Input() { Console.Write("Nhập MSSV:"); StudentID = Console.ReadLine(); Console.Write("Nhập Điểm:"); AverageScore = float.Parse(Console.ReadLine()); //ép sang kiểu float // Lam tuong tu cho cac thuoc tinh khac } public void Show() { Console.WriteLine("MSSV:{0} Họ Tên:{1} Khoa:{2} ĐiêmTB:{3}", this.StudentID, this.fullName, this.Faculty, this.AverageScore); } //Bước 2: Sửa lại Hàm Main, xóa mảng arrStudents sử dụng list List listStudent = new List(); Console.WriteLine("\n ====NHAP DS SINH VIEN===="); for (int i = 0; i < N; i++) //Lap n lan nhap thong tin sv { Student temp = new Student(); temp.Input(); listStudent.Add(temp); //đưa đối tượng temp vào List } Console.WriteLine("\n ====XUAT DS SINH VIEN===="); foreach (Student sv in listStudent) { sv.Show(); }  Viết tiếp chương trình thực số yêu cầu sau (Khuyến khích sinh viên viết hàm cho dễ quản lý, phần chung nên gom vào hàm) - Xuất thông tin SV thuộc khoa “CNTT” (nếu có) - Xuất danh sách sinh viên theo thứ tự có điểm trung bình tăng dần - Xuất danh sách Sinh viên có điểm trung bình cao thuộc khoa “CNTT” có Trang Bài tập thực hành Lập trình mơi trường Windows Khoa CNTT- Trường ĐH CN TP.HCM Hướng Dẫn Sử dụng Lambda expression thư viện LINQ - Cú pháp câu dạng truy vấn hỗ trợ vài từ khóa đơn giản (Where, OrderBy, GroupBy, Max, Min, Sum, Average, Count…) - Ví dụ //Lấy DS Sinh Viên thuộc khoa CNTT List listSVKhoaCNTT = listStudent.Where(p => p.Faculty == "CNTT").ToList(); //Lấy điểm TB cao list listStudent float maxScore = listStudent.Max(p => p.AverageScore); //Sắp xếp DS Sinh Viên có điểm trung bình tăng dần List listSortStudent = listStudent.OrderBy(p => p.AverageScore).ToList(); //Lấy Sinh Viên có mã số "CNTT020120" Student find1 = listStudent.FirstOrDefault(p => p.StudentID == "CNTT020120"); Student find2 = listStudent.First(p => p.StudentID == "CNTT020120"); //Đếm tổng số lượng sinh viên có điểm = thuộc khoa CNTT int totalStudent = listStudent.Where(p => p.AverageScore < && p.Faculty == "CNTT").Count(); Hướng dẫn:- Để dễ dàng quản lý code sinh viên nên gom hàm ( hàm nhập trả List sinh viên, Hàm xuất với tham số truyền vào List) Trang Bài tập thực hành Lập trình mơi trường Windows - Khoa CNTT- Trường ĐH CN TP.HCM Để giúp kiểm tra nhanh đa dạng nhiều liệu ( không thời gian nhập từ bàn phím) sinh viên nên tạo hàm trả List danh sách sinh viên - Lúc hàm main() dễ dàng điều chỉnh gọi hàm nhập thực số yêu cầu truy xuất Bài tập 2: Tạo thêm project solution Lab01 có tên “Lab01-02”  Viết lại chương trình từ tập theo cách tạo thêm lớp Person làm lớp sở cho lớp Student Chọn Mã số, Họ tên làm field để đưa lên lớp Person  Thêm thông tin lớp giảng viên Teacher kế thừa từ lớp Person Mỗi giảng viên có Mã số, Họ Tên Địa  Ở hàm Main() cho phép nhập vào tổng số N đối tượng đưa vào List danh sách Person, lần nhập liệu user có quyền chọn nhập thông tin cho Student Teacher Xuất danh sách thông tin vừa nhập liệu  Thực số yêu cầu sau List danh sách nhập liệu 2.1 Tìm kiếm danh sách Sinh Viên có điểm trung bình cao thuộc khoa “CNTT” 2.2 Xuất danh sách tất sinh viên có điểm trung bình (p is Student) && (p as Student).Faculty == "CNTT").ToList(); //b2: lây điêm cao list tìmm kiếm var maxScore = listTempStudent.Max(p => (p as Student).AverageScore); //b3: lấy danh sách sinh viên var ListMaxStudent = listTempStudent.Where(p => (p as Student).AverageScore == maxScore); Bài tập 3: Thêm project solution Lab01 có tên “Lab01-03” Cơng ty địa ốc D cần xây dựng chương trình quản lý thông tin khu đất công ty cung ứng với thông tin cần quản lý - Khu Đất: Địa Điểm, Giá Bán (Đơn vị tính: VND) Diện Tích (m2) Thực yêu cầu sau:  Xây dựng lớp với chức thừa kế  Nhập xuất danh sách Khu Đất công ty  Xuất danh sách thông tin khu đất có diện tích xếp tăng dần  Xuất danh sách khu đất có giá bán < tỷ diện tích >= 60m2 (nếu có)  Tính đơn giá trung bình 1m2 tất khu đất có diện tích lớn 1000m2 (nếu có) Bài tập 4: Cơng ty địa ốc D muốn mở rộng kinh doanh thêm thị trường Nhà phố Chung Cư Với tất thông tin cần quản lý sau: - Khu Đất: Địa Điểm, Giá Bán (Đơn vị tính: VND) Diện Tích (m2) - Nhà Phố: Địa Điểm, Giá Bán (Đơn vị tính: VND), Diện tích (m2), Năm Xây dựng, Số tầng - Chung Cư: Địa Điểm, Giá Bán (Đơn Vị Tính: VND), Diện Tích (m2), Tầng Thực yêu cầu sau:  Xây dựng lớp với chức thừa kế  Nhập xuất danh sách thông tin (Khu đất, Nhà phố, Chung Cư) cần quản lý  Xuất tổng giá bán cho loại (Khu đất, Nhà phố, Chung Cư) công ty D  Xuất danh sách khu đất có diện tích > 100m2 nhà phố mà có diện tích >60m2 năm xây dựng >= 2019 (nếu có)  Nhập vào thơng tin cần tìm kiếm (địa điểm, giá, diện tích) Xuất thơng tin danh sách tất nhà phố chung cư phù hợp yêu cầu.( có địa điểm chứa chuỗi tìm kiếm khơng phân biệt hoa thường, có giá = diện tích cần tìm kiếm) Hết Lab 01 Trang 10 ... 0; i < N; i++) / /Lap n lan nhap thong tin sv { arrStudents[i] = new Student(); Console.Write("Nhap MaSV {0}:", i + 1); arrStudents[i].StudentID = Console.ReadLine(); //SV lam tuong tu cho cac... dàng điều chỉnh gọi hàm nhập thực số yêu cầu truy xuất Bài tập 2: Tạo thêm project solution Lab01 có tên ? ?Lab01- 02”  Viết lại chương trình từ tập theo cách tạo thêm lớp Person làm lớp sở cho lớp... listTempStudent.Where(p => (p as Student).AverageScore == maxScore); Bài tập 3: Thêm project solution Lab01 có tên ? ?Lab01- 03” Cơng ty địa ốc D cần xây dựng chương trình quản lý thơng tin khu đất công ty cung

Ngày đăng: 12/12/2022, 14:01

Tài liệu cùng người dùng

Tài liệu liên quan