Tải bản đầy đủ (.pdf) (8 trang)

Hướng dẫn thực hành - Lập trình Windows 1 - Module 4

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (495.23 KB, 8 trang )

Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 30/48
Module 4
Nội dung kiến thức thực hành:
+ Sử dụng mảng và danh sách.

Bài 1:
Mục đích:
Thao tác với mảng một chiều với các giá trị phát sinh ngẫu nhiên
.
Yêu cầu:

Thiết kế giao diện như hình:

Khi nhấn nút “Xuất mảng ngẫu nhiên” thì chương trình xuất ra ô Mảng Gốc gồm 10 phần tử với giá
trị mỗi phần tử phải thuộc [1,100].
Các nút còn lại khi được nhấn sẽ xuất ra ô Kết quả.
Hướng dẫn:
1. Khai báo mảng toàn cục, với kích thước mảng MAX_SIZE là một hằng số:

2. Khởi tạo mảng trong sự kiện Load của form:
Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 31/48

3. Xây dựng các hàm theo yêu cầu:

4. Gọi sử dụng các phương thức tại các button.

Bài 2:
Mục đích:
Làm việc với mảng hai chiều.


Yêu cầu:
Nhập một mảng 2 chiều có N x N phần tử (N<20). Các giá trị được phát sinh ngẫu nhiên trong [-
100,100]. Thiết kế giao diện để xuất các kết quả dưới đây:
Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 32/48
a. Đếm xem trong mảng có bao nhiêu số dương, bao nhiêu số âm, bao nhiêu số 0.
b. Tìm số lớn nhất trong từng dòng của mảng.
Bài 3:
Mục đích:

Thao tác với mảng một chiều với các phần tử do người dùng nhập
.
Yêu cầu:
Làm lại bài số 1, với các phần tử trong mảng được nhập bằng cách sử dụng thêm hộp nhập liệu,
với số phần tử là tuỳ ý (sửa nút Xuất mảng ngẫu nhiên thành nút Nhập mảng).
Hướng dẫn:
+ Thêm vào project một form mới như sau (khi nhấn nút Nhập mảng sẽ hiện ra form này):

+ Thiết lập thuộc tính DialogResult cho nút Đồng ý là OK, cho nút Hủy là Cancel.
+ Viết lệnh cho nút Nhập mảng như sau, giả sử dữ liệu nhập là hợp lệ (chú ý cách chuyển dữ
liệu qua lại giữa các form và cách tách chuỗi):
private void btnNhapMang_Click(object sender, EventArgs e)
{
Form2 f = new Form2();
DialogResult result = f.ShowDialog(this);
if (result == DialogResult.OK) //nhan nut Dong y
{
string chuoi_nhap = f.txtMang.Text;
// T|ch chuỗi dựa v{o dấu ,
string[] sMang = chuoi_nhap.Split(new char[] { ',' });

// Cấp ph|t số phần tử cho mảng
intMyArray = new int[sMang.Length];
// Đưa từng phần tử của sMang v{o array
for (int i = 0; i < sMang.Length; i++)
intMyArray[i] = Convert.ToInt32(sMang[i]);
// Xuất mảng ra label
XuatMang(intMyArray);
}
else if (result == DialogResult.Cancel) // nhan nut Huy
{ }
}
Bài 4:
Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 33/48
Mục đích:

Thao tác với mảng đối tượng bằng cách xây dựng lớp tập hợp
.
Yêu cầu:
Viết chương trình với giao diện sau:


Hướng dẫn:
+ Viết lớp Student và StudentCollection:
public class Student
{
private string id;
private string name;
private string add;
// Constructors …

// Properties …
public override string ToString()
{
return this.id + ";" + name + ";" + add;
}
public override bool Equals(object obj)
{
try
{
return this.id == ((Student)obj).id;
}
catch
{
return false;
Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 34/48
}
}
public override int GetHashCode()
{
return id.GetHashCode();
}
}

using System.Collections;
public class StudentCollection
{
private ArrayList list;
public StudentCollection()
{

list = new ArrayList();
}
/// <summary>
/// Thêm 1 sinh viên vào danh sách
/// </summary>
/// <param name="st"></param>
/// <returns></returns>
public bool Add(Student st)
{
if (!list.Contains(st)) // điều kiện so s|nh trong h{m Equals
{
list.Add(st);
return true;
}
return false;
}
/// <summary>
/// Xo| 1 SV khỏi danh s|ch
/// </summary>
/// <param name="id">mã sinh viên cần xo|</param>
/// <returns></returns>
public bool Remove(string id)
{
foreach(object ob in list)
{
Student std = (Student)ob;
if (std.StudentID.Trim().ToLower() == id.Trim().ToLower())
{
list.Remove(ob);
return true;

}
}
return false;
}
/// <summary>
/// Cập nhật thông tin sinh viên
/// </summary>
Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 35/48
/// <param name="id">mssv</param>
/// <param name="name">họ tên</param>
/// <param name="address">Địa chỉ</param>
/// <returns>true nếu update th{nh công</returns>
public bool Update(String id, string name, string address)
{
foreach (object ob in list)
{
Student std = (Student)ob;
if (std.StudentID.Trim().ToLower() == id.Trim().ToLower())
{
std.StudentName = name;
std.StudentAdd = address;
return true;
}
}
return false;
}
/// <summary>
/// Lấy 1 sinh viên khỏi danh s|ch khi biết vị trí
/// </summary>

/// <param name="position">Vị trí</param>
/// <returns>null nếu không có</returns>
public Student GetItemAt(int index)
{
if (index >= 0 || index < list.Count)
return (Student)list[index];
return null;
}
/// <summary>
/// Lấy sinh viên khi biết mã SV
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public Student GetItem(string id)
{
Student std = null;
foreach (object obj in list)
{
if (((Student)obj).StudentID.Trim().ToLower() ==
id.Trim().ToLower())
{
std = (Student)obj;
break;
}
}
return std;
}
/// <summary>
/// Số phần tử trong danh s|ch
/// </summary>

Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 36/48
public int Count
{
get { return list.Count; }
}
}
+ Viết lớp truy xuất file: DataIO.cs
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.IO;
public class DataIO
{
/// <summary>
/// Serialize 1 đối tượng bất kỳ
/// </summary>
/// <param name="object">đối tượng cần serialize</param>
/// <param name="path">đường dẫn v{ tên file</param>
/// <returns> true nếu th{nh công</returns>
public static bool WriteData(Object object, string path)
{
try
{
FileStream fileStream = new FileStream(path,FileMode.Create);
BinaryFormatter binaryFormatter = new BinaryFormatter();
binaryFormatter.Serialize(fileStream, object);
fileStream.Close();
return true;
}
catch (Exception ex)

{
Console.WriteLine(ex.StackTrace);
return false;
}
}
/// <summary>
/// Deserialize 1 đối tượng từ tập tin
/// </summary>
/// <returns>Object nếu th{nh công còn không thì trả về null
</returns>
public static Object ReadData(string path)
{
Object object = null;
try
{
FileStream fileStream = new FileStream(path, FileMode.Open);
try
{
BinaryFormatter binaryFormatter = new BinaryFormatter();
object = binaryFormatter.Deserialize(fileStream);
fileStream.Close();
}
Hướng dẫn thực hành - Lập trình Windows 1 – Module 4
Trang 37/48
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
fileStream.Close();
}
}

catch (FileNotFoundException ex)
{
Console.WriteLine(ex.StackTrace);
}
return object;
}
}


×