Ejemplo n.º 1
0
        // Ham tinh thong ke
        // dung cho thong ke theo thoi gian
        public List <GiaoDich> ThongKeTheoThoiGian(ThoiGian ngayDauKy, ThoiGian ngayCuoiKy,
                                                   out double sodudauky,
                                                   out double tongthu,
                                                   out double tongchi,
                                                   out double soducuoiky)
        {
            List <GiaoDich> list = new List <GiaoDich>();

            List <GiaoDich> temp;

            // duyet qua tuan tu cac ngay
            for (ThoiGian demNgay = ngayDauKy; demNgay <= ngayCuoiKy; demNgay++)
            {
                temp = LayGDCuaNgay(demNgay); // lay danh sach cac giao dich trong ngay do
                if (temp != null)
                {
                    list.AddRange(temp); // chen vao danh sach chung
                }
            }

            // tinh so du dau ky
            sodudauky = LaySoDuTruocNgay(ngayDauKy);

            // tinh tong thu
            tongthu = TinhTongThu(list);

            // tinh tong chi
            tongchi = TinhTongChi(list);

            // so du cuoi ky
            soducuoiky = sodudauky + tongthu + tongchi;

            return(list);
        }
Ejemplo n.º 2
0
 // CAC HAM STATIC
 // de cho cac lop khac va chuong trinh chinh cung su dung
 // ma khong can goi thong qua doi tuong
 public static int SoNgayTrongNam(ThoiGian t)
 {
     if (LaNamNhuan(t.nam))
     {
         return(366);
     }
     return(365);
 }
Ejemplo n.º 3
0
 // CAU TU
 public GiaoDich(int ma, ThoiGian ngaygd, double soluong, TaiKhoan thuocTaiKhoan, LoaiGiaoDich loaiGD, string ghichu = "")
 {
     this.ma            = ma;
     this.ngaygd        = ngaygd;
     this.soluong       = soluong;
     this.ThuocTaiKhoan = thuocTaiKhoan;
     this.LoaiGD        = loaiGD;
     this.GhiChu        = ghichu;
 }
Ejemplo n.º 4
0
 // Ham so sanh ngaythang dau vao co trung thang nam hay khong
 public bool LaTrungThangNam(ThoiGian ngaythang)
 {
     if (this.thang == ngaythang.thang &&
         this.nam == ngaythang.nam)
     {
         return(true);
     }
     return(false);
 }
Ejemplo n.º 5
0
        // Ham xu ly nhap thong tin cho tung tai khoan
        // Ham nay con duoc dung khi sua thong tin tai khoan
        static TaiKhoan ThemMotTKMoi()
        {
            Console.Write("Ten : ");
            string ten = Console.ReadLine();                         // Nhap ten tai khoan

            TaiKhoan.KieuTaiKhoan kieuTK = XulyNhapKieuTK();         // Nhap kieu tai khoan
            ThoiGian ngaymo = XulyNhapNgayThangNam("Ngay thang");    // Nhap ngay tao
            double   sodu   = XulyNhapTien("So tien ban dau : ");    // Nhap so tien ban dau

            return(new TaiKhoan(ten, sodu, ngaymo, kieuTK, listGD)); // tao doi tuong Taikhoan
        }
Ejemplo n.º 6
0
 // THANH PHAN PRIVATE
 // Ham tra ra vi tri cua GiaoDichTheoThang co thang nam nao do
 private int LayViTriGDThangNam(ThoiGian ngay)
 {
     for (int i = 0; i < listThang.Count; i++)
     {
         if (listThang[i].ThangNam.LaTrungThangNam(ngay))
         {
             return(i);
         }
     }
     return(-1);
 }
Ejemplo n.º 7
0
        // CAU TU
        public GiaoDichTheoThang(GiaoDich gd)
        {
            // Mot doi tuong moi cua Giao dich theo thang duoc tao ra
            // khi co mot giao dich moi ma giao dich do co thang khong trung voi
            // cac giao dich theo thang da co
            ThoiGian ngay = gd.NgayGD;

            this.thangnam = new ThoiGian(1, ngay.Thang, ngay.Nam);
            listGD        = new List <GiaoDich>();
            listGD.Add(gd); // add giao dich moi do vao
        }
Ejemplo n.º 8
0
        public TaiKhoan(string ten, double sotienbandau, ThoiGian ngaymo, KieuTaiKhoan kieuTK, DSGiaoDich listGD)
        {
            this.Ten          = ten;
            this.SoTienBanDau = sotienbandau;
            // [Quan he thanh phan]
            this.ngaymo = ngaymo; // tao doi tuong ben trong lop
            this.KieuTK = kieuTK;

            //[Quan he ket hop voi DSGiaoDich]
            // doi tuong duoc tao ra ben ngoai lop
            // khi gan doi tuong moi thi khong xoa doi tuong cu
            this.listGD = listGD;
        }
Ejemplo n.º 9
0
        }                                        // thuoc tinh tu dong

        // CAU TU
        // Cau tu mac dinh
        public TaiKhoan(DSGiaoDich listGD)
        {
            this.Ten          = ""; // gan bang ten mac dinh
            this.SoTienBanDau = 0;
            // [Quan he thanh phan]
            this.ngaymo = new ThoiGian(); // tao doi tuong ben trong lop
            this.KieuTK = KieuTaiKhoan.TienMat;

            //[Quan he ket hop voi DSGiaoDich]
            // doi tuong duoc tao ra ben ngoai lop
            // khi gan doi tuong moi thi khong xoa doi tuong cu
            this.listGD = listGD;
        }
Ejemplo n.º 10
0
        // Ham tinh so du dau ky (truoc ngay nao do)
        private double LaySoDuTruocNgay(ThoiGian ngay)
        {
            double sodu = 0;

            foreach (GiaoDich gd in this)
            {
                // chuyen khoan khong duoc tinh la thu hay chi
                // nen khong tinh vao so du
                if (gd.NgayGD < ngay && !(gd is ChuyenKhoan))
                {
                    sodu += gd.SoLuong;
                }
            }
            return(sodu);
        }
Ejemplo n.º 11
0
        // Ham xu ly nhap ngay thang
        static ThoiGian XulyNhapNgayThangNam(string message)
        {
            Console.Write("{0} (mm/dd/yyyy) : ", message); // Yeu cau nhap ngay thang dung dang
            ThoiGian ngay = Console.ReadLine();            // o day, co su dung ep kieu ngam dinh

            // kiem tra :
            while (ngay.LaNgayMacDinh) // ngay la ngay mac dinh khi chuoi ngay nhap vao la sai
            {                          // neu sai thi yeu cau nhap lai
                Console.WriteLine("Ngay ban nhap khong dung.");
                Console.Write("De nghi ban nhap lai theo dang mm/dd/yyyy : ");
                ngay = Console.ReadLine();
            }

            return(ngay);
        }
Ejemplo n.º 12
0
        // Ham xu ly nhap nam
        static ThoiGian XulyNhapNam(string message)
        {
            Console.Write("{0} (yyyy) : ", message); // Yeu cau nhap thang nam dung dang
            ThoiGian nam = "01/01/" + Console.ReadLine();

            // kiem tra :
            while (nam.LaNgayMacDinh)
            { // neu trai lai thi yeu cau nhap lai
                Console.WriteLine("Nam ban nhap khong dung.");
                Console.Write("De nghi ban nhap lai theo dang yyyy : ");
                nam = "01/01/" + Console.ReadLine();
            }

            return(nam);
        }
Ejemplo n.º 13
0
        // Ham tinh thong ke
        // dung cho cac loai thong ke theo phan loai va thoi gian
        // mang tongthus va tongchis la hai mang tong thu va tong chi theo tung loai giao dich
        public void ThongKeTheoThoiGian(ThoiGian ngayDauKy, ThoiGian ngayCuoiKy,
                                        out bool coGD,
                                        out double tongthu,
                                        out double tongchi,
                                        out double[] tongthus,
                                        out double[] tongchis,
                                        out int size)
        {
            List <GiaoDich> list = new List <GiaoDich>();

            List <GiaoDich> temp;

            for (ThoiGian demNgay = ngayDauKy; demNgay <= ngayCuoiKy; demNgay++)
            {
                temp = LayGDCuaNgay(demNgay);
                if (temp != null)
                {
                    list.AddRange(temp);
                }
            }

            coGD     = false;
            tongthu  = 0;
            tongchi  = 0;
            tongthus = null;
            tongchis = null;
            size     = 0;
            if (list.Count != 0)
            {
                coGD = true;
                // tinh tong thu
                tongthu = TinhTongThu(list);

                // tinh tong chi
                tongchi = TinhTongChi(list);

                size = GiaoDich.SoLoaiGiaoDich;
                // tinh tong thu theo phan loai
                tongthus = new double[size];
                KhoiTaoMang(tongthus, size);
                TinhTongTheoPhanLoai(list, tongthus, GiaoDich.KieuGiaoDich.Thu);

                // tinh tong chi theo phan loai
                tongchis = new double[size];
                KhoiTaoMang(tongchis, size);
                TinhTongTheoPhanLoai(list, tongchis, GiaoDich.KieuGiaoDich.Chi);
            }
        }
Ejemplo n.º 14
0
        // Ham xu ly nhap thong tin cho tung giao dich
        // dung duoc cho ca xu ly sua thong tin giao dich
        // ma : = -1 - nhap mot giao dich moi
        //      != -1 - sua thong tin giao dich da co
        static GiaoDich ThemMotGDMoi(int ma)
        {
            if (ma == -1)
            {
                ma = listGD.MaChoGiaoDichMoi; // lay ma giao dich tiep theo
            }
            Console.WriteLine("Ma : {0}", ma);

            GiaoDich.KieuGiaoDich kGD = XulyNhapKieuGD(); // nhap kieu giao dich

            Console.Write("Chon tai khoan phat sinh giao dich - ");
            TaiKhoan tk = XulyChonTaiKhoan(); // chon tai khoan phat sinh giao dich

            TaiKhoan tkNhan = null;           // neu la chuyen khoan thi co tai khoan nhan

            if (kGD == GiaoDich.KieuGiaoDich.ChuyenKhoan)
            {
                Console.Write("Chon tai khoan nhan - ");
                tkNhan = XulyChonTaiKhoan(); // chon tai khoan nhan
                // cho nay chua xu ly truong hop tkChuyen va tkNhan trung nhau
            }

            ThoiGian ngaygd = XulyNhapNgayThangNam("Ngay thang"); // nhap ngay giao dich
            double   sotien = XulyNhapTien("So tien : ");         // nhap so tien giao dich

            GiaoDich.LoaiGiaoDich lGD = XulyNhapLoaiGD();         // nhap loai giao dich
            Console.Write("Ghi chu : ");
            string ghichu = Console.ReadLine();                   // nhap ghi chu

            GiaoDich gd = null;

            switch (kGD)                    // tao doi tuong phu thuoc vao kieu giao dich
            {
            case GiaoDich.KieuGiaoDich.Thu: // tao doi tuong thu
                gd = new Thu(ma, ngaygd, sotien, tk, lGD, ghichu);
                break;

            case GiaoDich.KieuGiaoDich.Chi:     // tao doi tuong chi
                gd = new Chi(ma, ngaygd, sotien, tk, lGD, ghichu);
                break;

            case GiaoDich.KieuGiaoDich.ChuyenKhoan:     // tao doi tuong chuyen khoan
                gd = new ChuyenKhoan(ma, ngaygd, sotien, tk, tkNhan, lGD, ghichu);
                break;
            }

            return(gd);
        }
Ejemplo n.º 15
0
        // Ham tra ra danh sach cac giao dich thuc hien trong ngay nao do
        private List <GiaoDich> LayGDCuaNgay(ThoiGian ngay)
        {
            List <GiaoDich> list = new List <GiaoDich>();

            int index;

            if ((index = LayViTriGDThangNam(ngay)) == -1)
            {
                return(null);
            }
            else
            {
                GiaoDichTheoThang gdThang = listThang[index];
                return(gdThang.LayGDCuaNgay(ngay));
            }
        }
Ejemplo n.º 16
0
        // Ham tra ra danh sach cac giao dich duoc thuc hien trong ngay nao do
        public List <GiaoDich> LayGDCuaNgay(ThoiGian ngay)
        {
            List <GiaoDich> list = new List <GiaoDich>();

            foreach (GiaoDich gd in listGD)
            {
                if (gd.NgayGD == ngay)
                {
                    list.Add(gd);
                }
            }

            if (list.Count == 0)
            {
                return(null);
            }
            return(list);
        }
Ejemplo n.º 17
0
        // Nap chong phep toan tru
        public static ThoiGian operator -(ThoiGian n1, int t)
        {
            int ngay  = n1.Ngay - t;
            int thang = n1.Thang;
            int nam   = n1.Nam;

            while (ngay <= 0)
            {
                ngay += NgayCuoiCungCuaThang(thang - 1, nam);
                thang--;
                if (thang <= 0)
                {
                    thang = 12;
                    nam--;
                }
            }
            ThoiGian ngayMoi = new ThoiGian(ngay, thang, nam);

            return(ngayMoi);
        }
Ejemplo n.º 18
0
        // NAP CHONG CAC TOAN TU
        // Nap chong phep toan cong
        public static ThoiGian operator +(ThoiGian n1, int t)
        {
            int ngay  = n1.Ngay + t;
            int thang = n1.Thang;
            int nam   = n1.Nam;
            int ngaycuoicung;

            while (ngay > (ngaycuoicung = NgayCuoiCungCuaThang(thang, nam)))
            {
                thang++;
                ngay -= ngaycuoicung;
                if (thang > 12)
                {
                    thang = 1;
                    nam++;
                }
            }
            ThoiGian ngayMoi = new ThoiGian(ngay, thang, nam);

            return(ngayMoi);
        }
Ejemplo n.º 19
0
 // CAI DAT GIAO DIEN ICOMPARABLE
 // de dung voi ham Sort cua cac lop Collection
 // va dung trong viec nap chong toan tu so sanh
 public int CompareTo(object o)
 {
     if (o is ThoiGian)
     {
         ThoiGian n = (ThoiGian)o;
         if (this == n)
         {
             return(0);
         }
         if (this.Nam > n.Nam ||
             (this.Nam == n.Nam && this.Thang > n.Thang) ||
             (this.Nam == n.Nam && this.Thang == n.Thang && this.Ngay > n.Ngay))
         {
             return(1);
         }
         return(-1);
     }
     else
     {
         throw new ArgumentException();
     }
 }
Ejemplo n.º 20
0
 // CAU TU
 public Thu(int ma, ThoiGian ngaygd, double soluong, TaiKhoan thuocTaiKhoan, LoaiGiaoDich loaiGD, string ghichu = "")
     : base(ma, ngaygd, soluong, thuocTaiKhoan, loaiGD, ghichu)
 {
 }
Ejemplo n.º 21
0
        // Ham xu ly chuc nang In thong ke theo phan loai va thoi gian
        static void InTKTheoPhanLoai()
        {
            // neu la rong thi bo qua
            if (listGD.LaRong)
            {
                Console.WriteLine("Co so du lieu khong co giao dich nao de thong ke.");
                return;
            }

            KieuNhapThoiGian kieuNhapTG = XulyNhapKieuNhapTG();
            bool             coGD;
            double           tongthu = 0, tongchi = 0;

            double[] tongthus, tongchis;
            int      size;

            //List<GiaoDich> list = null;
            switch (kieuNhapTG)
            {
            case KieuNhapThoiGian.Tuan:
                ThoiGian ngayDauTuan = XulyNhapNgayThangNam("Nhap ngay dau tuan");

                listGD.ThongKeTheoThoiGian(ngayDauTuan, ngayDauTuan + 6,
                                           out coGD,
                                           out tongthu,
                                           out tongchi,
                                           out tongthus,
                                           out tongchis,
                                           out size);

                InKQTKTheoPhanLoai(coGD, tongthu, tongchi, tongthus, tongchis, size, "tuan");
                break;

            case KieuNhapThoiGian.Thang:
                ThoiGian thangnam = XulyNhapThangNam("Nhap thang nam muon thong ke");

                listGD.ThongKeTheoThoiGian(thangnam, thangnam + ThoiGian.NgayCuoiCungCuaThang(thangnam) - 1,
                                           out coGD,
                                           out tongthu,
                                           out tongchi,
                                           out tongthus,
                                           out tongchis,
                                           out size);

                InKQTKTheoPhanLoai(coGD, tongthu, tongchi, tongthus, tongchis, size, "thang");
                break;

            case KieuNhapThoiGian.Nam:
                ThoiGian nam = XulyNhapNam("Nhap nam muon thong ke");

                listGD.ThongKeTheoThoiGian(nam, nam + ThoiGian.SoNgayTrongNam(nam) - 1,
                                           out coGD,
                                           out tongthu,
                                           out tongchi,
                                           out tongthus,
                                           out tongchis,
                                           out size);

                InKQTKTheoPhanLoai(coGD, tongthu, tongchi, tongthus, tongchis, size, "nam");
                break;

            case KieuNhapThoiGian.Khoang:
                ThoiGian dauky  = XulyNhapNgayThangNam("Nhap ngay dau ky");
                ThoiGian cuoiky = XulyNhapNgayThangNam("Nhap ngay cuoi ky");

                listGD.ThongKeTheoThoiGian(dauky, cuoiky,
                                           out coGD,
                                           out tongthu,
                                           out tongchi,
                                           out tongthus,
                                           out tongchis,
                                           out size);

                InKQTKTheoPhanLoai(coGD, tongthu, tongchi, tongthus, tongchis, size, "ky");
                break;
            }
        }
Ejemplo n.º 22
0
 public static int NgayCuoiCungCuaThang(ThoiGian t)
 {
     return(NgayCuoiCungCuaThang(t.thang, t.nam));
 }
Ejemplo n.º 23
0
 // CAU TU
 public ChuyenKhoan(int ma, ThoiGian ngaygd, double soluong, TaiKhoan thuocTaiKhoan, TaiKhoan taikhoanNhan, LoaiGiaoDich loaiGD, string ghichu = "")
     : base(ma, ngaygd, soluong, thuocTaiKhoan, loaiGD, ghichu)
 {
     TaiKhoanNhan = taikhoanNhan;
 }