کمک برای تکمیل یک برنامه در c# - استراکت تابع استراکچر کلی

draria

Member
کمک برای تکمیل یک برنامه در c#

4-ساختمانی به نام human بنویسید که
الف : متغیرهای income , married , age , name را به ترتیب برای نگهداری نام ، سن ، وضعیت تاهل و در آمد تعریف کنید توجه داشته باشید که کلیه فیلدها به جز income از نوع عمومی public باشند .
ب ) دو تابع به نام initializer بنویسید که وظیفه آنها مقدار دهی متغیرها و تفاوت آنها در پارامترهای ورودی آنهاست به طوری که در اولی تابع هیچ متغیر ورودی نداشته و در ضمن Void بوده و کلیه متغیرها را با مقداری که از کاربر در ورودی دریافت می کند مقدار دهی می کند . تابع دوم چهار ورودی داشته و Void بوده و مقادیر متغیرها را توسط پارامترهای وروردی تعیین می کند
ج) یک تابع به نام print نوشته که در آن مقادیر متغیرها را چاپ می کند .

5-یک تابع Main تعریف کرده و در آن سه متغیر به نام های دلخواه از نوع Human تعریف کرده و برای اولی با استفاده از initializer و ارسال مقادیر دلخواه مقدار دهی اولیه انجام دهد و برای دومی با استفاده از تابع initializer مقادیر را از کاربر در ورودی بخواهد . در حالیکه فیلدهای متغیر سوم را در همان تابع Main مقدار دهی کرده و در نهایت مقادیر را با استفاده از تابع print نمایش دهد .

من این برنامه رو در سطح ناقص نوشتم ممنون اگر همین رو در همین سبک و به طور ساده تکمیل کنید . یه چند تا error میگیره که اصلا نیم تونم برطرف کنم

قسمت اول کلاس

کد:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication14
{
    class Class1
    {
        struct human
        {
            public int age;
            public string name;
            public string married;
            private int income;
            public void initializer;
        

                        System.Console.WriteLine("insert:+ name");
            name=System.Console.ReadLine():
                        System.Console.WriteLine("insert married");
            married=System.Console.ReadLine():
                        System.Console.WriteLine("insert age");
            age=System.Convert.Toint32(Console.ReadLine());
        }
        public void initializer(int a, string b ; string c , int d)
        age=a;
            name=b;
        married=c;
        income=d;
    }
    public void print ()
{
system.console.WriteLine(name);
system.console.WriteLine(age);
system.console.WriteLine(married);
system.console.WriteLine(income);
}
}


    }
}
}

}


قسمت دوم تابع Main
کد:
[LEFT]using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication14
{
    class Program
    {
        static void Main(string[] args)
        {
            human m1 = new human();
            human m2 = new human();
            human m3 = new human();
            human m4 = new human();
            m1.initializer(20, "ali" , "mojarad" , 100;
            m2.initializer ();
            m3.name="farzad";
            m3.age=30;
            m1.print();
            m2.print();
            m3.print();
        }
    }
}


    

}
[/LEFT]
 

the_king

مدیرکل انجمن
کدتون رو ویرایش و تکمیل کردم :

نوع متغیر married رو از string به bool تغییر دادم (true یعنی متاهل و false یعنی مجرد)
برای دریافت مقادیر true رشته هایی مانند yes، YES و y قابل قبول می باشند.
برای دریافت مقادیر false رشته هایی مانند no، NO و n قابل قبول می باشند.

زمانی که قرار باشد از ساختمان struct استفاده کنید، نیازی به تعریف class نیست.

تعریف ساختمان m4 را هم حذف کردم.

کد:
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication14
{
    struct human
    {
        public string name;
        public int age;
        public bool married;
        private int income;

        public void initializer()
        {
            Console.WriteLine("Please enter name : ");
            name = Console.ReadLine();
            Console.WriteLine("Please enter age : ");
            age = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Please enter married (yes/no) : ");
            married = (Console.ReadLine().ToLower()[0]=='y');
            Console.WriteLine("Please enter income : ");
            income = Convert.ToInt32(Console.ReadLine());
        }

        public void initializer(string a, int b, bool c, int d)
        {
            name = a;
            age = b;
            married = c;
            income = d;
        }

        public void print()
        {
            Console.WriteLine("Name = " + name);
            Console.WriteLine("Age = " + age);
            Console.WriteLine("Married = " + ((married) ? "Yes" : "No"));
            Console.WriteLine("Income = " + income);
            Console.WriteLine();
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            human m1 = new human();
            human m2 = new human();
            human m3 = new human();
            m1.initializer("ali", 20, false, 100);
            m2.initializer();
            m3.name = "farzad";
            m3.age = 30;
            m3.married = true;
            m1.print();
            m2.print();
            m3.print();
            Console.ReadKey();
        }
    }
}
 

draria

Member
ممنون فقط این خط چرا اینطوری شد : tolower چیه و 0

married = (Console.ReadLine().ToLower()[0]=='y');
 

the_king

مدیرکل انجمن
ممنون فقط این خط چرا اینطوری شد : tolower چیه و 0

married = (Console.ReadLine().ToLower()[0]=='y');

اولین کاراکتر رشته ای که کاربر وارد می کنه رو به حروف کوچک تبدیل می کنه و اگر کاراکتر y بود، true و در غیر اینصورت
flase را در married قرار میده.
()ToLower برای اینه که هم YES و هم yes قابل قبول باشند و برنامه نسبت به کوچیکی و بزرگی حروف حساس نباشه.
تابع ()ToLower متن داخل یک رشته را به حروف کوچک تبدیل می کند. مثلا YeS را به yes تبدیل می کند.
فقط [0] (اولین کاراکتر رشته) بررسی میشه تا عبارت های تک حرفی Y و N هم همانند YES و no قابل قبول باشند.
 

جدیدترین ارسال ها

بالا