Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Thiết kế lớp mảng trong C#

  1. #1
    Ngày gia nhập
    12 2010
    Bài viết
    32

    Angry Thiết kế lớp mảng trong C#

    Mình vừa học bài Lớp trong C#...có bài tập thiết kế lớp mảng trong C#
    Mình chưa hiểu về đề bài này ... Mong các bạn giúp đỡ ... Cám ơn rất nhiều

  2. #2
    Ngày gia nhập
    07 2010
    Bài viết
    99

    bạn nêu rõ chức năng cần có của lớp này dc ko ? mình sẽ giúp

  3. #3
    Ngày gia nhập
    12 2010
    Bài viết
    32

    @ nhquynam: Đây là toàn bộ đề bài ...
    a) Thiết kế lớp số nguyên
    b) Thiết kế lớp mảng
    Viết bằng C#
    Mình không hiểu ý của đề bài ..bạn giúp mình với ....

  4. #4
    Ngày gia nhập
    11 2008
    Bài viết
    207

    Trích dẫn Nguyên bản được gửi bởi pnst_1811 Xem bài viết
    @ nhquynam: Đây là toàn bộ đề bài ...
    a) Thiết kế lớp số nguyên
    b) Thiết kế lớp mảng
    Viết bằng C#
    Mình không hiểu ý của đề bài ..bạn giúp mình với ....
    giải câu a nhé;
    phân tích đề bài:
    một đối tượng số nguyên sẽ có cái ruột là :
    1. giá trị của nó (field - thuộc tính)
    2. các hành vi (method - phương thức)
      1. cọng với 1 số nguyên khác và trả về 1 số nguyên.
      2. trừ cho 1 số nguyên khác và trả về 1 số nguyên.
      3. nhân với 1 số nguyên khác và trả về 1 số nguyên.
      4. chia lấy dư với 1 số nguyên khác và trả về 1 số nguyên.
      5. chia lấy thương với 1 số nguyên khác và trả về 1 số nguyên.

    Visual C# Code:
    1. using System;
    2.  
    3. public class SoNguyen {
    4.     //thuộc tính
    5.     private int giaTri;
    6.  
    7.     //getter, setter
    8.     public int getGiaTri() {
    9.         return giaTri;
    10.     }
    11.     public void setGiaTri(int gt) {
    12.         this.giaTri = gt;
    13.     }
    14.  
    15.     //hàm khởi tạo
    16.     //hàm tạo rỗng
    17.     public SoNguyen() { }
    18.     //hàm tạo có tham số
    19.     public SoNguyen(SoNguyen sn) {
    20.         this.setGiaTri(sn.getGiaTri());
    21.     }
    22.     //các hàm tạo khác nếu thích
    23.     //...
    24.  
    25.     //các phương thức
    26.    
    27.     //một đối tượng số nguyên thì có các hành vi:
    28.     //ở đây mình không viết cái ruột của phương thức nhé!
    29.  
    30.     //cọng với 1 số nguyên khác và trả về 1 số nguyên.
    31.     public SoNguyen cong(SoNguyen sn) {
    32.         int i = this.getGiaTri();
    33.         SoNguyen soMoi = new SoNguyen();
    34.         soMoi.setGiaTri(i + sn.getGiaTri());
    35.         return soMoi;
    36.        
    37.     }
    38.     //trừ cho 1 số nguyên khác và trả về 1 số nguyên.
    39.     public SoNguyen tru(SoNguyen sn) {
    40.         return null;
    41.     }
    42.     //nhân với 1 số nguyên khác và trả về 1 số nguyên.
    43.     public SoNguyen nhan(SoNguyen sn) {
    44.         return null;
    45.     }
    46.     //chia lấy dư với 1 số nguyên khác và trả về 1 số nguyên.
    47.     public SoNguyen chiaLayDu(SoNguyen sn) {
    48.         return null;
    49.     }
    50.     //chia lấy thương với 1 số nguyên khác và trả về 1 số nguyên.
    51.     public SoNguyen chiaLayDu(SoNguyen sn) {
    52.         return null;
    53.     }
    54. }

    tương tự, một đối tưởng kiểu mảng sẽ có giá trị là
    ....................
    và các hành vi là
    .....................

    p/s:
    bài tập này phải ra bằng C++ hoặc Java thì có chút ý nghĩa, trong C#, Microsoft nó bỏ luôn cái gọi là "kiểu dữ liệu nguyên thủy" rồi còn đâu.
    int trong C# (.NET) bản thân nó đã là một đối tượng rồi.

  5. #5
    Ngày gia nhập
    12 2010
    Bài viết
    32

    uh minh cam on ban nhiu nha...

  6. #6
    Ngày gia nhập
    01 2008
    Bài viết
    140

    Mặc định Thiết kế lớp mảng trong C#

    bài tập này phải ra bằng C++ hoặc Java thì có chút ý nghĩa, trong C#, Microsoft nó bỏ luôn cái gọi là "kiểu dữ liệu nguyên thủy" rồi còn đâu.
    int trong C# (.NET) bản thân nó đã là một đối tượng rồi.
    bậy quá Long ơi. int trong C# ai bảo nó là kiểu đối tượng
    "
    "_____
    _____<//v
    _____,>\_
    ___giã từ .NET

  7. #7
    Ngày gia nhập
    11 2008
    Bài viết
    207

    Trích dẫn Nguyên bản được gửi bởi tdtanvn Xem bài viết
    bậy quá Long ơi. int trong C# ai bảo nó là kiểu đối tượng
    cái này nên mới phán như vậy, để lát check lại xem.

  8. #8
    Ngày gia nhập
    07 2010
    Bài viết
    99

    đây là cài đặt cho lớp Mảng. các bạn cho ý kiến nha.

    Visual C# Code:
    1. class Mang
    2. {
    3.     const int MAX_LENGTH = 1000;    //số phần tử tối đa mặc định của mảng
    4.     int[] arr;                      //mảng chứa các phần tử
    5.     int MaxLength;                  //sồ phần tử tối đa của mảng
    6.     int n;                          //số phần tử lưu trữ thật sự
    7.  
    8.     #region Constructor
    9.     public Mang()
    10.     {
    11.         MaxLength = MAX_LENGTH;
    12.         arr = new int[MaxLength];
    13.         n = 0;
    14.     }
    15.     //truyền vào số phần tử của mảng
    16.     public Mang(int MaxLength)
    17.     {
    18.         this.MaxLength = MaxLength;
    19.         arr = new int[MaxLength];
    20.         n = 0;
    21.     }
    22.     #endregion
    23.  
    24.     #region Properties + Indexers
    25.     //Số phần tử
    26.     public int Length
    27.     {
    28.         get { return n; }
    29.     }
    30.     //Indexer
    31.     public int this[int Index]
    32.     {
    33.         get
    34.         {
    35.             //kiểm tra index có vượt quá giới hạn không ?
    36.             if (Index >= 0 && Index < n)
    37.                 return arr[Index];
    38.             else
    39.                 throw new Exception("Index không hợp lệ");
    40.         }
    41.         set
    42.         {
    43.             if (Index >= 0 && Index < arr.Length)
    44.                 arr[Index] = value;
    45.             else
    46.                 throw new Exception("Index không hợp lệ");
    47.         }
    48.     }
    49.     #endregion
    50.  
    51.     #region Methods
    52.     //Thêm phần tử vào cuối mảng
    53.     public void Insert(int Value)
    54.     {
    55.         if (n == MaxLength) throw new Exception("Mảng đã đầy");
    56.         else arr[n++] = Value;
    57.     }
    58.     //Thêm phần tử tại vị trí k
    59.     public void Insert(int Value, int k)
    60.     {
    61.         if (n == MaxLength) throw new Exception("Mảng đã đầy");
    62.         if (k < 0 || k >= n)
    63.             throw new Exception("Index không hợp lệ");
    64.         else
    65.         {
    66.             //dời các phần tử từ k+1 về sau
    67.             for (int i = n; i > k; i--)
    68.                 arr[i] = arr[i - 1];
    69.             //chèn Value vào vị trí trống
    70.             arr[k] = Value;
    71.             n++;
    72.         }
    73.     }
    74.     //Xóa phần tử tại vị trí k
    75.     public void Delete(int k)
    76.     {
    77.         if (k < 0 || k >= n)
    78.             throw new Exception("Index không hợp lệ");
    79.         else
    80.         {
    81.             for (int i = k; i < n - 1; i++)
    82.                 arr[i] = arr[i + 1];
    83.             n--;
    84.         }
    85.     }
    86.     //Tìm kiếm
    87.     public bool Find(int Value, int StartPosition = 0)
    88.     {
    89.         for (int i = StartPosition; i < n; i++)
    90.             if (arr[i] == Value) return true;
    91.         return false;
    92.     }
    93.     //Sắp xếp (thuật toán Interchange sort)
    94.     public void Sort(bool Ascending = true)
    95.     {
    96.         for (int i = 0; i < n - 1; i++)
    97.             for (int j = i + 1; j < n; j++)
    98.                 if ((arr[i] > arr[j]) == Ascending)
    99.                 {
    100.                     int temp = arr[i];
    101.                     arr[i] = arr[j];
    102.                     arr[j] = temp;
    103.                 }
    104.     }
    105.     //In mảng thành chuỗi
    106.     public override string ToString()
    107.     {
    108.         StringBuilder sb = new StringBuilder();
    109.         for (int i = 0; i < n; i++)
    110.             sb.AppendFormat("{0} ", arr[i]);
    111.         return sb.ToString();
    112.     }
    113.     #endregion
    114. }
    Never try, never know

  9. #9
    Ngày gia nhập
    11 2008
    Bài viết
    207

    Trích dẫn Nguyên bản được gửi bởi longtth Xem bài viết
    cái này nên mới phán như vậy, để lát check lại xem.
    lạ nhỉ? đúng là int hay Int32 đều
    Cannot convert null to 'int' because it is a non-nullable value type
    vậy nếu cần dùng 1 đối tượng kiểu số nguyên trong .NET thì phải tự định nghĩa lại hả Tấn?
    Trích dẫn Nguyên bản được gửi bởi nhquynam Xem bài viết
    đây là cài đặt cho lớp Mảng. các bạn cho ý kiến nha.

    Visual C# Code:
    1. class Mang
    2. {
    3.     const int MAX_LENGTH = 1000;    //số phần tử tối đa mặc định của mảng
    4.     int[] arr;                      //mảng chứa các phần tử
    5.     int MaxLength;                  //sồ phần tử tối đa của mảng
    6.     int n;                          //số phần tử lưu trữ thật sự
    7.  
    8.     #region Constructor
    9.     public Mang()
    10.     {
    11.         MaxLength = MAX_LENGTH;
    12.         arr = new int[MaxLength];
    13.         n = 0;
    14.     }
    15.     //truyền vào số phần tử của mảng
    16.     public Mang(int MaxLength)
    17.     {
    18.         this.MaxLength = MaxLength;
    19.         arr = new int[MaxLength];
    20.         n = 0;
    21.     }
    22.     #endregion
    23.  
    24.     #region Properties + Indexers
    25.     //Số phần tử
    26.     public int Length
    27.     {
    28.         get { return n; }
    29.     }
    30.     //Indexer
    31.     public int this[int Index]
    32.     {
    33.         get
    34.         {
    35.             //kiểm tra index có vượt quá giới hạn không ?
    36.             if (Index >= 0 && Index < n)
    37.                 return arr[Index];
    38.             else
    39.                 throw new Exception("Index không hợp lệ");
    40.         }
    41.         set
    42.         {
    43.             if (Index >= 0 && Index < arr.Length)
    44.                 arr[Index] = value;
    45.             else
    46.                 throw new Exception("Index không hợp lệ");
    47.         }
    48.     }
    49.     #endregion
    50.  
    51.     #region Methods
    52.     //Thêm phần tử vào cuối mảng
    53.     public void Insert(int Value)
    54.     {
    55.         if (n == MaxLength) throw new Exception("Mảng đã đầy");
    56.         else arr[n++] = Value;
    57.     }
    58.     //Thêm phần tử tại vị trí k
    59.     public void Insert(int Value, int k)
    60.     {
    61.         if (n == MaxLength) throw new Exception("Mảng đã đầy");
    62.         if (k < 0 || k >= n)
    63.             throw new Exception("Index không hợp lệ");
    64.         else
    65.         {
    66.             //dời các phần tử từ k+1 về sau
    67.             for (int i = n; i > k; i--)
    68.                 arr[i] = arr[i - 1];
    69.             //chèn Value vào vị trí trống
    70.             arr[k] = Value;
    71.             n++;
    72.         }
    73.     }
    74.     //Xóa phần tử tại vị trí k
    75.     public void Delete(int k)
    76.     {
    77.         if (k < 0 || k >= n)
    78.             throw new Exception("Index không hợp lệ");
    79.         else
    80.         {
    81.             for (int i = k; i < n - 1; i++)
    82.                 arr[i] = arr[i + 1];
    83.             n--;
    84.         }
    85.     }
    86.     //Tìm kiếm
    87.     public bool Find(int Value, int StartPosition = 0)
    88.     {
    89.         for (int i = StartPosition; i < n; i++)
    90.             if (arr[i] == Value) return true;
    91.         return false;
    92.     }
    93.     //Sắp xếp (thuật toán Interchange sort)
    94.     public void Sort(bool Ascending = true)
    95.     {
    96.         for (int i = 0; i < n - 1; i++)
    97.             for (int j = i + 1; j < n; j++)
    98.                 if ((arr[i] > arr[j]) == Ascending)
    99.                 {
    100.                     int temp = arr[i];
    101.                     arr[i] = arr[j];
    102.                     arr[j] = temp;
    103.                 }
    104.     }
    105.     //In mảng thành chuỗi
    106.     public override string ToString()
    107.     {
    108.         StringBuilder sb = new StringBuilder();
    109.         for (int i = 0; i < n; i++)
    110.             sb.AppendFormat("{0} ", arr[i]);
    111.         return sb.ToString();
    112.     }
    113.     #endregion
    114. }
    ý kiến nè:
    1. không nên code giùm người khác, debug giùm sẽ giúp cả 2 cùng tiến bộ, code giùm sẽ khiến 1 trong 2 bên ỷ lại.
    2. có MAX_LENGTH rồi còn khai báo int MaxLength làm gì? về convention, field thì không nên dùng cú pháp Pascal, dùng mix đi ( int maxLength thay vì int MaxLength)
    3. người hỏi câu này không phải pro (pro đã không hỏi câu này), không nên đưa indexer vào đây, người ta sợ chạy mất dép bây giờ

  10. #10
    Ngày gia nhập
    01 2008
    Bài viết
    140

    Cannot convert null to 'int' because it is a non-nullable value type
    ->không biết mi làm gì nữa

    vậy nếu cần dùng 1 đối tượng kiểu số nguyên trong .NET thì phải tự định nghĩa lại hả?
    ->có thể dùng int a=new int (); mà. mi đọc khái niệm boxing và unboxing nó giải thích cái đó
    "
    "_____
    _____<//v
    _____,>\_
    ___giã từ .NET

Các đề tài tương tự

  1. Thiết kế kiến trúc, thiết kế biệt thự, thiết kế nhà dân, thiết kế nội thất, showroom, triển lãm
    Gửi bởi hoangthanh1981hn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 7
    Bài viết cuối: 16-04-2013, 10:29 AM
  2. Tư vấn thiết kế nội thất, sắc lá mùa thu trong thiết kế phòng khách
    Gửi bởi tomitoan22jambon trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 24-09-2012, 10:29 AM
  3. www.elegantvn.com - thiết kế website, thiết kế tờ rơi, thiết kế brochure v..v.
    Gửi bởi elegantvn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-07-2012, 11:32 PM
  4. Phân tích thiết kế phần mềm trong phân tích thiết kế hệ thống?
    Gửi bởi thegioiphang2 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 27-05-2012, 06:13 PM
  5. Thiết kế website , seo top, thiết kế web giá rẻ , thiết kế web đẹp !
    Gửi bởi depzai trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 19-10-2011, 08:34 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn