Exemple #1
0
        // Ham thuc hien tach chuoi du lieu user nhap vao
        // thanh cac thanh phan tuy kieu quan sat
        static bool TachDuLieu(MauNgauNhien.KieuQuanSat kieuQS, string qs, out double x, out double y, out int m)
        {
            x = 0.0;
            y = 0.0;
            m = 0;

            // tach chuoi ra theo cac ky tu khoang trong
            string[] giatris = qs.Split();

            // phu thuoc vao kieu quan sat
            switch (kieuQS)
            {
            case MauNgauNhien.KieuQuanSat.ThongThuong:     // kieu thong thuong chi can nhap 1 gia tri
                if (giatris.Length != 1)
                {
                    return(false);                         // nhung lai nhap khac 1 gia tri, tra lai false
                }
                // su dung TryParse de chuyen doi kieu chuoi ve double, ket qua chuyen duoc tra ra bien tham chieu x
                // ham nay tra ra true neu chuyen doi duoc, false neu sai
                if (!double.TryParse(giatris[0], out x))
                {
                    return(false);
                }
                break;

            case MauNgauNhien.KieuQuanSat.ThuGon:     // tuong tu tren
                if (giatris.Length != 2)
                {
                    return(false);
                }
                if (!double.TryParse(giatris[0], out x))
                {
                    return(false);
                }
                if (!int.TryParse(giatris[1], out m))
                {
                    return(false);
                }
                break;

            case MauNgauNhien.KieuQuanSat.Khoang:     // tuong tu tren
                if (giatris.Length != 3)
                {
                    return(false);
                }
                if (!double.TryParse(giatris[0], out x))
                {
                    return(false);
                }
                if (!double.TryParse(giatris[1], out y))
                {
                    return(false);
                }
                if (!int.TryParse(giatris[2], out m))
                {
                    return(false);
                }
                break;
            }

            return(true);
        }
Exemple #2
0
        // Nhap du lieu voi so luong phan tu bat ky
        // hoac cho truoc hoac tu file
        // voi truong hop nhap gia tri voi so luong biet truoc thi num != 0
        static void NhapDuLieu(int num = 0)
        {
            // Da co du lieu va nguoi su dung khong muon nhap du lieu moi
            // thi thoat khoi ham nay
            if (mau != null && !LaMuonNhapMoi())
            {
                return;
            }

            // Nguoi su dung muon nhap moi
            // doc du lieu moi tu file
            Console.WriteLine("Ban muon nhap du lieu moi tu file ? (Yy/Nn) : ");
            string traloi = Console.ReadLine();

            if (traloi == "Y" || traloi == "y")
            {
                NhapDuLieuTuFile();
            }
            else // hoac thu cong
            {
                // Truoc tien, phai chon kieu quan sat
                MauNgauNhien.KieuQuanSat kieuQS = ChonKieuQuanSat();

                // Tao moi MauNgauNhien
                mau = new MauNgauNhien(kieuQS);

                InHuongDanNhapLieu(num == 0);

                //bien dem dung de kiem soat trong truong hop nhap voi so luong da biet truoc
                int dem = 0;
                if (num != 0)
                {
                    Console.WriteLine("Moi ban nhap {0} quan sat :", num);
                }
                else
                {
                    Console.WriteLine("Moi ban bat dau nhap du lieu cac quan sat :");
                }
                string quansat = NhapQuanSat(dem + 1);

                // Dieu kien 1 cho truong hop nhap voi so luong chua xac dinh
                // Dieu kien 2 cho truong hop nhap voi so luong da xac dinh
                // thay gop chung vao xu ly trong mot vong lap luon
                while ((quansat != null) || (dem != num))
                {
                    if (quansat == null) // nguoi su dung nhap CTRL+Z
                    {
                        if (num != 0)    // ma dang nhap voi so luong xac dinh
                        {
                            Console.WriteLine("Ban nhap chua du so luong. Moi ban nhap tiep.");
                            quansat = NhapQuanSat(dem + 1); // yeu cau nhap lai
                            continue;
                        }
                        else
                        {
                            break; // nhap voi so luong chua xac dinh thi dung lai
                        }
                    }
                    double x, y; int m;
                    // tach chuoi du lieu nhap cua user ra cac thanh phan (phu thuoc vao kieu quan sat)
                    if (!TachDuLieu(kieuQS, quansat, out x, out y, out m))
                    {                                   // neu khong tach duoc
                        InThongBaoLoiNhapLieu();        // in thong bao loi
                        quansat = NhapQuanSat(dem + 1); // yeu cua nhap lai
                        continue;
                    }

                    // neu tach duoc
                    // phu thuoc kieu quan sat, them quan sat moi vao mau ngau nhien
                    switch (kieuQS)
                    {
                    case MauNgauNhien.KieuQuanSat.ThongThuong:
                        mau.AddQuanSat(x);
                        break;

                    case MauNgauNhien.KieuQuanSat.ThuGon:
                        mau.AddQuanSat(x, m);
                        break;

                    case MauNgauNhien.KieuQuanSat.Khoang:
                        mau.AddQuanSat(x, y, m);
                        break;
                    }
                    dem++; // tang bien dem cho nhap da xac dinh so luong

                    // khi so luong da xac dinh ma da nhap du so luong
                    if (num != 0 && dem == num)
                    {
                        break;
                    }

                    // nhap quan sat tiep theo
                    quansat = NhapQuanSat(dem + 1);
                }
            }
        }