+1 امتیاز

سلام ، من نمیدونم اینجا جای مطرح کردن این سؤال بود یا نه .چون بیشتر بچه ها روی برنامه های ویندوزی کار می کنند . ولی به هر حال سؤالم رو پرسیدم .

توجه  :  برنامه رو فقط به صورت کنسولی باید نوشت ، و از پایگاه داده نباید استفاده کرد . (پایگاه داده )

سؤال : برنامه ای بنویسید که  اطلاعات دانشجو (نام ، نام خانوادگی ، سن ، مذکر /مؤنث ، ID)  را از کاربر دریافت کرده  و بعد از ثبت ، بتوان بر روی آن عملیات ، جستجو ، درج  و ویرایش را انجام داد .(برنامه باید به صورت کنسول نوشته شود .)

خودم موندم چطوری بنویسمش ؟

بسته شده

3 پاسخ

+1 امتیاز
 
بهترین پاسخ

سلام.

من منظور شما رو از پایگاه داده متوجه نشدم، به هر حال شما اگر نیاز داشته باشید که برنامه رو ببندید و بعد از باز کردن برنامه مجددا اطلاعات رو داشته باشید حتما باید اطلاعات رو در sqlیا فایل یا ... ذخیره کنید. و از روشی که  مدرس عزیز vbnetgenius گفتن استفاده کنید.

اما اگر نیاز نداشته باشید که اطلاعات رو ذخیره کنید و فقط وقتی برنامه اجرا میشه  با یک سری اطلاعات کار کنید یکی از روشهاش استفاده از HashTable هستش.

اینم یه نمونه کد:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;

namespace ConsoleApplication5
{
    public class Persons
    {
        public string firstName;
        public string lastName;
        public byte age;
        public string sex;
        public int ID;

        public override string ToString()
        {
            string str =
                "firstName is: " + firstName
                + "\n" + "lastName is: " + lastName
                + "\n" + "ID is: " + ID
                + "\n" + "sex is: " + sex
                + "\n" + "age is: " + age;
            return str;
        }
    }

    public static class SHT
    {
        public static void ShowHashTableInformation<Type> (this Hashtable obj)
        {
            Console.WriteLine("Show: \n");
            foreach (var item in obj.Values)
            {
                Console.WriteLine((Type)item + "\n");
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            System.Collections.Hashtable personsInformation = new System.Collections.Hashtable();
            
            Persons p1, p2;

            p1 = new Persons();
            p1.firstName = "Hassan";
            p1.lastName = "Seyyedi";
            p1.ID = 1;
            p1.age = 25;
            p1.sex = "Men";
            // ذخیره
            personsInformation.Add(p1.ID, p1);

            p2 = new Persons();
            p2.firstName = "Mohammad";
            p2.lastName = "Karimi";
            p2.ID = 2;
            p2.age = 3;
            p2.sex = "Men";
            // ذخیره
            personsInformation.Add(p2.ID, p2);
            
            //نمایش تمام اطلاعات ذخیره شده
            personsInformation.ShowHashTableInformation<Persons>();

            
            // جستجو 
            Console.WriteLine("\n\nSearch: \n");
            Console.WriteLine((Persons)personsInformation[1] + "\n");// ID = 1
        
            // حذف 
            personsInformation.Remove(2);// ID = 2

            // نمایش اطلاعات بعد از حذف
            Console.WriteLine("Show information after delete");
            personsInformation.ShowHashTableInformation<Persons>();

            //ویرایش
            Persons p3 = new Persons();
            p3.firstName = "Alireza";
            p3.lastName = "Alimi";
            p3.age = 56;
            p3.ID = 6;
            p3.sex = "Men";
            // اطلاعات آی دی یک تغییر میکنه
            personsInformation[1] = p3; 

            // نمایش اطالعات بعد از ویرایش
            Console.WriteLine("Show informaiton after edit");
            personsInformation.ShowHashTableInformation<Persons>();

            Console.ReadKey();
        }
    }
}

بعدها اگر نیاز داشتید میتونید خودتون بهینه ترش کنید مثلا بره فیلدها property تعریف کنید.

 

خیلی عالی بود
توسط (6,145 امتیاز) 5 11 116
خیلی ممنون لطف دارین.
توسط (2,595 امتیاز) 5 15 90
+2 امتیاز

سلام ، 

کار سختی نیست دوست خوبم .  برای اتصال به پایگاه داده و انجام عملیات CURd از همون دستورات قبلی که در ویندوز استفاده کردید می تونید استفاده کنید و در این مرحله هیچ فرقی نمی کنه . 

تنها تفاوتی که برنامه های Console با ویندوز دارن اینه که در این نوع برنامه ها نوع ورودی گرفتن تفاوت داره و باید از طریق پنجره ی خط فرمان ورودی ها رو بگیری و پردازش خاص خودتون رو روشون انجام بدین.  

با استفاده از دستور Console.ReadLine میتونید ورودی ها رو بگیرید . بستگی به سناریویی داره که قصد پیاده سازی دارید . شما می خواین که در هر سطر یک نوع داده ( مثلا نام ) رو وارد کنید پس باید 5 Console.ReadLine بنویسید :

Console.WriteLine("Enter ID : ");
            string id = Console.ReadLine();

            Console.WriteLine("Enter Name : ");
            string name = Console.ReadLine();

            Console.WriteLine("Enter Family : ");
            string family = Console.ReadLine();

            Console.WriteLine("Enter Age : ");
            string age = Console.ReadLine();

            Console.WriteLine("Enter Sex : ");
            string sex = Console.ReadLine();


            //Insert Operation With ado.net / Entity Framework / Linq To SQL

 

سلام ، خیلی ممنون .

اگر من بخوام جستجویی بین رکورد های وارد شده انجام بدم باید چه جور کدی بنویسم؟

مثلا : فرض کنیم رکورد های ایجاد شده زیاد باشن و من فقط دنبال یک اسم خاص باشم .

اگه دوباره مثل بالا راهنماییم کنیم خیلی ممنون می شم .
ویرایش شده توسط
توسط (206 امتیاز) 3 10 32
از طریق همون Console.ReadLine() مقدار رو میگیرید و در یک متغیر قرار میدین .

حالا جستجو روی database رو انجام میدین و بعد نتیجه رو با استفاده از Console.WriteLine نمایش میدین
توسط (6,145 امتیاز) 5 11 116
+2 امتیاز
namespace CA_test64
{
    class Program
    {

        struct Student
        {
            public int ID;
            public string Name;
            public string LastName;
            public Boolean Hazf;
            public string Jens;
        }

       static Student [] St= new   Student[5];
       static int Count=0;
        static void Main(string[] args)
        {

            int Key;
            while (true)
            {
                Console.Write("\n\n\t\t1:GetStudent  2:Exit 3:print 4=Search 5=Edit 6=Delete 7=Restor");
                Key=int.Parse( Console.ReadLine());

                switch(Key){
                    case 1: GetStudent();
                        break;
                    case 3: print();
                        break;
                    case 4: Search();
                        break;
                    case 5: Edit();
                        break;
                    case 6: Delete();
                        break;
                    case 7: Restor();
                        break;
                    case 2: return;

                }



            }

        }

        public static void GetStudent()
        {
            Console.Write("ID=");
            
            St[Count].ID = Convert.ToInt32(Console.ReadLine());
            Console.Write("Name=");
            St[Count].Name = Console.ReadLine();
            Console.Write("LastName =");
            St[Count].LastName = Console.ReadLine();
            St[Count].Hazf = false;
            Count++;
        }

        public static void print()
        {
            for (int i = 0; i < Count; ++i)
            {

                 if (St[i].Hazf!=true)
                Console.WriteLine(St[i].ID+" : "+St[i].Name+" "+St[i].LastName);

            }
        }

        public static void Search()
        {
            int KeyForSaerch;
            int F = -1;
            Console.Write("ID For Search");
            KeyForSaerch = int.Parse( Console.ReadLine());
            for (int i = 0; i < Count; ++i)
            {
                if (St[i].ID == KeyForSaerch)
                {
                    F = i;
                }

            }

            if (F == -1)
            {
                Console.Write("Not Find");
            }
            else
            {
                Console.WriteLine("Find ="+St[F].ID+" : "+St[F].Name+"  "+St[F].LastName);
            }





        }


        public static void Edit()
        {
            int KeyForSaerch;
            int F = -1;
            Console.Write("ID For Edit");
            KeyForSaerch = int.Parse(Console.ReadLine());
            for (int i = 0; i < Count; ++i)
            {
                if (St[i].ID == KeyForSaerch)
                {
                    F = i;
                    Console.Write("Naw Name ");
                    St[i].Name = Console.ReadLine();
                    Console.Write("Naw LastName ");
                    St[i].LastName = Console.ReadLine();
                }

            }

            if (F == -1)
            {
                Console.Write("Not Find");
            }
            else
            {
                Console.WriteLine("\nFind =" + St[F].ID + " : " + St[F].Name + "  " + St[F].LastName);
            }





        }
        

        public static void Delete()
        {
            int KeyForSaerch;
            int F = -1;
            Console.Write("ID For Delete");
            KeyForSaerch = int.Parse(Console.ReadLine());
            for (int i = 0; i < Count; ++i)
            {
                if (St[i].ID == KeyForSaerch)
                {
                    F = i;
                    St[i].Hazf = true;
                }

            }

            if (F == -1)
            {
                Console.Write("Not Find");
            }
            else
            {
                Console.WriteLine("\nFind =" + St[F].ID + " : " + St[F].Name + "  " + St[F].LastName);
            }





        }

        public static void Restor()
        {
            int KeyForSaerch;
            int F = -1;
            Console.Write("ID For Restor");
            KeyForSaerch = int.Parse(Console.ReadLine());
            for (int i = 0; i < Count; ++i)
            {
                if (St[i].ID == KeyForSaerch)
                {
                    F = i;
                    St[i].Hazf = false;
                }

            }

            if (F == -1)
            {
                Console.Write("Not Find");
            }
            else
            {
                Console.WriteLine("\nFind =" + St[F].ID + " : " + St[F].Name + "  " + St[F].LastName);
            }





        }

    }
}

 

میتونین منابعی رو که ازشون بهره بردین به اشتراک بذارین ؟

اگر این کار رو انجام بدین خیلی ممنون میشم
توسط (206 امتیاز) 3 10 32
همینجا
توسط (195 امتیاز) 1 7 26
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,923 کاربر

دسته بندی ها

...