예제 #1
0
파일: XuLyFile.cs 프로젝트: nhatquyen/LTHDT
        public static bool LuuKQRaFile(MauNgauNhien mau, string pathout)
        {
            StreamWriter writer = new StreamWriter(pathout);

            if (writer == null)
            {
                return(false);
            }

            // luu gia tri ky vong va phuong sai
            writer.WriteLine("{0:f4} {1:f4}", mau.KyVong, mau.PhuongSai);
            // neu co uoc luong thi luu ket qua uoc luong
            if (mau.KetQuaULMoiNhat != null)
            {
                writer.WriteLine("{0}", mau.KetQuaULMoiNhat);
            }
            // neu co kiem dinh thi luu ket qua kiem dinh
            if (mau.KetQuaKDMoiNhat != null)
            {
                writer.WriteLine("{0}", mau.KetQuaKDMoiNhat);
            }

            writer.Close();

            return(true);
        }
예제 #2
0
파일: XuLyFile.cs 프로젝트: nhatquyen/LTHDT
        public static bool LuuMauRaFile(MauNgauNhien mau, string pathout)
        {
            StreamWriter writer = new StreamWriter(pathout);

            if (writer == null)
            {
                return(false);
            }

            // dong dau tien la 1 so the hien 3 kieu quan sat
            writer.WriteLine(mau.KieuQS);
            // dong thu hai la so thanh phan
            writer.WriteLine(mau.Count);
            // cac dong tiep theo
            foreach (QuanSat qs in mau)
            {
                string tam = qs.ToString();

                string newtam = tam.Replace("\t", " ");

                writer.WriteLine(newtam);
            }

            writer.Close();

            return(true);
        }
예제 #3
0
        // Nhap du lieu tu file
        static void NhapDuLieuTuFile()
        {
            Console.Write("Ban nhap duong dan va ten file chua du lieu mau : ");
            string pathin = Console.ReadLine();

            // doc mau vao mot bien tam
            // ly do vi co the doc bi loi, ham DocFile se tra ra null
            // lam mat du lieu da co trong bien mau cua chuong trinh
            MauNgauNhien mautam = XuLyFile.DocFile(pathin);

            if (mautam == null)
            {
                Console.WriteLine("Loi trong qua trinh doc file.");
            }
            else
            {
                mau = mautam; // gan chinh thuc vao bien mau cua chuong trinh
                Console.WriteLine("Doc file hoan tat");
            }
        }
예제 #4
0
파일: XuLyFile.cs 프로젝트: nhatquyen/LTHDT
        // Doc du lieu mau tu file
        public static MauNgauNhien DocFile(string path)
        {
            // mo file ra de doc
            StreamReader reader = new StreamReader(path);

            if (reader == null)
            {
                return(null);                // neu khong mo duoc thi tra ra null
            }
            // Đọc dòng đầu tiên để xử lý kiểu quan sát
            String input = reader.ReadLine();

            MauNgauNhien.KieuQuanSat kieuqs;
            if (!Enum.TryParse(input, out kieuqs)) // kiem tra xem du lieu o dong dau co phu hop voi 3 dang quan sat
            {
                return(null);                      // neu khong, tra ra null
            }
            // tao mau ngau nhien moi
            MauNgauNhien mau = new MauNgauNhien(kieuqs);

            // Đọc dòng tiếp theo để biết số thành phần
            input = reader.ReadLine();
            int k;

            if (!int.TryParse(input, out k))
            {
                return(null);                             // neu dong tiep theo khong dung khuon dang thi cung tra ra null
            }
            // Đọc từng dòng, tùy vào kiểu quan sát mà tách các giá trị ra
            double x;
            double y;
            int    m;

            for (int i = 0; i < k; i++)
            {
                input = reader.ReadLine();
                switch (kieuqs)
                {
                case MauNgauNhien.KieuQuanSat.ThongThuong:
                    if (!TachGiaTri(input, out x))
                    {
                        return(null);      // neu khong tach dung thi tra ra null
                    }
                    mau.AddQuanSat(x);     // tach duoc thi them quan sat do vao mau
                    break;

                case MauNgauNhien.KieuQuanSat.ThuGon:
                    if (!TachGiaTri(input, out x, out m))
                    {
                        return(null);
                    }
                    mau.AddQuanSat(x, m);
                    break;

                case MauNgauNhien.KieuQuanSat.Khoang:
                    if (!TachGiaTri(input, out x, out y, out m))
                    {
                        return(null);
                    }
                    mau.AddQuanSat(x, y, m);
                    break;
                }
            }
            reader.Close(); // dong file lai

            return(mau);    // tra mau doc duoc ra
        }
예제 #5
0
        static MauNgauNhien mau = null; // chuong trinh chi can 1 bien de luu 1 mau ngau nhien

        static void Main(string[] args)
        {
            // Kiem tra doi so dong lenh
            // de xac dinh dang cu phap dong lenh
            if (args.Length == 0)
            {
                kieuCP = KieuCuPhap.Dang1; // khi khong co doi so nao thi thuc hien theo dang 1
            }
            else if (args.Length == 1)
            {                                       // khi co 1 doi so, co the thuoc vao dang 2, 3, 4
                int num;
                if (int.TryParse(args[0], out num)) // neu doi so do kieu int
                {
                    kieuCP = KieuCuPhap.Dang3;      // thi thuoc dang 3
                }
                else if (args[0] == "-h")           // neu la chuoi "-h"
                {
                    kieuCP = KieuCuPhap.Dang2;      // thuoc dang 2
                }
                else // nguoc lai, thuoc dang 4
                {
                    kieuCP = KieuCuPhap.Dang4;
                }
            }
            else if (args.Length == 2) // hai doi so, thuoc dang 5
            {
                kieuCP = KieuCuPhap.Dang5;
            }
            else
            {
                // In thong bao loi va hien thi huong dan su dung
                Console.WriteLine("Lenh goi chuong trinh cua ban bi sai");
                kieuCP = KieuCuPhap.Dang2;
            }

            // xu ly theo dang cu phap dong lenh
            switch (kieuCP)
            {
            case KieuCuPhap.Dang1:
                // Hien thi Menu
                XuLyMenu();
                break;

            case KieuCuPhap.Dang2:
                InHuongDanSuDung();    // In ra huong dan su dung
                Console.ReadKey();     // Cho nguoi sd doc huong dan va bam enter
                Environment.Exit(0);   // roi thoat khoi chuong trinh
                break;

            case KieuCuPhap.Dang3:
                // Goi ham nhap du lieu voi so luong phan tu da biet
                NhapDuLieu(int.Parse(args[0]));
                // Hien thi Menu
                XuLyMenu();
                break;

            case KieuCuPhap.Dang4:
                // Doc du lieu tu file
                mau = XuLyFile.DocFile(args[0]);

                if (mau == null)
                {
                    Console.WriteLine("Loi trong qua trinh doc file.");
                }
                // Hien thi Menu
                XuLyMenu();
                break;

            case KieuCuPhap.Dang5:
                // Doc du lieu tu file
                mau = XuLyFile.DocFile(args[0]);

                if (mau == null)
                {
                    Console.WriteLine("Loi trong qua trinh doc file.");
                    InHuongDanSuDung();
                    Console.ReadKey();
                    Environment.Exit(0);
                }
                // Tinh toan dua ket qua ra file
                UocLuong();
                KiemDinh();
                LuuKQRaFile();
                // roi thoat chuong trinh
                Environment.Exit(0);
                break;
            }
        }
예제 #6
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);
                }
            }
        }