查看完整版本: C#物件方法類別使用~(作業已好但卡在顯示資料~)
頁: [1]

asdfg0205 發表於 2016-12-14 02:47 PM

C#物件方法類別使用~(作業已好但卡在顯示資料~)

1-48行 是建立了 類別 屬性 還有方法
51行開始後就是主程式了 ;
這題 是要先建立類別 然後要用陣列輸入員工資料
然後 顯示出所有輸入的員工資料
要呼叫方法顯示。
請大大看 62行  我在迴圈裡已經放入呼叫方法 可是 他變成說 你每輸入好員工資料後 他會就顯示
而不是全部輸入完才顯示。
然後我也試了把它放到迴圈外(請看第62行)然後 56行 宣告一個陣列了 Emplyee[] a = new Emplyee;
N=我輸入進去的  (因為要看有幾個員工這樣~)
可是 我把呼叫方法的那個 放到 第62行  他 [] 內是要放甚麼?  我放n進去 是會錯的耶~

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

Josie_2016 發表於 2016-12-14 04:07 PM

Console.Write("請輸入人數:");
int n = int.Parse(Console.ReadLine());
Employee[] emps = new Employee;
for (int i = 0; i < n; i++)
{
                Employee e = new Employee();
                Console.Write("請輸入姓名:");
                e.Ename = Console.ReadLine();
                Console.Write("請輸入薪資:");
                e.Salary = int.Parse(Console.ReadLine());
                emps = e;
            }
foreach (Employee e in emps)
                e.Printdata();...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

跨越青春嶺 發表於 2016-12-14 11:07 PM

本帖最後由 跨越青春嶺 於 2016-12-14 11:10 PM 編輯

這是我的版本,希望你能懂~~~我可是當作業在學習啊,全部的code都打出來了,哈哈{:23:}
using System;

namespace HW_11174231
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            Console.WriteLine("員工人數?");
            var number = int.Parse(Console.ReadLine());
            var employee = new Employee;
            for (int i = 0; i < number; i++)
            {
                Console.WriteLine("請輸入姓名:");
                var name = Console.ReadLine();
                Console.WriteLine("請輸入薪資:");
                var salary = int.Parse(Console.ReadLine());
                employee = new Employee
                {
                    EmployeeName = name,
                    EmployeeSalary = salary
                };
            }
            foreach (var e in employee)
            {
                e.PrintData();
            }
            Console.ReadKey();
        }
    }

    internal class Employee
    {
        private int _salary;

        public string EmployeeName { get; set; }

        public int EmployeeSalary
        {
            get
            {
                return _salary;
            }
            set
            {
                if (value > 40000)
                {
                    value = 40000;
                }
                else if (value < 20000)
                {
                    value = 20000;
                }
                _salary = value;
            }
        }

        public void PrintData()
        {
            Console.WriteLine($"員工:{EmployeeName}   薪水:{EmployeeSalary}");
        }
    }
}

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

tw00167789 發表於 2017-1-27 11:27 PM

62行刪除
64行改成:foreach(Employee emp in a)
{
   emp.Printdata()
}

xoxo1100 發表於 2017-6-5 04:19 PM

n當初在宣告時不是實際的數字(n=1,n=2,n=輸入的數字etc...)

然後陣列[]裡的數字必須給一個實際數字來決定他的容量

<br><br><br><br><br><div></div>
頁: [1]