1. Trang chủ
  2. » Giáo án - Bài giảng

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

8 429 1
Tài liệu đã được kiểm tra trùng lặp

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 495,23 KB

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

Nội dung

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

Trang 1

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:

Trang 2

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:

Trang 3

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:

Trang 4

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;

Trang 5

}

}

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>

Trang 6

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

Trang 7

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();

}

Trang 8

catch (Exception ex)

{

Console.WriteLine(ex.StackTrace);

fileStream.Close();

}

}

catch (FileNotFoundException ex)

{

Console.WriteLine(ex.StackTrace);

}

return object;

}

}

Ngày đăng: 13/05/2014, 11:57

TỪ KHÓA LIÊN QUAN